DiffDock:用扩散模型解决分子对接任务
背景
本文开源代码地址:https://github.com/gcorso/DiffDock
DiffDock: Diffusion Steps, Twists, and Turns for Molecular Docking 是MIT研究人员发表在ICLR 2023的一项工作,作者创新性的将分子对接(molecular docking)任务看作生成问题,然后用扩散模型来处理。
分子对接
分子对接指的是配体(ligand, 比如类药物分子)如何与受体(protein, 靶蛋白,生物大分子)相互作用并形成复合物(比如药物结合,drug binding),是药物设计的重要环节。
根据口袋(pocket)是否已知,分子对接又可以分为两类:
known pocket (口袋已知): binding pocket是已知的,也就是配体和受体结合的位置(position)已知, 只需要预测配体取向(orientation)和配体构象(conformation) blind docking (盲对接): 口袋未知,需要预测配体的结合位置、配体取向和配体构象,也就是预测ligand pose
// 不论哪种方法,我们都假设受体构象已知且固定不变,不需要在训练过程中预测。
传统的分子对接方法基于检索和打分函数(score function),首先是搜索配体和受体可能的结合模式(位置、配体在口袋内的取向、配体构象),候选集可能非常大(百万级),然后对候选结合模式(复合物)打分。近期把分子对接看作回归问题来处理的方案逐渐增多,虽然相比传统方法速度提升很多,但是准确性并没有提升。
本文作者创新性的把分子对接看作生成任务,具体来说,配体初始状态(位置、构象等)是随机的,然后逐渐改变位置、方向和构象,最后和受体完美结合。
具体来说,模型输入是受体3D结构和随机的配体的3D构象,预测配体的位置、取向和构象。
假设配体有n个原子,那么最后预测的实际上是每个原子的3维坐标,也就是要预测3n个值。
但是考虑到空间很大,这么看来预测难度很高啊,实际上,没那么复杂,这里需要引入一定的分子知识,作者认为只需要预测个值即可:
3维的平移(translation)信息 3维的旋转(rotation)信息 分子的构象受到torsion angles(旋转角,二面角)影响,其余的部分是固定不变的,假设有m个torsion angle,对应m个rotatble bonds
DiffDock
现在已经确定,每一次需要预测的是个值,作者进一步分析,将其分为3个扩散过程:
配体中心需要平移(translation)的量 配体中心需要旋转(rotation)的量 配体中每个二面角(torsion angles)需要改变的量
分别预测3, 3, 个值。
剩下的就是常规的SDE流程了:
实验效果确实很可以: