I have some protein-ligand complexed that I have been docking with some other software and just want to use Autodock to evaluate those complexes. So, basically I just want to use it as a scoring function to take a look at the energy components - I don't want to re-dock the ligands into the protein binding sites. From what I have found on the internet, I came up with this procedure, but I am not sure if this is the right approach, and also I get an error in the last step saying that "atoms are outside the grid".

It would be nice if someone could take a look at it and tell me whether this make sense and if this is the right procedure (and maybe a suggestion for the error source)

1) Preparing the receptor

  • need to add hydrogens if not present

  • adds gasteiger charges to peptide


  • protein.pdb


  • protein.pdbqt


  • prepare_receptor4.py -r protein.pdb [options]

2) Preparing the ligand

  • add hydrogens if not present 


  • ligand.pdb or ligand.mol2


  • ligand.pdbqt


  • prepare_ligand4.py -l ligand.mol2 [options]

3) Generate grid parameter file


  • ligand.pdbqt
  • protein.pdbqt


  • protein.gpf


prepare_gpf4.py -l ligand.pdbqt -r protein.pdbqt [options]

4) AutoGrid: generate maps and grid data file


  • protein.pdbqt 
  • protein.gpf


  • protein.glg             Grid Log File
  • protein.*.map         affinity maps for different atoms
  • protein.maps.fld     Grid data file
  • protein.d.map         desolvation map
  • protein.e.map         electrostatic map


autogrid -p protein gpf

5) Generate docking parameter file


  • ligand.pdbqt
  • protein.pdbqt


  • ligand_protein.dpf


prepare_dpf4.py -l ligand.pdbqt -r protein.pdbqt [options]

** **

6) Prepare .dpf file and run autodock for re-scoring

** **

Remove seach parameters and append the "epdb" keyword, so that an examplary .dpf would look like this:

autodock_parameter_version 4.2       # used by autodock to validate parameter set 

outlev 1                             # diagnostic output level 

intelec                              # calculate internal electrostatics 

ligand_types C HD N NA OA            # atoms types in ligand 

fld rec.maps.fld                 # grid_data_file 

map rec.C.map                    # atom-specific affinity map 

map rec.HD.map                   # atom-specific affinity map 

map rec.N.map                    # atom-specific affinity map 

map rec.NA.map                   # atom-specific affinity map 

map rec.OA.map                   # atom-specific affinity map 

elecmap rec.e.map                # electrostatics map 

desolvmap rec.d.map              # desolvation map 

move lig.pdbqt                       # small molecule 

about 17.6 22.2 32.6         # small molecule center 

epdb                                   # small molecule to be evaluated 

** **


  • ligand_receptor.dpf


autodock -p ligand_protein.dpf


I managed to use AutoDock Vina for re-scoring now, however, the output is not as detailed as the one that would be produced by AutoDock 4.2.

For example, what I get is:

Affinity: -2.06943 (kcal/mol) Intermolecular contributions to the terms, before weighting:
gauss 1 : 51.97697
gauss 2 : 1133.84012
repulsion : 7.41516
hydrophobic : 34.56441
Hydrogen : 0.00000

(what is also weird is that the prepare_ligand4.py script to generate the .pdbqt file from the mol2 file removed the hydrogens)

In AutoDock4.2, the output would be, for example,

epdb: USER Estimated Free Energy of Binding = -6.54 kcal/mol [=(1)+(2)+(3)-(4)]
epdb: USER Estimated Inhibition Constant, Ki = 15.95 uM (micromolar) [Temperature = 298.15 K]
epdb: USER
epdb: USER (1) Final Intermolecular Energy = -7.14 kcal/mol
epdb: USER vdW + Hbond + desolv Energy = -6.33 kcal/mol epdb: USER Electrostatic Energy = -0.81 kcal/mol
epdb: USER (2) Final Total Internal Energy = -0.20 kcal/mol
epdb: USER (3) Torsional Free Energy = +0.60 kcal/mol
epdb: USER (4) Unbound System's Energy [=(2)] = -0.20 kcal/mol

Anyone knows if this might be available through VINA somehow?


2 Answers 2


You can use Autodock Vina. It provides an option to calculate local score only.

displaying the individual contributions to the intermolecular score, before weighting (these are shown with "--score_only")

Autodock is better tool in speed and accuracy than Autodock itself.

For using it, you need :

1) Protein.pdbqt

2) Ligand.pdbqt

3) Config.txt (the confguration file):

receptor = hsg1/rigid.pdbqt

ligand = ligand.pdbqt

center_x = 2 # Center of Grid points X

center_y = 6 # Center of Grid points Y

center_z = -7 # Center of Grid points Z

size_x = 25 # Number of Grid points in X direction

size_y = 25 # Number of Grid points in Y Direction

size_z = 25 # Number of Grid points in Z Direction

Run your code as :

vina --score_only --config config.txt --log your_filename.log

for mmore information type:

vina --help_advanced

source: http://vina.scripps.edu/manual.html#faq



prepare_ligand4.py   -A 'hydrogens'

for Adding hydrogen

For understanding the scoring of Vina:

AutoDock Vina: improving the speed and accuracy of docking with a new scoring function, efficient optimization and multithreading

  • 2
    $\begingroup$ Thanks a lot, this works. However, the output is unfortunately not as detailed as the one that would be generated by AutoDock. I will make an edit to the original question in a few moments - the formatting works better there. $\endgroup$
    – user6881
    Commented Jul 18, 2014 at 22:34

Okay, I finally figured it out. Basically there are those following 6 steps:

  1. Preparing a protein
  2. Preparing a ligand
  3. Generating a grid parameter file
  4. Generating maps and grid data files
  5. Generating a docking parameter file
  6. Running AutoDock

Since the details are a little bit too lengthy for this post, I have written it up as a tutorial. A lot of people (like me) seemed to struggle to get it to work, so I thought this write-up could be a useful reference: AutoDock4.2 re-scoring tutorial

  • 1
    $\begingroup$ Thanks! Since I didn't find any complete documentation on the internet, I felt like writing it down once and for all: For myself as future reference, and for anyone else who wants to use AutoDock4.2 just for re-scoring $\endgroup$
    – user6881
    Commented Jul 28, 2014 at 23:26

You must log in to answer this question.