The Complete Guide to Molecular Docking: Tools, Workflow & Best Practices

Molecular docking is one of the most widely used techniques in computational drug discovery — but most tutorials assume you already know what you’re doing. This guide starts from scratch: what docking actually is, how to choose software, a step-by-step workflow, and the mistakes that trip up most beginners.

What is molecular docking?

Molecular docking is a computational method that predicts how a small molecule (the ligand — usually a drug candidate) binds to a protein target (the receptor). It outputs two things: the predicted binding pose (orientation and position of the ligand inside the protein) and a binding affinity score that estimates how tightly the two molecules interact.

In drug discovery, this matters enormously. Experimental screening of millions of compounds against a protein target is expensive and slow. Molecular docking lets you computationally screen hundreds of thousands of candidates first, filter down to the most promising hits, and only then run expensive wet-lab experiments on a much smaller set.

But docking isn’t just for drug discovery. Structural biologists use it to study enzyme-substrate interactions, understand protein function, and predict binding sites on newly resolved structures — including those predicted by AlphaFold.

How this differs from molecular dynamics
Docking is a static prediction — it finds the best binding pose at a single moment in time. Molecular dynamics (MD) simulates how the protein-ligand complex moves and evolves over time. They answer different questions: docking tells you where a ligand binds and roughly how strongly; MD tells you how stable that binding is and what happens to it. Many workflows use both together.

How docking works: the algorithm

At its core, a docking algorithm has two components: a search algorithm that explores possible ligand poses, and a scoring function that evaluates how favorable each pose is.

The search problem

A ligand can rotate and translate inside a binding site in an astronomical number of ways. The search algorithm has to explore this conformational space efficiently. Different software uses different strategies: AutoDock Vina uses a gradient-based optimization method combined with random restarts; older AutoDock uses a genetic algorithm; Glide (Schrödinger) uses a funnel-shaped scoring hierarchy that progressively filters poses.

You define the search space by specifying a grid box — a region of 3D space around the binding site where the algorithm will explore. Getting this box right is one of the most important (and frequently botched) steps in the whole workflow.

The scoring function

Once poses are generated, a scoring function estimates the binding free energy — how strongly the ligand is predicted to bind. Most scoring functions are empirical, trained on experimental binding data, and account for:

  • Steric interactions (shape complementarity between ligand and pocket)
  • Hydrogen bonds between ligand and protein residues
  • Hydrophobic contacts
  • Electrostatic interactions
  • Ligand flexibility (torsional entropy penalty)

The output is a binding affinity score in kcal/mol. More negative = predicted tighter binding. A score of −9 kcal/mol is generally considered promising; −5 or worse is typically not worth pursuing.

Important caveat
Docking scores are estimates, not ground truth. They correlate only roughly with experimental binding affinities. Never make a go/no-go decision on a compound based on a docking score alone — always validate with experimental or MD data.

Which software should you use?

There are dozens of docking programs. For most grad students and academic researchers, the decision comes down to three options:

Software Cost Accuracy Speed Best for
AutoDock Vina Free Good Fast General use, virtual screening, learning
GNINA Free Very good Moderate Higher accuracy, GPU available
Glide (Schrödinger) Commercial Excellent Moderate Industry/pharma, highest-quality results
rDock Free Good Fast Large-scale screening, RNA targets
SwissDock Free (web) Moderate Slow (server) Quick exploratory docking, no setup

Recommendation for most readers: Start with AutoDock Vina. It’s free, fast, well-documented, has an enormous user community, and produces results good enough for the majority of academic research. Once you’re comfortable, consider GNINA for projects where accuracy matters more than speed.

Tip
If your institution has a Schrödinger license, use Glide for final hit validation. But for initial screening and learning, Vina is the standard for a reason.

The standard docking workflow

Here is the complete workflow for running a molecular docking experiment from scratch. Each step has its own detailed tutorial linked below — this section gives you the full picture.

1
Obtain and prepare the receptor
Download the protein structure from the RCSB Protein Data Bank (PDB). Remove water molecules, co-crystallized ligands, and heteroatoms you don’t need. Add polar hydrogens. Check protonation states at physiological pH (~7.4). Convert to PDBQT format using AutoDockTools or Open Babel.
2
Obtain and prepare the ligand
Source your ligand from PubChem, ChEMBL, or draw it in ChemDraw. Generate a 3D conformer. Add Gasteiger charges. Define rotatable bonds. Convert to PDBQT. If screening a library, this step is repeated for every compound — automate it with a script.
3
Define the search space (grid box)
In AutoDockTools or a text editor, define the center and dimensions of the grid box around your binding site. If you know the binding site (from crystallography or literature), center the box there. If not, use a tool like fpocket or SiteMap to predict cavities. The box should be large enough to accommodate the ligand with room to move, but not so large it includes irrelevant space.
4
Write the configuration file
AutoDock Vina takes a plain text config file specifying the receptor, ligand, grid box parameters, and search settings. A typical config.txt looks like this:
receptor = protein_prepared.pdbqt
ligand   = ligand_prepared.pdbqt

center_x = 12.5
center_y = -8.3
center_z = 24.1

size_x = 20
size_y = 20
size_z = 20

