机器学习开源分子生成系列(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
相关文章:

机器学习开源分子生成系列(2)-基于三维形状和静电相似性的DeepFMPO v3D安装及使用
前言 本文是基于 3D 的分子生成方法DeepFMPO v3D的介绍及安装使用。 一、DeepFMPO v3D是什么? github代码介绍文章 在药物发现中,如何寻找具新颖性和结构多样性的候选分子是颇受药物设计科学家关注的问题。通过虚拟筛选的化学空间搜索往往会受限于筛选…...
机器学习-16-分布式梯度提升库XGBoost的应用
参考XGBoost库 1 XGBoost分布式梯度提升库 XGBoost,全称为eXtreme Gradient Boosting,是一个优化的分布式梯度提升库,旨在高效、灵活且便携。它在Gradient Boosting框架下实现了机器学习算法,并广泛用于分类、回归和排序任务。XGBoost之所以受到广泛欢迎,主要归功于它的…...
视觉/AIGC面经->多模态
1.ocr检测如何做?qwen的文本检测是否合理? paligemma: <loc0110><loc0124><loc0224><loc0389> plate ; <loc0244><loc0130><loc0281><loc0430> plate ; <loc0364><loc0820><loc0403><loc0951> pl…...

<数据集>钢板缺陷检测数据集<目标检测>
数据集格式:VOCYOLO格式 图片数量:1986张 标注数量(xml文件个数):1986 标注数量(txt文件个数):1986 标注类别数:7 标注类别名称:[crescent gap, silk spot, water spot, weld line, oil spot, punchin…...
EdgeOne安全能力开箱测评挑战赛
活动地址:EdgeOne安全能力开箱测评挑战赛-腾讯云开发者社区-腾讯云 随着网络攻击日益频繁,企业网站面临着数据泄露、DDoS攻击、CC攻击等多种安全威胁。如何有效保护企业网站安全,成为企业IT部门的重要任务。腾讯云EdgeOne作为一款集成了CDN和…...

神经网络识别数字图像案例
学习资料:从零设计并训练一个神经网络,你就能真正理解它了_哔哩哔哩_bilibili 这个视频讲得相当清楚。本文是学习笔记,不是原创,图都是从视频上截图的。 1. 神经网络 2. 案例说明 具体来说,设计一个三层的神经网络。…...

c++包管理器
conan conan search,查看网络库 conan profile detect,生成缓存信息conan new cmake_exe/cmake_lib,创建cmakelists.txtconan install .,执行Conanfile.txt中的配置,生成相关的bat文件 项目中配置Conanfile.txt(或者…...

监控易V7.6.6.15升级详解7,日志分析更高效
随着企业IT系统的日益复杂,日志管理成为了保障系统稳定运行、快速定位问题的重要工具。为了满足广大用户对日志管理功能的更高需求,监控易系统近日完成了重要版本升级,对日志管理功能进行了全面优化和新增。 一、Syslog日志与SnmpTrap日志统…...

HTML表格、表单标签
目录 一、表格 (1)关于表格中标签说明 (2)关于表格中属性说明 (3)简单操作演示 (4)表格小结 二、表单 (1)简单操作演示 (2)注…...

(Windows环境)FFMPEG编译,包含编译x264以及x265
本文使用 MSYS2 来编译 ffmpeg 一、安装MSYS2 MSYS2 是 Windows 下的一组编译套件,它可以在 Windows 系统中模拟 Linux 下的编译环境,如使用 shell 运行命令、使用 pacman 安装软件包、使用 gcc (MinGW) 编译代码等。 MSYS2 的安装也非常省心&#x…...

notepad++中文出现异体汉字,怎么改正
notepad显示异体字,如何恢复? 比如 “门” 和 “直接” 的"直"字,显示成了 方法 修改字体, 菜单栏选择 Settings(设置),Style Configurator…(语言格式设置…)…...

EasyAnimate-v3版本支持I2V及超长视频生成
阿里云人工智能平台(PAI)自研开源的视频生成项目EasyAnimate正式发布v3版本: 支持 图片(可配合文字) 生成视频 支持 上传两张图片作为起止画面 生成视频 最大支持720p(960*960分辨率) 144帧视…...

最新PHP自助商城源码,彩虹商城源码
演示效果图 后台效果图 运行环境: Nginx 1.22.1 Mysql5.7 PHP7.4 直接访问域名即可安装 彩虹自助下单系统二次开发 拥有供货商系统 多余模板删除 保留一套商城,两套发卡 源码无后门隐患 已知存在的BUG修复 彩虹商城源码:下载 密码:chsc 免责声明&…...

Vue2打包部署后动态修改后端接口地址的解决方法
文章目录 前言一、背景二、解决方法1.在public文件夹下创建config文件夹,并创建config.js文件2.编写config.js内容3.在index.html中加载config.js4.在封装axios工具类的js中修改配置 总结 前言 本篇文章将介绍使用Vue2开发前后端分离项目时,前端打包部署…...

【后端开发实习】用MongoDB实现仓库管理的出库入库实战
用MongoDB实现仓库管理的出库入库 MongoDB什么是MongoDBMongoDB安装以及开始运行配置启动以及mongoshmongodb的基础使用命令启动和使用MongoDB服务数据库操作集合操作文档操作 项目部署在数据库中创建一张商品信息表提供信息表的增删改查操作接口 MongoDB 什么是MongoDB Mong…...

内网信息收集——用户凭据窃取
文章目录 一、获取域内单机密码和hash1.1 在线读取lsass进程内存1.2 离线读取lsass.exe进程内存1.3 在线读取本地SAM文件1.4 离线读取本地SAM文件 二、域hash获取三、windows凭据导出 一、获取域内单机密码和hash 在windows中,SAM文件是windows用户的账户数据库&am…...

组串式逆变器散热分析
1 引言 组串式逆变器散热方式主要有强制风冷和自然冷却两种,针对两种散热方式的实际效果,笔者抽取了不同厂家不同散热方式的两款组串式逆变器进行实验对比,发现在同样的环境温度下,强制风冷的逆变器内部环境温度及核心器件温升比…...

WEB07Vue+Ajax
1. Vue概述 Vue(读音 /vjuː/, 类似于 view),是一款用于构建用户界面的渐进式的JavaScript框架(官方网站:https://cn.vuejs.org)。 在上面的这句话中呢,出现了三个词,分别是&#x…...

uniapp打包成Android时,使用uni.chooseLocation在App端显示的地址列表是空白?一直转圈的解决办法
问题描述: uniapp打包后的测试版app在ios里可以显示高德地图的定位列表,但是安卓手机却不显示定位列表,一直在转圈圈,怎么回事?之前的功能在正式版都能用,真机运行也能用,为什么测试版的安卓手…...
删除矩阵中0所在行 matlab
%for验证 new[]; for i1:size(old,1)if old(i,4)~0 %assume 0所在列在第4列new(end1,:)old(i,:);end enda(a(:,2)0,:)[]参考: 两种方式...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

【多线程初阶】单例模式 指令重排序问题
文章目录 1.单例模式1)饿汉模式2)懒汉模式①.单线程版本②.多线程版本 2.分析单例模式里的线程安全问题1)饿汉模式2)懒汉模式懒汉模式是如何出现线程安全问题的 3.解决问题进一步优化加锁导致的执行效率优化预防内存可见性问题 4.解决指令重排序问题 1.单例模式 单例模式确保某…...