Agent skill

Drug Docking Vina

by learningmatter-mit in learningmatter-mit/AtomisticSkills

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

MITAuto-check passedResearch & Science

Install Drug Docking Vina

skills CLI
$ npx skills add learningmatter-mit/AtomisticSkills --skill drug-docking-vina -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install learningmatter-mit/AtomisticSkills drug-docking-vina --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/learningmatter-mit/AtomisticSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/drug-docking-vina .claude/skills/drug-docking-vina && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
drug-docking-vina
GitHub stars
176
Token cost
~2.3k tokens
SKILL.md length
716 words
Files
10 (incl. scripts)
Skills in repo
129
Repo updated
First seen
Licence
MIT

At a glance

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

  • Works in 6 steps: Prepare receptor and ligand (recommended) → Define the docking search box (center +… → Run docking (single ligand) → …
  • Tasks that involve Drug discovery and cheminformatics
  • SKILL.md covers Goal, Instructions, Examples and Constraints, plus 1 more section
  • Runs Python scripts from its folder

What it does

Drug Docking Vina is an agent skill from learningmatter-mit/AtomisticSkills. Dock small-molecule ligands into a protein receptor using AutoDock Vina (Python API) and save ranked poses + docking metadata for reproducible virtual screening.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 15 other files, including scripts (for example `examples/hiv1_protease/README.md`, `examples/hiv1_protease/output/docking_results.json` and `scripts/collect_results.py`).

It sits in Research & Science, covering Drug discovery and cheminformatics. It works with Python. The repository describes itself as: Integrating AtomisticSkills into Agentic IDEs (Cursor, Claude Code, Codex, Google Antigravity, Hermes Agent, etc). The licence is MIT.

When your agent uses it

  • Tasks that involve Drug discovery and cheminformatics

Example prompts

  • “/drug-docking-vina”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Prepare receptor and ligand (recommended)
  2. Define the docking search box (center + size)
  3. Run docking (single ligand)
  4. Run docking (batch mode / virtual screening)
  5. Collect results into a ranked CSV
  6. Validation & interpretation (strongly recommended)

What it can do on your machine

Read from SKILL.md and the folder at commit 6257444. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 3 files in scripts/ (Python), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • doi.org
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Drug Docking Vina loads about 2.3k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 716 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~45
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from learningmatter-mit/AtomisticSkills at commit 6257444, republished under its MIT licence (© learningmatter-mit). 716 words, ~2,305 tokens.

Download SKILL.mdSave it as .claude/skills/drug-docking-vina/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
drug-docking-vina
description
Dock small-molecule ligands into a protein receptor using AutoDock Vina (Python API) and save ranked poses + docking metadata for reproducible virtual screening.
metadata.category
drug-discovery
metadata.venv
cpu

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

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

  • protein-prep to generate *_prepared.pdbqt
  • ligand-prep to generate ligand *.pdbqt (consider multiple protomers/tautomers)
bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu+openmm python ${CLAUDE_SKILL_DIR}/../drug-protein-prep/scripts/prepare_protein.py \
  --pdb_id 1HSG \
  --heterogens none \
  --missing_residues ignore \
  --output_dir docking/inputs/

${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/../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:

bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/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)
bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu+docking python ${CLAUDE_SKILL_DIR}/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)
bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu+docking python ${CLAUDE_SKILL_DIR}/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). Use collect_results.py to produce a ranked CSV that joins the docking scores with library metadata (SMILES, labels, microstate/parent IDs).

bash
# (stdlib only, venv/cpu project works)

# Combined JSON from run_docking.py
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/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)
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/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.

Show full SKILL.md (312 more words)Show less

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 < 2 Angstrom is used as a sanity check, but interpret in context).
  • Multiple runs / convergence: Vina's search is non-deterministic; increasing exhaustiveness and/or running multiple seeds can improve reliability.
  • Controls: include known actives/inactives or decoys; don't rely on a universal "score threshold".

Examples

Example: HIV-1 protease docking (1HSG + indinavir)
bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu+openmm python ${CLAUDE_SKILL_DIR}/../drug-protein-prep/scripts/prepare_protein.py \
  --pdb_id 1HSG \
  --heterogens none \
  --missing_residues ignore \
  --output_dir hiv_docking/inputs/