exhaustiveness = 8
num_modes       = 9
energy_range    = 3
5
Run AutoDock Vina
From the command line, run: vina --config config.txt --out output.pdbqt --log output.log. Vina will generate up to num_modes binding poses ranked by score. Runtime is typically seconds to a few minutes per ligand on a modern laptop.
6
Analyze results
Open the output PDBQT in PyMOL or UCSF Chimera X alongside your receptor. Inspect the top-ranked poses visually. Check for: reasonable positioning in the binding pocket, expected interactions with key residues, absence of clashes. Read binding scores from the log file.
7
Validate (do not skip this)
If a crystal structure of the protein with a known ligand exists, perform self-docking (redocking): dock the co-crystallized ligand back into the protein and compare the predicted pose to the experimental structure. An RMSD below 2.0 Å means your protocol is working. If RMSD is higher, adjust your preparation or grid box before trusting any results.
The complete molecular docking workflow from raw PDB file to validated results.

How to interpret binding affinity scores

AutoDock Vina outputs binding affinity in kcal/mol. Here is a rough guide to interpreting these values in the context of early-stage drug discovery:

Score range Interpretation
−11 to −14 kcal/mol Very strong predicted binding — top hits worth prioritizing
−9 to −11 kcal/mol Strong predicted binding — solid hit in most screening contexts
−7 to −9 kcal/mol Moderate — may be worth further investigation depending on context
−5 to −7 kcal/mol Weak predicted binding — unlikely to be a useful hit
Above −5 kcal/mol Very weak — typically not worth pursuing

A few important caveats about these numbers. First, Vina scores are not directly comparable across different protein targets — what counts as “good” depends on the binding pocket size and chemistry. Second, the top-ranked pose is not always the correct one; always inspect poses 2 and 3 as well. Third, a great score on a poorly prepared protein is meaningless — garbage in, garbage out.

When comparing compounds in a virtual screening campaign, relative ranking matters more than absolute score. If compound A scores −10.2 and compound B scores −8.1 against the same target, A is the better candidate — but neither score tells you the actual experimental IC50.

Best practices and common mistakes

Things that catch most beginners

Not checking the protonation state of key residues. Histidine, aspartate, and glutamate have pH-dependent protonation states that dramatically affect docking results. Use a tool like H++ or PropKa to predict protonation at your target pH before preparing the receptor.

Grid box too large or poorly positioned. A box that’s too large includes irrelevant space and slows the search; one that’s too small may miss the real binding pose. If you’re targeting a known binding site, center the box on the co-crystallized ligand centroid from the original PDB structure. Aim for a box that extends ~10 Å in each direction beyond the largest dimension of your ligand.

Skipping validation. Always perform a self-docking validation before trusting any results. If your protocol can’t reproduce a known crystal structure pose, your results for novel ligands are unreliable.

Using a low exhaustiveness value. The default exhaustiveness = 8 is fine for quick tests, but for important results, increase it to 16 or 32. Higher exhaustiveness means more thorough conformational sampling at the cost of compute time.

Ignoring the other top poses. Vina returns up to 9 poses. The top-ranked pose is not always biologically relevant. Always inspect at least the top 3 poses visually, and prefer poses that place the ligand in a position consistent with known SAR or mutagenesis data.

Quick checklist before running docking
Receptor: waters removed, hydrogens added, charges assigned, PDBQT format. Ligand: 3D conformer generated, Gasteiger charges, rotatable bonds defined, PDBQT format. Grid box: centered on binding site, size appropriate for ligand. Validation: co-crystallized ligand available for self-docking test.

Limitations of molecular docking

Molecular docking is a powerful tool, but it has real limitations that every practitioner needs to understand before trusting their results.

Protein flexibility is poorly handled. Standard docking treats the receptor as rigid. Real proteins breathe, flex, and undergo induced fit upon ligand binding — especially at binding sites. This is why docking sometimes misses good binders that require conformational change: the algorithm never explores those receptor states. Ensemble docking (docking against multiple receptor conformations) partially addresses this, but adds complexity.

Scoring functions are imperfect. The correlation between docking scores and experimental binding affinities is real but modest — roughly r = 0.5–0.7 across diverse compound sets. Docking enriches your hit rate; it doesn’t guarantee true positives or rule out false negatives.

Solvation and entropy are approximated. Water molecules in the binding site can make or break a binding interaction. Standard docking mostly ignores explicit solvent effects, which is a significant approximation. Water displacement and desolvation penalties are handled crudely in most scoring functions.

Covalent binding and metal coordination are handled poorly (or not at all). If you’re working with covalent inhibitors or metalloproteins, standard non-covalent docking is not appropriate. You need specialized tools for these cases.

The right way to think about docking

Molecular docking is a hypothesis generator, not a hypothesis tester. Use it to narrow a large chemical space down to a manageable set of candidates, then validate those candidates with more rigorous computational methods (MD, MM-GBSA) and ultimately with experiment.

Next steps

Now that you have the full picture of what molecular docking is and how it works, the natural next step is to run your first docking experiment. The tutorials below walk through each part of the workflow in detail, with exact commands, screenshots, and troubleshooting tips for the most common errors.

If you’re new to the tools, start with the installation guide and protein preparation tutorial before attempting the main Vina walkthrough. Setting up the files correctly is where most beginners spend the most time — getting that foundation right makes everything else much smoother.

Last updated on

Similar Posts

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *