机器学习开源分子生成系列(2)-基于三维形状和静电相似性的DeepFMPO v3D安装及使用


前言

本文是基于 3D 的分子生成方法DeepFMPO v3D的介绍及安装使用。


一、DeepFMPO v3D是什么?


github代码
介绍文章


在药物发现中,如何寻找具新颖性和结构多样性的候选分子是颇受药物设计科学家关注的问题。通过虚拟筛选的化学空间搜索往往会受限于筛选库的大小和构建方式,而分子生成则扩大了化学空间搜索的自由度,近年来发展了不少AI分子生成模型。

来自阿斯利康的Jonas Boström等人在Journal of Chemical Information and Modeling上发表的文章 “On the Value of Using 3D Shape and Electrostatic Similarities in Deep Generative Methods”,该团队之前公开了一个基于片段的强化学习的二维分子生成工具DeepFMPO,本文中作者展示了一种基于 3D 的分子生成方法(DeepFMPO v3D),并开发了一个免费开源的python包(ESP-Sim)计算片段对之间的静电势 (ESP) 相似性的,从三维形状和静电势相似性上改进特征,更准确地生成与输入分子结构具有相似性的优化分子。

作者展示了一种基于 3D 的分子生成方法(DeepFMPO v3D),并开发了一个免费开源的python包(ESP-Sim)计算片段对之间的静电势 (ESP) 相似性的,从三维形状和静电势相似性上改进特征,更准确地生成与输入分子结构具有相似性的优化分子。

DeepFMPO v3D工作流程: 以片段取代连接点氢原子,采用RDKit为每个片段生成10个能量最低构象,生成能量最低构象,以连接点对齐保留相似性最高分子,从连接点移除相同起始部分,计算RESP等原子电荷,计算对齐构象的ESP相似性,ESP-Combo 打分相似性评价。

以上流程的具体示例:


ESP-Sim 基准测试:
为了评估使用不同部分电荷对ESP-Sim的影响,作者计算了相同分子相同几何结构不同部分电荷的ESP相似性。选择约3000个中性分子,使用高精度量子化学(QM)计算获得的RESP电荷再现分子的静电势,将不同部分电荷获得的静电势与QM获得的RESP电荷进行相似性比较。作者评估了Gasteiger、MMFF94和AM1-BCC部分电荷,以及机器学习模型 (ML)得到的部分电荷。
下表概述了各个部分电荷与 RESP 电荷的平均绝对偏差,以及通过 Carbo 或 Tanimoto 相似性评估的ESP相似性。可以发现 AM1-BCC电荷重现QM 静电势的效果较好,其次是深度学习模型、MMFF 和 Gasteiger。

二、安装步骤


安装环境:Ubuntu 22.04,  CUDA runtime版本11.8。
安装步骤:先安装espsim,然后安装DeepFMPO v3D


1. 创建DeepFMPO v3D运行的conda环境

为DeepFMPO v3D运行创建虚拟环境,包含espsim安装。

下载deepFMPOv3D:

git clone https://github.com/giovanni-bolcato/deepFMPOv3D.git
cd deepFMPOv3D

将以下内容保存为environment.yml:
 

name: deepFMPOv3D_envchannels:- rdkit- pytorch- conda-forgedependencies:- python=3.10- pytorch- numpy- scikit-learn- scipy- matplotlib- joblib- tqdm- keras- pandas- tensorflow- pip- pip:- resp- rdkit- python-Levenshtein- dask[dataframe]- bisect- git+https://github.com/hesther/chemprop-atom-bond.git

创建环境:
 

conda env create -f environment.yml



如果pip部分不成功,提示 `CondaEnvException: Pip failed`,激活conda环境,单独安装pip包即可,如下:

pip install git+https://github.com/hesther/chemprop-atom-bond.git

激活conda环境:
 

conda activate deepFMPOv3D_env

在环境中安装TensorFlow,rdkit等模块:

conda install numpy tensorflow -c conda-forge
pip install resp rdkit pandas python-levenshtein dask[dataframe]

 2. 安装psi4:

