Home Download Tutorial Manual Forum

AutoDock Vina 1.0 Manual

Contents

Features

AutoDock Tools Compatibility

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.

Ease of Use

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.

Flexible Residues

Like in AutoDock 4.0, some receptor residues can be chosen to be treated as flexible during docking.

Speed

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.

Multiple CPUs/Cores

Vina can take advantage of multiple CPUs or CPU cores on your system to significantly shorten its running time.

Reproducibility

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".

Implementation Quality

Platform Notes and Installation

Windows

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.

Linux

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.

Mac

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.

Tutorial

If you have never used AutoDock Vina before, please study the Video Tutorial before attempting to use it.

portrait

This video tutorial demonstrates molecular docking of imatinib using Vina with AutoDock Tools and PyMOL

Usage

Summary

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

Configuration file

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.

Search space

The search space effectively restricts where the movable atoms, including those in the flexible side chains, should lie.

Exhaustiveness

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.

Output

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:

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.

Virtual Screening

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.

Windows

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.

Linux, Mac

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

PBS Cluster

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`

History

Brief summaries of changes between versions can be found here.

Citation

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.

Getting Help

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.

Reporting Bugs

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:

Likely not bugs:

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:


[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)