LK-UniDock:跨平台 GPU 分子对接发行

基于 AutoDock-Vina 生态 · 打包维护 Uni-Dock(经典全局对接 + GPU 批量)与 UniDock-Pro(+ 相似性引导 / 混合模式)

上游版本:Uni-Dock v1.1.3 · UniDock-Pro v0.0.1 许可:Apache-2.0 构建:CUDA 12.8 · sm_60–sm_120 整理日期:2026-09-03
摘要

LK-UniDock 为 Uni-Dock / UniDock-Pro 提供开箱即用的跨平台发行:macOS arm64(CPU)、Linux x86-64(GPU)、Windows x64(GPU)三平台预编译;Windows GPU 版通过 BUILD_PORTABLE=ON + FETCH_BOOST=ON 全静态打包,运行时仅依赖 1 个 DLL(vcomp140.dll),复制即用、无需 WSL2 或 CUDA Toolkit。以 CUDA 12.8 构建,一份二进制覆盖 sm_60(GTX 10 系)到 sm_120(RTX 50 / Blackwell) 全部 NVIDIA 架构。所有构建补丁(MSVC+CUDA12 guard、CMake 跨平台、CI 等)以 Apache-2.0 开源,欢迎回 PR 上游。

1两款引擎

表 1 Uni-Dock 与 UniDock-Pro 能力对照
能力Uni-DockUniDock-Pro
定位经典全局对接 + GPU 批量虚拟筛选+ 相似性引导与混合对接
macOS(CPU,arm64)✓ 全局对接◐ Score / Local 模式
Linux GPU 虚拟筛选
Windows GPU 虚拟筛选(LK-UniDock build)
相似性引导对接(Similarity-guided)
混合对接模式(Hybrid docking)
详细能量分解输出
配体格式PDBQT / SDFPDBQT / SDF

2为什么需要跨平台发行

3发行价值

4预编译发行 vs 源码自编译 / WSL2

表 2 三种使用方式对比(原项目本身质量优秀,LK-UniDock 聚焦部署门槛)
能力维度LK-UniDock 预编译原项目源码自编译 / WSL2
Windows GPU 可用性✓ 预编译 exe自编译:需适配 MSVC + CUDA 12;WSL2:需安装 WSL2 + CUDA-WSL
部署时间< 1 分钟(解压)数小时 / 30 分钟~数小时
依赖安装零(静态打包)CUDA+Boost+MSVC 全套 / WSL2+Linux 工具链
运行时 DLL 数1(vcomp140.dll)10+ / Linux 动态库
GPU 性能原生 100%原生 100% / WSL2 常见 85–90%
Blackwell(RTX 50)✓ sm_100/120需自配 CUDA 12.8+/WSL 驱动
跨机器可移植✓ 复制即用需重复构建或配好依赖
UniDock-Pro 发行✓ 同步补齐 LICENSE+CI需自行适配
许可证合规Apache 2.0 明确与原项目一致
macOS Apple Silicon✓ CPU 版预编译自编译需 brew+libomp / WSL2 不支持

5三平台二进制与 Windows 静态打包

从 Releases 下载对应平台包解压即用:macOS arm64 为 CPU 版;Linux 与 Windows 提供 GPU 加速版。Windows GPU 版将 CUDA Runtime、Boost、MSVC CRT 全部静态嵌入,运行时仅需 1 个 vcomp140.dll(随包附带)

表 3 Windows GPU build 与原项目 GitHub release 对比
组件LK-UniDock build原项目 release
Windows GPU 二进制✓ 提供尚未提供
CUDA Runtime静态嵌入(无需安装)动态 DLL(需 CUDA Toolkit)
Boost静态嵌入 FETCH_BOOST=ON动态 conda DLL
MSVC CRT静态嵌入 BUILD_PORTABLE=ON需 VC++ Redist
运行时 DLL 依赖仅 vcomp140.dll(bundled)10+ 个,需逐一配置
CUDA 架构sm_60 → sm_120(GTX 10 → RTX 50)取决于 CI 配置
可移植性✓ 复制 exe+dll 任意机器运行需同步部署运行时环境

6GPU 架构覆盖

Windows / Linux GPU 构建覆盖 sm_60–sm_120,CUDA 12.8 带来 Blackwell(RTX 50)支持。

表 4 架构支持矩阵
架构代表 GPU支持
sm_60 / sm_61GTX 1060 / GTX 1080 Ti(Pascal)
sm_70Tesla V100 / Titan V(Volta)
sm_75RTX 20 系列 / T4(Turing)
sm_80 / sm_86RTX 30 系列 / A100(Ampere)
sm_89RTX 40 系列 / L40(Ada Lovelace)
sm_90H100(Hopper)
sm_100 / sm_120RTX 50 / Blackwell(CUDA 12.8 构建)

驱动要求:Windows GPU 二进制需 NVIDIA Driver ≥ R528(2022 年末);RTX 50 / Blackwell 额外需 ≥ R570。

7快速开始

7.1 Uni-Dock:单配体全局对接(CPU · macOS / Linux / Windows)

# ── Uni-Dock:单配体全局对接(CPU · macOS/Linux/Windows)──
./Uni-Dock --receptor receptor.pdbqt --ligand ligand.pdbqt \
  --center_x 15.19 --center_y 53.90 --center_z 16.92 \
  --size_x 20 --size_y 20 --size_z 20 \
  --out output.pdbqt --exhaustiveness 8 --num_modes 9

