A heterogeneous OpenCL implementation of AutoDock Vina
[NEWS]: We have released Vina-GPU 2.1, which provides more speed targeting on virtual screening!
[NEWS]: Vina-GPU+: a virtual-screening-accelerated version of Vina-GPU is released together with our Vina-GPU 2.0 toolkit
[NEWS]: A CUDA version of Vina-GPU is avaliable at here
Note: at least one GPU card is required and make sure the version of GPU driver is up to date
- For the first time to use Vina-GPU, please run
Vina-GPU-K.exewith command./Vina-GPU-K.exe --config=./input_file_example/2bm2_config.txtYou are supposed to have the docking results2bm2_out.pdbqtof our example complex and aKernel2_Opt.binfile - Once you have the
Kernel2_Opt.binfile, you can runVina-GPU.exewithout compiling the kernel files (thus to save more runtime)
When you run
Vina-GPU.exe, please make sureKernel2_Opt.binfile are in the same directory
For the usage and limitaiton of Vina-GPU, please check Usage and Limitation. A graphic user interface (GUI) is also provided for Windows users, please check GUI
Visual Studio 2019 is recommended for build Vina-GPU from source
-
install boost library (current version is 1.77.0)
-
install CUDA Toolkit (current version is v11.5) if you are using NVIDIA GPU cards
Note: the OpenCL library can be found in CUDA installation path for NVIDIA or in the driver installation path for AMD
-
add
./lib./OpenCL/inc$(YOUR_BOOST_LIBRARY_PATH)/boost$(YOUR_CUDA_TOOLKIT_LIBRARY_PATH)/CUDA/v11.5/includein the include directories -
add
$(YOUR_BOOST_LIBRARY_PATH)/stage/lib$(YOUR_CUDA_TOOLKIT_PATH)/CUDA/lib/Win32in the addtional library -
add
OpenCL.libin the additional dependencies -
add
--config=./input_file_example/2bm2_config.txtin the command arguments -
add
WIN32in the preprocessor definitions if necessary -
if you want to compile the binary kernel file on the fly, add
BUILD_KERNEL_FROM_SOURCEin the preprocessor definitions -
build & run
Note: ensure the line ending are CLRF
Note: At least 8M stack size is needed. To change the stack size, use ulimit -s 8192.
-
install boost library (current version is 1.77.0)
-
install CUDA Toolkit (current version is 11.5) if you are using NVIDIA GPU cards
note: OpenCL library can be usually in
/usr/local/cuda(for NVIDIA GPU cards) -
change the
BOOST_LIB_PATHandOPENCL_LIB_PATHaccordingly inMakefile -
set GPU platform
GPU_PLATFORMand OpenCL versionOPENCL_VERSIONinMakefile. some options are given below:Note: -DOPENCL_3_0 is highly recommended in Linux. To check the OpenCL version on a given platform, use
clinfo.
| Macros | Options | Descriptions |
|---|---|---|
| GPU_PLATFORM | -DNVIDIA_PLATFORM / -DAMD_PLATFORM | NVIDIA / AMD GPU platform |
| OPENCL_VERSION | -DOPENCL_3_0 / -DOPENCL_1_2 | OpenCL version 3.0 / 1.2 |
-
type
make cleanandmake sourceto build Vina-GPU that compile the kernel files on the fly (this would take some time at the first use) -
after a successful compiling,
Vina-GPUcan be seen in the directory -
type
./Vina-GPU --config ./input_file_example/2bm2_config.txtto run Vina-GPU -
once you successfully run Vina-GPU, its runtime can be further reduced by typing
make cleanandmaketo build it without compiling kernel files (but make sure theKernel2_Opt.binfile is unchanged) -
other compile options:
| Options | Description |
|---|---|
| -g | debug |
| -DDISPLAY_ADDITION_INFO | print addition information |
Note: The running Vina-GPU on macOS is not recommended and has not fully tested yet
- install boost library (current version is 1.77.0)
modify
Makefileas follows:
- annotate
OPENCL_LIB_PATH,OPENCL_INC_PATHand-L$(OPENCL_LIB_PATH)/lib64 - add
-framework OpenCLinLIB3 - type
makeand run
| Arguments | Description | Default value |
|---|---|---|
| --config | the config file (in .txt format) that contains all the following arguments for the convenience of use | no default |
| --receptor | the recrptor file (in .pdbqt format) | no default |
| --ligand | the ligand file (in .pdbqt fotmat) | no default |
| --thread | the scale of parallelism (docking lanes) | 1000 |
| --search_depth | the number of searching iterations in each docking lane | heuristically determined |
| --center_x/y/z | the center of searching box in the receptor | no default |
| --size_x/y/z | the volume of the searching box | no default |
| Arguments | Description | Limitation |
|---|---|---|
| --thread | the scale of parallelism (docking lanes) | preferably less than 10000 |
| --size_x/y/z | the volume of the searching box | less than 30/30/30 |
A graphic user interface (GUI) is provided for users on Windows OS
- first make sure that
Vina-GPU.execan run on a terminal - put the
Vina-GPU.exeandKernel2_Opt.binfiles in./Vina-GPU/GUI/execand overwrite the original files - run the
Vina-GPU-GUI.exefile within./Vina-GPU/GUIto start up the Vina-GPU GUI - select the input and out output files
- set the box center, the box size, thread and search_depth
- click the
startbutton to run Vina-GPU
-
Tang, S.; Chen, R.; Lin, M.; Lin, Q.; Zhu, Y.; Ding, J.; Hu, H.; Ling, M.; Wu, J. Accelerating AutoDock Vina with GPUs. Molecules 2022, 27, 3041. https://doi.org/10.3390/molecules27093041
-
O. Trott, A. J. Olson, AutoDock Vina: improving the speed and accuracy of docking with a new scoring function, efficient optimization and multithreading, Journal of Computational Chemistry 31 (2010) 455-461.