机器学习开源分子生成系列(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_env

channels:
  - rdkit
  - pytorch
  - conda-forge

dependencies:
  - 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

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

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

相关文章

软件设计师(中级)备考视频教程

一、视频介绍 本视频主要包括软件设计师系统学习教程,通过学习本视频,可以帮助考生高效且深入地掌握软件设计师资格考试核心知识,全方位覆盖考试要点,从而轻松备战考试。视频不仅涵盖了考试所需的全面知识体系,还通过直…

鸿蒙实训笔记

第一天 #初始化一个新的NPM项目(根据提示操作) npm init #安装TSC、TSLint和NodeJS的类型声明 npm install -s typescript tslint types/node 在根目录中新建一个名为tsconfig.json的文件,然后在代码编辑器中打开,写入下述内容: {"co…

C# Winform的三态CheckBox,以及批量修改Panel中的控件

在C# WinForms中,如果你想批量修改一个Panel容器内的所有CheckBox控件的状态,你可以使用foreach循环来遍历Panel的Controls集合。下面是一个示例,展示了如何将一个Panel内所有的CheckBox控件设为选中状态(Checked true&#xff0…

法制史学习笔记(个人向) Part.4

法制史学习笔记(个人向)_Part.4 6. 唐朝法律制度 6.1 立法概况 立法指导思想:德礼为政教之本,刑罚为政教之用(德主刑辅 → \rightarrow →德本刑用),抬高了刑罚在法律体系中的作用,强调两者兼有&#xff0…

Isaac Lab(isaac sim)中使用python ros

ROS(Robot Operating System)为机器人技术提供了标准化的开发框架和中间件,通过定义接口和约定,简化了硬件与软件的集成,提高了开发效率。它拥有强大的工具集和生态系统,支持从算法开发到系统集成的全过程&…

Django任务管理

1、用django-admin命令创建一个Django项目 django-admin startproject task_manager 2、进入到项目下用命令创建一个应用 cd task_manager python manage.py startapp tasks 3、进入models.py定义数学模型 第2步得到的只是应用的必要空文件,要开始增加各文件实际…

skywalking-2-客户端-php的安装与使用

skywalking的客户端支持php,真的很棒。 官方安装文档:https://skywalking.apache.org/docs/skywalking-php/next/en/setup/service-agent/php-agent/readme/ 前置准备 本次使用的php版本是8.2.13: php -v PHP 8.2.13 (cli) (built: Nov 21 2023 09:5…

近期几首小诗汇总-生活~卷

生活 为生活飘零,风雨都不阻 路见盲人艰,为她心点灯 贺中科大家长论坛成立十五周年 科学家园有喜贺 园外丑汉翘望中 曾一学子入我科 正育科二盼长大 憧憬也能入此家 与科学家论短长 园外翘首听高论 发现有隙入此坛 竟然也能注册成 入园浏览惶然立 此贴…

PostgreSQL17索引优化之支持并行创建BRIN索引

PostgreSQL17索引优化之支持并行创建BRIN索引 最近连续写了几篇关于PostgreSQL17优化器改进的文章,其实感觉还是挺有压力的。对于原理性的知识点,一方面是对这些新功能也不熟悉,为了尽可能对于知识点表述或总结做到准确,因此需要…

springboot websocket 知识点汇总

以下是一个详细全面的 Spring Boot 使用 WebSocket 的知识点汇总 1. 配置 WebSocket 添加依赖 进入maven官网, 搜索spring-boot-starter-websocket,选择版本, 然后把依赖复制到pom.xml的dependencies标签中 配置 WebSocket 创建一个配置类 WebSocketConfig&…

管理无线物联网设备和连接的增长

将项目(或产品)规模化从来不是一件容易的事。然而,随着蜂窝无线物联网的部署,增长挑战尤其令人生畏。 为什么?因为如果不增加复杂性,就无法发展无线物联网部署。复杂性随着物联网而扩大,随着每一个新设备、每一个新的运营商协议…

Python酷库之旅-第三方库Pandas(024)

目录 一、用法精讲 61、pandas.to_numeric函数 61-1、语法 61-2、参数 61-3、功能 61-4、返回值 61-5、说明 61-6、用法 61-6-1、数据准备 61-6-2、代码示例 61-6-3、结果输出 62、pandas.to_datetime函数 62-1、语法 62-2、参数 62-3、功能 62-4、返回值 62-…

C语言指针超详解——强化篇

C语言指针系列文章目录 入门篇 强化篇 文章目录 C语言指针系列文章目录1. assert 断言2. 指针的使用和传址调用2. 1 strlen的模拟实现2. 2 传值调用和传址调用 3. 数组名的理解4. 使用指针访问数组5. 一维数组传参的本质6. 冒泡排序7. 二级指针8. 指针数组9. 指针数组模拟实现…

嵌入式智能手表项目实现分享

简介 这是一个基于STM32F411CUE6和FreeRTOS和LVGL的低成本的超多功能的STM32智能手表~ 推荐 如果觉得这个手表的硬件难做,又想学习相关的东西,可以试下这个新出的开发板,功能和例程demo更多!FriPi炸鸡派STM32F411开发板: 【STM32开发板】 FryPi炸鸡派 - 嘉立创EDA开源硬件平…

缓存的击穿及解决方案

定义及图解 缓存击穿的意思是对于设置了过期时间的key,缓存在某个时间点过期的时 候,恰好这时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端 DB 加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把…

使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-标题菜单及游戏结束界面(九)

文章目录 开发思路标题菜单界面标题菜单脚本代码结束菜单界面结束菜单脚本代码 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击(一) 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-激光组件(二) 使用Godot4组件制作竖版…

【密码学】密码协议

一、协议的基本概念 (1)协议的定义 协议(Protocol)是指由两个或两个以上的参与者为了完成某项特定的任务而采取的一系列步骤。协议规定了参与者之间的通信格式、数据交换的顺序、错误处理方式以及如何确保通信的安全性和可靠性等…

手机数据恢复:适用于 Android 的 4 大数据恢复应用程序

没有人希望丢失设备上的重要数据。如果发生这种情况,请不要惊慌。以下是可帮助您恢复丢失或删除的数据的 Android 数据恢复应用程序列表。 有多种方法可以恢复已删除或丢失的 Android 数据,最简单、最快捷的方法是使用第三方恢复应用程序。这些应用程序会…

mysql5.7.23安装容易出现的问题

目录 1.错误代码1862解决办法 1.1登录进mysql 1.2 填写密码进入后,使用指令修改密码 1.3 好了现在虽然是可以继续用了,但是还是没有永久解决密码过期问题,因为从MySQL版本5.6.6版本起,添加了password_expired功能,…

python初学者知识点笔记更新

文章目录 1.main函数入口2.__init__.py 文件作用3.from .applications import server解释4.变量没有修饰,直接创建使用1. 内置数据类型和函数2. 类和对象3.总结 5.mod app.__module__6.集合对比区分集合类型:混合集合类型 7.安装包失败 1.main函数入口 …