Enerplex API Client
The Enerplex API Client is a Python package designed to interact with the Enerplex platform, providing functionality to manage and retrieve data related to target proteins, ligands, and their embeddings. This package facilitates authentication, data retrieval, and file management through a user-friendly interface.
Features
- Authentication: Securely authenticate with the Enerplex API using user credentials.
- Target Proteins: Retrieve and manage information about target proteins.
- Ligands: Fetch ligands associated with specific proteins and upload new ligands.
- Embeddings: Retrieve embeddings for proteins and ligands.
- File Management: Download and manage files related to proteins, ligands, and embeddings.
Installation
Install the package using pip:
pip install enerplex
Setup
The package uses environment variables for configuration. Either set environment variable or create a .env file in your project directory with the following variables:
ENERPLEX_API_URL=<your-api-url>
ENERPLEX_API_USER=<your-username>
ENERPLEX_API_USER_PASSWORD=<your-password>
Usage
Authentication
The package automatically handles authentication. Tokens are refreshed as needed to ensure seamless interaction with the API.
Fetch Target Proteins
from enerplex import get_target_proteins
proteins = get_target_proteins()
for protein in proteins:
print(protein.name)
Fetch Ligands
from enerplex import get_ligands
ligands = get_ligands(protein_identifier=123)
for ligand in ligands:
print(ligand.id, ligand.name)
Download Files
from enerplex import download_target_protein_file
from pathlib import Path
protein = ... # A DBTargetProtein object
download_target_protein_file(protein, path=Path("/path/to/save/file"))
Upload Ligands
from enerplex import upload_ligand
from pathlib import Path
ligand = upload_ligand(
target_name="ProteinX",
score=92.5,
scoring_function="Docking",
ligand_structure_file_path=Path("/path/to/ligand/file")
)
print(ligand.id, ligand.name)
Contributing
Contributions are welcome! If you'd like to contribute, please fork the repository and submit a pull request. Ensure your code adheres to the existing style and is well-documented.
License
This package is licensed under the MIT License. See the LICENSE file for more details.
Support
For any issues or questions, please open an issue on the GitHub repository or contact the maintainer directly.
Example Workflow
Here's a complete example that retrieves a target protein, downloads its associated file, and uploads a new ligand:
from enerplex import get_target_proteins, download_target_protein_file, upload_ligand, DBProteinLigandComplex, DBTargetProtein
from pathlib import Path
# Retrieve proteins
proteins: list[DBTargetProtein] = get_target_proteins()
selected_protein: DBTargetProtein = proteins[0]
# Download protein file
download_target_protein_file(selected_protein, path=Path("protein_file.pdb"))
# Build a ligand with some workflow
# ...
# Upload the new ligand
new_ligand: DBProteinLigandComplex = upload_ligand(
target_name=selected_protein.name,
score=-9.3,
scoring_function="Vina",
ligand_structure_file_path=Path("ligand_structure.pdb")
)
print(f"Uploaded ligand: {new_ligand.id}, {new_ligand.name}")
Metadata
Release files for enerplex 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| enerplex-0.2.2.tar.gz | 10.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| enerplex-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.1 kB
Release files / enerplex-0.2.2.tar.gz
| Download URL | enerplex-0.2.2.tar.gz |
|---|---|
| Size | 10.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e8b706c1c6301ba23fa2b57a75836a9d3b1cadec9415e0659bbadd539d52ecb2
|
|
BLAKE2b-256 checksum How to use checksums |
3bf9da055d8cb12c4509ad0f94ec44a14f61a099c31b1c25b548ec548d422ae2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 6, 2025.
Transparency logRelease files / enerplex-0.2.2-py3-none-any.whl
| Download URL | enerplex-0.2.2-py3-none-any.whl |
|---|---|
| Size | 11.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e945b57f06894b5d5052ebf5fddf9d5314a60bed6d6cddf7d3b684514ee9f44d
|
|
BLAKE2b-256 checksum How to use checksums |
9da33e6d43689f3b11123f4a625d3a0c8715de24c86d73e97082240172cb51ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 6, 2025.
Transparency log