conda install psi4 -c conda-forge

3. 下载并安装espsim

git clone https://github.com/hesther/espsim.git
cd espsim
pip install -e .

 
测试espsim安装:

python scripts/test_imports.py

返回以下即安装正常:

Test passed, imports work fine.

  
测试espsim运行:

python scripts/test_esp_function.py

返回:

三、运行分子生成


激活以上创建的环境,进入deepFMPOv3D目录:

cd deepFMPOv3D

Usage:

python deepFMPO.py -f your_fragment.smi -l your_lead.smi -o your_results.sdf

python deepFMPO.py -f ./Data/molecules.smi -l ./Data/lead.smi -o results.sdf
python decoding_to_sdf.py

---

总结


本文是基于 3D 的分子生成方法DeepFMPO v3D的介绍及安装使用。

   
参考资料

1. GitHub - giovanni-bolcato/deepFMPOv3D: Implementation of Shape and Electrostatic similarity metric in deepFMPO.
2. On the value of using 3D-shape and electrostatic similarities in deep generative methods | Theoretical and Computational Chemistry | ChemRxiv | Cambridge Open Engage

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux账户和组管理——用户密码文件,工作组账号文件,用户管理

#### 用户密码文件 - /etc/shadow存储密码加密后的密文,又称为“影子文件”,该文件为了保证了账户密码的安全性只有 root 账户拥有读权限,注意:若该文件权限发生变化,需要留心恶意攻击 bash [rootserver ~]# ll /etc/…

linux之栈溢出分析

我们来创建一个例子,其中包含一个段错误,这次是由于栈溢出导致的。这是一个常见的错误,通常发生在程序递归调用深度过大,超出了为栈分配的内存空间。 下面是一个简单的C程序,stack_overflow_example.c,它通…

优化与改进之轻量级Transformer - Transformer教程

在自然语言处理(NLP)的世界里,Transformer模型无疑是一颗璀璨的明珠。自从它在2017年被提出以来,就凭借其强大的性能和优雅的设计赢得了广泛的关注和应用。然而,随着应用的深入,Transformer的体量和计算资源…

牛顿力学和拉格朗日力学求解atwood machine问题对比

一个半径为 R R R、转动惯量为 I I I 的圆盘。绳子与圆盘无滑动,质量 m 2 m_2 m2​ 的物体在重力 g g g 作用下下坠,带动质量 m 1 m_1 m1​ 的物体上升。求 m 1 m_1 m1​和 m 2 m_2 m2​ 的加速度 a a a。 牛顿力学方法 对质量 m 1 m_1 m1​ 和 …

Web 性能入门指南-1.2 分析在线零售 Web 性能及优化方向

让顾客满意是零售业成功的秘诀。事实证明,提供快速、一致的在线体验可以显著提高零售商关心的每项指标——从转化率和收入到留存率和品牌认知度。 本文大纲: 页面速度影响在线零售业务数据 如何将您的网站速度与竞争对手进行比较 性能优化入门&#xf…

Scanner工具类

扫描控制台输入 1.nextLine nextLine() 方法会扫描输入流中的字符,直到遇到行末尾的换行符 \n,然后将该行的内容作为字符串返回,同时,nextLine() 会将 Scanner 对象的位置移动到下一行的开头,以便下一次读取数据时从下…

代码随想录day09 151.翻转字符串里的单词 、卡码网:55.右旋转字符串

