UniDock‑Pro is an all‑in‑one GPU‑accelerated virtual screening platform. It provides classical docking, ligand similarity searching, and hybrid docking in a single binary.
Project lineage. UniDock‑Pro is a fork of Uni‑Dock, which is a GPU-accelerated version of AutoDock-Vina. Please also see the Uni‑Dock publication: DOI: 10.1021/acs.jctc.2c01145.
If you use UniDock‑Pro in academic work, please cite the Uni‑Dock paper above and our JCIM paper:
-
Install dependencies
-
CUDA Toolkit ≥ 11.8 — follow NVIDIA’s installation guide.
-
CMake ≥ 3.16
-
C++ compiler (must be compatible with NVCC;
g++works in most cases) -
Boost ≥ 1.72
sudo apt install \ libboost-system-dev libboost-thread-dev libboost-serialization-dev \ libboost-filesystem-dev libboost-program-options-dev libboost-timer-dev
If the above does not satisfy version requirements, install from Boost source or via Anaconda:
conda install -c anaconda libboost.
-
-
Clone the repository
git clone https://github.com/NiBoyang/UniDock-Pro.git
-
Build with CMake
cd UniDock-Pro cmake -B build cmake --build build -j4
The main binary udp will be generated under build/.
Run ./udp --help for the full set of options. Minimal, reproducible examples are shown below.
Required option —
--search_mode. You must explicitly set--search_modeto one offast,balance, ordetail. Leaving it unset is currently unsupported and may lead to incorrect or unstable behavior.
- Receptor:
.pdbqt - Ligands: Two input methods are supported:
- A text file (
--ligand_index) listing.pdbqtpaths, one per line - A directory (
--ligand_directory) containing.pdbqtfiles
- A text file (
- Reference ligand(s) (for similarity searching or hybrid docking):
- Single reference:
--reference_ligand ref.pdbqt - Multiple references (ensemble):
--reference_ligand ref1.pdbqt ref2.pdbqt ref3.pdbqt(space-separated)
- Single reference:
- Search box:
--center_{x,y,z}and--size_{x,y,z}in Å - Output directory (optional):
--dir <path>
Using a ligand index file:
./udp \
--receptor rec.pdbqt \
--ligand_index ligand_index.txt \
--center_x 0 --center_y 0 --center_z 0 \
--size_x 20 --size_y 20 --size_z 20 \
--search_mode balance \
--dir ./resultsUsing a ligand directory:
./udp \
--receptor rec.pdbqt \
--ligand_directory ./ligands/ \
--center_x 0 --center_y 0 --center_z 0 \
--size_x 20 --size_y 20 --size_z 20 \
--search_mode balance \
--dir ./resultsWith a single reference ligand:
./udp \
--reference_ligand ref.pdbqt \
--ligand_index ligand_index.txt \
--center_x 0 --center_y 0 --center_z 0 \
--size_x 20 --size_y 20 --size_z 20 \
--search_mode fast \
--dir ./resultsWith multiple reference ligands (ensemble):
./udp \
--reference_ligand ref1.pdbqt ref2.pdbqt ref3.pdbqt \
--ligand_index ligand_index.txt \
--center_x 0 --center_y 0 --center_z 0 \
--size_x 20 --size_y 20 --size_z 20 \
--search_mode fast \
--dir ./resultsImportant: In hybrid mode, the
--reference_ligandmust be provided in its co‑crystallized pose with the specified receptor.
With a single reference ligand:
./udp \
--receptor rec.pdbqt \
--reference_ligand ref.pdbqt \
--ligand_index ligand_index.txt \
--center_x 0 --center_y 0 --center_z 0 \
--size_x 20 --size_y 20 --size_z 20 \
--search_mode detail \
--dir ./resultsWith multiple reference ligands (ensemble):
./udp \
--receptor rec.pdbqt \
--reference_ligand ref1.pdbqt ref2.pdbqt ref3.pdbqt \
--ligand_index ligand_index.txt \
--center_x 0 --center_y 0 --center_z 0 \
--size_x 20 --size_y 20 --size_z 20 \
--search_mode detail \
--dir ./resultsFrom the repository’s example/ directory:
../build/udp \
--receptor ./receptor/rec.pdbqt \
--reference_ligand ./ref_lig/xtal_lig.pdbqt \
--ligand_index ligand_index.txt \
--center_x 32.790 --center_y 38.342 --center_z 58.486 \
--size_x 28 --size_y 28 --size_z 28 \
--search_mode balance \
--dir ./resultsUniDock‑Pro builds on the ideas and engineering of AutoDock Vina and the GPU‑accelerated Uni‑Dock project. We thank their authors and contributors for foundational work that enabled this fork.