TankBind(Trigonometry-Aware Neural networKs for Binding, NeurIPS 2022)走的是与直接回归坐标不同的路线:先预测蛋白-配体原子间的距离矩阵,再由距离矩阵通过优化重建三维姿势,同时输出一个亲和力预测。这种「先距离、后坐标」的思路借鉴自蛋白结构预测(AlphaFold 早期版本正是先预测距离图)。
部署
git clone https://github.com/luwei0917/TankBind.git
cd TankBind
conda env create -f environment.yml
conda activate tankbind
# 需先用 p2rank 做口袋检测,再按块推理
prank predict -f receptor.pdb -o p2rank_out/
python examples/inference.py # 参考仓库示例脚本组织输入
依赖 torch-geometric 与 p2rank(口袋检测)。环境搭建比 Vina 类工具重,建议按仓库 environment 文件严格复现。
分块口袋策略
TankBind 不做全蛋白盲对接,而是先用 p2rank 检测出若干候选口袋,把蛋白切成若干「块」,对每个块分别预测距离矩阵与亲和力,最后取亲和力最高的块作为预测结合位点。
- 好处:把大搜索空间拆成若干小问题,降低难度;同时天然给出「结合在哪个口袋」的答案。
- 代价:整体表现受口袋检测质量制约——如果 p2rank 没检出真实口袋,后面再准也没用。这是使用中最需要监控的一环。
- 实践建议:保留 top 3~5 个口袋一起算,而不是只信第一个;有共晶结构或已知位点时,直接指定口袋更可靠。
三角约束的作用
模型名里的 trigonometry-aware 指它在更新距离表示时引入了三角不等式约束(任意三点距离需自洽)。这让预测出的距离矩阵更接近一个几何上可实现的构型,重建坐标时更少出现自相矛盾的解。这是它相比朴素距离预测的关键改进。
实际表现与用法
- 姿势精度:在 PDBBind 类基准上优于 EquiBind,与 DiffDock 相比互有胜负,具体取决于评测划分与是否用 apo 结构。独立评测中,深度学习对接整体仍未稳定超过精心设置的传统对接。
- 亲和力输出是差异点:它同时给亲和力估计,而 DiffDock / EquiBind 不给。但这个预测的相关性有限,只适合粗排序,不能当定量结果。
- 速度:比传统对接快,比 EquiBind 慢,属中间档,适合十万级规模。
- 同样需要物理检查:重建出的坐标可能有键长键角问题,建议过 PoseBusters 并做能量最小化。
怎么放进流程
把它当作深度学习对接的一条独立技术路线做交叉验证最有价值:让 TankBind、DiffDock、GNINA 各跑一遍,看三者是否指向同一口袋、同一结合模式。三条不同原理的方法给出一致答案,可信度远高于任何单一方法的高分。
上手提示
- 它是「距离矩阵 → 坐标」路线,与直接回归坐标的 EquiBind 原理不同;
- 表现受口袋检测制约,保留 top 3~5 个口袋而非只信第一个;
- 它给亲和力估计是特色,但只够粗排序,不能当定量值;
- 最佳用法是作为独立路线,与 DiffDock / GNINA 交叉验证。