代码随想录day09 151.翻转字符串里的单词 、卡码网:55.右旋转字符串 151. 反转字符串中的单词 这题我直接想到的是istringstream 和 stack 但不知道这样使用是不是违反了规定 class Solution { public:string reverseWords(string s) {istringstream iss(s);stri…

MySQL的约束键多表查询

约束 概念 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据中数据的正确、有效性和完整性。 外键约束 概念 ​ 外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。 注意&#x…

Qt常用基础控件总结—输入部件(QComboBox类和QLineEdit)

输入部件 下拉列表控件QComboBox 类 QComboBox 类是 QWidget 类的直接子类,该类实现了一个下拉列表(组合框)。 QComboBox 类中的属性函数 1)count:const int 访问函数:int count() const; 获取组合框中的项目数量,默认情况下,对于空组合框或未设置当前项目的组合框,…

网络安全法视角下的等保测评法律责任与风险控制

《网络安全法》是中国为了保障网络安全、维护网络空间主权和国家安全、社会公共利益,保护公民、法人和其他组织的合法权益而制定的一部重要法律。该法于2017年6月1日正式实施,其中对网络安全等级保护制度(简称“等保”)做出了明确…

windows USB 设备驱动开发-USB复合设备的注册

USB 多功能设备的驱动程序(称为复合驱动程序)可以向基础 USB 驱动程序堆栈注册和注销复合设备。 Microsoft 提供的驱动程序(Usbccgp.sys)是由 Windows 加载的默认复合驱动程序。 本文中的过程适用于替换Usbccgp.sys的基于 WDM的自…

c语言的简易教法—— 函数递归

文章目录 一、什么是递归?1.1递归的思想1.2递归的限制条件 二、递归案例2.1 案例1:求n的阶层2.1.1分析2.1.2 递归函数(Fact)的代码实现2.1.3 测试:main函数实现2.1.4 运行结果和画图推演2.1.5 扩展:迭代方法…

【66个开源+44个闭源Agent项目】

开源AI Agent 1.AgentGPT 基于浏览器的 AutoGPT 实现,可通过无代码平台访问。https://agentgpt.reworkd.ai/zh 2.AI Legion 一个让智能体协同工作的平台,其类似于 AutoGPT 和 Baby AGI,但用 TypeScript 编写。https://github.com/eumemi…

如何使用BERT进行下游任务 - Transformer教程

BERT,即Bidirectional Encoder Representations from Transformers,是谷歌于2018年发布的预训练语言模型。BERT的出现标志着自然语言处理领域的一个重要里程碑,因为它大幅提高了多种语言任务的性能。本文将详细介绍如何使用BERT进行下游任务&…

华为如何做成数字化转型?

目录 企业数字化转型是什么? 华为如何定义数字化转型? 为什么做数字化转型? 怎么做数字化转型? 华为IPD的最佳实践之“金蝶云” 企业数字化转型是什么? 先看一下案例,华为经历了多次战略转型&#xf…

前端工程化:Webpack配置全攻略

前端工程化:Webpack配置全攻略 前端小伙伴们,今天我们来聊聊那个让人又爱又恨的 Webpack。没错,就是那个配置起来让你想砸键盘,但又离不开它的构建工具。别担心,跟着我来,保证让你从 Webpack 小白变成配置…

人脸识别与检测(保姆级教程--附带源码)

人脸识别与检测(保姆级教程–附带源码) 项目背景 因项目需要招聘了一些日结工人,因此需要对工地现场的工人进行考勤管理,但工地只有海康摄像头没有专业考勤设备,因此需要基于视频流开发人脸识别与检测功能&#xff1…

Windows 虚拟机服务器项目部署

目录 一、部署JDK下载JDK安装JDK1.双击 jdk.exe 安装程序2.点击【下一步】3.默认安装位置,点击【下一步】4.等待提取安装程序5.默认安装位置,点击【下一步】6.等待安装7.安装成功,点击【关闭】 二、部署TomcatTomcat主要特点包括:…

奇怪的错误记录

https://github.com/meta-llama/llama3/issues/80 读模型没问题,推理时出现: RuntimeError: “triu_tril_cuda_template” not implemented for ‘BFloat16’ ———————————————— 事发原因 我尝试了解transformers的AutoProcessor时&a…

感应触摸芯片集成为MCU,深度应用触控按键技术的VR眼镜

VR(Virtual Reality)即虚拟现实,简称VR,其具体内涵是综合利用计算机图形系统和各种现实及控制等接口设备,在计算机上生成的、可交互的三维环境中提供沉浸感觉的技术。它的工作原理是将左右眼图像交互显示在屏幕上的方式…