This repository contains source code for the classical docking setup, input data processing, result generation, and evaluation on PLINDER and PoseBusters protein-ligand docking benchmarks.
The ready-to-use datasets can be downloaded from Zenodo:
- PLINDER (
plinder-v2-eval.tar.gz) - PoseBusters (
posebusters_paper_data.zip)
-
Clone the source code and set up the environment.
git clone https://github.com/receptor-ai/dock-eval.git cd dock-eval/ -
Create environment.
- AutoDock:
conda env create --file requirements/autodock/environment.yml conda activate autodock pip install -r requirements/autodock/requirements.txt --no-cache-dirIf you are going to use AutoDock-GPU, it should be installed additionally. Run
conda activate autodock && bash requirements/autodock/install_autodock_gpu.sh. The script was tested on a machine with an RTX 3000/4000 Series GPUs and CUDA 12.4 usingnvidia/cuda:12.4.1-devel-ubuntu22.04Docker image template. You may also tryconda install hcc::autodock-gpu.- Glide:
To use Glide, you should have Schrödinger Suite installed on your machine. Locate the path that contains
utilities/prepwizard,ligprep, andglidetools required for the docking (e.g.,/home/user/software/schrodinger2024-3/).- Evaluation:
conda env create --file requirements/eval/environment.yml conda activate dock-eval pip install -r requirements/eval/requirements.txt --no-cache-dir
- The short custom usage examples of the docking module are available in
examples/docking.ipynb(autodockenvironment) - The short custom usage example of the evaluation module is available in
examples/evaluate.ipynb(dock-evalenvironment)
-
AutoDock:
conda activate autodock # AutoDock-CPU (AutoDock4) example: python -m autodock.plinder_v2 --ds_root ../data/plinder-v2-eval/ --split test --workdir workdir/autodock-cpu/plinder-v2-test --docked_sdf result_1.sdf --grid_size 20 20 20 --type cpu --params ga_num_evals=350000 ga_run=20 --parallel # AutoDock-GPU example: python -m autodock.plinder_v2 --ds_root ../data/plinder-v2-eval/ --split test --workdir workdir/autodock-gpu/plinder-v2-test --docked_sdf result_1.sdf --grid_size 20 20 20 --type gpu # Vina example: python -m autodock.plinder_v2 --ds_root ../data/plinder-v2-eval/ --split test --workdir workdir/autodock-vina/plinder-v2-test --docked_sdf result_1.sdf --grid_size 20 20 20 --type vina --params exhaustiveness=16 -
Glide:
export SCHRODINGER="/home/user/software/schrodinger2024-3/" # only basic dependencies are needed, so we can use the already installed dock-eval conda activate dock-eval python -m glide.plinder_v2 --ds_root ../data/plinder-v2-eval/ --split test --workdir workdir/glide/plinder-v2-test --docked_sdf result_1.sdf --outerbox 20 20 20 --dock_params POSTDOCK_NPOSE=80 --parallel
These examples will launch docking on the PLINDER test dataset (holo) and save results to --workdir.
To launch docking on the PLINDER MLSB test dataset (undound), change --split to test-mlsb and provide another --workdir.
To launch docking on the PoseBusters dataset, use the corresponding posebusters.py scripts, remove --split argument, and provide the --ds_root folder with complexes (e.g., python -m autodock.posebusters --ds_root ../data/posebusters_benchmark_set/ --workdir workdir/autodock-cpu/posebusters/ --docked_sdf result_1.sdf --grid_size 25 25 25 --type cpu --parallel).
To evaluate the docking performance, use the same --ds_root, --split (for PLINDER), --workdir, and --docked_sdf arguments as for a docking launch. Example for AutoDock-CPU evaluation:
conda activate dock-eval
python -m eval.plinder_v2 --ds_root ../data/plinder-v2-eval/ --split test --workdir workdir/autodock-cpu/plinder-v2-test --docked_sdf result_1.sdf --parallel
- Virtual screening mode for docking
- Unit tests