AutoDock Vina 1.0 Manual
For its input and output, Vina uses the same PDBQT molecular structure file format used by AutoDock. PDBQT files can be generated (interactively or in batch mode) and viewed using MGLTools.
Other files, such as the AutoDock and AutoGrid parameter files (GPF, DPF) and grid map files are not needed.
Vina's design philosophy is not to require the user to understand its implementation details, tweak obscure search parameters, cluster results or know advanced algebra (quaternions). All that is required is the structures of the molecules being docked and the specification of the search space including the binding site. Calculating grid maps and assigning atom charges is not needed.[1] Usage summary can be printed with "vina --help". The summary automatically remains in sync with the possible usage scenarios.
Like in AutoDock 4.0, some receptor residues can be chosen to be treated as flexible during docking.
Vina uses a sophisticated gradient optimization method in its search. On a typical modern workstation, Vina should often be able to reliably generate the predicted binding modes and affinities of a ligand in seconds to minutes, depending on the ligand complexity.
Vina can take advantage of multiple CPUs or CPU cores on your system to significantly shorten its running time.
Given the same binary version of the program, the same input, options and random seed, the results should be reproducible with any value of "cpu".
- By design, the results should not have a statistical bias related to the conformation of the input structure.[2]
- Attention is paid to checking the syntactic correctness of the input and reporting errors to the user in a lucid manner.
- The invariance of the covalent bond lengths is automatically verified in the output structures.
- Vina avoids imposing artificial restrictions, such as the number of atoms in the input, the number of torsions, the size of the search space, the exhaustiveness of the search, etc.[3]
Compatibility
Vina is expected to work on Windows XP and Windows Vista systems.
Installing
Double-click the downloaded MSI file and follow the instructions
Running
Open the Command Prompt and,
if you installed Vina in the default location, type
"\Program Files\The Scripps Research Institute\Vina\vina.exe" --help
See the Video Tutorial for details.
Compatibility
Vina is expected to work on x86
and compatible 64-bit Linux systems.
Installing
tar xzvf autodock_vina_1_0_1_linux_i386.tar.gz
su
./autodock_vina_1_0_1_linux_i386/install.sh
Administrator privileges are needed if installing in the default location.
Running
/usr/local/bin/vina --help
If /usr/local/bin is in your PATH, you can just type "vina --help" instead.
See the Video Tutorial for details.
Compatibility
Vina is expected to work on Mac OS X 10.4 and newer, both Intel and PowerPC.
Installing
tar xzvf autodock_vina_1_0_1_mac.tar.gz
su
./autodock_vina_1_0_1_mac/install.sh
Administrator privileges are needed if installing in the default location.
Running
/usr/local/bin/vina --help
If /usr/local/bin is in your PATH, you can just type "vina --help" instead.
See the Video Tutorial for details.
If you have never used AutoDock Vina before, please study the Video Tutorial before attempting to use it.
Usage summary can be obtained with "vina --help":
Input:
--receptor arg rigid part of the receptor (PDBQT)
--flex arg flexible side chains, if any (PDBQT)
--ligand arg ligand (PDBQT)
Search space (required):
--center_x arg X coordinate of the center
--center_y arg Y coordinate of the center
--center_z arg Z coordinate of the center
--size_x arg size in the X dimension (Angstroms)
--size_y arg size in the Y dimension (Angstroms)
--size_z arg size in the Z dimension (Angstroms)
Output (optional):
--out arg output models (PDBQT), the default is chosen based on
the ligand file name
--log arg optionally, write log file
Misc (optional):
--cpu arg the number of CPUs to use (the default is to try to
detect the number of CPUs or, failing that, use 1)
--seed arg explicit random seed
--exhaustiveness arg (=8) exhaustiveness of the global search (roughly
proportional to time): 1+
--num_modes arg (=9) maximum number of binding modes to generate
--energy_range arg (=3) maximum energy difference between the best binding
mode and the worst one displayed (kcal/mol)
Configuration file (optional):
--config arg the above options can be put here
Information (optional):
--help print this message
--version print program version
For convenience, some command line options can be placed into a configuration file.
For example:
receptor = hsg1/rigid.pdbqt
ligand = ligand.pdbqt
center_x = 2
center_y = 6
center_z = -7
size_x = 25
size_y = 25
size_z = 25
energy_range = 4
In case of a conflict, the command line option takes precedence over the configuration file one.
The search space effectively restricts where the movable atoms, including those in the flexible side chains, should lie.
With the default (or any given) setting of exhaustiveness, the time spent on the search is already varied heuristically depending on the number of atoms, flexibility, etc.
Normally, it does not make sense to spend extra time searching to reduce the probability of not finding the global minimum of the scoring function beyond what is significantly lower than the probability that the minimum is far from the native conformation.
However, if you feel that the automatic trade-off made between exhaustiveness and time is inadequate, you can increase the exhaustiveness level. This should increase the time linearly and decrease the probability of not finding the minimum exponentially.
Energy
The predicted binding affinity is in kcal/mol.
RMSD
RMSD values are calculated relative to the best mode and use only movable heavy atoms. Two variants of RMSD metrics are provided, rmsd/lb (RMSD lower bound) and rmsd/ub (RMSD upper bound), differing in how the atoms are matched in the distance calculation:
rmsd/ub matches each atom in one conformation with itself in the other conformation, ignoring any symmetry
rmsd' matches each atom in one conformation with the closest atom of the same element type in the other conformation.[4]
rmsd/lb is defined as follows:
rmsd/lb(c1, c2) = max(rmsd'(c1, c2), rmsd'(c2, c1))
Hydrogen positions
Vina uses a united-atom scoring function.
As in AutoDock, polar hydrogens are needed in the input structures to correctly type heavy atoms as hydrogen bond donors.
However, in Vina, the degrees of freedom that only move hydrogens, such as the hydroxyl group torsions, are degenerate.
Therefore, in the output, some hydrogen atoms can be expected to be positioned randomly (but consistent with the covalent structure).
For a united-atom treatment, this is essentially a cosmetic issue.
Separate models
All predicted binding modes, including the positions of the flexible side chains are placed into one multimodel PDBQT file
specified by the "out" parameter or chosen by default, based on the ligand file name. If needed, this file can be split
into individual models using a separate program called "vina_split", included in the distribution.
Support for easy virtual screening is planned for one of the upcoming releases.
At this time, some familiarity with shell scripting may be required.
The examples below assume that Bash is your shell.
They will need to be adapted to your specific needs.
To perform virtual screening on Windows, you can either use Cygwin and the Bash scripts below,
or, alternatively, adapt them for the Windows scripting language.
Suppose you are in a directory containing your receptor receptor.pdbqt and
a set of ligands named ligand_01.pdbqt, ligand_02.pdbqt, etc.
You can create a configuration file conf.txt, such as
receptor = receptor.pdbqt
center_x = 2
center_y = 6
center_z = -7
size_x = 25
size_y = 25
size_z = 25
num_modes = 9
And dock all ligands with
for f in ligand_*.pdbqt; do
b=`basename $f .pdbqt`
echo Processing ligand $b
mkdir -p $b
vina --config conf.txt --ligand $f --ligand_out ${b}/out_ --log ${b}/log.txt
done
If you have a Linux Beowulf cluster,
you can perform the individual dockings in parallel.
Continuing with our example, instead of executing the body of the above loop,
we will write it into a series of *.job files and use qsub
(a PBS command)
to schedule them to be executed by the cluster:
for f in ligand_*.pdbqt; do
b=`basename $f .pdbqt`
echo Processing ligand $b
j=${b}.job
d=`pwd`
mkdir -p $b
echo "#! /bin/bash" > $j
echo "cd $d" >> $j
echo "vina --config conf.txt --cpu 1 --ligand $f --ligand_out ${b}/out_ --log ${b}/log.txt > ${b}/stdout 2> ${b}/stderr" >> $j
chmod +x $j
qsub -l cput=00:30:00 -l nodes=1:ppn=1 -l walltime=00:30:00 -l mem=512mb $j
done
Once the jobs have been scheduled, you can monitor their status with
qstat -u `whoami`
Brief summaries of changes between versions can be found
here.
If you used AutoDock Vina in your work, please cite:
O. Trott, A. J. Olson,
AutoDock Vina: improving the speed and accuracy of docking with a new scoring function, efficient optimization and multithreading,
Journal of Computational Chemistry (2009), available online.
AutoDock software is downloaded at the rate of many thousands a year.
As you can imagine, it is not feasible for us to provide email support to all those interested in it,
except a select group of collaborators.
Please do not email the authors with support requests.
Support is best sought in the user forum.
AutoDock Vina strives to be free of bugs at all times.
Therefore, potential bug reports are greatly appreciated, even if you are not exactly sure if they are bugs.
Likely bugs:
- Early termination
- Failure to terminate
- Changes of the covalent lengths or of the invariant angles in the output
- "Obviously wrong" clashes (check your "search space" though)
- Disagreement with the documentation
Likely not bugs:
- Anything that happens before you run Vina or after it finished
- Occasional disagreement with the experiment
Reporting
You can send your report by email with the subject line
"Possible Vina Bug".
The reproducibility of the problem you are witnessing may be vital, so please remember to include all of the following in your report:
- the exact error message (if any) or description of the problem,
- your version of the program,
- the type of computer system you are running it on,
- all command line options,
- configuration file (if used)
- ligand file as PDBQT
- receptor file as PDBQT
- flexible side chains file as PDBQT (if used)
- output file as PDBQT (if any)
- random seed the program used (this is printed when the program starts).
[1] That is not to say that electrostics-driven effects are ignored - hydrophobic interactions and hydrogen bonding are taken into account explicitly.
[2]
The presence of a bias towards the input structure can mislead one into overestimating the capabilities of the search algorithm tested or into overemphasizing the utility of "clustering", if redocking computational experiments are performed without randomizing the input first.
[3] Scientific software is often written in Fortran and C (or C++ used merely as a "better C"). While these languages are simple, they tend to make using variable-size data structures tedious and error-prone, sometimes leading the programmers to cut corners and hard-wire fixed sizes and limits. To change them, the user has to edit and recompile the program source code. Contrarily, Vina is written in modern C++, taking advantage of its automatic memory and STL data structures, as well as Boost libraries.
[4]
Because rmsd' is not commutative, it is not used directly.
Oleg Trott, 2009 (olegtrott.com)