文章目录

  • 前言
  • 一、DeepFrag是什么?
  • 二、conda中安装DeepFrag CLI环境
    • 1. 创建环境并激活
    • 2. 下载pre-trained model
    • 3. DeepFrag CLI 使用方法
      • 必需参数:
      • 可选参数:
    • 4. DeepFrag CLI 使用案例
      • 4.1 片段替换
      • 4.2 片段添加
  • 总结
  • 参考资料

前言

本文提供了开源程序DeepFrag的在本地conda版本的部署及使用方法,满足用户避免数据上传到web app使用。

一、DeepFrag是什么?

github代码:https://github.com/durrantlab/deepfrag
介绍文章:https://doi.org/10.1021/acs.jcim.1c00103
web app:http://durrantlab.com/deepfrag

机器学习开源分子生成系列(1)-DeepFrag的本地部署及使用-LMLPHP
DeepFrag是一个基于片段的先导分子优化程序。DeepFrag将分子生成看作是分类问题,移除配体受体复合物中的一个配体片段,考虑配体片段复合物建立机器学习模型,生成新的分子。采用Binding MOAD database 38702个复合物和6522个片段作为数据集,将复合物3D像素画处理后,在3D卷积网络中训练模型,将模型输出与已知片段分子描述符(使用RDKit 描述符)比较进而预测分子。这样的好处是有别于经典的分类模型,是一个向量打分和概率的输出。

DeepFrag将对输出结果采用smina打分(vina的一个衍生版本),单位kcal/mol,将生成分子按照打分排序给出。

训练数据集:
机器学习开源分子生成系列(1)-DeepFrag的本地部署及使用-LMLPHP
片段(ligand fragment)定义:
(1)将配体一分为二,不切断环系
(2)切到的最小片段至少包含一个非氢原子
(3)小片段分子量小于150
(4)切断点在受体原子4A范围内

模型结果:

机器学习开源分子生成系列(1)-DeepFrag的本地部署及使用-LMLPHP
总之,DeepFrag是一个强大的分子生成程序,它利用深度学习技术来预测有机化合物的反应路径和合成规划,并提供药理性质的预测功能。它对药物设计师在开发新药物方面具有重要的帮助作用。

二、conda中安装DeepFrag CLI环境

以下是在conda环境中部署DeepFrag运行需要的环境,即DeepFrag CLI运行需要的配置。
安装环境:Ubuntu 22.04, CUDA runtime版本11.8。

1. 创建环境并激活

conda create -n deepfrag_env
conda activate deepfrag_env

安装依赖包:

pip install -r requirements.txt

再额外安装prody和joblib:

pip install prody joblib

安装pytorch(根据本地机器的CUDA版本安装,也可以只安装CPU版本):

pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118

检查pytorch安装:

python -c "import torch; print(torch.__version__)"
python -c "import torch; print(torch.version.cuda)"

输出类似以下即为正常:

2.1.2+cu118
11.8

DeepFrag运行环境安装测试:

bash ./test_installation.sh

输出一系列片段的smiles。

2. 下载pre-trained model

测试安装时会提醒下载Pre-trained DeepFrag model和Fingerprint library,确认即可。

也可从安装包文件夹运行:

python3 deepfrag.py

即可激活pre-trained model下载,位置在 .store,是一个隐藏文件。

3. DeepFrag CLI 使用方法

python3 deepfrag.py <options>

必需参数:

通过文件或者id定义受体配体:

    --receptor <rec.pdb> --ligand <lig.pdb>
    --pdb <pdbid> --resnum <resnum>

定义连接点原子名称,或者xyz坐标

		--cname <name> 
    --cx <x> --cy <y> --cz <z>

可选参数:

使用DeepFrag删除需要替换片段:

		--rname <name> 
    --cx <x> --cy <y> --cz <z>

输出为csv文件,包含fragment rank, score 和SMILES,如果不定义则输出到屏幕:

		--out <out.csv>

其它可选参数:

		--full :输出替换后的整个分子的smiles
		--cpu /--gpu:使用CPU或者GPU 
		--num_grids <num>:像素生成格旋转次数,默认为4,增加将耗时,一般用文献中测试的 32
		--top_k <k>: 输出数量默认为25,-1全部输出		

4. DeepFrag CLI 使用案例

4.1 片段替换

机器学习开源分子生成系列(1)-DeepFrag的本地部署及使用-LMLPHP

在完整配体-受体复合物上实现片段替换,需要定义连接点 (cname or cx/cy/cz) ,以及删除片段的一个原子 (rname or rx/ry/rz)。

替换咪唑甲酸:

python3 deepfrag.py --pdb 2xp9 --resnum 1165 --cname C10 --rname C12

替换苯环B(图中右侧):

python3 deepfrag.py --pdb 2xp9 --resnum 1165 --cname C1 --rname C2

替换苯环C(图中左侧):

python3 deepfrag.py --pdb 2xp9 --resnum 1165 --cname C18 --rname C19

运行结果,直接显示:
机器学习开源分子生成系列(1)-DeepFrag的本地部署及使用-LMLPHP使用 --out out_name.csv 可保存到文件。
结果按照score 排序。

4.2 片段添加

在已知母核上添加片段,相当于DeepFrag替换了氢原子。
机器学习开源分子生成系列(1)-DeepFrag的本地部署及使用-LMLPHP
这是新冠病毒主蛋白酶的结合分子,结构较小,在C09原子分子上添加基团:

python3 deepfrag.py --pdb 5rgh --resnum 404 --cname C09 --full --out Mpro-C09.csv

查看结果:
机器学习开源分子生成系列(1)-DeepFrag的本地部署及使用-LMLPHP–full模式输出结果并没有给出"母核"的键级,所以只能看到链接后的大致结构,可以采用其他连接方法,将生成片段接上去。


总结

本文提供了开源程序DeepFrag的在本地conda版本的部署及使用方法,满足用户避免数据上传到web app使用的需求。

参考资料

  1. https://github.com/durrantlab/deepfrag
  2. https://doi.org/10.1039/D1SC00163A
  3. https://doi.org/10.1021/acs.jcim.1c00103

03-09 09:29