网上商城网站设计,湖南省建设厅政务中心网站,网站建设 福步,手机彩票网站开发一、文章背景介绍
DiffHopp模型发表在ICML 2023 Workshop on Computational Biology#xff08;简称#xff1a;2023 ICML-WCB#xff09;上的文章。第一作者是剑桥计算机系的Jos Torge。 DiffHopp是一个专门针对骨架跃迁任务而训练的E3等变条件扩散模型。此外#xff0c;…
一、文章背景介绍
DiffHopp模型发表在ICML 2023 Workshop on Computational Biology简称2023 ICML-WCB上的文章。第一作者是剑桥计算机系的Jos Torge。 DiffHopp是一个专门针对骨架跃迁任务而训练的E3等变条件扩散模型。此外DiffHopp使用了更具有几何表达力的图神经网络GVP模型。DiffHopp模型针对给定蛋白质-配体复合物使用等变扩散模型从以官能团和蛋白质袋为条件的骨架分布中对骨架进行采样。 所得骨架与官能团合并以形成骨架跃迁配体。 有趣的是我在生成分子的代码中并没有看到输入官能团的参数。官能团不知道是怎么识别的估计在数据处理的代码中需要仔细看看 关于骨架跃迁任务作者认为是保留了原始支架的基本分子特征同时引入新的化学元素或结构特征以增强效力、选择性或生物利用度。分子结构中间区域都会发生改变但是做两侧的基团不发生变化或者少量变化。换句话说骨架跃迁需要通常需要重新设计大部分分子。如下图所示。 这一点与我们之前介绍的其他模型明显不同DifflinkerDlinkerDelinker, DEVELOP都是仅修改指定的分子中间一小段。而DiffHopp是不能指定特定的分子区域同时分子修改区域很大两侧的功能基团的位置也会发生变化。但这一点其实是不利的因为在做骨架跃迁项目时我们希望生成的分子具有晶体分子一样的性质里面就包括类似的结合模式和形状。当功能基团的位置发生变化了很可能原先的相互作用模式被改变了生成的分子也就没有被相信的理由了。没办法项目就是这样子可以相信一个可能对的东西但是绝对不会信一个AI的观察毕竟现在AI的观察还是不完善的。 作者以6bqd作为例子生成了10个分子然后进行VINA打分。最优打分的分子的docking score为-10.4明显小于参考分子的-9.4如下图所示。功能基团为红色标记区域。 作者对测试集体系都做了DiffHopp模型的骨架跃迁设计并使用vina评估打分结果如下表。DiffHopp模型的结果要优于GVP和ENGG等模型使用inpainting模式的结果特别是在分子成药性QED和结合力 vina score上。同时也验证了使用GVP模型的扩散模型 (DiffHopp)比使用ENGG模型的扩散模型DiffHopp-EGNN生成的分子更具有优势DiffHopp vs. DiffHopp-EGNN 但是根据作者的结果生成分子的QED、SA分数和vina score打分上仅比测试集的数据分布好一些说明生成的骨架跃迁分子要优于参考分子模型在某些体系上捕捉到了额外的蛋白分子相互作用。但结果并不显著。 二、代码复制与环境安装 复制项目代码
git clone https://github.com/jostorge/diffusion-hopping.git 创建conda环境和安装相应的包
#安装环境
conda env create -f environment.yml
#激活环境
conda activate diffusion_hopping
注意可能由于cuda版本以及系统的原因导致安装的pytorch可能是cpu版本需要重新安装pytorch。 安装reduce
reduce是用于蛋白质中H原子处理的包可以加氢也可以删除氢同时也可以对氨基酸做一些处理例如HIS。reduce的安装可以参考GitHub - rlabduke/reduce: Reduce - tool for adding and correcting hydrogens in PDB files.
也可以安装AMBERTools使用AMBERTools中的reduce替代 然后将reduce软连接出来。
AMBERTools的安装方法
conda install -c conda-forge ambertools23
软连接方法在~/.bashrc文件中添加如下行
alias reduce~/anaconda3/envs/AmberTools23/bin/reduce 安装Qvina选装。仅在分子评估部分使用
这里略过 安装mgltools
conda install mgltools -c bioconda 三、案例测试1
作者在代码中自带了一个体系1a0q路径为
./tests_data/complexes/1a0q
口袋和分子结构见下图 使用如下命令生成100个新骨架跃迁分子
python generate_scaffolds.py \
--input_molecule ./tests_data/complexes/1a0q/ligand.sdf \
--input_protein ./tests_data/complexes/1a0q/protein.pdb \
--num_samples 100 \
--output test_data_results
生成的分子保存在自动创建的 ./test_data_results文件夹内。其中只产生了100个sdf文件对应100个分子。生成过程不存在不合格的分子。 先简单查看几个生成的分子如下图。生成的分子与参考分子并没有明显的变化只有在口袋内侧的苯环发生了角度旋转。这一结果来说DiffHopp模型对于这个体系的骨架跃迁就失败了。很有可能是代码在识别scaffold区域时只识别到了苯环而在生成scaffold时也只生成了苯环。 另外所有生成的分子均为23个重原子数与参考分子完全相同。侧面也说明DiffHopp生成的分子和SBDD等分子生成模型或者Difflinker等骨架跃迁模型的inpainting模式类似并不改变生成分子的原子数量。模型时调整原子的位置及其元素种类而生成新的分子。 生成分子的视频如下 四、案例测试2
有请我们骨架跃迁模型的老演员3FI3。 分子的二维结构 将3FI3体系的口袋和分子分别保存为pocket.pdb和ligand.sdf然后上传至./tests_data/complexes/3FI3目录中。然后执行如下命令生成分子
python generate_scaffolds.py \
--input_molecule ./tests_data/complexes/3FI3/ligand.sdf \
--input_protein ./tests_data/complexes/3FI3/pocket.pdb \
--num_samples 100 \
--output test_data_results-2
运行结束后生成的分子保存在./test_data_results-2文件夹内。一共生成了98个分子有2个分子在生成过程中失败。 先简单查看一下生成的分子吗随机挑了6个如下图 从上图中DiffHopp模型在骨架跃迁的时候生了大量的新颖结构的分子分子也能比较好的放置在口袋中没有与口袋发生严重的碰撞。值得注意的是分子两端的三氟苯和苯环片段的结构并没有发生变化同时整个分子的所有片段都有一定程度的位移。显然这些生成的分子是需要进行进一步的筛选和处理的。 以下是生成分子的视频。 五、总结
DiffHopp是一种专门针对骨架跃迁的训练出来的AI工具。整体看来效果还行。偶尔能生成比参考分子结合力更好的分子。 与之前介绍的DifflinkerDelinker, DEVELOP等不同DiffHopp骨架跃迁部分不能指定且范围更大且两端的功能基团的位置也会发生变化更接近分子生成方法中的inpainting技术。 此外由于作者提供的checkpoint并非基于口袋的全原子模型训练的因此模型性能比较差。最好能自己训练一个口袋全原子的版本。 注作者提供的代码非常全面从数据处理到训练模型到生成分子评估应有尽有值得好好学习加以改进。毕竟那么全的代码还可以顺利安装不需要修改代码的AIDD项目在github上真不多见。