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

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

文章目录

  • 前言
  • 一、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使用的需求。

参考资料

  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 …点击进入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/441676.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

R语言基础的代码语法解译笔记

1、双冒号&#xff0c;即&#xff1a;“::” 要使用某个包里的函数&#xff0c;通常做法是先加载&#xff08;library&#xff09;包&#xff0c;再调用函数。最新加载的包的namespace会成为最新的enviroment&#xff0c;某些情况下可能影响函数的结果。而package name::funct…

excel统计分析——重复测量设计

参考资料&#xff1a;生物统计学 裂区设计中的裂区通常是指空间上的裂区&#xff0c;如果对试验指标进行连续测量时&#xff0c;时间也可以作为裂区因素。重复测量设计实际上就是时间裂区设计。进行试验结果的统计分析时&#xff0c;将试验因素作为主区&#xff0c;时间因素作为…

HTML—基本介绍

HTML是一种超文本标记语言(HyperText Markup Language)&#xff0c;用于创建网页的标记语言超文本&#xff1a;是指页面内可以包含图片、链接、声音、视频等内容标记&#xff1a;HTML富含大量的标签供程序员使用&#xff0c;通过标记符号来规定指定内容的样式 浏览器最终根据不…

问题解决 | vscode无法连接服务器而ssh和sftp可以

解决步骤 进入家目录删除.vscode-server rm -rf .vscode-server 然后再次用vscode连接服务器时&#xff0c;会重新安装&#xff0c;这时可能报出一些缺少依赖的错 需要联系管理员安装相关依赖&#xff0c;比如 sudo apt-get install libstdc6 至此问题解决

C.C语言初步认识

文章目录 一. 什么是C语言 二. 第一个C程序解读 三. 数据类型 四. 变量常量 4.1. 定义变量的方法 4.2. 变量的分类 4.3. 变量的使用 4.4. 变量的作用域和生命周期 4.5. 常量分类 五. 字符串 六. 转义字符 七. 注释 八. 选择语句 九. 循环语句 十. 函数 十一. 数…

ubuntu18.04编译OpenCV-3.4.19+OpenCV_contrib-3.4.19

首先确保安装了cmake工具 安装opencv依赖文件 sudo apt-get install build-essential sudo apt-get install git libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev li…

机器学习——分类问题、logistic分类算法

之前我们学习的线性回归算法&#xff0c;适用于预测值y为连续值的情况下&#xff0c;但是在分类问题中&#xff0c;预测值y是个离散值&#xff0c;所以线性回归算法不适用。在这篇文章中&#xff0c;主要以二分类问题为例&#xff0c;介绍分类算法————logistic回归算法&…

Elasticsearch:什么是 DevOps?

DevOps 定义 DevOps 是一种现代软件开发方法&#xff0c;它将公司软件开发 (Dev) 和 IT 运营 (Ops) 团队的工作结合起来并实现自动化。 DevOps 提倡这样一种理念&#xff1a;这些传统上独立的团队在协作方面比在孤岛中更有效。 理想情况下&#xff0c;DevOps 团队共同努力改进…

【Web】浅聊Java反序列化之C3P0——不出网Hex字节码加载利用

目录 简介 原理分析 EXP 前文&#xff1a;【Web】浅聊Java反序列化之C3P0——URLClassLoader利用 简介 不出网的情况下&#xff0c;这个C3P0的Gadget可以和fastjson&#xff0c;Snake YAML , JYAML,Yamlbeans , Jackson,Blazeds,Red5, Castor等配合使用(调用setter和初始化…

基于卷积神经网络的野外可食用植物分类系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 本文详细探讨了一基于深度学习的可食用植物图像识别系统。采用TensorFlow和Keras框架&#xff0c;利用卷积神经网络&#xff08;CNN&#xff09;进行模型训练和预测&#xff0c;并引入迁移学习模型…

.NET开源的两款第三方登录整合库

