文章目录
- 前言
- 一、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
DeepFrag是一个基于片段的先导分子优化程序。DeepFrag将分子生成看作是分类问题,移除配体受体复合物中的一个配体片段,考虑配体片段复合物建立机器学习模型,生成新的分子。采用Binding MOAD database 38702个复合物和6522个片段作为数据集,将复合物3D像素画处理后,在3D卷积网络中训练模型,将模型输出与已知片段分子描述符(使用RDKit 描述符)比较进而预测分子。这样的好处是有别于经典的分类模型,是一个向量打分和概率的输出。
DeepFrag将对输出结果采用smina打分(vina的一个衍生版本),单位kcal/mol,将生成分子按照打分排序给出。
训练数据集:
片段(ligand fragment)定义:
(1)将配体一分为二,不切断环系
(2)切到的最小片段至少包含一个非氢原子
(3)小片段分子量小于150
(4)切断点在受体原子4A范围内
模型结果:
总之,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 片段替换
在完整配体-受体复合物上实现片段替换,需要定义连接点 (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
运行结果,直接显示:
使用 --out out_name.csv 可保存到文件。
结果按照score 排序。
4.2 片段添加
在已知母核上添加片段,相当于DeepFrag替换了氢原子。
这是新冠病毒主蛋白酶的结合分子,结构较小,在C09原子分子上添加基团:
python3 deepfrag.py --pdb 5rgh --resnum 404 --cname C09 --full --out Mpro-C09.csv
查看结果:
–full模式输出结果并没有给出"母核"的键级,所以只能看到链接后的大致结构,可以采用其他连接方法,将生成片段接上去。
总结
本文提供了开源程序DeepFrag的在本地conda版本的部署及使用方法,满足用户避免数据上传到web app使用的需求。
参考资料
- https://github.com/durrantlab/deepfrag
- https://doi.org/10.1039/D1SC00163A
- https://doi.org/10.1021/acs.jcim.1c00103