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?


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
    Jul 18 '14 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
    Jul 28 '14 at 23:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy