docking — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited docking (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
AutoDock Vina 1.2 · Gnina · pdbfixer · ProLIF · fpocket. For structure-based drug design: binding mode prediction, virtual screening, and lead optimization by docking.
fbdd skill for growing/linking)Input: protein structure 3D?
NO → ligand-based methods (pharmacophore, QSAR, similarity search)
YES → docking
Compound set size?
> 10 000 → VS pipeline (references/virtual-screening.md)
10–10 000 → standard docking batch (references/vina-gnina.md)
< 10 → manual docking + careful pose analysis
Goal: binding mode accuracy vs. ranking accuracy?
Binding mode → high exhaustiveness, Gnina CNN rescoring
Ranking → standard Vina + clustering + MM-GB/SA rescore
Protein structure source?
X-ray / CryoEM → direct prep (references/protein-prep.md)
Homology model → validate first (→ homology-modeling skill)
AlphaFold → check pLDDT > 80 in pocket region before dockingimport subprocess
from pathlib import Path
# 1. Prepare receptor (pdbfixer + obabel → PDBQT)
# See references/protein-prep.md for full workflow
# 2. Prepare ligand
import subprocess
subprocess.run([
"obabel", "ligand.sdf", "-O", "ligand.pdbqt",
"--gen3d", "-h"
], check=True)
# 3. Run Vina
result = subprocess.run([
"vina",
"--receptor", "receptor.pdbqt",
"--ligand", "ligand.pdbqt",
"--center_x", "10.5",
"--center_y", "-2.3",
"--center_z", "14.1",
"--size_x", "20",
"--size_y", "20",
"--size_z", "20",
"--exhaustiveness", "16",
"--num_modes", "9",
"--out", "docked.pdbqt"
], capture_output=True, text=True, check=True)
# 4. Parse best score
for line in result.stdout.splitlines():
if line.strip().startswith("1 "):
print("Best score:", line.split()[1], "kcal/mol")
break| Task | Reference |
|---|---|
| Clean PDB, add H, assign protonation, define docking box | references/protein-prep.md |
| AutoDock Vina / Gnina docking, parameters, scoring | references/vina-gnina.md |
| High-throughput VS pipeline, metrics (BEDROC, EF), filtering | references/virtual-screening.md |
| Extract interactions (H-bonds, hydrophobic, π), ProLIF, clustering | references/pose-analysis.md |
| Ensemble docking, protein flexibility, MD snapshots | references/ensemble-docking.md |
| Tool | Install | Role |
|---|---|---|
vina | conda install -c conda-forge autodock-vina | Docking engine (empirical scoring) |
gnina | prebuilt binary or Docker | CNN scoring function |
pdbfixer | conda install -c conda-forge pdbfixer | PDB cleaning, H addition, missing residues |
openbabel | conda install -c conda-forge openbabel | Format conversion → PDBQT |
prolif | pip install prolif | Protein-Ligand Interaction Fingerprints |
fpocket | conda install -c conda-forge fpocket | Pocket detection / box definition |
propka | pip install propka | pKa prediction for protonation |
meeko | pip install meeko | Ligand PDBQT prep (better than obabel for Vina) |
| Method | Score type | Precision | Speed | Use case |
|---|---|---|---|---|
| Vina empirical | ΔG (kcal/mol) | ★★★ | ★★★★★ | VS, binding mode |
| Gnina CNN | unitless affinity | ★★★★ | ★★★★ | Rescoring, pose selection |
| MM-GB/SA | ΔG (kcal/mol) | ★★★★ | ★★ | Lead opt rescoring |
| FEP/TI | ΔΔG (kcal/mol) | ★★★★★ | ★ | Precise relative ranking |
# Vina + OpenBabel (required)
conda install -c conda-forge autodock-vina openbabel
# pdbfixer + propka (receptor prep)
conda install -c conda-forge pdbfixer
pip install propka
# ProLIF (pose analysis)
pip install prolif
# meeko (better ligand PDBQT prep)
pip install meeko
# fpocket (pocket detection)
conda install -c conda-forge fpocket
# Gnina (CNN rescoring) — prebuilt binary
wget https://github.com/gnina/gnina/releases/latest/download/gnina
chmod +x gnina && mv gnina ~/.local/bin/
# Verify Vina
vina --version # AutoDock Vina 1.2.xforce-fields → MM-GB/SA rescoring after dockingmdanalysis → generate conformational ensemble for ensemble dockinghomology-modeling → build receptor when no crystal structure availablepharmacophore → pharmacophore-constrained docking, pose validationfree-energy → FEP/TI for accurate ΔΔG after docking hit identificationpy3Dmol → 3D visualization of poses inlinechem_filter.py --lipinski → pre-filter library before VSchem_3d.py → generate 3D conformers for ligand prep~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.