前言 我相信做开发的同学应该都对接过各种各样的第三方平台的登录授权&#xff0c;来获取用户信息&#xff08;如&#xff1a;微信登录、支付宝登录、QQ登录、GitHub登录等等&#xff09;。今天大姚分享两款.NET开源的第三方登录整合库。 MrHuo.OAuth MrHuo.OAuth是.NET项目…

加密与安全_PGP、OpenPGP和GPG加密通信协议

文章目录 PGPOpenPGPGPG工作原理工作流程用途案例说明过程 代码实现pom依赖PgpEncryptionUtilPgpDecryptionUtilCommonUtilsPgpEncryptionTest 小结 PGP PGP (Pretty Good Privacy) 是一种加密通信协议&#xff0c;用于保护电子邮件和文件的安全性和隐私。它通过使用加密、数字…

flink实战--Flink任务资源自动化优化

背景 在生产环境Flink任务资源是用户在实时平台端进行配置,用户本身对于实时任务具体配置多少资源经验较少,所以存在用户资源配置较多,但实际使用不到的情形。比如一个 Flink 任务实际上 4 个并发能够满足业务处理需求,结果用户配置了 16 个并发,这种情况会导致实时计算资…

打开stable diffusion webui时,提示缺少clip或clip安装不上怎么办

在当前数字化时代&#xff0c;软件工具的应用已经成为人们日常生活和工作中不可或缺的一部分。而在使用各种软件工具的过程中&#xff0c;遇到一些技术性问题也是常有的事情。比如&#xff0c;在打开 Stable Diffusion WebUI 这样一个功能强大的工具时&#xff0c;有时会遇到缺…

VMware虚拟机安装Centos7图解,提供软件包镜像(详细安装,小白入门必看)

目录 1. 安装vmware软件 2. 下载centos7镜像 3. 使用镜像安装centos操作系统 3.1 创建新的虚拟机 3.2 开机安装系统 4. 尝试网络连通性 5. 配置静态ip地址 1. 安装vmware软件 下载链接&#xff08;包含激活码&#xff09;&#xff1a;VMware https://www.alipan…

Yolov8模型用torch_pruning剪枝

目录 &#x1f680;&#x1f680;&#x1f680;订阅专栏&#xff0c;更新及时查看不迷路&#x1f680;&#x1f680;&#x1f680; 原理 遍历所有分组 高级剪枝器 &#x1f680;&#x1f680;&#x1f680;订阅专栏&#xff0c;更新及时查看不迷路&#x1f680;&#x1f680…

C# winform 重启电脑

一、重启电脑指令 windows7系统的启动文件夹为“开始菜单”——“所有程序”里面就有“启动”文件夹&#xff0c;其位置是 “C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup” 如果没有&#xff0c;则需要将其中的"administrator…

flutter逆向 ACTF native ap

言 算了一下好长时间没打过CTF了,前两天看到ACTF逆向有道flutter逆向题就过来玩玩啦,花了一个下午做完了.说来也巧,我给DASCTF十月赛出的逆向题其中一道也是flutter,不过那题我难度降的相当之低啦,不知道有多少人做出来了呢~ 还原函数名 flutter逆向的一大难点就是不知道lib…

容器安全是什么?

容器安全定义 容器安全是指保护容器的完整性。这包括从其保管的应用到其所依赖的基础架构等全部内容。容器安全需要完整且持续。通常而言&#xff0c;企业拥有持续的容器安全涵盖两方面&#xff1a; 保护容器流水线和应用保护容器部署环境和基础架构 如何将安全内置于容器流…

【MySQL 系列】MySQL 语句篇_DQL 语句

DQL&#xff08;Data Query Language&#xff09;&#xff0c;即数据查询语言&#xff0c;用来查询数据记录。DQL 基本结构由 SELECT FROM、WHERE、JOIN 等子句构成。 DQL 语句并不会改变数据库&#xff0c;而是让数据库将查询结果发送结果集给客户端&#xff0c;返回的结果是一…