docking

star 4

Use when performing protein-ligand docking, virtual screening, or structure-based drug design. Covers receptor preparation (protonation, pocket definition), AutoDock Vina/Gnina docking engines, high-throughput virtual screening pipelines, pose analysis with interaction fingerprints, and ensemble docking for protein flexibility.

Kdevos12 By Kdevos12 schedule Updated 3/12/2026

name: docking description: Use when performing protein-ligand docking, virtual screening, or structure-based drug design. Covers receptor preparation (protonation, pocket definition), AutoDock Vina/Gnina docking engines, high-throughput virtual screening pipelines, pose analysis with interaction fingerprints, and ensemble docking for protein flexibility.

Docking — Protein-Ligand Docking & Virtual Screening

AutoDock Vina 1.2 · Gnina · pdbfixer · ProLIF · fpocket. For structure-based drug design: binding mode prediction, virtual screening, and lead optimization by docking.

When to Use This Skill

  • Predicting how a small molecule binds to a protein (binding mode / pose)
  • Virtual screening: ranking a library of compounds by predicted binding affinity
  • Validating a pharmacophore hypothesis in 3D structural context
  • Ensemble docking to account for protein flexibility
  • Re-scoring docking poses with physics-based (MM-GB/SA) or CNN-based scoring
  • Fragment-based screening (→ see fbdd skill for growing/linking)

Decision Tree — Docking vs. Other Methods

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 docking

Quick Start

import 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

Router — What to Read

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

Key Tools

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)

Scoring Function Reference

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

Installation

# 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.x

Related Skills

  • force-fields → MM-GB/SA rescoring after docking
  • mdanalysis → generate conformational ensemble for ensemble docking
  • homology-modeling → build receptor when no crystal structure available
  • pharmacophore → pharmacophore-constrained docking, pose validation
  • free-energy → FEP/TI for accurate ΔΔG after docking hit identification
  • py3Dmol → 3D visualization of poses inline
  • Scripts: chem_filter.py --lipinski → pre-filter library before VS
  • Scripts: chem_3d.py → generate 3D conformers for ligand prep
Install via CLI
npx skills add https://github.com/Kdevos12/ALKYL --skill docking
Repository Details
star Stars 4
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator