Skip to content

scottlegrand/AutoDock-GPU

 
 

Repository files navigation

AutoDock-GPU: AutoDock for GPUs using OpenCL

Features

  • OpenCL-accelerated version of AutoDock4.2.6. It leverages its embarrasingly parallelizable LGA by processing ligand-receptor poses in parallel over multiple compute units.
  • Besides the legacy Solis-Wets local search method, AutoDock-GPU adds newly implemented local-search methods based on gradients of the scoring function. One of these methods, ADADELTA, has proven to increase significantly the docking quality in terms of RMSDs and scores.
  • It targets platforms based on GPU as well as multicore CPU accelerators.
  • Observed speedups of up to 4x (quad-core CPU) and 56x (GPU) over the original serial AutoDock 4.2 (Solis-Wets) on CPU.

Setup

Operating system CPU GPU
CentOS 6.7 & 6.8 / Ubuntu 14.04 & 16.04 Intel SDK for OpenCL 2017 AMD APP SDK v3.0 / CUDA v8.0 & v9.0
macOS Catalina 10.15.1 Apple / Intel Apple / Intel Iris, Radeon Vega 64

Other environments or configurations likely work as well, but are untested.

Compilation

make DEVICE=<TYPE> NUMWI=<NWI>
Parameters Description Values
<TYPE> Accelerator chosen CPU, GPU
<NWI> OpenCL work-group size 1, 2, 4, 8, 16, 32, 64, 128, 256

Hints: The best work-group size depends on the GPU and workload. Try NUMWI=128 or NUMWI=64 for modern cards with the example workloads. On macOS, use NUMWI=1 for CPUs.

After successful compilation, the host binary autodock_<type>_<N>wi is placed under bin.

Binary-name portion Description Values
<type> Accelerator chosen cpu, gpu
<N> OpenCL work-group size 1, 2, 4, 8,16, 32, 64, 128, 256

Usage

Basic command

./bin/autodock_<type>_<N>wi \
-ffile <protein>.maps.fld \
-lfile <ligand>.pdbqt \
-nrun <nruns>
Mandatory options Description Value
-ffile Protein file <protein>.maps.fld
-lfile Ligand file <ligand>.pdbqt

Example

./bin/autodock_gpu_64wi \
-ffile ./input/1stp/derived/1stp_protein.maps.fld \
-lfile ./input/1stp/derived/1stp_ligand.pdbqt \
-nrun 10

By default the output log file is written in the current working folder. Examples of output logs can be found under examples/output.

Supported arguments

Argument Description Default value
-nrun # LGA runs 1
-nev # Score evaluations (max.) per LGA run 2500000
-ngen # Generations (max.) per LGA run 27000
-lsmet Local-search method sw (Solis-Wets)
-lsit # Local-search iterations (max.) 300
-psize Population size 150
-mrat Mutation rate 2 (%)
-crat Crossover rate 80 (%)
-lsrat Local-search rate 80 (%)
-trat Tournament (selection) rate 60 (%)
-resnam Name for docking output log "docking"
-hsym Handle symmetry in RMSD calc. 1
-devnum OpenCL device number 1
-cgmaps Use individual maps for CG-G0 instead of the same one 0 (use same map)

For a complete list of available arguments and their default values, check getparameters.cpp.

Documentation

Visit the project Wiki.

About

AutoDock for GPUs using OpenCL

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 48.8%
  • C++ 48.6%
  • Other 2.6%