乐于分享
好东西不私藏

LKDock 全版本功能说明(v1.0/2.0/3.0)

LKDock 全版本功能说明(v1.0/2.0/3.0)

开发者:罗柯生信
范围:LKDock v1.0 / v2.0 / v3.0
内容:对接引擎、PPI 引擎、口袋预测、功能、算法、项目来源

一、版本功能总览

功能模块
v1.0
v2.0
v3.0
一键查询下载
一键预处理
盒子生成方法
✅ (3种)
✅ (5种)
✅ (8种)
同时对接数量
30
30
30
小分子-蛋白对接(CPU)
✅ Vina
✅ Vina/Smina
✅ Vina/Smina/Uni-Dock 系列/LKina
GPU 加速对接
✅ Vina-GPU 系列
✅ Vina-GPU 系列 + Uni-Dock GPU
3D可视化(PyMOL)
✅ (2种)
✅ (3种+RGB)
✅ (4种+RGB)
学术报告生成
✅(txt)
✅(pdf)
✅(pdf)
金属离子处理对接
✅(11种)
✅(113种)
ZINC数据库集成
小分子-小分子对接
多肽-蛋白对接
多配体对接
柔性对接
序列生成
指定残基对接
ADMET 预测
虚拟筛选
柔性对接
蛋白-蛋白/多肽/核酸/RNA/DNA/膜对接
✅ LKlight/ColabFold
口袋预测
✅ P2Rank(改) + fpocket(改)
交叉验证(口袋)
2D可视化
卤键评分
共价对接
✅ LKina

二、Python 依赖对比

2.1 环境基础

项目
v1.0
v2.0
v3.0
Python 版本
3.9
3.9
3.9
GUI 框架
Tkinter
Tkinter (Mac/Win) / PyQt (Linux)
Tkinter (Mac/Win) / PyQt (Linux)


2.2 软件依赖

包名
v1.0
v2.0
v3.0
说明
许可证
numpy
数值计算
BSD-3-Clause
pandas
数据表格处理
BSD-3-Clause
psutil
系统资源监控
BSD-3-Clause
matplotlib
绑定能图表绘制
PSF-2.0
seaborn
统计可视化
BSD-3-Clause
requests
HTTP 请求
Apache-2.0
openbabel
分子格式转换(用户自行安装)
GPL-2.0
pdbfixer
PDB 受体修复
MIT
rdkit
ADMET / 分子描述符 / 虚拟筛选
BSD-3-Clause
scikit-learn
机器学习(口袋预测 RF)
BSD-3-Clause
joblib
并行 / 序列化
BSD-3-Clause
biopython
PDB/MMCIF 解析
BSD-3-Clause
smina
(自行conda-forge安装)
Apache-2.0 +
scipy
聚类 / 凸包 / Delaunay 三角剖分
BSD-3-Clause
meeko
PDBQT 配体预处理
Apache-2.0
gemmi
MMCIF/PDB 高性能解析
MPL-2.0
pillow
图像处理
HPND
beautifulsoup4
HTML/XML 解析
MIT
reportlab
PDF 学术报告生成
BSD-3-Clause
PeptideBuilder
肽链 / 蛋白结构构建
MIT
LKlight
v3.0 首选 PPI 对接引擎(Rust 原生,用户自行下载或源码编译)
GPL-3.0-or-later
colabfold
AlphaFold2 蛋白复合物(用户自行安装)
MIT


三、小分子对接引擎

3.1 AutoDock Vina

属性
全称
AutoDock Vina
版本
v1.2.7(LKDock v2.0+ 使用 vina127);v1.1.2(经典版)
项目来源
AutoDock Vina 项目
许可证
Apache License 2.0
开发者
Scripps Research (Oleg Trott, Arthur Olson)
LKDock 版本
v1.0 ✅ / v2.0 ✅ / v3.0 ✅

功能:小分子-蛋白刚性/半柔性对接 – 基于梯度优化的构象搜索 – 多构象输出(num_modes) – 支持 exhaustiveness 调节搜索强度

算法:全局搜索:迭代局部搜索(Iterated Local Search),结合随机扰动与局部优化 – 局部优化:BFGS(Broyden–Fletcher–Goldfarb–Shanno)拟牛顿法 – 评分函数:基于知识的经验势函数,包含立体效应(Gauss + Repulsion)、氢键、疏水作用、可旋转键惩罚 – 输出:结合自由能 ΔG (kcal/mol)

3.2 Smina

属性
全称
Smina (Scoring function Minimization for AutoDock Vina)
版本
基于 Vina 分支
项目来源
Smina 项目
许可证
Apache License 2.0
开发者
David Koes 组 (University of Pittsburgh)
LKDock 版本
v2.0 ✅ / v3.0 ✅

功能:全部 Vina 功能 + 可自定义评分函数权重 – 支持 58 种评分项(Gauss、电静力、AutoDock4 去溶剂化等) – 柔性侧链对接 – 改进的金属离子处理 – 非 PDBQT 配体文件直接读取(自动计算部分电荷)

算法:继承 Vina 的 ILS + BFGS 框架 – 扩展评分函数:支持加权线性组合自定义评分项 – 可用于重新打分(rescoring)和约束对接

3.3 Vina-GPU 系列

3.3.1 Vina-GPU

属性
全称
Vina-GPU
版本
v1.0
项目来源
Vina-GPU 项目
许可证
Apache License 2.0
开发者
DeltaGroup, NJUPT (南京邮电大学)
LKDock 版本
v2.0 ✅ / v3.0 ✅

功能: 基于 OpenCL 的 GPU 加速 AutoDock Vina – 支持 NVIDIA / AMD / Intel GPU – 单配体对接加速

算法:将 Vina 的蒙特卡洛+局部优化并行化到 GPU – OpenCL 内核实现梯度计算和评分函数

3.3.2 Vina-GPU+

属性
全称
Vina-GPU+
版本
包含于 Vina-GPU 2.0
项目来源
Vina-GPU 2.0 项目
许可证
Apache License 2.0
LKDock 版本
v2.0 ✅ / v3.0 ✅

功能: Vina-GPU 的增强版,进一步加速 – 支持单受体-多配体批量对接 – 优化 OpenCL 内核

3.3.3 Vina-GPU 2.0 / 2.1

属性
全称
Vina-GPU 2.0 / 2.1
版本
v2.2(可执行文件名 Vina-GPU-v2.2)
项目来源
Vina-GPU 2.0 项目 / Vina-GPU 2.1 项目
许可证
Apache License 2.0
LKDock 版本
v2.0 ✅ / v3.0 ✅

功能:集成 Vina-GPU+、QuickVina2-GPU、QuickVina-W-GPU 三种方法 – 进一步优化精度和速度的平衡

