Skip to main content
Docs

Search guides and API endpoints, for example “Idempotency-Key” or “submit job”.

    Tools · Computational Biology

    AutoDock Vina

    High performance molecular docking and virtual screening for drug discovery
    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.

    AutoDock Vina autodockvina

    Job type
    autodockvina
    Hardware
    cpu (default)t4l4a10l40sa100-40gba100-80gbh100h200b200
    Typical runtime
    15 min on CPU

    Payload

    Payload fields
    FieldTypeDescription
    pdb_idstring

    Limits: min length 1

    proteinfile_object
    protein_download_formatstring

    Default: "pdb"One of: "pdb", "cif"

    ligandfile_object
    ligands[]file_object[]

    Limits: min items 1

    pocketsinteger | string
    boxesfile_object
    center[]number[]

    Limits: min items 3, max items 3

    size[]number[]

    Limits: min items 3, max items 3

    exhaustivenessinteger

    Default: 8Limits: ≥ 1

    num_modesinteger

    Default: 9Limits: ≥ 1

    energy_rangeinteger

    Default: 3Limits: ≥ 0

    box_paddingnumber

    Default: 10Limits: ≥ 0

    gpu_threadsinteger

    Default: 8000Limits: ≥ 1

    skip_preprocessingboolean
    p2rank_pathstring

    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="autodockvina", payload=payload, resource="cpu")
    print(f"Reserves ${estimate.cost:.2f}")
    
    job = client.jobs.submit(
        job_name="my-autodockvina-run",
        job_type="autodockvina",
        payload=payload,
        resource="cpu",
    )
    status = client.jobs.wait(job.process_id)
    if status.status == "completed":
        client.jobs.result(job.process_id, save_path=".")

    Sample data from the job catalog; long values are shortened here. Each job_name must be unique among your jobs.

    Workflow inputs

    • Table · optionalJSON
    • Molecules (list)SDF, MOL, MOL2, PDBQT
    • Protein structurePDB

    Workflow outputs

    • ArchiveZIP
    • Docked posesPDBQT