# ── Uni-Dock-GPU:批量虚拟筛选(Linux/Windows · 需 NVIDIA GPU)──
./Uni-Dock-GPU --receptor receptor.pdbqt \
  --gpu_batch lig1.pdbqt lig2.pdbqt lig3.pdbqt \
  --center_x 15.19 --center_y 53.90 --center_z 16.92 \
  --size_x 25 --size_y 25 --size_z 25 --dir output_dir/ --exhaustiveness 32

# ── 大规模筛选:配体索引文件 ──
./Uni-Dock-GPU --receptor receptor.pdbqt --ligand_index ligands.txt \
  --center_x X --center_y Y --center_z Z \
  --size_x 20 --size_y 20 --size_z 20 --dir output_dir/

7.2 UniDock-Pro:Score 模式与相似性引导 / 混合模式

# ── Score 模式(CPU · macOS 支持),输出详细能量分解 ──
./UniDock-Pro --receptor receptor.pdbqt --ligand ligand.pdbqt \
  --center_x 15.19 --center_y 53.90 --center_z 16.92 \
  --size_x 20 --size_y 20 --size_z 20 --score_only
# Score: -18.118 kcal/mol
# (1) Final Intermolecular Energy: -17.634 kcal/mol
# (2) Final Total Internal Energy: -0.485 kcal/mol
# (3) Torsional Free Energy: 5.121 kcal/mol

# ── 相似性引导对接(需 CUDA)──
./UniDock-Pro-GPU --receptor receptor.pdbqt --gpu_batch candidates.pdbqt \
  --reference_ligand known_active.pdbqt --similarity_searching

# ── 混合模式(相似性 + 自由对接)──
./UniDock-Pro-GPU --receptor receptor.pdbqt --gpu_batch candidates.pdbqt \
  --reference_ligand known_active.pdbqt --hybrid_mode

8关键参数

表 5 Uni-Dock 常用选项
参数默认值说明
--exhaustiveness8搜索彻底性(越大越准、越慢)
--num_modes9最大输出构象数
--energy_range3.0能量窗口(kcal/mol)
--scoringvina评分函数:vina / vinardo / ad4
--score_only / --local_only仅评估当前 pose / 仅局部优化
表 6 UniDock-Pro 额外参数
参数默认值说明
--reference_ligand相似性引导对接的参考配体
--similarity_searching启用相似性搜索引导
--hybrid_mode混合模式(相似性 + 自由对接)
--max_gpu_memoryall限制 GPU 内存使用(MB)
--refine_step3精化步数

9与原项目的差异与适配补丁

表 7 LK-UniDock vs 原项目
项目原项目 dptech-corp/Uni-DockLK-UniDock
源码版本v1.1.3v1.1.3(同源)
Windows GPU 预编译尚未提供✓ 提供
CUDA 版本11.8(GitHub CI)12.8(支持 RTX 50 / Blackwell)
CUDA Runtime / Boost / MSVC CRT动态(需 Toolkit / conda / VC++ Redist)✓ 全静态嵌入
Windows 运行时 DLL 数10+1(vcomp140.dll)
MSVC + CUDA 环境适配需手工处理__CUDACC__ guard 已适配

六项开源补丁(均欢迎 PR 回原项目)

10源码构建与常见报错

要求:CMake 3.16+、C++17(GCC 7+ / Clang 5+ / MSVC 2019+)、Boost 1.72+(可自动 fetch)、CUDA Toolkit 11.8+(GPU 构建)。

# macOS(CPU-only,Apple Silicon 无 CUDA)
brew install cmake boost libomp
cd Uni-Dock-main && bash build_mac.sh --clean
cd UniDock-Pro-main && bash build_mac.sh --clean
# 输出 dist/Uni-Dock、dist/UniDock-Pro(仅系统库依赖,可移植)

# Linux(CPU + GPU)
bash build_linux.sh                 # CPU + GPU
bash build_linux.sh --cpu-only | --gpu-only | --fetch-boost

# Windows GPU Portable(须在 x64 Native Tools Command Prompt for VS2022 中)
# 要求 Visual Studio 2022 + CUDA Toolkit 12.8
set CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8
set CUDACXX=%CUDA_PATH%\bin\nvcc.exe
cd Uni-Dock-main
cmake -S unidock -B build_portable -G "Visual Studio 17 2022" -A x64 ^
  -T cuda="%CUDA_PATH%" -DFETCH_BOOST=ON -DBUILD_PORTABLE=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build_portable --config Release -j
# 预期输出 build_portable\Release\unidock.exe(仅需 vcomp140.dll)
表 8 常见构建错误排查
错误信息原因 / 解决方案
[CPU-only build] GPU batch docking unavailableCUDA 未检测到 → -DCMAKE_CUDA_COMPILER=… 显式指定 nvcc
boost/filesystem/path.hpp 编译错误CUDA TU 导入 Boost filesystem → 应用 __CUDACC__ guard(本仓库已含)
boost_thread.lib (shared) 冲突conda Boost + BUILD_PORTABLE 冲突 → -DFETCH_BOOST=ON 跳过 conda Boost
nvcc fatal: Unsupported gpu architecture 'compute_60'CUDA 13+ 已移除 Pascal/Volta → 使用 CUDA 12.8
CMake CUDA 检测失败(nvcc 已在 PATH)-T cuda=… 路径含空格 → 用 -DCMAKE_CUDA_COMPILER=完整路径

许可与致谢

LK-UniDock 以 Apache-2.0 开源发行;核心算法与实现来自 Uni-DockUniDock-Pro 原项目(基于 AutoDock-Vina),特此致谢。