算法:双层并行:搜索步骤级并行 + 配体级并行 – 优化的 OpenCL Kernel(Kernel1_Opt.binKernel2_Opt.bin

3.4 QuickVina 系列(GPU)

3.4.1 QuickVina2-GPU

属性
全称
QuickVina 2 GPU
项目来源
QuickVina 项目(CPU 原版)/ Vina-GPU 2.0 项目(GPU 版)
许可证
Apache License 2.0
原始论文
Alhossary et al., Bioinformatics (2015)
LKDock 版本
v2.0 ✅ / v3.0 ✅

功能:在 Vina 基础上引入”首次成功停止”策略,减少冗余搜索 – GPU 加速版支持 OpenCL 并行

算法: QuickVina2 核心:允许局部搜索在找到足够好的构象后提前终止 – 搜索空间分解 + 并行蒙特卡洛 – 保持 Vina 评分函数精度,速度提升约 20.49 倍(CPU 版 vs Vina)

3.4.2 QuickVina-W-GPU

属性
全称
QuickVina-W GPU
版本
包含于 Vina-GPU 2.0
项目来源
Vina-GPU 2.0 项目
许可证
Apache License 2.0
原始论文
Hassan et al., Scientific Reports (2017)
LKDock 版本
v2.0 ✅ / v3.0 ✅

功能:蛋白-配体盲对接(无需指定结合位点) – 进程间时空整合策略(Inter-Process Spatio-Temporal Integration)

算法:将搜索空间划分为多个重叠子空间 – 各子空间并行搜索后整合 – GPU 版进一步在每个子空间内并行化

3.5 Uni-Dock

属性
全称
Uni-Dock
版本
v1.1.3
项目来源
Uni-Dock 项目
许可证
Apache License 2.0
开发者
DP Technology (深势科技)
LKDock 版本
v3.0 ✅

功能:AutoDock Vina 的 GPU 加速版,V100 GPU 上可达 >2000 倍加速 – CPU 全局搜索:macOS/Linux/Windows 均可无 GPU 运行完整单配体对接 – GPU 批量虚拟筛选:--gpu_batch支持大规模配体库筛选 – 支持 vinavinardoad4三种评分函数 – 配体索引文件模式(--ligand_index) – 兼容 Vina 命令行格式,可低成本替换

算法继承 Vina 评分函数和 ILS+BFGS 搜索框架 – CUDA 并行化:将多配体的蒙特卡洛搜索映射到 GPU 线程块 – 批量模式下在单次 GPU 调用中同时处理数百个配体。

3.6 UniDock-Pro

属性
全称
UniDock-Pro
版本
v0.0.1
项目来源
Uni-Dock 项目
许可证
Apache License 2.0
开发者
DP Technology (深势科技)
LKDock 版本
v3.0 ✅

功能(在 Uni-Dock 基础上新增):相似度引导对接:--reference_ligand--similarity_searching– 混合模式:--hybrid_mode(相似度搜索 + 自由对接结合) – 详细能量分解:输出分子间能量、内部能量、扭转自由能 – GPU 批量虚拟筛选 – macOS CPU 模式支持打分(--score_only)和局部优化(--local_only

算法:继承 Uni-Dock 核心(Vina 评分 + CUDA 并行) – 新增相似度引导:参考配体的形状/药效团约束注入搜索过程 – 混合模式在无偏搜索和有偏搜索之间自适应切换。

3.6.1 LK-UniDock(源码补丁与跨平台二进制发行)

✅ LKDock v3.0 的 Uni-Dock / UniDock-Pro 源码同步与可执行文件发布项目
GitHub:LK-Studio1128/LK-UniDock
Release:LK-Studio1128/LK-UniDock/releases/tag/v1.0.0

定位与目标

LK-UniDock 不是新的对接算法,而是围绕 Uni-Dock v1.1.3 与 UniDock-Pro v0.0.1 建立的 LKDock 专用源码补丁、跨平台构建与预编译发行工程。其目标是解决上游项目在实际 GUI 分发与终端用户使用中的三个关键问题:

  1. Windows GPU 二进制缺失:上游 Uni-Dock / UniDock-Pro 不提供可直接运行的 Windows GPU 版;LK-UniDock 提供 Uni-Dock-GPU.exe与 UniDock-Pro-GPU.exe
  2. 运行库依赖复杂:传统 Windows 构建容易依赖 CUDA Runtime、Boost DLL、MSVC CRT、VC++ Redistributable 等大量外部组件;LK-UniDock 使用可移植编译方案,将 Boost、MSVC CRT、CUDA Runtime 静态嵌入,分发时仅需 exe + vcomp140.dll
  3. MSVC + CUDA 编译兼容性问题:上游源码在 Windows CUDA 编译时会因 Boost filesystem 进入 CUDA translation unit 而报错;LK-UniDock 通过 __CUDACC__守卫、头文件拆分与 CMake 选项修复该问题。

仓库结构

LK-UniDock/
├── Uni-Dock-main/        # 已补丁化的 Uni-Dock v1.1.3 源码
├── UniDock-Pro-main/     # 已补丁化的 UniDock-Pro v0.0.1 源码
└── UniDock/              # 预编译二进制发行目录
    ├── UniDock-macos-arm64/
    ├── UniDock-linux86/
    └── UniDock-win64/

平台二进制发布包

平台
Release 包
内容
运行要求
macOS arm64
UniDock-macos-arm64.tar.gz Uni-Dock

UniDock-Pro
macOS 12+,仅CPU版本
Linux x86_64
UniDock-linux86.tar.gz Uni-Dock-GPU

UniDock-Pro-GPUsplit
NVIDIA 驱动 ≥ R522,需 CUDA 运行环境
Windows x64
UniDock-win64.zip Uni-Dock-GPU.exe

UniDock-Pro-GPU.exevcomp140.dll
NVIDIA 驱动 ≥ R528;RTX 50 需 ≥ R570

Windows GPU 可移植版特性

组件
LK-UniDock 构建方式
上游/普通构建常见情况
Windows GPU 二进制
✅ 提供
❌ 通常不提供
CUDA Runtime
静态嵌入
动态依赖 cudart64_*.dll
Boost
FETCH_BOOST=ON

静态编译
conda/vcpkg 动态 DLL
MSVC CRT
BUILD_PORTABLE=ON

/MT静态嵌入
依赖 VC++ Redist
运行时 DLL
仅 vcomp140.dll(随包分发)
10+ 个 DLL,易缺失
GPU 架构覆盖
sm_60 → sm_120
取决于编译环境
换机可用性
✅ 拷贝目录即可运行
❌ 易因 DLL 缺失失败

支持的 GPU 架构

架构
代表显卡
支持状态
sm_60 / sm_61
GTX 1060 / GTX 1080 Ti
sm_70
Tesla V100 / Titan V
sm_75
RTX 20 系 / T4
sm_80 / sm_86
RTX 30 系 / A100
sm_89
RTX 40 系 / L40
sm_90
H100
sm_100 / sm_120
RTX 50 / Blackwell
✅(CUDA 12.8 构建)

相对上游源码的关键补丁

补丁
文件/模块
作用
Boost filesystem CUDA 守卫
src/lib/common.h __CUDACC__

下用 std::string替代 boost::filesystem::path,避免 MSVC + CUDA 编译错误
文件 I/O CUDA 守卫
src/lib/file.h
避免 CUDA translation unit 通过头文件链式引入 Boost filesystem
cache/ad4cache 头文件拆分
src/lib/cache.h

ad4cache.h
将 Boost 依赖移至 .cpp,减少 CUDA 编译单元依赖污染
CMake CMP0167 兼容
CMakeLists.txt
适配 CMake ≥ 3.30 的 Boost 查找策略
FORCE_CPU_ONLY CMakeLists.txt
在无 CUDA 环境中强制构建 CPU-only 版本
BUILD_PORTABLE CMakeLists.txt
静态链接 Boost、OpenMP、MSVC CRT、CUDA Runtime
FETCH_BOOST CMakeLists.txt
自动下载 Boost 1.84.0 并静态编译,绕过 conda 动态 Boost
macOS OpenMP 适配
CMakeLists.txt

build_mac.sh
自动查找 Homebrew libomp,避免 Apple Clang OpenMP 缺失
CUDA 架构自动检测
CMakeLists.txt
CUDA ≥ 12.8 时自动启用 sm_100 / sm_120
/utf-8

MSVC 选项
CMakeLists.txt
解决 Windows 中文注释/UTF-8 源码警告
predict_peak_memory

守卫
CUDA 相关源码
CPU 构建时避免解析 CUDA 类型导致模板报错

对 LKDock 的意义

  • 降低用户部署门槛:Windows 用户无需安装 CUDA Toolkit、Boost、Visual Studio 或 VC++ Redist,仅需 NVIDIA 驱动。
  • 增强 v3.0 GPU 批量筛选能力:配合 LKDock 中的 Uni-Dock GPU 批调度逻辑,可通过 --ligand_index复用受体网格与 CUDA context 初始化成本,避免”每个配体启动一次引擎”造成的性能浪费。
  • 提升源码可维护性:将跨平台构建脚本、许可证、CI、补丁说明集中在 GitHub 项目中,便于后续版本追踪与社区复现。
  • 保持算法一致性:核心搜索算法与评分函数不改动,结果仍与 Uni-Dock / UniDock-Pro 同源;LK-UniDock 主要解决工程可用性、平台兼容性和发行可靠性。

3.7 小分子引擎对比总表

引擎
CPU 对接
GPU 加速
批量筛选
柔性对接
自定义评分
相似度引导
LKDock
AutoDock Vina
✅(串行)
部分
v1.0+
Smina
✅(串行)
✅(58项)
v2.0+
Vina-GPU
✅(OpenCL)
v2.0+
Vina-GPU+
✅(OpenCL)
v2.0+
Vina-GPU 2.x
✅(OpenCL)
v2.0+
QVina2-GPU
✅(OpenCL)
v2.0+
QVina-W-GPU
✅(OpenCL)
v2.0+
Uni-Dock
✅(CUDA)
✅(GPU批量)
✅(3种)
v3.0
UniDock-Pro
仅打分/局部
✅(CUDA)
✅(GPU批量)
✅(3种)
v3.0
LK-UniDock
✅(macOS CPU)
✅(Linux/Windows CUDA)
✅(GPU批量)
✅(继承 Uni-Dock)
✅(UniDock-Pro)
v3.0 发行工程
LKina
✅(串行)
✅(AD4 + 金属 + 共价)
v3.0 金属/共价核心

3.7.1小分子对接引擎——评分函数对比

引擎
默认评分函数
可选评分函数
评分项组成
自定义权重
Vina
Vina
Gauss1 + Gauss2 + Repulsion + Hydrophobic + HBond + 可旋转键惩罚
Smina
Vina
58 项可选
默认同 Vina;可加入电静力、AD4 去溶剂化、非疏水接触等
✅ --custom_scoring
Vina-GPU 系列
Vina
同 Vina(GPU 仅加速计算,不改变评分逻辑)
QVina2-GPU
Vina
同 Vina
QVina-W-GPU
Vina
同 Vina
Uni-Dock
Vina
vinardo

ad4
Vina:同 Vina;Vinardo:简化势函数;AD4:AutoDock4 格点能量
✅(3 种切换)
UniDock-Pro
Vina
vinardo

ad4
同 Uni-Dock + 相似度得分项(参考配体形状约束)
✅(3 种切换)
LKina
Vina / Vinardo / AD4
金属 AD4 / Reactive 共价约束
扩展 Vina 1.2.7,内联 AG4 格点、113 AD4 原子类型、TZ/SQ/MH/JT 伪原子、响应式共价 P1–P4
✅(AD4/金属/共价参数)

评分函数说明: – Vina 评分函数:5 项加权线性组合——两个 Gauss 项(引力)、一个 Repulsion 项(排斥)、一个 Hydrophobic 项(疏水)、一个 HBond 项(氢键),最终加可旋转键惩罚 – Vinardo 评分函数(Uni-Dock):去除 Gauss2,简化项数,权重重新拟合,对某些体系更鲁棒 – AD4 评分函数(Uni-Dock/LKina):使用 AutoDock4 格点映射(affinity maps),兼容 AD4 工作流;LKina 将 AD4 扩展为内联 AG4 金属格点与响应式共价约束 – Smina 自定义评分:通过 --custom_scoring <weights_file>指定 58 项中任意子集的权重文件

3.7.2 Vina 1.2.7 评分项权重(–help_advanced 输出)

评分项
默认权重
说明
weight_gauss1
-0.035579
Gauss 项 1(引力)
weight_gauss2
-0.005156
Gauss 项 2(引力)
weight_repulsion
0.840245
排斥项
weight_hydrophobic
-0.035069
疏水项
weight_hydrogen
-0.587439
氢键项
weight_rot
0.05846
可旋转键惩罚
weight_vinardo_gauss1
-0.045
Vinardo Gauss 项
weight_vinardo_repulsion
0.8
Vinardo 排斥项
weight_vinardo_hydrophobic
-0.035
Vinardo 疏水项
weight_vinardo_hydrogen
-0.6
Vinardo 氢键项
weight_vinardo_rot
0.05846
Vinardo 旋转键惩罚
weight_ad4_vdw
0.1662
AD4 范德华力
weight_ad4_hb
0.1209
AD4 氢键
weight_ad4_elec
0.1406
AD4 电静力
weight_ad4_dsolv
0.1322
AD4 去溶剂化
weight_ad4_rot
0.2983
AD4 旋转键惩罚
weight_glue
50.0
大环「胶水」约束权重

3.7.3全部可用评分项(smina –print_terms 输出,共 27 项)

类别
评分项名
参数
说明
静电/溶剂化
electrostatic
i=2, ^=100, c=8
静电相互作用(距离反比幂次)
静电/溶剂化
ad4_solvation
d-sigma=3.6, s/q=0.01097, c=8
AutoDock4 去溶剂化能
引力
gauss
o=0, w=0.5, c=8
高斯引力项
排斥
repulsion
o=0, c=8
排斥项
疏水
hydrophobic
g=0.5, b=1.5, c=8
疏水接触
疏水
non_hydrophobic
g=0.5, b=1.5, c=8
非疏水接触
范德华
vdw
i=6, j=12, s=1, ^=100, c=8
Lennard-Jones 6-12 势
氢键
non_dir_h_bond_lj
o=-0.7, ^=100, c=8
LJ 型非定向氢键
氢键
non_dir_anti_h_bond_quadratic
o=0, c=8
反氢键二次惩罚
氢键
non_dir_h_bond
g=-0.7, b=0, c=8
非定向氢键
排斥
acceptor_acceptor_quadratic
o=0, c=8
受体-受体排斥
排斥
donor_donor_quadratic
o=0, c=8
供体-供体排斥
原子类型
atom_type_gaussian
t1, t2, o, w, c=8
原子类型对高斯项
原子类型
atom_type_linear
t1, t2, g, b, c=8
原子类型对线性项
原子类型
atom_type_quadratic
t1, t2, o, c=8
原子类型对二次项
原子类型
atom_type_inverse_power
t1, t2, i, ^=100, c=8
原子类型对反幂次项
原子类型
atom_type_lennard_jones
t1, t2, o, ^=100, c=8
原子类型对 LJ 项
扭转
num_tors_add
可旋转键数(加性惩罚)
扭转
num_tors_sqr
可旋转键数(平方惩罚)
扭转
num_tors_sqrt
可旋转键数(平方根惩罚)
扭转
num_tors_div
可旋转键数(除法惩罚)
扭转
num_tors_div_simple
可旋转键数(简单除法)
配体属性
ligand_length
配体最大原子间距离
配体属性
num_ligands
配体数量
配体属性
num_heavy_atoms_div
重原子数(归一化)
配体属性
num_heavy_atoms
重原子数
配体属性
num_hydrophobic_atoms
疏水原子数
常数
constant_term
常数偏置项

3.7.4小分子对接引擎——运行速度对比(官方基准数据)

引擎
基准测试条件
单配体对接耗时
吞吐量
相对 Vina
数据来源
Vina 1.1.2
单 CPU 核心, exh=8
~1-5 min/ligand
1× (基准)
Trott & Olson, JCC 2010
Vina 1.2.7
单 CPU 核心, exh=8
~1-3 min/ligand
串行
~1×
AutoDock Vina 官方
Smina
单 CPU 核心, exh=8
~1-3 min/ligand (与 Vina 等同)
串行
~1×
Koes et al., JCIM 2013
Vina-GPU 1.0
NVIDIA RTX 3090, exh=8
~3-10 s/ligand
单配体
~14-42×
Tang et al., Molecules 2022
Vina-GPU 2.0
NVIDIA V100, exh=8
~1-5 s/ligand
~200-400 lig/min
~50-65×
Ding et al., Vina-GPU 2.0 2023
Vina-GPU 2.1
NVIDIA V100, exh=8
<1-3 s/ligand
~300-500 lig/min
~65-80×
Ding et al., bioRxiv 2023
QVina2-GPU
NVIDIA V100, exh=8
<1 s/ligand
~400-600 lig/min
~30-60×
Vina-GPU 2.0 套件
QVina-W-GPU
NVIDIA V100, 盲对接
~2-8 s/ligand (全表面搜索)
~100-200 lig/min
~30-50×
Vina-GPU 2.0 套件
Uni-Dock
NVIDIA V100, exh=32
CPU: ~1-3 min; GPU: <0.1 s
>10,000 lig/min (GPU batch)
>1600-2000×
Yu et al., JCTC 2023
UniDock-Pro
NVIDIA V100, exh=32
CPU: 仅 score/local; GPU: <0.1 s
>10,000 lig/min (GPU batch)
>1600×
DP Technology 官方

说明:以上数据为各引擎官方论文/README 中报告的典型基准值,实际运行时间因受体大小、配体柔性、exhaustiveness 设置和硬件而异。Vina-GPU 系列的加速比基于 OpenCL(跨厂商),Uni-Dock 的加速比基于 CUDA(仅 NVIDIA)。

3.7.5小分子对接引擎——搜索算法对比

引擎
全局搜索算法
局部优化
搜索策略特点
并行方式
Vina
ILS(迭代局部搜索)
BFGS 拟牛顿法
随机扰动 → BFGS 局部优化 → 接受/拒绝(Metropolis)
CPU 多线程(--cpu N
Smina
ILS(同 Vina)
BFGS(同 Vina)
同 Vina,支持额外约束项
CPU 多线程
Vina-GPU
ILS(同 Vina)
BFGS(GPU 化)
将单配体的多次独立 MC 运行映射到 GPU 线程
OpenCL 线程级并行
Vina-GPU+
ILS(同 Vina)
BFGS(GPU 化)
优化内核调度,减少 GPU 空闲时间
OpenCL 线程级并行
Vina-GPU 2.x
ILS(同 Vina)
BFGS(GPU 化)
双层并行:搜索步并行 + 配体并行
OpenCL 双层并行
QVina2-GPU
ILS + 提前终止
BFGS
首次成功停止策略:局部搜索找到足够好的构象后提前终止,减少冗余计算
OpenCL 并行
QVina-W-GPU
ILS + 空间分解
BFGS
搜索空间分解:将盒子切分为重叠子空间,各子空间独立搜索后时空整合
OpenCL 并行
Uni-Dock
ILS(同 Vina)
BFGS
CUDA 深度并行化:多配体 MC 映射到 GPU 线程块,单次调用处理数百配体
CUDA 线程块级并行
UniDock-Pro
ILS + 相似度引导
BFGS
参考配体约束注入搜索:shape overlap + 药效团匹配引导 MC 搜索
CUDA 线程块级并行
LKina
ILS(Vina 基线)+ AD4/Reactive 扩展
BFGS / L-BFGS 精化
标准 Vina 路径保持兼容;AD4 路径内联生成金属格点;共价模式加入距离/角度/帧原子约束与两阶段策略
CPU 多线程/串行批处理

关键差异总结: 1. Vina/Smina:纯 CPU,适合小规模精确对接 2. Vina-GPU 系列:OpenCL 加速,支持 NVIDIA/AMD/Intel GPU,适合中等规模筛选 3. QVina 系列:在 Vina 搜索策略上做了智能优化(提前停止/空间分解),速度显著提升 4. Uni-Dock / LK-UniDock:CUDA 深度优化,仅支持 NVIDIA GPU,批量筛选性能最强(>2000x 加速),LK-UniDock 重点解决跨平台源码补丁与预编译发行 5. LKina:面向金属配位与共价对接,继承 Vina 搜索框架并扩展 AD4/AG4、金属伪原子和 reactive 约束

3.8 LKina(金属 + 共价对接引擎)

✅ LKDock v3.0 的金属配位与共价对接核心引擎(AD4 路径)
GitHub:LK-Studio1128/LKina
Release v1.0.0:LK-Studio1128/LKina/releases/tag/v1.0.0

属性
全称
LKina v1.0 — Metal-Aware Reactive Molecular Docking Engine with Extended AutoDock4 Force Field
二进制名 LKina

(macOS / Linux)、LKina.exe(Windows)
版本
1.0.0
语言
C++14(基于 AutoDock Vina 1.2.7 扩展)
预编译二进制
macOS arm64 · Linux x86-64 · Windows x64,作为 Release assets 分发
许可证
GPL-3.0-or-later(合并二进制;Vina-origin 文件仍为 Apache-2.0,AG4 扩展文件为 GPL-3.0)
上游基线
AutoDock Vina 1.2.7(Apache-2.0)+ AutoGrid 4.2 参考(GPL-2.0-or-later)
开发者
LK-Studio1128(LKina contributors)
论文 LKINA.md

(项目仓库内置,含方法学、benchmark、Appendix A–F)
本地二进制路径
macOS:byi/LKina/build/mac/release/LKina;Linux:byi/LKina/build/linux/release/LKina;Windows/MSYS2:build/linux/release/LKina.exe或 Release assets 解压后使用

核心能力(相对 Vina 1.2.7 的扩展)

  • 113 AD4 原子类型 + 4 伪原子(TZ / SQ / MH / JT),覆盖 80+ 金属/类金属
  • 内联 AG4 格点生成:无需外部 autogrid4可执行文件
  • BVS 氧化态自动推断:Fe / Cu / Mn / Co / V / Mo / Ni 的 +2 / +3 / +4 / +6 自动识别
  • Jahn-Teller 变形模式:Cu²⁺(d⁹)、Mn³⁺(d⁴)拉长八面体
  • 半显式水桥候选位点:配位不饱和处的 M–O(water) 几何后处理评分
  • 响应式共价对接 P1–P4:距离约束 + 角度约束 + 帧原子扭转 + 混合 vdW 缩放
  • C3 两阶段策略:Phase-1 无约束 MC 预采样 → Phase-2 带约束 L-BFGS 精化
  • 6 种反应预设cys_michaelcys_sn2ser_covalentlys_targetingboronic_acidtyr_covalent
  • Metal Bias(O5):向受体金属中心注入软 Gaussian 吸引子,适合金属靶点快速筛选
  • 金属作为配体:reverse metal-donor pair potentials(参考 MetalDock standard_set
  • 完全向后兼容:对不含金属、不触发共价的标准受体,行为与 Vina 1.2.7 一致

典型 CLI

# 1. 标准 Vina 评分(与上游等价)
LKina --receptor rec.pdbqt --ligand lig.pdbqt \
      --center_x 0 --center_y 0 --center_z 0 \
      --size_x 20 --size_y 20 --size_z 20 --out out.pdbqt

# 2. 内联 AD4 + 自动金属识别(Zn 金属酶)
LKina --scoring ad4 --generate_maps \
      --receptor carbonic_anhydrase.pdbqt --ligand inhibitor.pdbqt \
      --center_x 14.68 --center_y 32.38 --center_z 10.64 \
      --size_x 25 --size_y 25 --size_z 25 --out out.pdbqt

# 3. Cys 迈克尔加成共价对接
LKina --scoring ad4 --generate_maps \
      --receptor egfr.pdbqt --ligand afatinib.pdbqt \
      --center_x 18.2 --center_y 54.1 --center_z 25.7 \
      --size_x 20 --size_y 20 --size_z 20 \
      --reactive_preset cys_michael \
      --reactive_rec_atom A:797:SG --reactive_lig_atom index:12 \
      --reactive_frame_atom A:797:CB --reactive_two_step --out out.pdbqt

许可证结构

文件
内容
作用
LICENSE
GPL-3.0 完整文本
合并作品主发行许可证
LICENSE.Apache-2.0
Apache-2.0 完整文本
Vina-origin 文件使用
COPYING
双层许可证 scope + 文件映射 + 第三方清单
导航与结构说明
NOTICE
Vina + AutoGrid4 + AutoDock4 参数 + MetalDock 归属
法律归属
  • Apache-2.0 ↔ GPL-3.0 兼容性:FSF 官方确认。
  • AutoGrid4 either version 2 of the License, or (at your option) any later version条款允许升级到 GPL-3.0。
  • 每个扩展源文件均带独立许可证头 + SPDX 标签 GPL-3.0-or-later


四、蛋白-蛋白对接(PPI)引擎

PPI 功能仅在 LKDock v3.0 中引入。

4.1 LightDock(Python)

属性
全称
LightDock
版本
v0.9.4
项目来源
LightDock 项目
许可证
GPLv3
开发者
Brian Jiménez-García 等
论文
Jiménez-García et al., Bioinformatics (2018)

功能:蛋白-蛋白、蛋白-肽、蛋白-DNA 对接 – 多种评分函数(DFIRE, DFIRE2, CPyDock, PISA, FastDFIRE 等) – 支持 ANM(各向异性网络模型)柔性对接 – 约束对接(残基限制) – 多核并行(MPI / multiprocessing) – Swarm 分布式搜索

算法:GSO(萤火虫群优化,Glowworm Swarm Optimization):全局搜索 – 搜索空间:在受体表面生成多个 swarm,每个 swarm 包含多个 glowworm – 每个 glowworm 携带一个 6D 刚体变换(3 平移 + 3 旋转用四元数表示) – ANM 模式下额外加入主链柔性自由度 – 局部优化通过评分函数梯度引导。

4.2 LKlight

✅ LKDock v3.0 当前首选 PPI 引擎(取代原 lightdock-rust
GitHub:LK-Studio1128/LKlight
Release:LK-Studio1128/LKlight/releases/tag/v1.0.0

属性
全称
LKlight v1.0
二进制名 LKlight
版本
1.0.0
语言
Rust stable
预编译二进制
macOS arm64 · Linux x86-64(static-pie)· Windows x86-64,作为 Release assets 分发
许可证
GPL-3.0-or-later(继承自 LightDock)
上游基线 lightdock-rust

(lightdock/lightdock-rust)
开发者
LK-Studio1128(基于 Brian Jiménez-García 等人的原始 LightDock)
论文 PAPER.md

(项目仓库内置)
本地二进制路径 byi/LKlight/target/release/LKlight

(源码编译)或 Release assets 解压后使用

主要功能

  • 12 类评分函数、13 个命令行方法名:dfire / fastdfire / dfire2 / dna / mj3h / pydock / cpydock / vdw / sd / pisa / sipper / tobi / ddna
  • ANM 柔性对接:各向异性网络模型,受体/配体分别支持多个模式向量
  • 对接类型:蛋白-蛋白、蛋白-肽、蛋白-DNA/RNA、抗体-抗原、跨膜蛋白
  • 约束对接:支持 restraints_file指定活性/被动残基限制
  • 单文件自包含二进制:无需 Python 环境或外部参数文件
  • 跨平台:macOS arm64 / Linux x86-64 / Windows x86-64

修复的上游 Bug(相对 lightdock-rust)

编号
问题
表现现象
修复方法
Fix 1
DFIRE/DFIRE2/dDNA 参数文件丢失崩溃
加载外部参数矩阵失败导致启动即 panic
全部参数矩阵编译期内嵌为 Rust const数组
Fix 2
ANM stride 计算错误
pisa/ddna/cpydock/sd 中 ANM 模式向量步进错误,越界读取
修正为 nmodes.len()/(3*n_modes),加边界保护
Fix 3
非标准残基 panic
DFIRE 对非标准 20 种氨基酸直接 panic
返回惩罚分 999 + 警告,不崩溃
Fix 4
ANM 原子数断言错误
assert_eq!(atom_count, anm_atoms)

将所有重原子与 Cα 混淆,一切 ANM 运行立即中止
删除错误断言

多层次性能优化

编号
优化项
涉及模块
简述
H1
rayon 并行化受体原子外循环
pydock/dna/cpydock/dfire/dfire2/sd
rayon::par_iter()

将能量计算并行化
H2
SIMD 友好热路径
全部评分模块
连续坐标数组、简化距离计算,利于 LLVM 自动向量化
F1
sqrt_vdw_charges

预计算
pydock/cpydock/sd/dna
消除热路径 sqrt()调用
F2
SD 9Å 空间哈希网格
sd.rs
O(N²)→O(N),板元 9Å,查询 27 个邻居板元
F3
BufWriter

I/O 批处理
swarm.rs
将逐行 write!()改为缓冲写,减少 syscall
F4
四元数返回栈分配
qt.rs
[f64;3]

替代 Vec<f64>
G1
Swarm 暂存缓冲区复用
swarm.rs
pos_scratch/rot_scratch

内存复用
G2
GSO 运动阶段并行
swarm.rs
movement_phase()

用 rayon::par_iter_mut()

评分函数完整列表(vs lightdock-rust)

评分函数
LKlight
lightdock-rust
类型
适用对接类型
dfire
统计势
蛋白-蛋白
fastdfire
统计势
蛋白-蛋白(默认)
dfire2
统计势(改进)
蛋白-蛋白
dna
静电+VdW(核酸专用)
蛋白-DNA/RNA
mj3h
接触势
蛋白-蛋白
pydock
静电+VdW
蛋白-蛋白
cpydock
✅(映射至 pydock)
静电+VdW
蛋白-蛋白
vdw
范德华力
蛋白-蛋白
sd
静电+VdW+网格
蛋白-蛋白
pisa
界面面积
蛋白-蛋白
sipper
界面残基倾向性
蛋白-蛋白
tobi
TOBI 接触势
蛋白-蛋白
ddna
静电+VdW(双链 DNA)
蛋白-DNA
合计 12 类评分函数 / 13 个命令行方法名 7 种(含映射)

基准测试数据(macOS arm64, Apple Silicon)

条件:swarm_0,200 glowworms,100 steps,n = 3 次均值

场景
Python LightDock
lightdock-rust
LKlight v1.0
vs Python
vs Rust
pydock(1PPE, 30Å)
858 ms
7693 ms
290 ms 3.0× 26.5×
dfire(1PPE)
840 ms
崩溃
33 ms 25.5×
N/A
cpydock(1PPE)
844 ms
7158 ms
44 ms 19.2× 163×
dna+ANM(1AZP)
760 ms
14142 ms
46 ms 16.5× 307×

LKDock v3.0 集成配置

CONFIG["ppi"]["engine"]              = "lklight"
CONFIG["ppi"]["lklight_exe"]         = "..."
CONFIG["ppi"]["lklight_concurrency"] = 0
  • GUI 引擎下拉框["lklight", "alphafold"],默认 lklight
  • 评分函数下拉框:auto / fastdfire / dfire / dfire2 / cpydock / dna / ddna / pisa / vdw / sipper / tobi / mj3h
  • 内存预算_ppi_engine_mem_profile()返回 ("lklight", 0.2 GB/任务)
  • 历史展示名兼容:保存的 "lightdock"引擎字符串加载时自动规范化为 "lklight"

4.3 ColabFold / AlphaFold2

属性
全称
ColabFold (LocalColabFold) / AlphaFold2
ColabFold 项目来源
ColabFold 项目
LocalColabFold 项目来源
LocalColabFold 项目
AlphaFold 项目来源
AlphaFold 项目
许可证
ColabFold: MIT;AlphaFold: Apache 2.0
开发者
ColabFold: Mirdita, Steinegger 等;AlphaFold: DeepMind
论文
Mirdita et al., Nature Methods (2022);Jumper et al., Nature (2021)

功能: 蛋白质结构预测(单体/多聚体) – AlphaFold2-Multimer:直接预测蛋白复合物结构 – ColabFold 封装 AlphaFold2 + MMseqs2 快速序列比对 – 支持 model_typenum_modelsnum_recycle参数 – 可作为 PPI 对接的”结构生成器”

算法: Evoformer:多层注意力网络处理 MSA(多序列比对)和 pair representation – Structure Module:迭代细化 3D 坐标 – Recycling:多轮迭代提升预测质量 – Multimer 模式:扩展 pair representation 支持链间交互 – MMseqs2 替代 Jackhmmer 加速序列搜索

安装:ColabFold需要使用conda安装,先安装conda软件(Miniforge3/Miniconda3/Anconda等)

conda create -n colabfold -c conda-forge -c bioconda python=3.13 kalign2=2.04 hhsuite=3.3.0 mmseqs2=18.8cc5c

conda activate colabfold

# With CUDA GPU support

pip install colabfold[alphafold,openmm] jax[cuda] openmm[cuda12]

# CPU only

pip install colabfold[alphafold,openmm]

# For colabfold_search only (no structure prediction)

pip install colabfold

4.4 PPI 引擎对比总表

引擎
版本
算法
柔性对接
GPU
评分函数数量
结构预测
LKDock v3.0 状态
LightDock
0.9.4
GSO (萤火虫群优化)
✅(ANM)
10+
历史支持
LightDock-Rust
master
GSO (同上)
7(含映射)
历史基线
LKlight 1.0.0 GSO + rayon 并行
✅(ANM)
12 类/13 方法名
✅ 首选
ColabFold/AF2
latest
深度学习(Evoformer)
N/A
N/A
备用/互补

对比说明:

LKlight vs LightDock-Rust:算法同源,但 LKlight 修复上游 Rust 基线问题,补齐 VDW/SD/PISA/SIPPER/TOBI/DDNA 等能力,并通过 rayon 并行和热路径优化显著提速。

LKlight vs ColabFold:定位不同。LKlight 是传统基于物理/统计势的 PPI 对接;ColabFold 是深度学习结构预测。ColabFold 可生成初始复合物结构,LKlight 可做后续精细化对接。

互补使用:支持 ColabFold 生成复合物 → LKlight 精化 → 综合分析

4.4.1 搜索算法与搜索空间

引擎
搜索算法
搜索空间表示
自由度
灵活性处理
LightDock (Python)
GSO(萤火虫群优化)
受体表面 swarm × glowworm
6D 刚体(3平移+3旋转四元数)+ ANM 模式
ANM(各向异性网络模型),rec/lig 各 10 模式
LightDock-Rust
GSO(同上)
同上
同上
同上(Rust 实现,历史基线)
LKlight
GSO(同上)+ rayon 并行
同上
同上
ANM 柔性 + 12 类评分函数 + 约束对接,当前首选
ColabFold/AF2
深度学习推理
序列空间 → 3D 结构
全原子(端到端预测)
隐式全柔性(网络学到的构象变化)

4.4.2 评分函数详细对比

(1)LightDock v0.9.4 (Python) 支持的评分函数(lightdock3 --listscoring实际输出):

评分函数
类型
适用对接类型
说明
fastdfire
统计势(距离依赖)
蛋白 – 蛋白(推荐默认)
DFIRE 的 NumPy 向量化实现,速度最快
dfire
统计势
蛋白 – 蛋白
原始 DFIRE 实现(逐原子对循环,较慢)
dfire2
统计势(改进)
蛋白 – 蛋白
DFIRE 改进版,更精细的距离分箱
pisa
界面面积
蛋白 – 蛋白
基于界面可及表面积变化(需 freesasa 或 BioPython SASA)
mj3h
接触势
蛋白 – 蛋白
Miyazawa-Jernigan 3 – 体接触势(读 MJ_potentials.dat)
tobi
统计势
蛋白 – 蛋白
Tobi & Bahar 统计势
cpydock
静电 + VdW
蛋白 – 蛋白
C 加速版 pyDock;使用 AMBER 电荷 + VdW 势
pydock
静电 + VdW
蛋白 – 蛋白
Python 原版 pyDock(cpydock 的非加速版)
vdw
范德华力
蛋白 – 蛋白
纯 VdW 势能评分(简化版,无静电)
dna
静电 + VdW(核酸专用)
蛋白 – DNA / 蛋白 – RNA
pyDock 框架的核酸适配版(AMBER DNA/RNA 参数)
sipper
界面残基倾向性
蛋白 – 蛋白
SIPPER 统计势(读 fort.21_xscore_noH_Met)
ddna
静电 + VdW(双链 DNA)
蛋白 – DNA
dna 评分的双链 DNA 变体(同读 fort.21_xscore_noH_Met)

评分函数包括:fastdfire / dfire / dfire2 / pisa / mj3h / tobi / cpydock / pydock / vdw / dna / sipper / ddna。

ddna 用于 DNA-DNA 体系,需手动选择;sipper 和 ddna 在标准残基以外(如 CYX/HID)时可能报 KeyError,属设计限制。

(2)LightDock-Rust 支持的评分函数(历史基线,_RUST_SCORING_SUPPORTED源码定义 + data/目录验证):

评分函数名
Rust 内部名
说明
dfire dfire
DFIRE 统计势(Rust 原生实现,速度极快)
fastdfire
→ 映射为 dfire
自动映射
dfire2 dfire2
DFIRE2 统计势
dna dna
核酸-蛋白专用
mj3h mj3h
MJ 接触势(依赖 MJ_potentials.dat
pydock pydock
pyDock 评分
cpydock
→ 映射为 pydock
自动映射

(3)LKlight v1.0 支持的评分函数 / 命令行方法名:

方法名
描述
dfire
DFIRE 统计势(参数内嵌)
fastdfire dfire

的兼容别名
dfire2
DFIRE2 统计势
dna
蛋白质-DNA/RNA 评分
pydock
PyDock 静电 + VdW
cpydock
cpyDOCK(含去溶剂化)
sd
CHARMM 力场(含切换函数)
vdw
纯 VdW
mj3h
MJ 接触势
pisa
PISA 溶剂化势
sipper
SIPPER 接触矩阵
tobi
TOBI 接触势
ddna
DNA 专用势

LKDock 评分自动选择逻辑(_ppi_get_scoring_function()): – protein-dnaprotein-rna→ dna– 其他所有类型(protein-protein / protein-peptide / membrane) → fastdfire

4.4.3 PPI 引擎运行速度对比(官方基准数据)

引擎
基准测试条件
单复合物对接耗时
相对加速比
数据来源
LightDock (Python)
单核, 400 swarms × 200 glowworms × 100 steps, fastdfire
~30-60 min/complex
1× (基准)
Jiménez-García et al., Bioinformatics 2018
LightDock (Python)
8 核 (-c 8), 同上
~5-15 min/complex
~4-6×
官方文档(线性并行)
LightDock-Rust
单线程, 10 swarms × 200 glowworms × 100 steps, dfire
~5 s/swarm
~10-30× vs Python 单核
官方教程实测(1281 原子受体,53 原子配体)
LKlight v1.0
macOS arm64, 1PPE pydock, 200 glowworms × 100 steps
290 ms/swarm 3.0× vs Python / 26.5× vs Rust 上游
LKlight README/PAPER 实测
LKlight v1.0
macOS arm64, 1PPE dfire, 200 glowworms × 100 steps
33 ms/swarm 25.5× vs Python
LKlight README/PAPER 实测
LKlight v1.0
macOS arm64, 1PPE cpydock, 200 glowworms × 100 steps
44 ms/swarm 19.2× vs Python / 163× vs Rust 上游
LKlight README/PAPER 实测
LKlight v1.0
macOS arm64, 1AZP dna+ANM, 200 glowworms × 100 steps
46 ms/swarm 16.5× vs Python / 307× vs Rust 上游
LKlight README/PAPER 实测
ColabFold/AF2
单 GPU (V100/A100), multimer_v3
~5-30 min/complex
N/A(不同范式)
Mirdita et al., Nature Methods 2022
ColabFold/AF2
服务器模式 (A100 × 4)
~1000 结构/天
N/A
ColabFold 官方

说明:LightDock/LKlight 运行时间与 swarms 数、glowworms 数、steps 数成正比。LKlight 的表中数据为单 swarm benchmark;完整任务耗时还取决于 swarm 数、外层并行、后处理与 I/O。ColabFold 时间主要取决于序列长度和 MSA 搜索。

4.4.4 PPI 对接参数对比

参数
LightDock
LightDock-Rust(历史)
LKlight v1.0
ColabFold/AF2
swarms(搜索群数)
可配置,默认按受体大小自动
同 LightDock
N/A
glowworms(每群萤火虫数)
可配置,默认 200
同 LightDock
N/A
steps(搜索步数)
可配置,默认 100
同 LightDock
N/A
scoring(评分函数)
6 种(预编译)/ 10+ 种(pip 全装)
7 种(含映射)
12 类/13 方法名
N/A
seed(随机种子)
✅ (默认 42)
✅ (af_random_seed)
flexible(柔性对接)
✅ ANM 模式
✅ ANM
隐式
restraints(约束)
✅ restraints_file
✅ restraints_file
membrane(膜模式)
✅ --membrane
✅(按 LKDock 配置传递)
cores / concurrency(并行)
✅ --cores
单进程
✅ lklight_concurrency/ rayon
GPU 推理
model_type
N/A
N/A
N/A
alphafold2_multimer_v3
num_models
N/A
N/A
N/A
可配置
num_recycle
N/A
N/A
N/A
可配置
top_n_poses


五、口袋预测工具

口袋预测功能仅在 LKDock v3.0 中引入。

5.1 P2Rank(改)

属性
原始全称
P2Rank
原始项目来源
P2Rank 项目
原始许可证
MIT
原始开发者
Krivak & Hoksza
原始论文
Krivak & Hoksza, J Cheminform (2018)
LKDock 实现
使用Python 改写,原始版本为 Java

功能: 从蛋白 3D 结构预测配体结合口袋;基于溶剂可及表面点的机器学习分类;支持 RandomForest 模型(random_forest_v4,sklearn);支持启发式打分(heuristic_v5,无需 sklearn);交叉验证评估 – 输出口袋中心坐标、残基列表、可信度评分。

算法:表面点采样:在蛋白溶剂可及表面和内腔生成候选点;特征提取:每个点计算局部特征(原子密度、极性/非极性比例、B-factor、二级结构、深度、DFG 相邻性等);分类:RandomForest 对每个点打分(配体结合概率);聚类:对高分点进行空间聚类(半径 cluster_radius);排序:按聚类内得分总和排名输出 top-N 口袋 ;v4 新增特征:pocket_depth(RF特征#1)、dfg_adjacenthinge_backbone_scoregatekeeper_smallnucleic_complex_filter; v4b 改进:分层交叉验证、内腔裂缝采样(project_interior_points()

5.2 fpocket(改)

属性
原始全称
fpocket
原始项目来源
fpocket 项目
原始许可证
MIT
原始开发者
Le Guilloux, Schmidtke, Tuffery
原始论文
Le Guilloux et al., BMC Bioinformatics (2009)
LKDock 实现
使用Python 改写,原始版本为C语言

功能: 基于几何方法的快速口袋检测 ;Voronoi 分割 + Alpha 球过滤;输出口袋 PDB/PQR/JSON/info 多种格式 ;持体积(蒙特卡洛)、凸包、SASA 计算

算法:Voronoi 镶嵌:对蛋白原子坐标进行 Delaunay 三角剖分 ;Alpha 球筛选:提取外接球半径在 [fpocket_min_alpha_radius, fpocket_max_alpha_radius]范围内的 Delaunay 四面体顶点;过滤:去除远离蛋白原子的球(fpocket_max_dist_to_protein),保留符合极性条件的球 ;聚类:对 alpha 球进行空间聚类(fpocket_min_cluster_size);口袋表征:计算每个聚类的体积、SASA、极性比例、平均 B-factor 等描述符;排序:综合打分后输出。


5.3 口袋预测对比总表

工具
原始语言
LKDock 实现
许可证
方法类型
核心算法
需要训练
速度
P2Rank(改)
Java
Python 内嵌
MIT
机器学习
RandomForest + 表面点特征
✅(RF模型)
中等
fpocket(改)
C
Python 内嵌
MIT
几何方法
Voronoi/Delaunay + Alpha 球

对比说明:

P2Rank(改) 依赖 scikit-learn,在有训练数据时精度更高(v4b top1_hit_rate_4Å = 0.5),但需要预训练 RF 模型

fpocket(改)纯几何方法,无需训练,速度快,适合快速筛查 ;两者均完全内嵌无外部二进制依赖 ;通过 对接配置中 backend参数切换

5.3.1特征/描述符对比

维度
P2Rank(改)
fpocket(改)
核心表示
溶剂可及表面点
Alpha 球(Delaunay 外接球)
特征数量
~20 维
~15 个口袋级描述符
点级特征
✅(每个表面点独立打分)
❌(Alpha 球是中间产物,最终按口袋统计)
口袋级描述符
聚类内得分统计
体积、SASA、极性比、密度、均值 B-factor
蛋白专属特征
✅(DFG、hinge、gatekeeper)
❌(纯几何,无序列知识)
深度特征
✅(pocket_depth)
间接(Alpha 球位置反映凹度)

5.3.2性能/准确率对比

指标
P2Rank(改)RF 模式
P2Rank(改)heuristic_v5
fpocket-like
速度(典型 ~300 残基蛋白)
中等(~5-15s)
快(~2-5s)
快(~1-3s)
需要 sklearn
需要 scipy
top1 命中率(4Å,内部测试)
50%(v4b, 2/4 evaluable)
未单独统计
未单独统计
对激酶活性位点
中等(ATP 口袋 ~20Å 偏移,训练数据有限)
类似
较好(几何方法对深凹较敏感)
对表面浅口袋
较好
中等
中等
可训练/优化
✅(可增加训练数据提升)
❌(固定启发式)
❌(固定几何参数)

5.3.3口袋预测工具深度对比

  • P2Rank(改)完整流程:
1. 解析蛋白结构(PDB/MMCIF)→ 提取蛋白原子
2. 溶剂可及表面点采样 + 内腔裂缝采样(project_interior_points)
3. 每个候选点计算 ~20 维局部特征:
   - atom_density_close(近距离原子密度)
   - atom_density_mid(中距离原子密度)  
   - polar_ratio(极性原子比例)
   - aromatic_ratio(芳香原子比例)
   - bfactor_mean(平均 B-factor)
   - secondary_structure_score(二级结构评分)
   - pocket_depth(口袋深度,v4 新增,RF 特征 #1
   - dfg_adjacent(DFG 基序邻近度,v4 新增)
   - hinge_backbone_score(铰链区骨架评分,v4 新增)
   - gatekeeper_small(看门人残基小型化,v4 新增)
   - nucleic_complex_filter(核酸复合物过滤,v4 新增)
   - shell_3_0 / shell_5_0 / shell_8_0(不同半径壳层原子数)
   - ...
4. RandomForest 分类器打分(random_forest_v4 模型)
   或 heuristic_v5 启发式打分(无 sklearn 时的备选)
5. 空间聚类(cluster_radius=3.5Å, min_cluster_size=7)
6. 口袋重排序指标:
   - 聚类内得分总和
   - zscore_threshold 过滤(-0.3)
   - prefer_deep_pocket 深口袋偏好
   - extended_pocket_cutoff 扩展口袋截断
7. 输出 top-N 口袋:中心坐标、盒子大小、残基列表、可信度
8. 可选:structure_profile.json/csv, residue_level.json/csv, view_pockets.pml/.cxc
  • fpocket-(改)完整流程:
1. 解析蛋白结构(PDB/MMCIF)→ 提取蛋白原子
2. Delaunay 三角剖分(scipy.spatial.Delaunay)
3. 计算每个四面体的外接球(circumsphere)
4. Alpha 球筛选:
   - 半径范围:[fpocket_min_alpha_radius, fpocket_max_alpha_radius](默认 3.4-6.2Å)
   - 距蛋白原子距离:≤ fpocket_max_dist_to_protein
   - 极性/非极性分类(基于顶点原子电负性)
5. 聚类(层次聚类,fpocket_clustering_method=single-linkage)
   - fpocket_cluster_distance=2.4Å
   - fpocket_min_cluster_size=15
6. 口袋构建(_fp_build_pockets):
   - 残基分配(alpha 球近邻蛋白原子所属残基)
   - MC 体积估算(fpocket_iterations_volume_mc=300)
   - 凸包体积
   - SASA 计算(极性/非极性分解)
   - Alpha 球密度过滤(min_as_density=0.7)
7. 标准化 + 综合打分 + 排序
8. 输出:PDB/PQR/JSON/info 多种格式

5.3.4口袋预测配置参数完整对照

参数
默认值
后端
说明
backend
“p2rank”
通用
后端选择:p2rank / fpocket
mode
“heuristic”
P2Rank
heuristic / rf(RandomForest)
heuristic_profile
“auto”
P2Rank
auto / heuristic_v5 / default
top_n
10
通用
输出口袋数量
select_rank
1
通用
自动选用第几名口袋作为对接盒子
min_cluster_size
7
P2Rank
最小聚类点数
cluster_radius
3.5
P2Rank
聚类半径(Å)
padding
4.0
通用
口袋→盒子 各方向填充(Å)
min_size
10.0
通用
盒子最小尺寸(Å)
max_size
40.0
通用
盒子最大尺寸(Å)
prefer_deep_pocket
True
P2Rank
偏好深口袋
interior_max_points
2800
P2Rank
内腔采样最大点数
interior_dedup_radius
1.0
P2Rank
内腔采样去重半径(Å)
zscore_threshold
-0.3
P2Rank
Z-score 过滤阈值
nucleic_filter
True
P2Rank
核酸复合物过滤
fpocket_min_alpha_radius
3.4
fpocket
Alpha 球最小半径(Å)
fpocket_max_alpha_radius
6.2
fpocket
Alpha 球最大半径(Å)
fpocket_min_cluster_size
15
fpocket
最小聚类 Alpha 球数
fpocket_cluster_distance
2.4
fpocket
聚类距离阈值(Å)
fpocket_clustering_method
“s”
fpocket
聚类方法(s=single, c=complete, a=average)
fpocket_distance_measure
“e”
fpocket
距离度量(e=euclidean)
fpocket_iterations_volume_mc
300
fpocket
MC 体积估算迭代次数
fpocket_min_as_density
0.7
fpocket
Alpha 球最低密度
fpocket_max_candidates
4000
fpocket
候选 Alpha 球上限

5.3.5 盒子生成功能对比

模式(box_mode)
v1.0
v2.0
v3.0
说明
覆盖率
✅ 0-100%
从 PDBQT 提取活性残基 → 计算初始盒子 → 迭代调整覆盖率
体积限制
✅ 27000ų 上限
等比缩放至 ≤27000ų
盒子体积
✅ 20-100
自定义设置盒子大小区间
默认盒子回落
所有方式失败时的回落
小分子边界
小分子/核酸受体自动切换分子边界成盒
残基指定
GUI 指定残基范围 → 提取坐标 → 计算盒子
柔性对接
指定柔性残基对接
自定义盒子
全局 center/size 或 per_receptor 专属自定义
口袋预测(pocket)
P2Rank(改)/ fpocket(改) → 自动生成盒子


六、各版本引擎集成一览

v1.0 引擎目录结构

./vina                    # AutoDock Vina 可执行文件(内置)

v2.0 引擎目录结构(./engine/)

engine/
├── vina127               # Vina 1.2.7
├── vina_split127         # Vina Split 1.2.7
├── smina                 # Smina (conda 安装)
├── Vina-GPU/             # Vina-GPU 1.0
│   ├── Vina-GPU.exe
│   ├── Vina-GPU-K.exe
│   ├── Kernel2_Opt.bin
│   └── OpenCL/
├── Vina-GPU+/            # Vina-GPU+ (v2.0系列)
│   ├── Vina-GPU+.exe
│   └── OpenCL/
├── Vina-GPU2/            # Vina-GPU 2.2
│   ├── Vina-GPU-v2.2.exe
│   ├── Kernel1_Opt.bin
│   ├── Kernel2_Opt.bin
│   └── OpenCL/
├── QVina2-GPU/           # QuickVina2-GPU
│   ├── Qvina2_GPU.exe
│   ├── Kernel2_Opt.bin
│   └── OpenCL/
└── QVina-W-GPU/          # QuickVina-W-GPU
    ├── QVina-W-GPU.exe
    ├── Kernel2_Opt.bin
    └── OpenCL/

v3.0 引擎目录结构(./engine/)

继承 v2.0 全部引擎,新增:

engine/
├── [v2.0 全部引擎...]
├── Uni-Dock _*             # Uni-Dock 跨平台二进制
├── UniDock-Pro_*           # UniDock-Pro 跨平台二进制
├── LK-UniDock/             # Uni-Dock / UniDock-Pro 补丁源码与预编译发行包
└── LKina                   # 金属 + 共价对接核心引擎

LKLight/                # PPI 引擎(独立目录)

LKlight / ColabFold / LKina系列引擎可按平台自行下载、源码编译或通过配置项指定路径。