Skip to main content
Docs

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

    Tools · Computational Biology

    SurfDock

    Surface-informed diffusion docking with a reference-ligand pocket and screen-model rescoring
    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.

    SurfDock surfdock

    Job type
    surfdock
    Hardware
    t4l4a10 (default)l40sa100-40gba100-80gbh100h200b200
    Typical runtime
    30 min on Nvidia A10

    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"

    reference_ligandfile_object
    reference_ligand.namestring

    Limits: min length 1

    reference_ligand.filenamestring

    Limits: min length 1

    reference_ligand.content_b64string

    Limits: min length 1

    reference_ligand.contentany
    reference_ligand.bytesany
    reference_ligand_formatstring

    Default: "sdf"One of: "sdf"

    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
    ligand_smilesstring

    Limits: min length 1

    ligand_formatstring

    Default: "sdf"One of: "sdf", "smiles"

    num_posesinteger

    Default: 20Limits: ≥ 1, ≤ 100

    num_rescored_posesinteger

    Default: 5Limits: ≥ 1, ≤ 100

    surfdock_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>",
        },
        "protein_format": "pdb",
        "reference_ligand": {
            "name": "reference_ligand.sdf",
            "content_b64": "<file contents, base64>",
        },
        "reference_ligand_format": "sdf",
        "ligand_smiles": "CCO",
        "ligand_format": "smiles",
        "num_poses": 1,
        "num_rescored_poses": 1,
    }
    
    estimate = client.jobs.estimate(job_type="surfdock", payload=payload, resource="a10")
    print(f"Reserves ${estimate.cost:.2f}")
    
    job = client.jobs.submit(
        job_name="my-surfdock-run",
        job_type="surfdock",
        payload=payload,
        resource="a10",
    )
    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 · optionalSDF
    • Protein structurePDB, CIF
    • MoleculesSDF

    Workflow outputs

    • ArchiveZIP
    • Docked posesSDF