Uni-Mol Docking V2 是深势科技在 Uni-Mol 表示基础上的对接专用版本。它针对第一代深度学习对接方法最被诟病的问题——生成姿势物理上不合理——做了系统性改进,是这条路线里对「可用性」考虑得比较周到的一个。
部署
git clone https://github.com/deepmodeling/Uni-Mol.git
cd Uni-Mol/unimol_docking_v2
pip install -e .
python interface/demo.py \
--mode single --conf-size 10 --cluster \
--input-protein receptor.pdb --input-ligand ligand.sdf \
--input-docking-grid grid.json \
--output-ligand-name out --output-ligand-dir predict_sdf \
--model-dir ckpt/unimol_docking_v2.pt
需要 GPU 与预训练权重。输入需给出对接盒子(grid.json),属于口袋已知的定向对接,而非 DiffDock 那样的盲对接。
相比第一代改了什么
- 物理合理性约束:显式处理键长、键角、空间冲突,大幅降低了生成畸变结构的比例。在 PoseBusters 这类物理有效性检查上的通过率是它的主要卖点。
- 更大更干净的训练数据:扩充了训练复合物并做了更严格的数据清洗与去冗余。
- 构象采样 + 聚类:
--conf-size生成多个候选构象再聚类,缓解单次预测的偶然性。
放在整个方法谱系里
| 方法 | 范式 | 需要口袋 | 主要短板 |
|---|---|---|---|
| AutoDock Vina | 物理打分 + 搜索 | 是 | 打分与实测相关性弱 |
| GNINA | 搜索 + CNN 重打分 | 是 | 训练分布偏置 |
| EquiBind | 一步回归坐标 | 否 | 精度低、姿势畸变 |
| DiffDock | 扩散生成 | 否 | 物理合理性、apo 结构上下降 |
| Uni-Mol Docking V2 | 预训练表示 + 约束生成 | 是 | 需已知口袋、依赖权重与算力 |
怎么评估要不要用
- 先用自家体系重对接验证:拿几个内部靶点的共晶结构做重对接,看 RMSD ≤ 2 Å 的比例,和 Vina/GNINA 直接对比。官方基准成绩不能替代自家验证——训练集覆盖度不同,结论可能反转。
- 务必检查物理有效性:即使它在这方面有改进,也要过一遍 PoseBusters,把不合格的姿势剔掉再分析。
- 它不解决亲和力排序:和其它深度学习对接一样,姿势预测和结合强度排序是两回事,虚拟筛选的富集度仍需单独评估。
- 成本核算:GPU 推理成本高于 Vina,超大规模筛选时通常放在第二级精化,而非第一道筛。
上手提示
- 它的核心改进是姿势的物理合理性,这正是前代方法最弱的一环;
- 需要指定口袋,不是盲对接,定位与 Vina 更接近;
- 选型必须拿自家靶点做重对接对比,别只看公开基准;
- 姿势准 ≠ 排序准,虚拟筛选富集度要单独验证。
延伸资源
- 表示模型本体:187《Uni-Mol》;教程:022《Uni-Mol 教程》;
- 对照方法:182《AutoDock Vina》、183《GNINA》、184《DiffDock》、186《TankBind》;
- 对接评测方法学:096《Binding Pose》、169《Benchmark 陷阱》。