AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Drug Docking Vina

skill-learningmatter-mit-atomisticskills-drug-docking-vina · by learningmatter-mit

Dock small-molecule ligands into a protein receptor using AutoDock Vina (Python API) and save ranked poses + docking metadata for reproducible virtual screening.

No reviews yet
0 installs
35 views
0.0% view→install

Install

$ agentstack add skill-learningmatter-mit-atomisticskills-drug-docking-vina

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-learningmatter-mit-atomisticskills-drug-docking-vina)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Drug Docking Vina? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

docking-vina

Goal

To perform molecular docking of one or more small-molecule ligands into a protein receptor using AutoDock Vina (>= 1.2.x) via its Python API, producing:

  • Ranked binding poses (PDBQT)
  • Docking scores (kcal/mol) and pose RMSDs
  • A machine-readable JSON report with full docking parameters for reproducibility

This skill is intended for pose generation and relative ranking, not rigorous binding free energy prediction. Please refer to the original Vina method (Trott & Olson, https://doi.org/10.1002/jcc.21334) and the AutoDock Vina repo (https://github.com/ccsb-scripps/AutoDock-Vina) for more details.

Instructions

1. Prepare receptor and ligand (recommended)

Docking accuracy is strongly affected by structure preparation (protonation, missing residues, cofactors, waters, tautomer states, etc.). Use:

  • [protein-prep](../drug-protein-prep/SKILL.md) to generate *_prepared.pdbqt
  • [ligand-prep](../drug-ligand-prep/SKILL.md) to generate ligand *.pdbqt (consider multiple protomers/tautomers)
# Env: drugdisc-agent
python .agents/skills/drug-protein-prep/scripts/prepare_protein.py \
  --pdb_id 1HSG \
  --heterogens none \
  --missing_residues ignore \
  --output_dir docking/inputs/

# Env: drugdisc-agent
python .agents/skills/drug-ligand-prep/scripts/prepare_ligand.py \
  --smiles "CC(=O)Oc1ccccc1C(=O)O" \
  --name aspirin \
  --output_dir docking/inputs/

Best practice: if you have a co-crystal ligand, keep it as a positive control for redocking validation.

2. Define the docking search box (center + size)

You must define the docking region. The most common approaches:

  • Redocking / known pocket: center on the co-crystallized ligand
  • Known active site residues: center on key catalytic residues
  • Blind docking: large box spanning the protein (slower and less reliable, so use cautiously)

If you have a reference ligand already positioned in the binding site (PDBQT), compute a reasonable box automatically:

# Env: drugdisc-agent
python .agents/skills/drug-docking-vina/scripts/compute_box_from_pdbqt.py \
  docking/inputs/reference_ligand.pdbqt \
  --padding 6.0 \
  --min_size 20.0 \
  --output_json docking/inputs/docking_box.json

This writes center_x/y/z and size_x/y/z you can paste into the docking command.

3. Run docking (single ligand)

# Env: drugdisc-agent
python .agents/skills/drug-docking-vina/scripts/run_docking.py \
  --receptor docking/inputs/1HSG_prepared.pdbqt \
  --ligand docking/inputs/aspirin.pdbqt \
  --center_x 16.0 --center_y 25.0 --center_z 2.0 \
  --size_x 20 --size_y 20 --size_z 20 \
  --scoring vina \
  --exhaustiveness 32 \
  --n_poses 10 \
  --energy_range 3.0 \
  --min_rmsd 1.0 \
  --seed 42 \
  --cpu 0 \
  --output_dir docking/results/

Outputs:

  • docking/results/aspirin_docked.pdbqt
  • docking/results/docking_results.json

4. Run docking (batch mode / virtual screening)

# Env: drugdisc-agent
python .agents/skills/drug-docking-vina/scripts/run_docking.py \
  --receptor docking/inputs/1HSG_prepared.pdbqt \
  --ligand_dir docking/inputs/ligands_pdbqt/ \
  --center_x 16.0 --center_y 25.0 --center_z 2.0 \
  --size_x 20 --size_y 20 --size_z 20 \
  --scoring vina \
  --exhaustiveness 16 \
  --n_poses 5 \
  --seed 42 \
  --cpu 0 \
  --output_dir docking/screening_results/

Tip: for batch docking, the script will compute Vina maps once (before loading ligands) to reduce repeated setup overhead.

5. Collect results into a ranked CSV

run_docking.py writes a machine-readable JSON that is good for reproducibility but not directly consumable by downstream analysis tools (such as [drug-docking-analysis](../drug-docking-analysis/SKILL.md)). Use collect_results.py to produce a ranked CSV that joins the docking scores with library metadata (SMILES, labels, microstate/parent IDs).

# Env: drugdisc-agent (stdlib only, any env works)

# Combined JSON from run_docking.py
python .agents/skills/drug-docking-vina/scripts/collect_results.py \
  --results docking/results/docking_results.json \
  --library_csv library/library_master.csv \
  --output_dir docking/analysis/

# Or a directory of per-ligand *_result.json files (SLURM array workflows)
python .agents/skills/drug-docking-vina/scripts/collect_results.py \
  --results docking/results/ \
  --library_csv library/library_master.csv \
  --output_dir docking/analysis/

Library CSV requirements: must have a compound_id column. The compound_id value must match the ligand field in the docking JSON, which is the PDBQT filename stem set by drug-ligand-prep (e.g. indinavir.pdbqt -> indinavir). Any of these columns, when present, are passed through to the ranked CSV and are picked up by downstream analysis tools:

  • smiles (used by drug-docking-analysis for ligand efficiency metrics)
  • label (used for retrospective enrichment)
  • parent_compound_id and microstate_id (used for microstate aggregation when protomers/tautomers were enumerated during ligand prep)
  • pchembl (passed through for reference)

Output: docking_ranked.csv sorted by best_affinity (most negative first) with columns rank, compound_id, best_affinity, [passthrough columns], n_poses, runtime_s. Also writes docking_collect_summary.json with counts and the top 10.

6. Validation & interpretation (strongly recommended)

Docking is approximate; good practice is to validate your protocol for a given target:

  • Redocking test: dock the co-crystal ligand back into the pocket and check whether the top pose reproduces the experimental pose (often RMSD = 1.2.x).
  • Input format: Receptor and ligands must be PDBQT.
  • Search space selection: Box center/size strongly affects accuracy and runtime; avoid unnecessarily large "blind docking" boxes unless justified.
  • Stochastic search: Results can vary between runs; use an explicit --seed for reproducibility and consider higher --exhaustiveness for difficult systems.
  • Scoring: Vina scores are not experimental delta-G; treat as approximate scoring for ranking/pose generation.

References (recommended reading)

  1. Trott, O.; Olson, A. J. AutoDock Vina: Improving the Speed and Accuracy of Docking with a New Scoring Function, Efficient Optimization, and Multithreading. J. Comput. Chem. 2010, 31, 455–461. https://doi.org/10.1002/jcc.21334
  1. Eberhardt, J.; Santos-Martins, D.; Tillack, A. F.; Forli, S. AutoDock Vina 1.2.0: New Docking Methods, Expanded Force Field, and Python Bindings. J. Chem. Inf. Model. 2021, 61, 3891–3898. https://doi.org/10.1021/acs.jcim.1c00203
  1. Forli, S. Charting a Path to Success in Virtual Screening. Molecules 2015, 20, 18732–18758. https://doi.org/10.3390/molecules201018732
  1. Paggi, J. M.; Pandit, A.; Dror, R. O. The Art and Science of Molecular Docking. Annu. Rev. Biochem. 2024, 93, 389–410. https://doi.org/10.1146/annurev-biochem-030222-120000
  1. Feinstein, W. P.; Brylinski, M. Calculating an Optimal Box Size for Ligand Docking and Virtual Screening against Experimental and Predicted Binding Pockets. J. Cheminform. 2015, 7, 18. https://doi.org/10.1186/s13321-015-0067-5

Author: Matthew Cox Contact: GitHub @mcox3406

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.