Skip to content

Uni-Dock-Benchmarks contains a curated collection of datasets and benchmarking tests for evaluating the performance and accuracy of the Uni-Dock docking system. This repository is intended for use in continuous integration testing and for researchers seeking to compare docking results with established benchmarks.

License

Notifications You must be signed in to change notification settings

dptech-corp/Uni-Dock-Benchmarks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Uni-Dock-Benchmarks

The Uni-Dock-Benchmarks repository provides a comprehensive collection of datasets for benchmarking the Uni-Dock docking system's performance and accuracy. The datasets include prepared structures and input files for both Uni-Dock V1 and V2 for benchmarks.

Data

Benchmark data within the repository is categorized into two primary sections:

  • molecular_docking
  • virtual_screening

Molecular Docking Benchmarks

Under the molecular_docking directory, you will find several well-known benchmark datasets:

We performed the following preparation steps for the proteins and ligands in the datasets.

  • After obtaining the protein structures from the RCSB database based on the PDB code, we retained the crystal waters that affect the binding mode and completed missing protein side chains and lost hydrogen atoms.
  • For ligands, we searched the RCSB database for the isomer SMILES corresponding to the PDB code and determined the correct protonation state according to the receptor pocket environment. Then, we generated 3D conformations for each ligand.

After excluding systems for covalent ligand bindings, problematic binding mechanisms and those with large natural products or polypeptide ligands, 69 systems from Astex, 271 systems from CASF-2016 and 396 systems from PoseBuster were used as benchmarks.

The correctness of protein side chain structure and hydrogen bond networks have crucial impact on ligand docking, and hence the structure preparation for both protein and ligand determines the difficultness of producing correct ligand docking poses. We use our internal tools to prepare the initial structures of receptor and ligands so that we can obtain better docking results. In addition, we also integrated the open-sourced version of structure preparation algorithmd for Uni-Dock V2 into the unified protocol in the Uni-Dock V2 github repository.

We prepare the receptor structure in two versions, protein with co-crystalized water version and protein only verison, to test the overall effect of the presence of water opn ligand docking experiments.

The directory structure for each dataset is as follows:

<DataSetName>
├── <PDB_ID>
│   ├── <PDB_ID>_ligand.sdf                    # Ligand co-crystal structure processed in SDF format
│   ├── <PDB_ID>_protein_water_cleaned.pdb     # Prepared receptor structrue with protein and crystalized water in PDB format
│   ├── <PDB_ID>_protein_cleaned.pdb           # Prepared receptor structrue with only protein in PDB format
│   ├── ligand_prepared.sdf                    # Reprepared ligand 3D conformation used in docking test in SDF format
│   ├── unidock1_protein                       # Folder for input files of Uni-Dock V1, with protein only in the receptor structure
│   │   ├── ligand_prepared_torsion_tree.sdf   # Prepared ligand structure with torsion tree information used in Uni-Dock V1 input in SDF format
│   │   └── receptor.pdbqt                     # Prepared receptor structure used in Uni-Dock V1 input in PDBQT format
│   ├── unidock1_protein_water                 # Folder for input files of Uni-Dock V1, with protein and water in the receptor structure
│   │   ├── ligand_prepared_torsion_tree.sdf   # Prepared ligand structure with torsion tree information used in Uni-Dock V1 input in SDF format
│   │   └── receptor.pdbqt                     # Prepared receptor structure used in Uni-Dock V1 input in PDBQT format
│   ├── unidock2_protein                       # Folder for input files of Uni-Dock V2, with protein only in the receptor structure
│   │   ├── <PDB_ID>_unidock2.json             # Integrated JSON input file for Uni-Dock V2 docking engine
│   │   └── receptor_parameterized.dms         # Prepared and parameterized receptor structure in DMS format
│   └── unidock2_protein_water                 # Folder for input files of Uni-Dock V2, with protein and water in the receptor structure
│       ├── <PDB_ID>_unidock2.json             # Integrated JSON input file for Uni-Dock V2 docking engine
│       └── receptor_parameterized.dms         # Prepared and parameterized receptor structure in DMS format
└── pdb_center.csv                             # CSV file recording the protein pocket center with respect to the <PDB_ID> for each system

Virtual Screening Benchmarks

Under the virtual_screening directory, you will find several meticulously selected benchmark datasets:

The following table summarizes the statistics of the datasets:

Dataset PDB ID N_Actives N_Inactives N_Total
D4 5WIU 226 598 824
GBA 5LVX 286 458,205 458,491
NSP3 5RS7 65 3,515 3,580
PPARG 5Y2T 29 7,292 7,321
sigma2 7M94 228 596 824

The directory structure for each dataset is as follows:

<DataSetName>
├── docking_grid.json                         # JSON file recording the protein pocket center and the box sizes
├── <PDB_ID>_receptor.pdb                     # Original unprocessed receptor structure in PDB format
├── <PDB_ID>_protein_cleaned.pdb              # Prepared receptor structure with only protein in PDB format
├── actives_cleaned.sdf                       # Preprocessed and cleaned active molecules in SDF format
├── actives.sdf                               # Active molecules in SDF format
├── inactives_cleaned.sdf                     # Preprocessed and cleaned inactive molecules in SDF format
├── inactives.sdf                             # Inactive molecules in SDF format
├── unidock1_protein                          # Folder for input files of Uni-Dock V1, with protein only in the receptor structure
│   ├── actives_prepared_torsion_tree.sdf     # Prepared active molecule structure with torsion tree information used in Uni-Dock V1 input in SDF format
│   ├── inactives_prepared_torsion_tree.sdf   # Prepared inactive molecule structure with torsion tree information used in Uni-Dock V1 input in SDF format
│   └── receptor.pdbqt                        # Prepared receptor structure used in Uni-Dock V1 input in PDBQT format
└── unidock2_protein                          # Folder for input files of Uni-Dock V2, with protein only in the receptor structure
    ├── actives_unidock2.json                 # Integrated JSON input file of active molecules for Uni-Dock V2 docking engine
    ├── inactives_unidock2.json               # Integrated JSON input file of inactive molecules for Uni-Dock V2 docking engine
    └── receptor_parameterized.dms            # Prepared and parameterized receptor structure in DMS format

Important Note Due to the substantial number of inactive molecules in the GBA dataset, the directory contains several large files that exceed GitHub's size limits. These files have been moved to cloud storage. To obtain the complete GBA directory, please run the following command in your terminal:

./getGBA.sh

Scripts

Scripts are provided to run tests directly on Uni-Dock2 executable binary. Simply run molecular docking test on Uni-Dock2 engine binary:

python scripts/run_tests.py --version 2 --bin ud2 --type molecular_docking --nowater --device 1 --savedir my_res --seed 121

Please read scripts/run_tests.py for complete argument documentation. Key parameters include:

NOTE Specifying --version 2 automatically loads the file scripts/ud2.yaml as default configuration.

  • --bin <PATH> Path of the tested executable binary
  • --type <molecular_docking|virtual_screening>
  • --nowater Select receptor without water. (Default: uses water-containing receptor)

ATTENTION: Since docking searches are always incomplete, we recommend:

  1. Repeating tests with multiple random seeds (--seed <INTEGER>)
  2. Average results across repetitions.

About

Uni-Dock-Benchmarks contains a curated collection of datasets and benchmarking tests for evaluating the performance and accuracy of the Uni-Dock docking system. This repository is intended for use in continuous integration testing and for researchers seeking to compare docking results with established benchmarks.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6