skills/pharma/docking-tools/SKILL.md
Molecular docking workflow guide and reusable pipeline template for AutoDock Vina, Open Babel, and PyMOL.
npx skillsauth add drugclaw/drugclaw docking-toolsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when the user asks to:
DrugClaw does not ship a native docking engine module. This skill packages a reusable non-GUI docking workflow into a CLI template under templates/.
The workflow assumes the runtime provides:
obabelvinapymolpdbfixer for receptor cleanup and protonationopenbabel, deepchem, pdbfixer, pyscf, rdkit, psutil, rsa, bs4, requests, pandas, matplotlib, seaborn, sklearn, BioCheck first:
which obabel vina pymol pdbfixer || true
vina --version || true
obabel -V || true
python3 - <<'PY'
mods = ["openbabel", "deepchem", "pdbfixer", "pyscf", "rdkit", "psutil", "rsa", "bs4", "requests", "pandas", "matplotlib", "seaborn", "sklearn", "Bio"]
for name in mods:
try:
__import__(name)
print(f"{name}: ok")
except Exception as exc:
print(f"{name}: missing ({exc})")
PY
If these tools are missing, say so immediately. Prefer the unified science sandbox image documented in docker/drug-sandbox.Dockerfile and docs/operations/science-runtime.md.
Use the bundled template instead of rebuilding the pipeline ad hoc.
Bundled assets:
templates/docking_workflow.pytemplates/docking_manifest.example.jsontemplates/README.mdThe template ports these usable desktop-tool capabilities into DrugClaw:
PubChem, ChEMBL, ZINC, TCMSP, local DrugBank exports, and the online DrugBank discovery APIRCSB PDB, AlphaFold DBpdbfixer -> obabelchem-toolschem-tools/templates/protein_ligand_affinity.py for structure-aware affinity scoringScope boundary:
From the skill directory or a copied template workspace:
python3 templates/docking_workflow.py init-manifest -o docking_manifest.json
python3 templates/docking_workflow.py doctor --manifest docking_manifest.json
python3 templates/docking_workflow.py run --manifest docking_manifest.json
doctor now fails on dependencies that the current manifest actually requires.
Use --strict when you also want optional plotting and chemistry extras audited.
If the manifest uses drugbank ligands or chem_postprocess, the sibling chem-tools/templates bundle must also be present; doctor now checks that explicitly.
Incremental execution:
python3 templates/docking_workflow.py fetch --manifest docking_manifest.json
python3 templates/docking_workflow.py prepare --manifest docking_manifest.json
python3 templates/docking_workflow.py box --manifest docking_manifest.json
python3 templates/docking_workflow.py dock --manifest docking_manifest.json
python3 templates/docking_workflow.py analyze --manifest docking_manifest.json
python3 templates/docking_workflow.py render --manifest docking_manifest.json --top-n 5
Use templates/docking_manifest.example.json as the base.
Supported input styles include:
source: smiles, local, pubchem, chembl, zinc, tcmsp, drugbank, autosource: local, pdb, alphafold, peptide, protein, protein_sequence, nucleic, nucleic_sequence, autoFor drugbank ligands, set either settings.drugbank_catalog to a local DrugBank CSV, TSV, JSON, or XML export, or configure settings.drugbank_api_key / settings.drugbank_api_token for online lookup. The fetch stage will save both the exported structure and a per-drug JSON property file under inputs/ligands/.
Manual box override example:
{
"box": {
"mode": "manual",
"center": [10.5, -3.2, 22.1],
"size": [24, 24, 24]
}
}
If box is omitted, the template tries:
Optional chemistry post-processing block:
{
"chem_postprocess": {
"enabled": true,
"run_admet": true,
"run_virtual_screen": true,
"affinity_model": "./models/affinity.joblib",
"structure_affinity_model": "./models/protein_affinity.joblib",
"bioactivity_model": "./models/bioactivity.joblib",
"affinity_direction": "higher-better",
"top_n": 25,
"weights": {
"affinity": 0.35,
"activity": 0.35,
"admet": 0.20,
"docking": 0.10
}
}
}
When this block is enabled, analyze also writes ligand-level chemistry outputs under results/analysis/chem/.
./docking/.The template writes:
inputs/prepared/configs/results/docking/results/complexes/results/renders/results/analysis/metadata/session.jsonmetadata/history.jsonlKey deliverables:
results/analysis/docking_summary.csvresults/analysis/binding_energy_matrix.csvresults/analysis/ligand_best_scores.csvresults/analysis/binding_energy_heatmap.pngresults/analysis/evaluation.mdresults/analysis/paper_report.mdresults/analysis/ml_scores.csv when the ML stage is availableresults/analysis/chem/ when chemistry post-processing is enabledinputs/ligands/*.drugbank.json when DrugBank-backed ligands are usedobabel missing: cannot prepare receptor or ligandvina missing: cannot score posespdbfixer missing: protein receptor cleanup falls back poorly; say so explicitlysettings.drugbank_catalog and no settings.drugbank_api_key / settings.drugbank_api_token: DrugBank ligands cannot be resolved.pml scriptsI used the bundled docking workflow template to prepare the receptor and ligand, generate the docking box, run AutoDock Vina, and save the artifacts in `docking/`.
The top-ranked pose reports `-8.1 kcal/mol` in `results/analysis/docking_summary.csv`.
I also generated `evaluation.md`, `paper_report.md`, and a PyMOL render script for the top hits.
This is a docking ranking result, not a measured binding affinity; the main uncertainty is the search-box definition.
tools
Survival and time-to-event workflow guide for Kaplan-Meier summaries, log-rank tests, and Cox proportional hazards models with reproducible outputs. Use when the user asks for time-to-event analysis, censored data summaries, hazard ratios, or survival-group comparison for research datasets.
tools
Statistical modeling workflow guide for hypothesis tests, effect-size reporting, statsmodels regression, diagnostics, and structured result export. Use when the user asks for statistical test selection, OLS or logistic regression, coefficient tables, inference, or reproducible statistical summaries for scientific datasets.
tools
Research-method workflow guide for hypothesis framing, peer-review style critique, reproducibility planning, study-design checks, and scientific-writing structure. Use when the user asks for manuscript critique, research-gap framing, hypothesis generation, reproducibility checklists, or study-planning support that should stay on the research side rather than patient-care decisions.
tools
Scientific visualization workflow guide for publication-ready static figures with seaborn or matplotlib and interactive figures with Plotly. Use when the user asks for scientific plots, cohort or assay figures, publication graphics, dashboards, or reusable plotting scripts for research datasets.