In this step-by-step guide, you will learn everything from downloading the software to interpreting your results, complete with commands, tips, and best practices.
By the end of this guide, you will be able to prepare protein and ligand structures, configure and run AutoDock Vina, analyze binding energies, and visualize docked poses in PyMOL or Discovery Studio.
⚛️ What is Molecular Docking?
Molecular docking computationally simulates the binding interaction between a protein (receptor) and a small molecule (ligand). The algorithm searches for the optimal binding pose and orientation of the ligand within the protein's active site, scoring each pose by its predicted binding affinity (in kcal/mol).
Receptor
The target protein — usually an enzyme or cell receptor involved in disease
Ligand
A small drug-like molecule being tested for binding affinity to the receptor
Binding Affinity
Predicted free energy of binding (kcal/mol) — more negative = stronger binding
Pose
A specific orientation and conformation of the ligand inside the binding pocket
🛠️ Required Software & Tools
Before you begin, install the following free tools:
| Tool | Purpose | Download |
|---|---|---|
| AutoDock Vina | Core docking engine | vina.scripps.edu |
| MGLTools / AutoDockTools | Prepare receptor & ligand (PDBQT format) | mgltools.scripps.edu |
| PyMOL | 3D visualization of results | pymol.org |
| Discovery Studio Visualizer | Interaction diagram analysis | Free from BIOVIA |
| Open Babel | File format conversions | openbabel.org |
📥 Step 1 — Get Your Protein Structure
The starting point is downloading a crystal structure of your target protein from the RCSB Protein Data Bank (PDB) at rcsb.org.
Search for your target protein
Go to rcsb.org and search by protein name, gene, or disease. Choose a structure with good resolution (≤2.5 Å) and a co-crystallized ligand to confirm the active site.
Download the .pdb file
Click "Download Files" → "PDB Format". Save the file (e.g., 1iep.pdb for BCR-ABL kinase).
Clean the structure in PyMOL or AutoDockTools
Remove water molecules, co-crystallized ligands, and other heteroatoms that should not be part of your receptor.
Always check whether your protein has missing residues or broken chains. Use SWISS-MODEL or Modeller to fill in missing loop regions before docking.
🧪 Step 2 — Prepare the Receptor (PDBQT)
AutoDock Vina requires the receptor in PDBQT format, which includes partial charges and atom types. Use AutoDockTools (ADT) for this:
Open the protein in ADT
File → Read Molecule → select your .pdb file
Add hydrogens
Edit → Hydrogens → Add → Polar Only. This adds polar hydrogens required for docking calculations.
Assign Gasteiger charges
Edit → Charges → Compute Gasteiger. These partial charges are used in the scoring function.
Save as PDBQT
File → Save → Write PDBQT → receptor.pdbqt
💊 Step 3 — Prepare the Ligand
Your ligand also needs to be converted to PDBQT format. You can download ligand structures from PubChem or ChEMBL in SDF or MOL2 format.
obabel ligand.sdf -O ligand.pdbqt --gen3d -h
In AutoDockTools: set the torsion tree (rotatable bonds) to allow the ligand flexibility during docking. Ligand → Torsion Tree → Detect Root.
📦 Step 4 — Define the Search Space (Grid Box)
You must define a 3D grid box around the protein's active site where Vina will search for binding poses. Use the coordinates of the co-crystallized ligand as your center.
receptor = receptor.pdbqt ligand = ligand.pdbqt center_x = 15.190 center_y = 53.903 center_z = 16.917 size_x = 25 size_y = 25 size_z = 25 exhaustiveness = 8 num_modes = 9 energy_range = 3
Set box size to ~20–30 Å for focused docking on a known active site. For blind docking (unknown site), increase to 60–80 Å. Higher exhaustiveness (16 or 32) gives more reliable results but takes longer.
🚀 Step 5 — Run AutoDock Vina
With all files prepared, run Vina from the command line:
vina --config config.txt --log results.log --out docked_poses.pdbqt
Vina will output the top binding modes ranked by predicted binding affinity. A typical successful run looks like:
mode | affinity | dist from best mode | (kcal/mol) | rmsd l.b.| rmsd u.b. -----+------------+----------+---------- 1 -9.8 0.000 0.000 2 -9.4 1.832 2.641 3 -9.1 1.204 3.892 4 -8.9 2.108 4.771
📊 Step 6 — Analyze Results
The key output is the binding affinity in kcal/mol. More negative values indicate stronger predicted binding.
| Binding Affinity (kcal/mol) | Interpretation |
|---|---|
| 0 to −5 | Weak binding — unlikely drug candidate |
| −5 to −7 | Moderate binding — worth further investigation |
| −7 to −9 | Good binding — promising candidate |
| Below −9 | Strong binding — excellent candidate for optimization |
Visualizing the Docked Pose in PyMOL
Load both receptor.pdbqt and docked_poses.pdbqt in PyMOL to visually inspect the binding mode. Use "show sticks" for the ligand and "show surface" for the protein to reveal how the drug fits into the binding pocket.
Fig 1. Visualization of a docked ligand pose inside a protein binding pocket (illustrative)
Interaction Analysis with Discovery Studio
Import the best pose into Discovery Studio Visualizer to generate a 2D ligand interaction diagram showing:
- Hydrogen bonds with key residues
- Hydrophobic contacts
- Pi-stacking interactions
- Van der Waals contacts
Hydrogen Bonds
Electrostatic interactions between H-bond donors and acceptors on residues
Hydrophobic Contacts
Non-polar regions of the ligand nestling against hydrophobic pockets
Pi-Stacking
Aromatic ring interactions between ligand and aromatic residues like Phe, Trp
Van der Waals
Weak but numerous short-range attractive forces contributing to binding
✅ Best Practices & Common Mistakes
Validate with redocking
Re-dock the original co-crystallized ligand and check that the RMSD is below 2 Å vs the crystal pose
Remove all water first
Water molecules in the PDB cause errors in PDBQT conversion — always remove them first
Try multiple exhaustiveness
Run with exhaustiveness 8, 16, and 32 to check reproducibility of top binding modes
Don't rely on docking alone
Follow up promising hits with MD simulation and ADMET analysis before drawing conclusions
🔮 Molecular Interaction Network
Nodes represent atoms; edges represent bonds. The network updates in real time.
Protein Binding Network
Live atom-bond simulation • hover to attract
🔥 Binding Energy Pulse
Each ring represents a wave of energy emitted when the ligand docks into the active site.
🧬 DNA Double Helix – Target Structure
The receptor's DNA encodes the protein target. The helix rotates continuously in 3D.
🌸 Ligand Conformational Flexibility
During docking, rotatable bonds flex continuously. This wave visualises torsional energy.
Torsional Energy Profile
Each wave = one rotatable bond in the ligand
💻 AutoDock Vina — Score Computation
Vina evaluates millions of poses per second. Each falling character is one scoring event.