183

GNINA:GPU 加速 Docking 与 CNN 重打分

GNINA 在 Vina 谱系上加入 CNN 打分与 GPU 加速,适合在对接后做深度学习重排序。这篇给出命令、打分模式选择,以及 CNN 重打分真正能带来多少提升。

GNINA 由匹兹堡大学 Koes 组开发,是在 AutoDock Vina / smina 代码谱系上加入卷积神经网络打分的开源对接程序。它把配体-受体复合物体素化成 3D 网格,用 CNN 直接判断姿势好坏,再与经验打分结合。GPU 加速让这一步在实用速度内完成。

安装

# 最省事:官方预编译二进制
wget https://github.com/gnina/gnina/releases/latest/download/gnina
chmod +x gnina && ./gnina --version

# 或用 Docker(含 CUDA 环境)
docker pull gnina/gnina

自行编译需要 CUDA、libmolgrid、OpenBabel 等依赖,链条较长。除非要改源码,直接用二进制或容器。CPU 也能跑,但 CNN 打分会慢很多。

基本用法

# 用共晶配体自动定盒子,最省心
gnina -r receptor.pdb -l ligands.sdf \
      --autobox_ligand ref_ligand.sdf --autobox_add 4 \
      --exhaustiveness 16 --num_modes 9 --seed 42 \
      --cnn_scoring rescore -o out.sdf --log out.log

GNINA 相比 Vina 有两个直接的工程便利:直接读 PDB / SDF,不必转 PDBQT(省掉 Meeko 那一步),以及 --autobox_ligand 自动按参考配体定盒子,消除了手工填坐标这个高频错误源。

四种 CNN 打分模式

模式 行为 速度 建议
none 只用经验打分(等价 smina) 最快 超大库初筛
rescore 经验打分搜索,CNN 只对最终姿势重打分 默认推荐,性价比最高
refinement CNN 参与姿势精修 慢约 10 倍 少量重点分子
all 全程 CNN 参与搜索 最慢 研究用途

怎么读输出的三个分数

  • minimizedAffinity:Vina 类经验打分,kcal/mol,越负越好。
  • CNNscore:CNN 判断该姿势「像不像真实结合姿势」的概率,0~1,越大越好。它评价的是姿势可信度,不是亲和力。
  • CNNaffinity:CNN 预测的亲和力(pK 尺度),越大越好。

三者含义不同,别混用。常见做法是先按 CNNscore 过滤掉姿势不可信的结果,再在剩下的里按 CNNaffinity 或经验打分排序。

CNN 重打分到底值不值

  • 姿势预测确有提升:在 PDBbind 类基准上,GNINA 的 CNN 重打分把 top-1 姿势 RMSD ≤ 2 Å 的成功率较纯 Vina 提高了可观的幅度,这是它最扎实的收益。
  • 亲和力排序提升有限:虚拟筛选富集度的改善因靶点而异,有些体系明显、有些几乎没有。不要预期它能解决打分函数的根本问题
  • 存在训练集偏置:CNN 在 PDBbind 等结构数据上训练,对与训练分布相近的体系表现更好,对新颖化学型或罕见靶点家族要谨慎。
  • 务实用法:Vina/smina 快速初筛 → GNINA rescore 重排 top 5~10% → 对最终候选上 MM/GBSA 或 FEP。逐级精化,成本和精度都可控。

上手提示

  • 直接读 PDB/SDF + --autobox_ligand,比 Vina 少踩两个坑;
  • 默认用 --cnn_scoring rescore,性价比最好;
  • 分清 CNNscore(姿势可信度)与 CNNaffinity(亲和力预测),别混用;
  • 它主要改善姿势预测,对富集度的提升因靶点而异,需自行验证。

延伸资源