Releases: ccsb-scripps/AutoDock-GPU
Apple M1 fixes and Boron atom type
This release enables running on Apple M1 and adds the Boron atom type in addition to:
- Apple OpenCL implementation quirks have been circumvented improving integrated GPU accuracy on both Apple Silicon as well as Apple Intel for integrated GPUs (see PR #169 for details)
- better OpenCL error handling when not enough device memory is present (PR #160)
- explicitly prepared derived type grid maps (in the fld file) are now used by default allowing usage of base atom type parameters with those grid maps which was previously not possible (PR #161)
Updated v1.5.1 (bug fixes)
This release fixes two bugs leading to "rapid unscheduled program terminations" under certain circumstances (see PR #153 and issue #152 ):
- a potential double freeing of memory when only a single ligand was docked but multiple threads were present
- some threads didn't set the correct Cuda device in situations where multiple GPUs were present but only one other than the first was chosen
Cuda optimization and minor fixes
This release improves the performance of the Cuda path to finally be on par with the OpenCL version (see PR #151 for details) and adds some small fixes to correctly deal with relative paths in grid map files.
Major feature release
This release contains major feature updates and code optimizations:
- Multi-GPU support with automatic detection of devices (both Cuda and OpenCL). Requires compilation with
OVERLAP=ON
to parallelize running on multiple GPUs. During parallel execution, load balancing is achieved by each waiting thread grabbing the next available GPU. GPUs to run on can be chosen individually with the--device
,-D
argument, i.e.-D 1,3,5
, or all available GPUs can be used with-D all
. - Ability to use multiple ligand pdbqt files with the
--filelist
,-B
argument (as an alternative to the file list file) to dock all ligands with the specified grid maps, flex res, and other settings (example:autodock_gpu_128wi -M receptor.maps.fld -B ligands*.pdbqt
) - Major speedups for both setup and processing (each about 2-3x)
- Grid maps are now read precisely once for any number of fld files in a file list and there is no more limit to their number. This was achieved by unifying the grid map code and moving every grid related memory back into the grid data structure.
- Rewrite of the pdbqt (ligand and flex res) and grid map reading code to optimize file IO. Now, each pdbqt is only read once and not four times - so this should help in IO-limited situations ...
- Implemented full fld file parsing for the respective atom types and their associated map files.
- Added
adgpu_analysis
tool that can also be compiled when noDEVICE
(and hence no Cuda or OpenCL) is specified during compilation to have--xml2dlg
functionality without needing an accelerator framework. - Reference ligand energy output (of either input ligand pose or reference ligand) with
--rlige 1
has been extended to full dlg-style energy output and is also added to reference ligand output in dlg output. - Contact analysis output now is also added to reference (
--xraylfile
) as well input ligand output in dlg when specified - Added ability to specify reference (xray) ligand in filelist format: lines ending in
.pdbqt*
(note the*
at the end) are now interpreted as the reference ligand for successively specified ligands
Updated v1.4 (2nd bug fix)
This updated release fixes a bug with the file list in cases with no resnames specified.
AD-GPU was erroneously bailing out silently (observed in issue #145). The correct behavior, to use the ligand pdbqt file base name, has been restored.
Updated v1.4 (bug fix)
This release fixes a bug introduced with the contact analysis in PR #131
Description of bug fix:
- prevents reading of the receptor pdbqt file (specified with the fld file keyword
#MACROMOLECULE
) when no contact analysis is requested - this avoids both unnecessary file IO and unexpected program termination should the receptor pdbqt file not be available
Flexres and modpairs
New features:
- flexible sidechains (multiple)
- derive new atom types from existing atom types
- modify interactions for specific pairs of atom types (similar functionality as
intnbp_r_eps
from autodock4) - default options are optimized for a reasonable compromise between search effort and convergence, the most important being
autostop
, which is enabled by default - import parameter file from autodock4 (DPF file)
- enumeration of ligand-receptor contacts by type of interaction (based on atom types), making it easy to automate post-docking analysis
CUDA enabled
CUDA has been enabled.
Gradient evals are now faster, for both OpenCL and CUDA.
Improved Solis-Wets
In the previous Solis-Wets version all genes were updated at each iteration. Here, the probability of updating each gene decreases with the number of genes. Furthermore, the magnitude of gene updates was scaled down and also decreases with the number of genes. Simple ligands for which the E50 are below 128k evals see no improvements but complex ligands see 8x improvements (e.g., E50 reductions from 8M to 1M).
The stopping criterion of Solis-Wets was incorporated into ADADELTA, leading to about 2x better performance (E50) for several ligands. Complex ligands, for which the E50 is at 8M or larger, see no improvements.
Two command line options are introduced:
-autostop 1
automatically stops the docking job when convergence is reached.-heuristics 1
sets the maximum number of evaluations of each LGA run (-nev
) based on the number of rotatable bonds.