Skip to main content
Docs

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

    Tools · Computational Biology

    GNINA

    Protein–ligand docking and pose rescoring with convolutional neural network scoring functions
    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

    Payload fields
    FieldTypeDescription
    pdb_idstring

    Limits: min length 1

    proteinfile_object
    protein.namestring

    Limits: min length 1

    protein.filenamestring

    Limits: min length 1

    protein.content_b64string

    Limits: min length 1

    protein.contentany
    protein.bytesany
    protein_formatstring

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

    protein_download_formatstring

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

    ligandfile_object
    ligand.namestring

    Limits: min length 1

    ligand.filenamestring

    Limits: min length 1

    ligand.content_b64string

    Limits: min length 1

    ligand.contentany
    ligand.bytesany
    ligands[]file_object[]

    Limits: min items 1

    ligands.namestring

    Limits: min length 1

    ligands.filenamestring

    Limits: min length 1

    ligands.content_b64string

    Limits: min length 1

    ligands.contentany
    ligands.bytesany
    center[]number[]

    Limits: min items 3, max items 3

    size[]number[]

    Limits: min items 3, max items 3

    whole_protein_dockingboolean

    Default: false

    score_onlyboolean

    Default: false

    minimizeboolean

    Default: false

    cnn_scoringstring

    Default: "rescore"One of: "none", "rescore", "refinement", "metrorescore", "metrorefine", "all"

    exhaustivenessinteger

    Default: 8Limits: ≥ 1

    num_modesinteger

    Default: 9Limits: ≥ 1

    gnina_optionsobject

    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=".")

    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