Skip to main content
Docs

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

    Tools · Computational Biology

    Interaction Profiler

    List the protein–ligand contacts in docked poses: hydrogen bonds, hydrophobic contacts, salt bridges, π-stacking, and water bridges.

    Updated October 6, 2026

    On this page

    Prices, workflows, and method papersOpen in the app

    The Interaction Profiler explains why a pose scores the way it does by listing its non-covalent contacts with the protein, using PLIP (the Protein–Ligand Interaction Profiler). Use it after docking to check that top poses make the contacts you expect (a key hydrogen bond, for example), or to filter poses on them in a workflow. It runs on CPU.

    What it finds

    Hydrogen bonds, hydrophobic contacts, salt bridges, π-stacking, π–cation interactions, water bridges, halogen bonds, and metal complexes, each with the residue involved and the distance.

    Inputs

    • The protein: an RCSB pdb_id, or a PDB or mmCIF file.
    • The poses: docked ligands as SDF, PDBQT, or PDB (up to 50 poses per job), for example from AutoDock Vina or GNINA.
    • keep_waters: keep crystallographic waters so water bridges can be detected.

    Outputs

    • interactions.csv: one row per contact: pose, interaction type (hbond, hydrophobic, saltbridge, pistacking, pication, waterbridge, halogenbond, metal), residue name, number, and chain, and distance.
    • summary.json: run details and counts.

    Not covered

    Protein–protein interfaces, interaction fingerprints across a set, and complexes predicted by co-folding tools aren't supported yet. For an energy-based rescore use MM-GBSA Rescoring.

    The Dock into a cleaned predicted structure and see the contacts workflow profiles the top Vina poses, one job per ligand.

    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.

    Interaction Profiler plip-profile

    Job type
    plip-profile
    Hardware
    cpu (default)
    Typical runtime
    3 min on CPU

    Payload

    Payload fields
    FieldTypeDescription
    pdb_idstring

    Limits: min length 1

    proteinfile_object
    protein_download_formatstring

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

    posesrequiredfile_object
    keep_watersboolean

    Default: false

    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>",
        },
        "poses": {"name": "poses.pdb", "content_b64": "<file contents, base64>"},
        "keep_waters": False,
    }
    
    estimate = client.jobs.estimate(job_type="plip-profile", payload=payload, resource="cpu")
    print(f"Reserves ${estimate.cost:.2f}")
    
    job = client.jobs.submit(
        job_name="my-plip-profile-run",
        job_type="plip-profile",
        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

    • Docked posesSDF, PDBQT, PDB
    • Protein structurePDB, CIF

    Workflow outputs

    • ArchiveZIP
    • TableCSV