Tools · Computational Biology
DrugFlow
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.
DrugFlow drugflow
- Job type
drugflow- Hardware
t4(default)l4a10l40sa100-40gba100-80gbh100h200b200- Typical runtime
- 15 min on Nvidia T4
Payload
| Field | Type | Description |
|---|---|---|
proteinrequired | file_object | Protein structure upload. |
protein.name | string | Limits: |
protein.filename | string | Limits: |
protein.content_b64 | string | Limits: |
protein.content | any | |
protein.bytes | any | |
reference_ligandrequired | file_object | Reference ligand upload. |
reference_ligand.name | string | Limits: |
reference_ligand.filename | string | Limits: |
reference_ligand.content_b64 | string | Limits: |
reference_ligand.content | any | |
reference_ligand.bytes | any | |
checkpoint | string | Default: |
n_samples | integer | Default: |
batch_size | integer | Default: |
pocket_distance_cutoff | number | Default: |
molecule_size | integer | string | |
n_steps | integer | null | Limits: |
seed | integer | Top-level seed; mutually exclusive with drugflow_args.seed. Limits: |
drugflow_args | object | |
drugflow_args.seed | integer | Limits: |
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>",
},
"reference_ligand": {"name": "ligand.sdf", "content_b64": "<file contents, base64>"},
"n_samples": 1,
"batch_size": 1,
"checkpoint": "flexflow",
}
estimate = client.jobs.estimate(job_type="drugflow", payload=payload, resource="t4")
print(f"Reserves ${estimate.cost:.2f}")
job = client.jobs.submit(
job_name="my-drugflow-run",
job_type="drugflow",
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-drugflow-run",
"job_type": "drugflow",
"payload": {
"protein": {
"name": "protein.pdb",
"content_b64": "<file contents, base64>"
},
"reference_ligand": {
"name": "ligand.sdf",
"content_b64": "<file contents, base64>"
},
"n_samples": 1,
"batch_size": 1,
"checkpoint": "flexflow"
},
"resource": "t4"
}'{
"protein": {
"name": "protein.pdb",
"content_b64": "<file contents, base64>"
},
"reference_ligand": {
"name": "ligand.sdf",
"content_b64": "<file contents, base64>"
},
"n_samples": 1,
"batch_size": 1,
"checkpoint": "flexflow"
}Sample data from the job catalog; long values are shortened here. Each job_name must be unique among your jobs.
Workflow inputs
- Protein structurePDB
- MoleculesSDF
Workflow outputs
- ArchiveZIP
- MoleculesSDF