Lesson 7 of 12 · 11 min
Running AutoDock Vina
From prepared files to a docking run
By this point you have two prepared inputs, a rigid receptor.pdbqt and a ligand.pdbqt, and you have decided where the binding pocket sits. AutoDock Vina needs both files plus a search box that encloses that pocket. Give it those and it runs a Monte Carlo search, scores the candidate poses, and writes the ranked results to an output PDBQT file. Here is the full command with every option spelled out on the command line.
vina --receptor receptor.pdbqt --ligand ligand.pdbqt \
--center_x 11.0 --center_y 90.5 --center_z 57.5 \
--size_x 20 --size_y 20 --size_z 20 \
--out ligand_out.pdbqt \
--exhaustiveness 8 --num_modes 9 --energy_range 3The --receptor and --ligand flags point to the two PDBQT files you prepared, and --out names the file that will hold the docked poses. The six box flags define the search space. --center_x, --center_y and --center_z place the middle of a rectangular box in the receptor's own coordinate frame, while --size_x, --size_y and --size_z set its edge lengths in Angstroms. Vina only samples ligand positions inside that box, so it must fully enclose the pocket without being so large that the search wastes effort on empty space.
Bundle the options in a config file
A command line that long is easy to mistype and hard to reuse. Vina can read the same options from a plain text file passed with --config. Each line is one option written as name = value, without the leading dashes, and blank lines are ignored. Save the following as config.txt next to your PDBQT files.
receptor = receptor.pdbqt
ligand = ligand.pdbqt
center_x = 11.0
center_y = 90.5
center_z = 57.5
size_x = 20
size_y = 20
size_z = 20
out = ligand_out.pdbqt
exhaustiveness = 8
num_modes = 9
energy_range = 3vina --config config.txtThree settings control how hard Vina searches and how much it reports back. exhaustiveness, default 8, sets the thoroughness of the global search: larger values explore more independent starting points, giving more reproducible results at the cost of longer runtimes. num_modes, default 9, caps how many distinct binding poses are written to the output. energy_range, default 3, discards any pose whose predicted affinity is more than that many kcal/mol worse than the best one, keeping the results list focused on plausible binders.
AutoDock Vina v1.2.5
Scoring function : vina
Rigid receptor: receptor.pdbqt
Ligand: ligand.pdbqt
Grid center: X 11 Y 90.5 Z 57.5
Grid size : X 20 Y 20 Z 20
Grid space : 0.375
Exhaustiveness: 8
CPU: 0
Verbosity: 1
Computing Vina grid ... done.
Performing docking (random seed: 1755302389) ...
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************
mode | affinity | dist from best mode
| (kcal/mol) | rmsd l.b.| rmsd u.b.
-----+------------+----------+----------
1 -9.213 0 0
2 -8.706 1.923 2.842
3 -8.492 2.011 3.114
4 -8.108 1.455 2.007
5 -7.885 3.201 5.882
6 -7.603 2.334 3.451
7 -7.394 1.998 2.765
8 -7.126 3.556 6.012
9 -6.817 2.112 3.004
The progress bar fills as the search runs, then Vina prints a table ranked from strongest to weakest predicted binding. The mode column numbers the poses, affinity is the predicted binding free energy in kcal/mol where a more negative value means a tighter predicted fit, and the two rmsd columns report how far each pose sits from mode 1 as lower and upper bound estimates. Mode 1 is the top-ranked pose, so its rmsd values are always zero. Every pose in this table is stored in the same order inside ligand_out.pdbqt, one MODEL record per pose, ready for you to inspect in a viewer.
Try it yourself: Prepare or download a receptor.pdbqt and a ligand.pdbqt, write config.txt with the box centered on the known binding site, and run vina --config config.txt. First run it with exhaustiveness = 8 and note the mode 1 affinity, then rerun with exhaustiveness = 16 and compare the top affinity and how many modes come back. Finally open the resulting ligand_out.pdbqt and confirm it contains one MODEL entry for each row in the printed table.