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:
- 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). - 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).
- Convert Ligands to PDBQT: Right-click the minimized ligand list and select Convert to AutoDock Ligand (PDBQT).
- Configure Vina Wizard: Switch to the Vina Wizard tab → Select your Macromolecule and active Ligands → Click Forward.
- Set Grid Box Dimensions: Adjust the interactive 3D bounding box cage. Specify
center_x, center_y, center_zandsize_x, size_y, size_z(standard box size: $20 \times 20 \times 20\text{ \AA}^3$). - Run Vina: Set
Exhaustiveness = 16(or 32 for publication benchmarks) → Click Forward to execute multi-threaded parallel docking. - 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 = 8bash # 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
chr1or1; divergent naming causes silent alignment drops.
Was this guide helpful to your research?
Help us maintain 100% accurate, peer-reviewed bioinformatics standards.