DiffDock
DiffDock 是一种用于分子对接的深度学习模型,它基于扩散生成模型,在不知道结合口袋位置的条件下预测小分子配体与蛋白质结合时的三维构象。该模型由麻省理工学院的研究者提出,把对接视为对配体构象分布的生成问题,在 2023 年发表于国际学习表征会议。它在 PDBBind 基准上的 top-1 成功率为 38%,高于传统搜索方法和此前的深度学习方法,并提供可用于筛选候选构象的置信度评分。
定义
DiffDock 是一种面向分子对接任务的扩散生成式深度学习模型,输入为蛋白质的三维结构和一个小分子配体的化学结构,输出该配体与蛋白质结合时的空间位置、朝向与内部构象[1]。它处理的是所谓的盲对接问题,即模型在推理时不接收任何关于结合口袋坐标的先验信息,需要在整条蛋白质链上自行确定配体可能停靠的位置[2]。
与其配套的是一个独立的置信度模型,用来对生成的多组候选构象打分并排序,使使用者可以按可信程度挑选构象[3]。一般认为分子对接是药物设计中确定小分子如何与靶标蛋白结合的关键步骤,DiffDock 的意义在于把这一任务从回归式的一次性预测改写为对构象分布的采样问题[4]。
原理
分子对接的自由度并不等同于配体的全部原子坐标。若配体有 $n$ 个原子、$m$ 个可旋转键,其构象空间是一个 $(m+6)$ 维的流形,可由平移、旋转和扭转三类变换参数化[5]。DiffDock 把这组允许的构象变换对应的群映射到乘积空间 $\mathbb{R}^3 \times SO(3) \times \mathbb{T}^m$,其中 $\mathbb{R}^3$ 表示配体相对蛋白的位置,$SO(3)$ 表示朝向,$\mathbb{T}^m$ 表示 $m$ 个扭转角构成的环面,并在该空间上构造扩散过程[6]。
模型的学习目标是分布的分数函数,即对数密度的梯度。前向过程逐步向真实构象加入噪声,反向过程则从无信息的噪声先验出发,通过学习到的分数逐步去噪,最终把随机初始构象细化成一组候选结合构象[5]。这一做法与把对接当作回归的做法不同:回归模型倾向于给出误差平方意义下的平均解,而扩散采样可以覆盖多个可能模态[6]。
网络结构上,分数模型采用消息传递的异质图架构,蛋白以 Cα 原子为节点并引入 ESM-2 语言模型嵌入,配体以重原子为节点并附加理化特征,边按节点类型与扩散时间设定的距离阈值连接,交互层与输出层使用张量积卷积以保证对旋转、平移的等变性。置信度模型以全原子表示作为输入,训练时用分数模型对训练样本生成构象、并按均方根偏差是否低于 2 埃打标签,再以交叉熵损失学习判断构象是否正确。
flowchart LR
P[蛋白质结构] --> E[图神经网络分数模型]
L[配体化学结构] --> E
E --> D[反向扩散采样]
D --> S[多组候选构象]
S --> C[置信度模型排序]
C --> O[排序后的结合构象]
发展历程
相关研究最早以预印本形式公布于 2022 年 10 月,题目为《DiffDock: Diffusion Steps, Twists, and Turns for Molecular Docking》[7]。作者为 Gabriele Corso、Hannes Stärk、Bowen Jing、Regina Barzilay 与 Tommi Jaakkola,均隶属麻省理工学院的计算机科学与人工智能实验室[5]。该工作随后发表于 2023 年举行的国际学习表征会议(ICLR 2023)[1]。
代码于 2022 年 10 月在 GitHub 发布,同年 12 月起在 Hugging Face 上提供在线试用界面[3]。此后作者团队推出改进版本 DiffDock-L,相关论文为《Deep Confident Steps to New Pockets: Strategies for Docking Generalization》,通过扩充训练数据、增大模型规模以及合成数据增强提升盲对接精度[8]。该论文同时提出以蛋白质结构域划分训练集与测试集的 DockGen 基准,用于评估模型在未见过的结合口袋上的泛化能力[9]。
围绕原始架构还衍生出若干变体,例如面向已知口袋的 DiffDock-Pocket 引入侧链柔性建模[10],以及与物理打分函数结合的混合流程 DiffDock-Glide。英伟达在其生物分子模型框架中重新训练并提供 DiffDock 的推理实现,采用 PLINDER 数据集训练,供商业与非商业用途调用[11]。
应用
该模型的主要用途是预测小分子配体与靶标蛋白的结合构象,服务于药物发现早期阶段的化合物评估,使用者包括计算化学、生物信息学与药物研发方向的研究人员[11]。在基于结构的虚拟筛选中,可先用模型对大量候选分子批量生成构象,再结合打分函数或分子力学优化做进一步排序[12]。
由于盲对接不需要预先指定口袋,该模型也用于在缺乏口袋注释的蛋白结构上寻找可能的结合位点;有研究将其视为一种配体特异的潜在口袋探测手段。此外,DiffDock 常被当作基线与新方法比较,例如在别构化合物预测、共折叠模型对比以及构象物理合理性评估等研究中作为对照工具。
局限
在原始的 PDBBind 时间分割测试集上,DiffDock 的 top-1 成功率约为 38%,意味着多数复合物并未在首位预测中达到 2 埃以内的均方根偏差[1]。后续的独立评测显示,生成构象的物理有效性偏低:在一组 303 个复合物的盲对接基准中,DiffDock 与 smina 组合流程的原始生成构象仅有 24.4% 通过 PoseBusters 有效性检查,而传统搜索方法 AutoDock Vina 为 99.6%[13]。同一评测中,首位构象同时满足有效且接近晶体结构的比例为 43.6%,局部优化可以修复有效性,却无法挽回整体位置错误的结合模式[13]。
蛋白质柔性未被显式建模。扩散过程中蛋白被视为刚性图,侧链柔性只在嵌入中被隐式反映,而非被采样,因此在结合伴随较大构象变化或蛋白高度柔性时容易失败[14]。辅助因子如血红素、金属离子也只有在作为蛋白图输入的一部分时才会被考虑[14]。
泛化能力是另一个受关注的问题。DockGen 基准显示,模型对分布之外的结合口袋难以给出正确构象。在激酶别构配体的测试中,基线模型常把别构配体错误地放置到正构口袋,反映出训练数据中结合模式分布不均衡带来的偏差。另外,置信度分数并不等同于结合亲和力,它只反映构象与晶体结构接近的可能性,而且在跨蛋白的统一阈值设定上难以成立。
计算资源方面,过大的复合物可能导致显存不足,推理时也需权衡采样构象数量与耗时[14]。有研究指出,仅对置信度最高的单一构象进行后续打分效果有限,增加采样数量可提高打分能力,但排序能力变化不大。
参见
参考资料
- nsf.gov 上的网页 [引用日期2026-10-29]
- zenodo.org 上的网页 [引用日期2026-10-29]
- mit / diffdock [引用日期2026-10-29]
- neurips.cc 上的网页 [引用日期2026-10-29]
- DiffDock: Diffusion Steps, Twists, [引用日期2026-10-29]
- DiffDock [引用日期2026-10-29]
- itp.ac.cn 上的网页 [引用日期2026-10-29]
- README [引用日期2026-10-29]
- DiffDock, but better [引用日期2026-10-29]
- mlsb.io 上的 PDF 文件 [引用日期2026-10-29]
- diffdock Model by MIT | NVIDIA NIM - Model Overview [引用日期2026-10-29]
- NSTL国家科技图书文献中心 [引用日期2026-10-29]
- zenodo.org 上的网页 [引用日期2026-10-29]
- confidence_and_limitations [引用日期2026-10-29]