Tools · Computational Biology
GNINA
On this page
Prices, workflows, and method papersOpen in the app
Run it from the API
Submit with Submit a job and the job_type below. Price it first with Estimate job reservation cost: submitting reserves that amount from your wallet, and the charge settles at the actual runtime.
GNINA gnina
- Job type
gnina- Hardware
t4(default)l4a10l40sa100-40gba100-80gbh100h200b200- Typical runtime
- 10 min on Nvidia T4
Payload
| Field | Type | Description |
|---|---|---|
pdb_id | string | RCSB PDB id when not uploading protein. Limits: |
protein | file_object | Uploaded protein structure. |
protein.name | string | Limits: |
protein.filename | string | Limits: |
protein.content_b64 | string | Limits: |
protein.content | any | |
protein.bytes | any | |
protein_format | string | Default: |
protein_download_format | string | Default: |
ligand | file_object | |
ligand.name | string | Limits: |
ligand.filename | string | Limits: |
ligand.content_b64 | string | Limits: |
ligand.content | any | |
ligand.bytes | any | |
ligands[] | file_object[] | Limits: |
ligands.name | string | Limits: |
ligands.filename | string | Limits: |
ligands.content_b64 | string | Limits: |
ligands.content | any | |
ligands.bytes | any | |
center[] | number[] | Limits: |
size[] | number[] | Limits: |
whole_protein_docking | boolean | Default: |
score_only | boolean | Default: |
minimize | boolean | Default: |
cnn_scoring | string | Default: |
exhaustiveness | integer | Default: |
num_modes | integer | Default: |
gnina_options | object | Optional GNINA CLI options; keys must be from gnina_option_keys. |
File fields take {"name": "x.pdb", "content_b64": "…"} or a stored artifact, {"$artifact": {"id": "art-…", "port": "…"}}. Files are up to 25 MiB each.
Example
from cognichem_client import CogniChem
client = CogniChem.from_env() # reads COGNICHEM_API_KEY
payload = {
"protein": {
"name": "protein.pdb",
"content_b64": "<file contents, base64>",
},
"ligand": {"name": "ligand.sdf", "content_b64": "<file contents, base64>"},
"center": [0, 0, 0],
"size": [20, 20, 20],
"exhaustiveness": 1,
"num_modes": 1,
}
estimate = client.jobs.estimate(job_type="gnina", payload=payload, resource="t4")
print(f"Reserves ${estimate.cost:.2f}")
job = client.jobs.submit(
job_name="my-gnina-run",
job_type="gnina",
payload=payload,
resource="t4",
)
status = client.jobs.wait(job.process_id)
if status.status == "completed":
client.jobs.result(job.process_id, save_path=".")curl -X POST "https://api.cognichem.com/api/v1/jobs/submit" \
-H "X-Api-Key: $COGNICHEM_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"job_name": "my-gnina-run",
"job_type": "gnina",
"payload": {
"protein": {
"name": "protein.pdb",
"content_b64": "<file contents, base64>"
},
"ligand": {
"name": "ligand.sdf",
"content_b64": "<file contents, base64>"
},
"center": [
0,
0,
0
],
"size": [
20,
20,
20
],
"exhaustiveness": 1,
"num_modes": 1
},
"resource": "t4"
}'{
"protein": {
"name": "protein.pdb",
"content_b64": "<file contents, base64>"
},
"ligand": {
"name": "ligand.sdf",
"content_b64": "<file contents, base64>"
},
"center": [
0,
0,
0
],
"size": [
20,
20,
20
],
"exhaustiveness": 1,
"num_modes": 1
}Sample data from the job catalog; long values are shortened here. Each job_name must be unique among your jobs.
Workflow inputs
- Molecules (list)SDF, MOL, MOL2, PDBQT
- Protein structurePDB, CIF
Workflow outputs
- ArchiveZIP
- Docked posesSDF