omics.co.in logo omics.co.in

Chapter 8: Hands-On Docking Software: PyRx GUI, AutoDock Vina & High-Throughput CLI Workflows

Tested Stacks: GATK 4.6.1 Samtools 1.21 Nextflow 24.10 Seurat v5.1 Python 3.12
Prerequisites: Basic Linux CLI & Sequencing Formats
📚 Chapter 8 of 10 0% Course Completed
Module 08 • Software Workflows Track 22 • 10 Modular Chapters AutoDock Vina • PyRx • PyMOL

Chapter 8: Hands-On Docking Software: PyRx GUI, AutoDock Vina & High-Throughput CLI Workflows

Installing and configuring PyRx 0.8+ with AutoDock Vina and OpenBabel; navigating the PyRx GUI; setting 3D search space grid box coordinates; optimizing search exhaustiveness; running multi-core parallel simulations; and command-line Vina batch automation.

⏱️ Estimated Study: 45–60 mins 🧪 Workflows: OpenBabel, AutoDock Vina, CB-Dock2, PyMOL, Discovery Studio 📋 Level: Beginner to Advanced Computational Biophysics

1. PyRx 0.8+ Graphical Workflow

PyRx is a leading open-source virtual screening software suite that integrates AutoDock Vina, AutoDock 4, and OpenBabel within an intuitive Python/wxWidgets interface.

Step-by-Step PyRx Protocol:

  1. Load Macromolecule: Navigate to File → Load Molecule → Select receptor.pdb. Right-click the structure in the Navigator and choose Make Macromolecule (PyRx automatically adds polar hydrogens and converts it into PDBQT).
  2. Import Ligands: In the OpenBabel tab, import your ligand SDF or multi-molecule SDF file. Click Energy Minimize (using MMFF94 force field with 200 conjugate gradient steps).
  3. Convert Ligands to PDBQT: Right-click the minimized ligand list and select Convert to AutoDock Ligand (PDBQT).
  4. Configure Vina Wizard: Switch to the Vina Wizard tab → Select your Macromolecule and active Ligands → Click Forward.
  5. Set Grid Box Dimensions: Adjust the interactive 3D bounding box cage. Specify center_x, center_y, center_z and size_x, size_y, size_z (standard box size: $20 \times 20 \times 20\text{ \AA}^3$).
  6. Run Vina: Set Exhaustiveness = 16 (or 32 for publication benchmarks) → Click Forward to execute multi-threaded parallel docking.
  7. Analyze Results: Export the binding affinity table ($\Delta G$ in kcal/mol) and RMSD bounds. Select top poses to inspect 3D interactions in the viewport.

2. High-Throughput Command-Line AutoDock Vina Execution

When screening hundreds or thousands of molecules, command-line Vina coupled with shell scripting or Python multiprocessing maximizes CPU core utilization:

ini # conf.txt: AutoDock Vina Configuration File
receptor = target.pdbqt
ligand = candidate_01.pdbqt

center_x = -10.45
center_y = 12.30
center_z = 68.20

size_x = 22.0
size_y = 22.0
size_z = 22.0

energy_range = 3.0
exhaustiveness = 32
num_modes = 9
cpu = 8
bash # Terminal: Batch High-Throughput Virtual Screening Shell Loop
mkdir -p docking_results

for lig in ligands/*.pdbqt; do
    base=$(basename "$lig" .pdbqt)
    echo "Docking ligand: $base..."
    vina --receptor target.pdbqt \
         --ligand "$lig" \
         --config conf_coords.txt \
         --out "docking_results/${base}_out.pdbqt" \
         --log "docking_results/${base}.log"
done

# Extract top binding affinities across all screening runs
grep "   1 " docking_results/*.log | awk '{print $1, $2, $3}' | sort -k3,3n > ranked_hits.txt
head -n 20 ranked_hits.txt
⚠️

Common Pitfalls & Troubleshooting Checklist

  • Java Heap Exhaustion (GATK / Picard): If processes terminate with java.lang.OutOfMemoryError, set your environment variable explicitly: export _JAVA_OPTIONS="-Xmx16g -Djava.io.tmpdir=/tmp".
  • Index Timestamp Mismatch: If tools complain that a BAM index is missing or out of date, regenerate with samtools index -@ 4 sample.bam.
  • Conda Channel Conflicts: Avoid ABI incompatibilities between bioconda and conda-forge by setting strict priority: conda config --set channel_priority strict.
  • Chromosome Naming Contamination: Always verify whether reference FASTA headers use chr1 or 1; divergent naming causes silent alignment drops.
Was this guide helpful to your research?
Help us maintain 100% accurate, peer-reviewed bioinformatics standards.
📝 Propose Edit on GitHub ↗