molecular docking is a computational method that predicts how a ligand interacts with a receptor .
hence , it is an important tool in studying receptor - ligand interactions and plays an essential role in drug design .
particularly , molecular docking has been used as an effective virtual screening tool and successfully applied in a number of therapeutic programs at the lead discovery stage .
previously , we developed a linux cluster - based application termed dovis , which runs in parallel on hundreds of central processing units ( cpus ) , uses autodock 3.05 as the docking engine , and docks large numbers ( millions ) of ligands to a target receptor .
it automatically partitions input ligands , prepares parameter files for autodock , launches parallel autodock runs , parses results , and saves a set of top - ranking docked ligands .
dovis removes many technical complexities and organizational problems associated with large - scale high - throughput virtual screening . during the execution of a number of large - scale virtual screening campaigns using the dovis software
, we identified four critical areas in which to enhance the software : 1 ) improving parallelization efficiency , 2 ) minimizing file operations on a common file system , 3 ) interfacing with other modeling programs , and 4 ) facilitating rescoring of ligand - receptor complexes using third - party software .
first , in our original parallelization scheme , ligands are evenly distributed to each cpu , i.e. , each available cpu receives a number of ligands to dock that is equal to the total number of ligands divided by the number of cpus requested in the batch - queuing job .
this scheme is not efficient if the queuing system does not make all cpus available at the same time , as in jobs submitted under the " job - array " queuing option , or if the computational time that it takes to dock a ligand is systematically biased because of compound differences , resulting in unbalanced load distribution for each computer node .
therefore , a scheme that automatically balances computational loads across all available cpus is highly desirable .
second , during docking of each ligand , the original autodock program reads the associated energy grids into the corresponding cpu . for large - scale screening jobs , this scheme generates large amounts of input / output ( i / o ) file operations , which slows down the entire cluster system . it would be ideal to load all energy grids only once to dock an entire block of ligands instead of repeating the i / o file operation for each ligand .
third , we find that directly interfacing docking results with other programs using the native autodock pdbq - format is potentially problematic .
although it is possible to convert a pdbq - formatted file into other file formats by openbabel   or other programs , the converted structures are not guaranteed to preserve bond order , as this information is not recorded in pdbq files .
preservation of bond order and atom sequence among input and output files would not only keep the integrity of a molecule but also make it easier for users to compare docked structures with results from other modeling programs .
last , we note that enrichment of known ligands from virtual screening can be improved by rescoring the docked ligands with additional scoring functions . hence , it would be beneficial to have an automated protocol in the dovis software that is capable of rescoring docked ligands and selecting top - ranking ligands based on these new scores .
accordingly , we enhanced the dovis software along the four directions discussed above by : 1 ) developing a new parallelization scheme that automatically balances the computational load during runtime ; 2 ) modifying the latest autodock source code to reduce i / o file operations ; 3 ) coding algorithms to output docked ligands and bond information in sd - file format ; and 4 ) providing a wrapper script interface to rescore docked ligands with third - party scoring functions .
this last functionality also includes a hierarchical clustering method   to cluster and save docked ligands based on user - selected scores .
in addition , we upgraded the dovis software to use autodock 4.0   as the docking engine .
compared to autodock 3.05 , autodock 4.0 has a wider range of force - field atom types , including different atom types for both polar and non - polar hydrogens .
this allows a user to better select the appropriate atomic resolution when studying receptor - ligand interactions or performing large - scale docking campaigns .
therefore , we provide three choices for autodock hydrogen models in dovis : one all - atom model and two polar - hydrogen models .
the significance of the new dovis 2.0 software implementation compared with the previous version lies in its improved performance and usability .
the previous version of dovis made it possible to run large - scale virtual screening in parallel on linux clusters .
the new version makes the computation highly efficient by automating load balancing , significantly reducing the file i / o operations , providing outputs that conform to industry standard sd - file format , and providing a general wrapper - script interface for rescoring of docked ligands .
finally , the dovis 2.0 software , including autodock 4.0 , is freely available to the public under the gnu general public license ( gpl ) .
to manage chemical information in dovis 2.0 , we applied the c++ libraries from openbabel and setup a molecular data structure as a c++ object in our program .
this makes handling of molecular structures ( e.g. , atoms and bonds ) transparent between applications and outputs consistent chemical information .
we coded the new parallelization scheme , the functions to manage autodock runs , and the algorithm to process docking results in c++ .
we used perl scripts to control the work flow , compute energy grids , and link third - party scoring programs to dovis .
besides autodock and openbabel , python scripts in autodock tools   are also used by dovis to prepare receptor and ligand parameter files .
dovis is run through a sequential two - step process : ( 1 ) setting up a dovis project directory and ( 2 ) executing a dovis docking run .
the calculations indicated in the shaded area are run in parallel on multiple central processing units .
the dovis input file formats for receptors / proteins are either in pdb- or mol2-file format , whereas ligands / small molecules are specified using the sd - file format .
the output files contain the docked ligand structure and any auxiliary information in the sd - file format .
as shown in figure 1 , a dovis run involves a sequential two - step process .
initially , a dovis project directory is created that contains subdirectories and appropriate parameter files , either generated with default parameters or cloned from an existing project .
then , the energy grid calculations and the parallel docking processes are launched ; the docked ligand - receptor complexes are generated and scored ; and lastly , the top - ranking results are saved in the final output .
detailed usage of dovis is documented in the user 's manual distributed with the software .
the components in the shaded area in figure 1 are run in parallel on the assigned cpus .
we have developed a new parallelization scheme for these components to remove computational bottlenecks identified in the previous version of dovis .
this scheme implements dynamic job control capabilities and achieves dynamic load balancing without a dedicated master cpu .
thus , before the parallel docking step , input ligands in sd - file format are partitioned into blocks of n ligands , where n is specified by the user . during parallel docking ,
each cpu copies the energy grids and other required files to its own temporary directory and requests a block of ligands through a file - lock mechanism .
this ensures that each cpu gets one unique set of ligands to work with at a time . after completing a block of ligands , each cpu registers the finished job and updates the top - ranking ligands to the project directory .
this process is iterated until all ligand blocks are processed . finally , an assessment script verifies whether all assignments were successfully completed .
any requested but unfinished ligand block is added back to the original list of blocks to be reprocessed .
users are notified whether all original jobs were successfully completed or a restart is required to complete the docking project . since each cpu works on one ligand block at a time and
these blocks are continuously requested by the available cpus during a dovis run , by using small block sizes ( n < < total number of ligands ) this scheme can provide an effective mechanism for automated , dynamic load balancing .
in addition , we provide a mechanism to halt one or more cpus after their current ligand block is completed . the number of cpus needed for a restart run
the current release package provides three approaches to start parallel docking calculations : multithreading , secure shell ( ssh ) , and queuing system .
multithreading is suited for shared - memory linux clusters whereas ssh is suited for distributed - memory linux clusters . for the queuing system approach , by design ,
, we provide an integration with the load sharing facilities ( lsf ) , platform computing inc .
( ontario , canada ) , queuing system . however , users may use our integration with lsf as an example to code equivalent cpu management functionalities based on other queuing systems .
because queuing systems may impose runtime limits on jobs , we implemented a mechanism to estimate if there is enough runtime left in a cpu to process another ligand block every time a new block is requested .
an assessment script monitors the overall progress of the docking jobs and , should runtime limits be exceeded , it notifies the user that a restart is required . in the autodock program ,
only one ligand is docked at a time in a docking run , and at each time the associated energy grid files corresponding to every atom type in the ligand are loaded into the corresponding cpu .
depending on the size of the energy grid and the number of atom types , approximately 10 mb of data are loaded at every docking run for each ligand .
most of the energy grids , however , can be reused from ligand to ligand .
hence , to improve runtime efficiency and reduce i / o file operations , we modified the autodock 4.0 source code to load the energy grid files only once , while docking multiple ligands in a single run . in this mode ,
energy grids of all atom types are loaded and a block of n ligands are sequentially docked to a receptor . in dovis 2.0 , we use the sd - file format as the ligand i / o format to represent ligand information and associated data .
this format increases the portability of the docking results to other modeling software , as most modeling programs are adopting the sd - file format . using the sd - file format
, we can embed the estimated autodock binding free energy and our converted autodock 4.0 score ( the corresponding pki value at 298 k ) with each docked ligand .
the reason we use the molecular data structure , a c++ object , from openbabel 's c++ library is to be able to manage chemical information and keep the consistency between input and output chemical structures .
in contrast , if we were to use the openbabel file - conversion program to convert pdb - files into sd - files , the bonds and bond orders would not be guaranteed to be correct in the converted files .
this is because bond information typically does not exist in a pdb - file , and because an agreed - upon , reliable method to consistently predict a bond based purely on inter - atomic distance is not available .
instead , we implemented an algorithm that traces input ligand information , processes autodock results , and maps docked ligand atoms back to the input ligand structure . because an output ligand sd - file is based on the information from a corresponding input ligand sd - file , all atomic information , including bond connectivity ,
if an all - atom model is used ( see below , hydrogen options ) , the atoms in the input and the output ligand sd - files have identical sequences .
thus , all atoms including non - polar hydrogens can be explicitly modeled during docking .
however , the scoring function in autodock 4.0 was developed based on receptor - ligand complexes with only polar hydrogens . in principle , it is necessary to reparameterize the scoring function for the all - hydrogen model . to test the tolerance of the provided default parameters
, we docked a set of receptor - ligand complexes using all - atom and polar - hydrogen models .
therefore , we provide both models as options in dovis 2.0 . in addition , we coded another option that uses the polar - hydrogen model for docking and then adds non - polar hydrogens to docked ligands for rescoring .
this option combines the best of using the original autodock scoring function and the high resolution of all - atom modeling .
this also makes it convenient to compute pairwise root mean square deviation ( rmsd ) values between docked and reference ligand structures .
it is still recommended that users provide ligands with all hydrogens as inputs even when the polar - hydrogen model is used for docking , as the protonation state of a ligand is clearly represented only when each hydrogen atom is specified . when the autodock parameter file is prepared for a ligand ,
non - polar hydrogens are removed , and their partial charges are combined with the charge of the attached heavy atom . similarly , receptor energy grids are computed based on either the all - atom or the polar - hydrogen model .
it is common practice to apply additional scoring functions to docked ligands after an initial docking run . to facilitate this capability ,
we provide a wrapper script interface that enables the rescoring of docked ligands with third - party scoring programs .
the interface passes a set of predefined parameters , including the working directory , the receptor pdb - file , the docked ligand sd - file , and the name of the scored ligand sd - file to a wrapper script .
it also passes customized parameters directly from the dovis input file to a wrapper script .
this allows users to prepare a wrapper script to drive a scoring program of choice that is linked to dovis through the dovis input file , where the wrapper script commands are specified .
after rescoring , a separate hierarchical clustering algorithm is available to cluster docked ligand poses based on scores from third - party scoring programs .
user - selected scores are employed to determine the cluster centers and to save top - ranking ligands .
the components in the shaded area in figure 1 are run in parallel on the assigned cpus .
we have developed a new parallelization scheme for these components to remove computational bottlenecks identified in the previous version of dovis .
this scheme implements dynamic job control capabilities and achieves dynamic load balancing without a dedicated master cpu .
thus , before the parallel docking step , input ligands in sd - file format are partitioned into blocks of n ligands , where n is specified by the user . during parallel docking ,
each cpu copies the energy grids and other required files to its own temporary directory and requests a block of ligands through a file - lock mechanism .
this ensures that each cpu gets one unique set of ligands to work with at a time . after completing a block of ligands , each cpu registers the finished job and updates the top - ranking ligands to the project directory .
this process is iterated until all ligand blocks are processed . finally , an assessment script verifies whether all assignments were successfully completed . any requested but unfinished ligand block is added back to the original list of blocks to be reprocessed .
users are notified whether all original jobs were successfully completed or a restart is required to complete the docking project . since each cpu works on one ligand block at a time and
these blocks are continuously requested by the available cpus during a dovis run , by using small block sizes ( n < < total number of ligands ) this scheme can provide an effective mechanism for automated , dynamic load balancing .
in addition , we provide a mechanism to halt one or more cpus after their current ligand block is completed .
the number of cpus needed for a restart run can also be changed from run to run .
the current release package provides three approaches to start parallel docking calculations : multithreading , secure shell ( ssh ) , and queuing system .
multithreading is suited for shared - memory linux clusters whereas ssh is suited for distributed - memory linux clusters . for the queuing system approach , by design , dovis is capable of running under any queuing system . in this release ,
we provide an integration with the load sharing facilities ( lsf ) , platform computing inc .
however , users may use our integration with lsf as an example to code equivalent cpu management functionalities based on other queuing systems .
because queuing systems may impose runtime limits on jobs , we implemented a mechanism to estimate if there is enough runtime left in a cpu to process another ligand block every time a new block is requested .
an assessment script monitors the overall progress of the docking jobs and , should runtime limits be exceeded , it notifies the user that a restart is required .
in the autodock program , only one ligand is docked at a time in a docking run , and at each time the associated energy grid files corresponding to every atom type in the ligand are loaded into the corresponding cpu . depending on the size of the energy grid and the number of atom types ,
most of the energy grids , however , can be reused from ligand to ligand .
hence , to improve runtime efficiency and reduce i / o file operations , we modified the autodock 4.0 source code to load the energy grid files only once , while docking multiple ligands in a single run . in this mode ,
energy grids of all atom types are loaded and a block of n ligands are sequentially docked to a receptor .
in dovis 2.0 , we use the sd - file format as the ligand i / o format to represent ligand information and associated data .
this format increases the portability of the docking results to other modeling software , as most modeling programs are adopting the sd - file format . using the sd - file format
, we can embed the estimated autodock binding free energy and our converted autodock 4.0 score ( the corresponding pki value at 298 k ) with each docked ligand .
the reason we use the molecular data structure , a c++ object , from openbabel 's c++ library is to be able to manage chemical information and keep the consistency between input and output chemical structures .
in contrast , if we were to use the openbabel file - conversion program to convert pdb - files into sd - files , the bonds and bond orders would not be guaranteed to be correct in the converted files .
this is because bond information typically does not exist in a pdb - file , and because an agreed - upon , reliable method to consistently predict a bond based purely on inter - atomic distance is not available .
instead , we implemented an algorithm that traces input ligand information , processes autodock results , and maps docked ligand atoms back to the input ligand structure . because an output ligand sd - file is based on the information from a corresponding input ligand sd - file , all atomic information , including bond connectivity , is preserved .
if an all - atom model is used ( see below , hydrogen options ) , the atoms in the input and the output ligand sd - files have identical sequences .
thus , all atoms including non - polar hydrogens can be explicitly modeled during docking .
however , the scoring function in autodock 4.0 was developed based on receptor - ligand complexes with only polar hydrogens . in principle , it is necessary to reparameterize the scoring function for the all - hydrogen model . to test the tolerance of the provided default parameters
, we docked a set of receptor - ligand complexes using all - atom and polar - hydrogen models .
therefore , we provide both models as options in dovis 2.0 . in addition , we coded another option that uses the polar - hydrogen model for docking and then adds non - polar hydrogens to docked ligands for rescoring .
this option combines the best of using the original autodock scoring function and the high resolution of all - atom modeling .
this also makes it convenient to compute pairwise root mean square deviation ( rmsd ) values between docked and reference ligand structures .
it is still recommended that users provide ligands with all hydrogens as inputs even when the polar - hydrogen model is used for docking , as the protonation state of a ligand is clearly represented only when each hydrogen atom is specified . when the autodock parameter file is prepared for a ligand ,
non - polar hydrogens are removed , and their partial charges are combined with the charge of the attached heavy atom . similarly , receptor energy grids are computed based on either the all - atom or the polar - hydrogen model .
it is common practice to apply additional scoring functions to docked ligands after an initial docking run . to facilitate this capability ,
we provide a wrapper script interface that enables the rescoring of docked ligands with third - party scoring programs .
the interface passes a set of predefined parameters , including the working directory , the receptor pdb - file , the docked ligand sd - file , and the name of the scored ligand sd - file to a wrapper script .
it also passes customized parameters directly from the dovis input file to a wrapper script .
this allows users to prepare a wrapper script to drive a scoring program of choice that is linked to dovis through the dovis input file , where the wrapper script commands are specified .
after rescoring , a separate hierarchical clustering algorithm is available to cluster docked ligand poses based on scores from third - party scoring programs .
user - selected scores are employed to determine the cluster centers and to save top - ranking ligands .
we used eight receptor - ligand complexes from the protein data bank ( pdb )   to evaluate docking results using both all - atom and polar - hydrogen models with the default autodock 4.0 scoring function .
the energy grid center was defined as the geometrical center of the bound ligand in the x - ray receptor - ligand complex .
the volume of the energy grid was defined as the volume of the bound ligand in the x - ray complex plus the additional volume mapped out by extending the molecular surface by 4.0  in each direction .
other autodock parameters were set as follows : five genetic algorithm ( ga ) runs , each with population size of 150 , one million energy evaluations , and a maximum of 27,000 generations per ga run .
pairwise rmsd values were calculated between docked ligand poses and the corresponding x - ray ligand .
table 1 lists the rmsd values and associated autodock 4.0 scores of the docked ligand poses with the lowest rmsd for each of the eight complexes .
the rmsd values of the all - atom model and of the polar - hydrogen model are similar for all eight complexes .
for all complexes , except 4dfr ( rmsd > 5.00  ) , the program found ligand poses close to the experimentally determined ligand pose .
table 1 also indicates that , except for 1rbp , where the score of the all - atom model is much lower ( predicting less binding affinity ) than the score of the polar - hydrogen model , both models produce similar scores .
figure 2 shows the x - ray ligand and the docked ligand poses from the complexes of 1stp and 1rbp . in the case of 1rbp , we believe that van der waals ( vdw ) clashes between the receptor and ligand atoms in the all - atom model caused the difference between the two scores , because , as shown in figure 2 , the binding site of 1rbp is very cramped .
in fact , the vdw radii in autodock 4.0 were enlarged to compensate for missing non - polar hydrogens .
although our tests suggest that the docking results of both models are generally similar , even when the provided default parameters are used , users should be cautious about using the all - atom model with the default parameters . for a more accurate representation
, users should scale down the vdw radii and re - parameterize the autodock 4.0 scoring function when applying the all - atom model .
root mean square deviation ( rmsd ) values were calculated between the docked ligand poses and the x - ray ligand based on heavy atoms .
the entries in the table show the lowest rmsd values and associated autodock 4.0 scores for docked ligand poses of eight pdb complexes .
typically , the difference in rmsd between the all - atom and the polar - hydrogen model is very small ; the average absolute difference is 0.20  .
autodock 4.0 score superimpositions of the x - ray ligand and docked ligand poses to the 1stpand 1rbpcomplexes .
the x - ray ligand is shown in green ; the docked ligand using the all - atom model is shown in orange ; and the docked ligand position derived from the polar - hydrogen model is shown in cyan , where the non - polar hydrogens were artificially added in the representation . as discussed above , we modified the autodock 4.0 source code to implement a strategy where multiple ligands are docked by loading the energy grids only once .
the effect on the performance of the file system resulting from this enhancement is dramatic . for a block of 100 ligands
, this strategy results in a reduction of more than 95% in data traffic , which is equivalent to a reduction of one gigabyte of i / o data .
thus , when hundreds of cpus are engaged in a virtual screening calculation , the overall impact on transfer rates in the file system is significant .
for example , previously on our linux cluster , we had to use the local disk drive at each computing node to minimize excessive i / o operations . using the proposed strategy
, we may now use more than 256 cpus of a large cluster to run dovis and access data on the cluster 's central disk drive without degrading the performance of the file system for other applications .
in addition , we tested the time needed for dovis to dock a set of 10,000 ligands with varying numbers of cpus .
we performed tests with up to 256 cpus on a linux cluster . with the enhancements in the current version of dovis
, we observed a near - linear speedup up to the 256 cpus tested using the cluster 's central disk drive .
this is in contrast with the previous version of dovis , which was capable of near - linear speedup to no more than 128 cpus using the local disk drive . as an illustration of the technical performance of dovis 2.0 , using a total of 256 cpus
this estimate was derived from a virtual screening calculation of 2.3 million ligands from the zinc database   ( version 6 ) against a 259-amino acid protein target .
the related autodock parameters were set as follows : 10 ga runs , each with population size of 150 , 250,000 energy evaluations , and a maximum of 27,000 generations per ga run .
the enhanced dovis software will take multiple conformations of a receptor , automatically set up multiple sets of energy grids , dock ligands into each receptor conformation , and process the results .
we have enhanced the dovis software by improving its performance , screening capability , and usability .
dovis 2.0 incorporates the most - recent release of autodock , autodock 4.0 , implements a more efficient parallelization scheme , allows for rescoring with user - provided scoring programs , and outputs results in the sd - file format .
furthermore , the software comes with an automatic installer and is available to the public under the gnu gpl .
the opinions and assertions contained herein are the private views of the authors and are not to be construed as official or as reflecting the views of the u.s .
department of defense high performance computing modernization program , under the high performance computing software applications institutes initiative .
 backgroundsmall - molecule docking is an important tool in studying receptor - ligand interactions and in identifying potential drug candidates . 
 previously , we developed a software tool ( dovis ) to perform large - scale virtual screening of small molecules in parallel on linux clusters , using autodock 3.05 as the docking engine . 
 dovis enables the seamless screening of millions of compounds on high - performance computing platforms . in this paper , we report significant advances in the software implementation of dovis 2.0 , including enhanced screening capability , improved file system efficiency , and extended usability.implementationto keep dovis up - to - date , we upgraded the software 's docking engine to the more accurate autodock 4.0 code . 
 we developed a new parallelization scheme to improve runtime efficiency and modified the autodock code to reduce excessive file operations during large - scale virtual screening jobs . 
 we also implemented an algorithm to output docked ligands in an industry standard format , sd - file format , which can be easily interfaced with other modeling programs . 
 finally , we constructed a wrapper - script interface to enable automatic rescoring of docked ligands by arbitrarily selected third - party scoring programs.conclusionthe significance of the new dovis 2.0 software compared with the previous version lies in its improved performance and usability . 
 the new version makes the computation highly efficient by automating load balancing , significantly reducing excessive file operations by more than 95% , providing outputs that conform to industry standard sd - file format , and providing a general wrapper - script interface for rescoring of docked ligands . 
 the new dovis 2.0 package is freely available to the public under the gnu general public license . 
Background
Implementation
New parallelization scheme
AutoDock multiple-ligand docking mode
Ligand file format
Hydrogen options
Wrapper interface for scoring program and clustering
Results and discussion
Conclusion
Availability and requirements
Authors' contributions
Disclaimer
Acknowledgements