最近在一些分子生成或者对接模型中,出现了新的评估方法 PoseBusters,用于评估生成的分子或者对接的分子是否符合化学有效性和物理合理性。以往的分子生成,经常以生成分子的有效性、新颖性、化学空间分布,与口袋的结合力等方面进行评估,但是生成分子的构象合理性问题,一直没有直接简单的工具。PoseBusters 补足了这一点。PoseBusters 最初作者是对深度学习对接方法生成的分子的评估,现在也逐渐被使用到分子生成领域。
下面介绍一下 PoseBusters 的文章,然后进行评测。
一、背景介绍
PoseBusters 是一个基于 RDKit 的 Python 包,通过一系列标准检查配体对接姿势的化学有效性和物理合理性。来源于牛津大学统计学系 Martin Buttenschoen、Garrett M. Morris 和 Charlotte M. Deane 合作的文章:《PoseBusters: AI-based docking methods fail to generate physically valid poses or generalise to novel sequences》。文章链接:https://pubs.rsc.org/en/content/articlelanding/2024/sc/d3sc04185a。
该文章于2023年12月13日发表在《Chemical Science》期刊上,2023年11月出现在 arxiv 上。
深度学习方法预测的对接姿势在 RMSD 上已经取得良好的表现,但会产生一些不合理的分子 pose 。所以本研究选择了 5 种基于深度学习的对接方法 (DeepDock,DiffDock,EquiBind,TankBind 和 Uni-Mol) 和 2 种标准对接方法 (AutoDock Vina 和 Gold) ,评估它们在是否使用力场优化的场景下,通过 PoseBusters 比较了上述5种方法在化学有效性和物理合理性方面的表现。结果表明,深度学习的对接方法在物理合理性方面的表现不如标准对接方法。
总的来说,PoseBusters 是一个分析小分子 (对接) 结构是否符合物理合理性的工具 ,输入对接构象。在没有蛋白结构输入的场景下,输出小分子 (对接) 结构在化学有效性和分子内特性等方面的评估结果 ; 在有蛋白结构输入的场景下,输出会增加 (对接) 结构和蛋白的分子间相互作用评估结果。当然,PoseBusters 也可以对分子生成的分子进行评估。
二、评估介绍
2.1 对接方法&参数设置
在 5 种深度学习的对接方法中,DeepDock 基于配体重原子和结合口袋表面网格点之间的距离可能性学习统计势。DiffDock 在扩散过程中使用等变图神经网络进行全局对接(盲对接)。EquiBind 使用等变图神经网络进行盲对接。TankBind 也是一种盲对接方法,使用三角感知神经网络在口袋预测方法输出的每个口袋中进行对接。Uni-Mol 使用 SE3 等变 transformer 进行对接。
这 5 种深度学习对接方法在开发时的训练数据和测试数据有所差异(注意,不是下文中对比5种深度学习方法的数据集)。DeepDock 使用的是 PDBBind 2019 General Set 作为训练集(剔除了 CASF-2016 数据),共包含16367 个复合物体系。DiffDock 和 EquiBind 训练集使用的是 PDBbind 2020 General Set 中 2019 年前的复合物体系,共包含 17347 个复合物体系。TankBind 使用 PDBbind 2020 General Set 中 2019 年前的复合物体系,剔除在预处理失败的复合物体系,共包含 18755 个复合物体系。Uni-Mol 也使用 PDBbind 2020 General Set ,把其中蛋白质序列和 CASF-2016 相似度超过 40% 且配体指纹相似度超过 80% 的复合物体系剔除,共包含 18404 个复合物体系。
在使用 PoseBusters 对上述 5 种深度学习对接方法和 2 种传统对接方法的评测过程中,作者为每种方法都定义了搜索空间。Gold 的对接范围是以小分子重原子的几何中心,半径为 25 Å 的球。 Vina 的对接范围是以小分子重原子的几何中心,边长为25 Å 的立方体。 DeepDock 和 Uni-Mol 需要定义结合位点,而 DiffDock、EquiBind 和 TankBind 是盲对接方法。DeepDock 的对接范围是任意配体原子 10 Å 以内的蛋白质表面网络节点形成的空间。Uni-mol 的对接范围是任意配体重原子 8 Å 以内的蛋白质残基构成的范围。DiffDock 搜索整个蛋白。EquiBind 搜索任意配体重原子 10 Å 以内的蛋白质链。TankBind 使用 P2Rank 识别对接口袋。所有配置如下表。
2.2 PoseBusters 的测试套件
在评测之前,先介绍 PoseBusters 方法的测试内容。
PoseBusters 是作者在这一篇文章中,提出的,检验对接结果在化学有效性和物理合理性的方法。作者同时,将该方法,包装成了一个 python 的 package,可以通过 pip 快速安装。
PoseBusters 的测试套件分成三组测试:化学有效性和一致性检查( Chemical validity and consistency)、分子内特性检查( Intramolecular validity)、分子间相互作用检查( Intermolecular validity)。
第一组是化学有效性和一致性检查( Chemical validity and consistency) ,从结构是否有效,化学式、手性、化学键是否与真实分子相同进行检查。具体包括:加载分子成RDKit对象(File Loads); 对分子进行RDKit化学清洁检查(Sanitisation); 输入分子与真实分子的化学式是否相同检查(Molecular formula);输入分子与真实分子的化学键是否相同检查(Bonds);输入分子中指定的手性是否与真实分子相同(Tetrahedral chirality);输入分子中指定的双键立体化学是否与真实分子相同(Double bond stereochemistry)。
第二组:分子内特性检查( Intramolecular validity),测试配体几何结构和使用通用力场 (UFF) 计算的配体构象能量,用于评估对接生成的分子构象是否合理,即物理合理性。具体包括:输入分子的键长和键角在是否在设定的下限的0.75倍和上限的1.25倍之间(Bond lengths , Bond angles); 芳香五元环和六元环的所有原子在最接近的共面内距离是否超过 0.25 Å(Planar aromatic rings); 碳-碳双键的两个碳及其四个相邻原子在最接近的共面内距离是否超过0.25 Å(Planar double bonds); 非共价键结合原子对之间的原子间距离是否超过距离几何确定的下限的0.7倍(Internal steric clash); 输入分子的计算能量不超过为其生成的50个构象集合的平均能量的100倍。能量使用 RDKit 中的 UFF 计算,构象使用 ETKDGv3 生成,随后进行 UFF 的力场松弛,最多迭代200次(Energy ratio)。
第三组:分子间相互作用检查(Intermolecular validity),检查蛋白质-配体和配体-辅因子冲突。具体包括:配体和蛋白质原子对之间的距离大于它们范德华半径和的0.75倍(Minimum protein–ligand distance , Minimum distance to organic cofactors); 配体与无机辅因子(o inorganic cofactors)原子之间的距离大于它们共价半径和的0.75倍(Minimum distance to inorganic cofactors); 配体与蛋白质体积、有机辅因子相交的部分少于 7.5% 。这些体积由重原子周围的范德华半径定义,缩放系数为 0.8(Volume overlap with protein , Volume overlap with organic cofactors); 配体与无机辅因子体积相交的部分少于7.5%。这些体积由重原子周围的范德华半径定义,缩放系数为0.5(Volume overlap with inorganic cofactors)。
通过所有测试的分子构象称作 “PB-Valid” 分子。所有具体的测试内容如下表所示:
2.3 对比对接方法使用的测试集
评估过程中作者使用到两个测试集。Astex Diverse Set 是 2007 年发布人工挑选的测试集,共包含 85 对蛋白质-配体复合物,和深度学习方法的训练集数据有部分重合。PoseBusters Benchmark Set 是一个新的测试集,包含 2021 年以来发布的 308 个蛋白质-配体复合物,和训练集数据没有重合。
三、评估结果
作者分别从不使用力场优化和使用力场优化的两种场景,对上述5种深度学习对接方法和2种传统对接方法,使用他们自己开发的 PoseBusters 工具,从 RMSD 和物理合理性、方法的泛化表现等角度进行了性能比较分析。
3.1 不使用力场优化构象的结果
在 Astex Diverse Set 上,从 RMSD 来看,DiffDock(72%)的表现是最好的,但考虑到 PB-Valid,表现最好的三种方法是 Gold(64%),AutoDock Vina(56%)和 DiffDock(47%)。在 PoseBusters Benchmark set 上,无论是否考虑 PB-validity,Gold 和AutoDock Vina 在七种方法中都是表现最佳的,如下图所示。因为 PoseBusters Benchmark set 数据集是 2021 年以来发布的 308 个蛋白质-配体复合物,完全不包含 DiffDock 等模型的训练集,这种表现与他们文章中的报道的数据有很大的差距,这说明 DiffDock 等模型有较大的过拟合情况。
总的来说,当考虑物理合理性时,深度学习的对接方法的表现是不如传统对接方法的。但具体来看,每种方法有各自的优点和局限性。比如下图是 TankBind 在 Astex Diverse set 上每项测试的通过情况,可以看出 RMSD 较大、四面体手性改变和蛋白质-配体原子的最小距离过近(发生碰撞)是整体表现较差的三个主要原因(如下图)。这些局限性也为后续改进提供了参考。
为进一步探究这些方法的泛化表现,作者把 PoseBusters 测试集按照和训练集的最大序列相似度划分为三类,序列相似度分别为0~30%,30~95%,95~100% 。如下图所示,传统方法在三个蛋白相似度区间上通过 RMSD 和 PB-Valid 检测的占比都在 60% 左右,表现相当,说明传统的对接方法具有较好的统一性,不依赖训练数据(当然,他们是物理模型方法)。而深度学习的方法在序列相似度较低的蛋白(例如:序列相似度为 0~30%)上通过的比例都在 2% 以下,表现较差,这表明深度学习方法存在过拟合现象。
作者还按照复合物中是否包含辅因子分层,发现当辅因子存在时,传统方法表现仍好于深度学习方法。
3.2 使用力场优化构象的结果
为使产生的对接结果更加合理,进行额外的能量最小化。能量最小化虽然能改善深度学习方法的 RMSD 和 物理合理性(PB-Valid)表现,但仍不如传统(Gold 和 Vina)方法。例如,下图中,RMSD小于2Å的比例,Gold 和 Vina 都能接近或者超过50%, 但深度学习方法普遍小于30%。处理前后的情况如下图所示:
四、代码测评
4.1 环境安装
复制项目代码:
git clone https://github.com/maabuu/posebusters.git
创建环境,安装 posebusters 环境。
posebusters 的安装方法非常简单,直接 pip 安装即可。
conda create -n PoseBusters python=3.10
conda activate Posebusters
安装 posebusters
pip install Posebusters
4.2 posebusters 使用方法
在该项目GitHub中,作者提供了一些小分子、蛋白及其对接的小分子结构的测试案例,保存在 ./posebusters/tests/conftest :
cd ./posebusters/tests/conftest
4.2.1 对小分子结构进行检查
只有小分子(对接)结构作为输入,检查分子的化学有效性和分子内特性
bust ./1OF6_DTY/1OF6_DTY_vina.sdf --outfmt long
其中,./1OF6_DTY/1OF6_DTY_vina.sdf 包含了14 个3D 的分子,来源于 Vina 对接的结果。--outfmt long 让模型输出每一个分子的每一项检测的结果。
运行输出:
Long summary for 1OF6_DTY/1OF6_DTY_vina.sdf mol_at_pos_0
MOL_PRED loaded .
Sanitization .
All atoms connected .
Bond lengths .
Bond angles .
Internal steric clash .
Aromatic ring flatness .
Double bond flatness .
Internal energy .
Long summary for 1OF6_DTY/1OF6_DTY_vina.sdf mol_at_pos_1
MOL_PRED loaded .
Sanitization .
All atoms connected .
Bond lengths .
Bond angles .
Internal steric clash .
Aromatic ring flatness .
Double bond flatness .
Internal energy .
···
可以看到,PoseBusters 对上述14个分子逐个进行检查。例如:1OF6_DTY_vina.sdf 中的第一个对接构象 pose_0,所有的测试项目均为 . ,意味着测试通过。
如果对应的测试项没有通过检查,会用 Fail 标注出来,输出例如下:
MOL_PRED loaded .
Sanitization .
All atoms connected .
Bond lengths Fail
Bond angles Fail
Internal steric clash .
Aromatic ring flatness .
Double bond flatness .
Internal energy Fail
如果要将测试结果写入csv格式。可以添加 --outfmt csv --out results ,分别指定格式和文件名,将测试结果输入到 name.csv文件中。完整命令如下:
bust ./1OF6_DTY/1OF6_DTY_vina.sdf \--outfmt csv \--out results
输出表格截图如下:
4.2.2 对口袋-小分子进行检查
蛋白质口袋和小分子 (对接) 结构作为输入,检查小分子的化学有效性,分子内特性以及分子间相互作用,命令如下:
bust ./7ZTL_BCN/7ZTL_BCN_ligands.sdf -p ./7ZTL_BCN/7ZTL_BCN_protein.pdb --outfmt long
返回结果中,各项测试全部通过,返回结果如下:
Long summary for 7ZTL_BCN/7ZTL_BCN_ligands.sdf 7ZTL_BCN_A_506
MOL_PRED loaded .
MOL_COND loaded .
Sanitization .
All atoms connected .
Bond lengths .
Bond angles .
Internal steric clash .
Aromatic ring flatness .
Double bond flatness .
Internal energy .
Protein-ligand maximum distance .
Minimum distance to protein .
Minimum distance to organic cofactors .
Minimum distance to inorganic cofactors .
Minimum distance to waters .
Volume overlap with protein .
Volume overlap with organic cofactors .
Volume overlap with inorganic cofactors .
Volume overlap with waters .
更多 PoseBusters 的使用教程,可以参考:https://posebusters.readthedocs.io/en/latest/
五、总结
1. 作者提出了 PoseBusters 测试套件提出了一个新的“PB-valid”来评价对接方法,不仅考虑 RMSD,也考虑物理合理性
2. 使用 PoseBusters 评测现有的对接方法,发现没有基于深度学习的方法能同时在 RMSD 和物理合理性方面胜过标准对接方法
3. PoseBusters 可以提供每项测试的通过情况,找出当前的局限性,为深度学习对接模型开发者提供了改进的参考
4. 下一代的基于深度学习的对接方法应该在 RMSD 和物理合理性方面都超过标准对接方法