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

欢迎浏览我的CSND博客! Blockbuater_drug ...进入

文章目录

  • 前言
  • 一、DeepFrag是什么?
  • 二、conda中安装DeepFrag CLI环境
      1. 创建环境并激活
      1. 下载pre-trained model
      1. DeepFrag CLI 使用方法
      • 必需参数:
      • 可选参数:
      1. 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. 创建环境并激活

powershell 复制代码
conda create -n deepfrag_env
conda activate deepfrag_env

安装依赖包:

powershell 复制代码
pip install -r requirements.txt

再额外安装prody和joblib:

powershell 复制代码
pip install prody joblib

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

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

检查pytorch安装:

powershell 复制代码
python -c "import torch; print(torch.__version__)"
python -c "import torch; print(torch.version.cuda)"

输出类似以下即为正常:

powershell 复制代码
2.1.2+cu118
11.8

DeepFrag运行环境安装测试:

powershell 复制代码
bash ./test_installation.sh

输出一系列片段的smiles。

2. 下载pre-trained model

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

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

powershell 复制代码
python3 deepfrag.py

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

3. DeepFrag CLI 使用方法

powershell 复制代码
python3 deepfrag.py <options>

必需参数:

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

powershell 复制代码
    --receptor <rec.pdb> --ligand <lig.pdb>
    --pdb <pdbid> --resnum <resnum>

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

powershell 复制代码
		--cname <name> 
    --cx <x> --cy <y> --cz <z>

可选参数:

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

powershell 复制代码
		--rname <name> 
    --cx <x> --cy <y> --cz <z>

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

powershell 复制代码
		--out <out.csv>

其它可选参数:

powershell 复制代码
		--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)。

替换咪唑甲酸:

powershell 复制代码
python3 deepfrag.py --pdb 2xp9 --resnum 1165 --cname C10 --rname C12

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

powershell 复制代码
python3 deepfrag.py --pdb 2xp9 --resnum 1165 --cname C1 --rname C2

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

powershell 复制代码
python3 deepfrag.py --pdb 2xp9 --resnum 1165 --cname C18 --rname C19

运行结果,直接显示:
使用 --out out_name.csv 可保存到文件。

结果按照score 排序。

4.2 片段添加

在已知母核上添加片段,相当于DeepFrag替换了氢原子。

这是新冠病毒主蛋白酶的结合分子,结构较小,在C09原子分子上添加基团:

powershell 复制代码
python3 deepfrag.py --pdb 5rgh --resnum 404 --cname C09 --full --out Mpro-C09.csv

查看结果:
--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
欢迎浏览我的CSND博客! Blockbuater_drug ...点击进入
相关推荐
qq_5298353534 分钟前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
Nerd Nirvana1 小时前
软考—系统架构设计(案例 | 论文)
linux·系统架构·软件工程·软考·计算机基础
勤奋的凯尔森同学3 小时前
webmin配置终端显示样式,模仿UbuntuDesktop终端
linux·运维·服务器·ubuntu·webmin
月光水岸New3 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6753 小时前
数据库基础1
数据库
我爱松子鱼3 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo3 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser4 小时前
【SQL】多表查询案例
数据库·sql
Galeoto4 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)5 小时前
MySQL主从架构
服务器·数据库·mysql