
Description
Molecular docking pipeline using AutoDock Vina for structure-based drug discovery. Triggers on docking, AutoDock Vina, receptor preparation, ligand preparation, PDBQT, grid box, virtual screening, binding affinity, pose prediction, structure-based virtual screening, "redocking RMSD", "Vina score", "docking pose", "prepare receptor", "ligand library screening".
SKILL.md
Molecular Docking — Pipeline Skill (Thin Scaffold)
Overview
Adds decision logic for receptor/ligand preparation tool selection, grid box sizing, exhaustiveness tuning, and validation protocol. Focuses on gotchas that produce silently wrong poses.
Usage
- Activate when choosing preparation tools (obabel vs ADFR/meeko) for a docking campaign
- Activate when defining grid box dimensions or placement
- Activate when validating docking setup via redocking
Core Concepts
Decision Logic
Receptor preparation tool:
├── Quick exploration / single ligand → obabel (-d, reduce, -xr)
└── Production virtual screen → prepare_receptor (ADFR) or meeko
└── Handles altlocs, metals, non-standard residues correctly
Ligand preparation:
├── Single ligand from SMILES/SDF → obabel --gen3d -h
├── Large library (>100 ligands) → meeko (mk_prepare_ligand.py)
└── Stereocenters undefined? → Enumerate explicitly BEFORE docking
Grid box placement:
├── Co-crystal ligand available → Center on ligand centroid
└── No co-crystal → Use pocket predictor (fpocket, P2Rank, SiteMap)
Grid box sizing:
└── Ligand longest diameter + 10–15 Å padding per axis
└── Typical: 20–30 Å per side for drug-like molecules
Exhaustiveness:
├── Quick exploration → 8 (Vina default)
├── Production / ranking → 32
└── Large/flexible ligands (>8 rotatable bonds) → 64+
Validation gate (MUST pass before trusting screen results): Redock co-crystal ligand → RMSD < 2 Å against crystallographic pose. If fails, fix preparation or grid before screening.
Critical Parameters
| Parameter | Recommended | When to change |
|---|---|---|
exhaustiveness | 32 | 64+ for >8 rotatable bonds |
num_modes | 10 | Increase for ensemble analysis |
energy_range | 3 kcal/mol | Widen to capture diverse poses |
| Box padding | +10–15 Å | Larger for allosteric sites |
| Protonation pH | 7.0 (reduce default) | Use PROPKA/H++ for acidic pockets (e.g., aspartyl proteases pH 4.5) |
Score interpretation:
- Vina scores are only comparable within the SAME receptor + grid setup
- Typical drug-like hits: -7 to -12 kcal/mol
- Scores are NOT transferable across different targets or grid configurations
Common Mistakes
- Wrong: Leaving crystallographic waters in the receptor Right: Strip HOH/WAT residues before PDBQT conversion (unless explicit-water docking) Why: Waters block the binding site and produce unphysical poses
- Wrong: Using default pH 7 protonation for all binding sites Right: Use PROPKA or H++ for acidic/basic pockets Why: Wrong protonation alters H-bond networks and produces incorrect poses
- Wrong: Grid box barely enclosing the binding site Right: Ligand diameter + 10–15 Å padding per axis Why: Under-padding clips the site and biases poses toward box center
- Wrong: Default
exhaustiveness = 8for large/flexible ligands Right: Use 32+ for production; 64+ for >8 rotatable bonds Why: Low exhaustiveness misses global minima, unreliable rankings - Wrong: Skipping redocking validation before screening Right: Redock co-crystal ligand, verify RMSD < 2 Å Why: RMSD ≥ 2 Å means preparation or grid is wrong; screen results untrustworthy
- Wrong: Using
obabel -xrPDBQT for production virtual screens Right: Useprepare_receptor(ADFR) or meeko for production Why: obabel may miss altlocs, metals, or non-standard residues - Wrong: Running
obabel --gen3don SMILES with undefined stereocenters Right: Provide isomeric SMILES or enumerate stereoisomers explicitly Why: Undefined stereocenters resolved arbitrarily — may dock wrong enantiomer - Wrong: Comparing Vina affinities across different receptors or grid configs Right: Only compare within same receptor + grid; re-rank when changing either Why: Scores are context-dependent, not transferable
Response Format
- Lead with the command or code the user needs — explain after
- Structure as: confirm inputs → working code → key parameters explained → gotchas
- One complete working example per task; do not show every alternative
- Keep code comments minimal and functional (what, not why-it-exists)
- Target: 50-100 lines of code with brief surrounding explanation
More skills from the hcls-agent-skills repository
View all 39 skillsaws-genai-ml-architect
design AWS GenAI and ML architectures
Jul 12ArchitectureAWSHealthcareLife Sciences +1biomarker-discovery
guide biomarker discovery and validation
Jul 12AWSBioinformaticsLife SciencesResearchcdisc-compliance
reason about CDISC SDTM and ADaM implementation
Jul 12Clinical TrialsLife SciencesRegulatory Compliancecell-type-annotation
annotate single-cell RNA-seq clusters
Jul 12BioinformaticsData AnalysisLife SciencesRNA-seqcheminformatics
calculate molecular properties with RDKit
Jul 12BioinformaticsChemistryData AnalysisResearchclaims-analytics
analyze and parse healthcare claims data
Jul 12Data AnalysisHealthcareInsuranceLife Sciences
More from AWS Labs
View publisheragentcore-investigation
investigate Bedrock AgentCore runtime sessions
mcp
Jul 12AWSDebuggingLogsObservabilityamazon aurora dsql
build applications with Aurora DSQL
mcp
Jul 12AuroraAWSDatabaseServerless +1aurora dsql
build applications with Aurora DSQL
mcp
Jul 12AWSDatabaseServerlessSQLaws dsql
build applications with Aurora DSQL
mcp
Jul 12AWSDatabaseMigrationServerless +1distributed postgres
build applications with Aurora DSQL
mcp
Jul 12AWSDatabasePostgreSQLServerless +1distributed sql
build applications with Aurora DSQL
mcp
Jul 12AWSDatabaseServerlessSQL