mcpField
M
molecular-docking

molecular-docking

github.com/awslabsData & databases6877 installsUpdated 4w ago
Repository

About molecular-docking

A reasoning skill for molecular docking workflows, helping researchers choose receptor and ligand preparation tools, set grids, and tune search parameters. It emphasizes validating setups by redocking a co-crystal ligand and catching choices that can produce incorrect poses.

Key features

  1. 01Receptor and ligand tool selection
  2. 02Grid sizing guidance
  3. 03Search parameter tuning
  4. 04Co-crystal ligand redocking validation
  5. 05Common docking error checks

Use cases

  1. 01Plan virtual-screening preparation
  2. 02Set a binding-site grid
  3. 03Validate docking setup before screening

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/awslabs/hcls-agent-skills --skill molecular-docking

After installing, type/molecular-dockingin Claude Code to confirm it loaded.

Details

From the project README

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

ParameterRecommendedWhen to change
exhaustiveness3264+ for >8 rotatable bonds
num_modes10Increase for ensemble analysis
energy_range3 kcal/molWiden to capture diverse poses
Box padding+10–15 ÅLarger for allosteric sites
Protonation pH7.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 = 8 for 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 -xr PDBQT for production virtual screens Right: Use prepare_receptor (ADFR) or meeko for production Why: obabel may miss altlocs, metals, or non-standard residues

  • Wrong: Running obabel --gen3d on 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

Comments

Markdown supported