${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/../drug-ligand-prep/scripts/prepare_ligand.py \
  --smiles "CC(C)(C)NC(=O)C1CC2CCCCC2CN1CC(O)C(CC1=CC=CC=C1)NC(=O)C(CC(N)=O)NC(=O)C1=CC2=CC=CC=C2N1" \
  --name indinavir \
  --output_dir hiv_docking/inputs/

${CLAUDE_SKILL_DIR}/../../venv/run cpu+docking python ${CLAUDE_SKILL_DIR}/scripts/run_docking.py \
  --receptor hiv_docking/inputs/1HSG_prepared.pdbqt \
  --ligand hiv_docking/inputs/indinavir.pdbqt \
  --center_x 16.0 --center_y 25.0 --center_z 2.0 \
  --size_x 20 --size_y 20 --size_z 20 \
  --exhaustiveness 32 \
  --n_poses 10 \
  --output_dir hiv_docking/results/

Constraints

  • Environment: Requires cpu; docking runs in cpu+docking and receptor preparation in cpu+openmm.
  • AutoDock Vina: Requires AutoDock Vina Python bindings (vina package; typically Vina >= 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.
  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

  2. 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

  3. Forli, S. Charting a Path to Success in Virtual Screening. Molecules 2015, 20, 18732–18758. https://doi.org/10.3390/molecules201018732

  4. 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

  5. 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

© learningmatter-mit, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files (scripts) in skills/drug-docking-vina of learningmatter-mit/AtomisticSkills.

  • SKILL.md
  • examples/hiv1_protease/README.md
  • examples/hiv1_protease/inputs/1HSG_prepared.pdb
  • examples/hiv1_protease/inputs/1HSG_prepared.pdbqt
  • examples/hiv1_protease/inputs/indinavir/indinavir.pdbqt
  • examples/hiv1_protease/output/docking_results.json
  • examples/hiv1_protease/output/indinavir_docked.pdbqt
  • scripts/collect_results.py
  • scripts/compute_box_from_pdbqt.py
  • scripts/run_docking.py

Open the folder on GitHubat commit 6257444

Compare with similar skills

Drug Docking Vina next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Drug Docking Vina compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Drug Docking Vina this skilllearningmatter-mit/AtomisticSkills176—~2.3kAutomated safety check: PassMIT
DiffDock Molecular DockingK-Dense-AI/scientific-agent-skills48k1 repos~3kAutomated safety check: NotesMIT
Edu Chem Reactionwy51ai/edulab1.4k—~1.2kAutomated safety check: PassApache-2.0
RDKit Conformer Generatorjinzhezenggroup/computational-chemistry-agent-skills1481 repos~2.4kAutomated safety check: PassLGPL-3.0
RDKit Descriptors and Fingerprintsjinzhezenggroup/computational-chemistry-agent-skills1481 repos~2.3kAutomated safety check: PassLGPL-3.0
Rowanlamm-mit/scienceclaw2444 repos~3.1kAutomated safety check: WarnProprietary

Similar skills

  • DiffDock Molecular Docking

    K-Dense-AI/scientific-agent-skills

    Predicts how small molecules bind to a protein with DiffDock, covering batch docking, pose ranking by confidence and checks on the results; not for binding affinity.

    48k GitHub starsUsed in 1 repo~3k tokens
    Research & ScienceAuto-check: notes
  • Edu Chem Reaction

    wy51ai/edulab

    把一个化学反应做成自包含的微观 3D 交互演示网页:左/上为 Three.js 可交互分子动画 (拖滑块看断键·成键·原子重组,分步高亮),右为 KaTeX 反应方程 + 分步讲解 + 原子守恒计数 + 可选能量-反应进程曲线。支持三入口——给定文字反应/方程、随机出题、上传图片识别后演示。

    1.4k GitHub stars~1.2k tokensUpdated 10 days ago
    Research & ScienceAuto-check passed
  • RDKit Conformer Generator

    jinzhezenggroup/computational-chemistry-agent-skills

    Generates 3D molecular conformers from SMILES strings or files with RDKit, keeps the lowest-energy one per molecule, and falls back to 2D coordinates when embedding fails.

    148 GitHub starsUsed in 1 repo~2.4k tokens
    Research & ScienceAuto-check passed
  • RDKit Descriptors and Fingerprints

    jinzhezenggroup/computational-chemistry-agent-skills

    Computes RDKit physicochemical descriptors and molecular fingerprints from SMILES through a uv-run CLI script that skips and logs invalid molecules.

    148 GitHub starsUsed in 1 repo~2.3k tokens
    Research & ScienceAuto-check passed
  • Rowan

    lamm-mit/scienceclaw

    Cloud-based quantum chemistry platform with Python API. An agent skill from lamm-mit/scienceclaw.

    244 GitHub starsUsed in 4 repos~3.1k tokens
    Research & ScienceAuto-check: warnings
  • RDKit Cheminformatics

    davila7/claude-code-templates

    Guides molecular work with RDKit in Python: reading SMILES and SDF, sanitization, descriptors, fingerprints, substructure and similarity search, reactions and coordinates.

    32k GitHub starsUsed in 15 repos~5k tokens
    Research & ScienceAuto-check passed

More from learningmatter-mit/AtomisticSkills

All 129 skills in this repo
  • Drug Binding Site Definition

    learningmatter-mit/AtomisticSkills

    Define a docking search box (center coordinates + box dimensions in Angstroms) from a co-crystal ligand, binding-site residues, or a saved JSON specification.

    176 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Drug Complex System Builder

    learningmatter-mit/AtomisticSkills

    Build a solvated, charge-neutralized protein-ligand complex for OpenMM molecular dynamics simulation.

    176 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Drug Pocket Detection

    learningmatter-mit/AtomisticSkills

    Identify and rank ligandable pockets on a protein structure or model using geometry (fpocket) or an ML predictor (P2Rank).

    176 GitHub stars~4k tokensUpdated today
    Auto-check passed
  • Chem Bond Dissociation

    learningmatter-mit/AtomisticSkills

    Calculate homolytic and heterolytic bond dissociation energies (BDEs) for all single bonds in a molecule using MLIPs with RDKit fragmentation.

    176 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Chem Conformer Search

    learningmatter-mit/AtomisticSkills

    Generate molecular conformers with RDKit ETKDG, relax with MLIPs, and rank by energy with Boltzmann weighting.

    176 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Chem DB Mof

    learningmatter-mit/AtomisticSkills

    Query multiple MOF databases (QMOF via MPContribs; ARC-MOF DB7/Majumdar et al.

    176 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Works with

Questions about Drug Docking Vina

What does Drug Docking Vina do?

Dock small-molecule ligands into a protein receptor using AutoDock Vina (Python API) and save ranked poses + docking metadata for reproducible virtual screening. Drug Docking Vina is an agent skill from learningmatter-mit/AtomisticSkills. Dock small-molecule ligands into a protein receptor using AutoDock Vina (Python API) and save ranked poses + docking metadata for reproducible virtual screening.

When should I use Drug Docking Vina?

Drug Docking Vina fits situations like: tasks that involve Drug discovery and cheminformatics.

How do I install Drug Docking Vina in Claude Code?

Run `npx skills add learningmatter-mit/AtomisticSkills --skill drug-docking-vina -a claude-code`. Or copy the skill folder (skills/drug-docking-vina in learningmatter-mit/AtomisticSkills) into .claude/skills/drug-docking-vina in your project. Claude Code loads it when a task matches its description.

How do I install Drug Docking Vina in Codex?

Run `npx skills add learningmatter-mit/AtomisticSkills --skill drug-docking-vina -a codex`. Or copy the skill folder (skills/drug-docking-vina in learningmatter-mit/AtomisticSkills) into .agents/skills/drug-docking-vina in your project. Codex loads it when a task matches its description.

Can I use Drug Docking Vina in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add learningmatter-mit/AtomisticSkills --skill drug-docking-vina -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/drug-docking-vina, .gemini/skills/drug-docking-vina, .github/skills/drug-docking-vina and .opencode/skills/drug-docking-vina in your project.

What does Drug Docking Vina need to run?

Going by SKILL.md and its folder, Drug Docking Vina needs Python for the scripts in its folder. Our summary lists: Python 3.

Does Drug Docking Vina access the network?

SKILL.md names 2 domains. As links in the text: doi.org and github.com. This is read from the text; nothing was executed.

Is Drug Docking Vina safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Drug Docking Vina use?

Drug Docking Vina is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Drug Docking Vina use?

About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Drug Docking Vina?

Skills that share tags, products or a category with Drug Docking Vina: DiffDock Molecular Docking (K-Dense-AI/scientific-agent-skills, 48k stars), Edu Chem Reaction (wy51ai/edulab, 1.4k stars), RDKit Conformer Generator (jinzhezenggroup/computational-chemistry-agent-skills, 148 stars) and RDKit Descriptors and Fingerprints (jinzhezenggroup/computational-chemistry-agent-skills, 148 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Drug Docking Vina?

learningmatter-mit (a GitHub organization) maintains it in learningmatter-mit/AtomisticSkills, which has 176 GitHub stars. The repository holds 129 skills in this directory. The repository was last updated on October 7, 2026.

Source: learningmatter-mit/AtomisticSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.