当前位置: 首页 > news >正文

分子骨架跃迁工具-DiffHopp 评测

一、文章背景介绍

DiffHopp模型发表在ICML 2023 Workshop on Computational Biology(简称:2023 ICML-WCB)上的文章。第一作者是剑桥计算机系的Jos Torge。

DiffHopp是一个专门针对骨架跃迁任务而训练的E3等变条件扩散模型。此外,DiffHopp使用了更具有几何表达力的图神经网络GVP模型。DiffHopp模型针对给定蛋白质-配体复合物,使用等变扩散模型从以官能团和蛋白质袋为条件的骨架分布中对骨架进行采样。 所得骨架与官能团合并以形成骨架跃迁配体。

(有趣的是,我在生成分子的代码中,并没有看到输入官能团的参数。官能团不知道是怎么识别的?估计在数据处理的代码中,需要仔细看看)

关于骨架跃迁任务,作者认为是:保留了原始支架的基本分子特征,同时引入新的化学元素或结构特征以增强效力、选择性或生物利用度。分子结构中间区域都会发生改变,但是做两侧的基团不发生变化或者少量变化。换句话说,骨架跃迁需要通常需要重新设计大部分分子。如下图所示。

这一点与我们之前介绍的其他模型明显不同,Difflinker,Dlinker,Delinker, DEVELOP都是仅修改指定的分子中间一小段。而DiffHopp是不能指定特定的分子区域,同时分子修改区域很大,两侧的功能基团的位置也会发生变化。但这一点其实是不利的,因为在做骨架跃迁项目时,我们希望生成的分子具有晶体分子一样的性质,里面就包括,类似的结合模式和形状。当功能基团的位置发生变化了,很可能原先的相互作用模式被改变了,生成的分子也就没有被相信的理由了。没办法,项目就是这样子,可以相信一个可能对的东西,但是绝对不会信一个AI的观察,毕竟现在AI的观察还是不完善的。

作者以6bqd作为例子,生成了10个分子,然后进行VINA打分。最优打分的分子的docking score为-10.4明显小于参考分子的-9.4,如下图所示。功能基团为红色标记区域。

作者对测试集体系都做了DiffHopp模型的骨架跃迁设计,并使用vina评估打分,结果如下表。DiffHopp模型的结果要优于GVP和ENGG等模型使用inpainting模式的结果,特别是在分子成药性QED和结合力 vina score上。同时也验证了使用GVP模型的扩散模型 (DiffHopp)比使用ENGG模型的扩散模型(DiffHopp-EGNN)生成的分子更具有优势(DiffHopp vs. DiffHopp-EGNN)

但是根据作者的结果,生成分子的QED、SA分数,和vina score打分上仅比测试集的数据分布好一些,说明生成的骨架跃迁分子要优于参考分子,模型在某些体系上捕捉到了额外的蛋白分子相互作用。但结果并不显著。

二、代码复制与环境安装

复制项目代码

git clone https://github.com/jostorge/diffusion-hopping.git

创建conda环境和安装相应的包

#安装环境
conda env create -f environment.yml
#激活环境
conda activate diffusion_hopping

注意,可能由于cuda版本以及系统的原因,导致安装的pytorch可能是cpu版本需要重新安装pytorch。

安装reduce

reduce是用于蛋白质中H原子处理的包,可以加氢也可以删除氢,同时也可以对氨基酸做一些处理,例如HIS。reduce的安装可以参考:GitHub - rlabduke/reduce: Reduce - tool for adding and correcting hydrogens in PDB files.

也可以安装AMBERTools,使用AMBERTools中的reduce替代, 然后将reduce软连接出来。

AMBERTools的安装方法: 

conda install -c conda-forge ambertools=23

软连接方法:在~/.bashrc文件中添加如下行

alias reduce='~/anaconda3/envs/AmberTools23/bin/reduce'

安装Qvina,选装。(仅在分子评估部分使用)

这里略过

安装mgltools

conda install mgltools -c bioconda

三、案例测试(1)

作者在代码中自带了一个体系,1a0q,路径为:

./tests_data/complexes/1a0q

口袋和分子结构见下图:

使用如下命令生成100个新骨架跃迁分子:

python generate_scaffolds.py \
--input_molecule ./tests_data/complexes/1a0q/ligand.sdf \
--input_protein ./tests_data/complexes/1a0q/protein.pdb \
--num_samples 100 \
--output test_data_results

生成的分子保存在自动创建的 ./test_data_results文件夹内。其中,只产生了100个sdf文件,对应100个分子。生成过程不存在不合格的分子。

先简单查看几个生成的分子,如下图。生成的分子与参考分子并没有明显的变化,只有在口袋内侧的苯环发生了角度旋转。这一结果来说,DiffHopp模型对于这个体系的骨架跃迁就失败了。很有可能是代码在识别scaffold区域时,只识别到了苯环,而在生成scaffold时也只生成了苯环。

另外,所有生成的分子均为23个重原子数,与参考分子完全相同。侧面也说明,DiffHopp生成的分子和SBDD等分子生成模型,或者Difflinker等骨架跃迁模型的inpainting模式类似,并不改变生成分子的原子数量。模型时调整原子的位置及其元素种类,而生成新的分子。

生成分子的视频如下:

DiffHopp_1a0q

四、案例测试(2)

有请我们骨架跃迁模型的老演员,3FI3。

分子的二维结构:

将3FI3体系的口袋和分子分别保存为pocket.pdb和ligand.sdf,然后上传至./tests_data/complexes/3FI3目录中。然后执行如下命令生成分子:

python generate_scaffolds.py \
--input_molecule ./tests_data/complexes/3FI3/ligand.sdf \
--input_protein ./tests_data/complexes/3FI3/pocket.pdb \
--num_samples 100 \
--output test_data_results-2

运行结束后,生成的分子保存在./test_data_results-2文件夹内。一共生成了98个分子,有2个分子在生成过程中失败。

先简单查看一下生成的分子吗,随机挑了6个,如下图:

从上图中,DiffHopp模型在骨架跃迁的时候,生了大量的新颖结构的分子,分子也能比较好的放置在口袋中,没有与口袋发生严重的碰撞。值得注意的是,分子两端的三氟苯和苯环片段的结构并没有发生变化,同时,整个分子的所有片段都有一定程度的位移。显然,这些生成的分子是需要进行进一步的筛选和处理的。

以下是生成分子的视频。

DiffHopp_3FI3

五、总结

DiffHopp是一种专门针对骨架跃迁的训练出来的AI工具。整体看来效果还行。偶尔能生成比参考分子结合力更好的分子。

与之前介绍的Difflinker,Delinker, DEVELOP等不同,DiffHopp骨架跃迁部分不能指定,且范围更大,且两端的功能基团的位置也会发生变化,更接近分子生成方法中的inpainting技术。

此外,由于作者提供的checkpoint并非基于口袋的全原子模型训练的,因此,模型性能比较差。最好能自己训练一个口袋全原子的版本。

注:作者提供的代码非常全面,从数据处理到训练模型,到生成分子评估,应有尽有,值得好好学习,加以改进。毕竟,那么全的代码,还可以顺利安装不需要修改代码的AIDD项目,在github上真不多见。

相关文章:

分子骨架跃迁工具-DiffHopp 评测

一、文章背景介绍 DiffHopp模型发表在ICML 2023 Workshop on Computational Biology(简称:2023 ICML-WCB)上的文章。第一作者是剑桥计算机系的Jos Torge。 DiffHopp是一个专门针对骨架跃迁任务而训练的E3等变条件扩散模型。此外,…...

MySQL双主双从数据库集群搭建

1 引言 在之前的文章中提到过相关搭建方法,具体请参考《MySQL主从数据库搭建》这篇文章,本文主要讲述双主双从,双主多从集群的搭建方式。 这里要问一个问题,为什么MySQL要搭建数据库集群呢?我想应该有以下几点原因&…...

vue实现动态路由菜单!!!

目录 总结一、步骤1.编写静态路由编写router.jsmain.js注册 2.编写permisstions.js权限文件编写permisstions.jsaxios封装的APIstore.js状态库system.js Axios-APIrequest.js axios请求实例封装 3.编写菜单树组件MenuTree.vue 4.主页中使用菜单树组件 总结 递归处理后端响应的…...

企业如何选择安全又快速的大文件传输平台

在现代信息化社会,数据已经成为各个行业的重要资源,而数据的传输和交换则是数据价值的体现。在很多场合,企业需要传输或接收大文件,例如设计图纸、视频素材、软件开发包、数据库备份等。这些文件的大小通常在几百兆字节到几十个字…...

springboot 自定义starter逐级抽取

自定义starter 背景:各个组件需要引入starter 还有自己的配置风格 –基本配置原理 (1)自定义配置文件 导入配置可以在配置文件中自动识别,提示 导入依赖后可以发现提示 (2)配置文件实现 –让配置文件对其他模块生…...

GAN:ImprovedGAN-训练GAN的改进策略

论文:https://arxiv.org/abs/1606.03498 代码:https://github.com/openai/improved_gan 发表:NIPS 2016 一、文章创新 1:Feature matching:特征匹配通过为生成器指定新目标来解决GANs的不稳定性,从而防止…...

docker限制容器内存的方法

在服务器中使用 docker 时,如果不对 docker 的可调用内存进行限制,当 docker 内的程序出现不可预测的问题时,就很有可能因为内存爆炸导致服务器主机的瘫痪。而对 docker 进行限制后,可以将瘫痪范围控制在 docker 内。 因此&#…...

阿里达摩院裁撤量子实验室

我是卢松松,点点上面的头像,欢迎关注我哦! 马云的达摩院也不搞量子计算了,因为缺钱,整体裁掉了达摩院量子实验室,把所有的设备都赠送给了浙江大学。 达摩院量子实验室:总共30个研究员&#xf…...

mysql数据库基础知识,Mysql的索引和主键区别,数据库的事务的基本特性

文章目录 数据库基础知识Mysql的索引和主键的区别数据库的事务的基本特性 数据库基础知识 为什么要使用数据库 数据保存在内存 优点: 存取速度快 缺点: 数据不能永久保存 数据保存在文件 优点: 数据永久保存 缺点:1&#xf…...

解决Vscode使用git提交卡住的问题

使用Vscode的git提交代码经常会很慢/卡住。 先点击左下角,进入设置 找到git的配置(建议直接搜索),把use Editor As commit input的勾选去掉即可解决。...

Linux C语言 32-网络编程之UDP例程

Linux C语言 32-网络编程之UDP例程 本节关键字:C语言 网络编程 UDP协议 套接字操作 服务端 客户端 相关C库函数:setsockopt, socket, bind, recvfrom, sendto, close 相关接口介绍 Linux C语言 30-套接字操作 例程执行任务说明 本例程中服务端的任务…...

ubuntu22.04系统下载程序和依赖,并拷贝到指定路径下

脚本1 apt install aptitude apt-get -d install xxx #xxx是待下载的安装包 mv /var/cache/apt/archives/* /home/tuners/1apt install aptitude apt-get -d install xxx mv /var/cache/apt/archives/*.deb /home/tuners/1 xxx 为程序包名称 /home/tuners/1为保存程序包的…...

Kafka KRaft 版本集群部署详细教程(附配置文件详细解释)

版本说明 Ubuntu 18.04.6Kafka 3.6.0JDK8 集群配置 操作系统ip域名Kafka Broker 端口Kafka Controller 端口Ubuntu 18.04.6192.168.50.131kafka1.com90929093Ubuntu 18.04.6192.168.50.132kafka2.com90929093Ubuntu 18.04.6192.168.50.133kafka3.com90929093 安装 vim, cur…...

在龙蜥 anolis os 23 上 源码安装 PostgreSQL 16.1

在龙蜥 OS 23上,本来想使用二进制安装,结果发现没有针对龙蜥的列表: 于是想到了源码安装,下面我们列出了PG源码安装的步骤: 1.安装准备 1.1.创建操作系统组及用户 groupadd postgres useradd -g postgres -m postgr…...

UDP的不可靠性可以用来做什么

User Datagram Protocol(UDP,用户数据报协议)是互联网协议套件中的一种传输层协议。与TCP不同,UDP是一种无连接的、不可靠的协议。 要知道UDP可以用来做什么,首先我们要知道它有何特点: 1,无连接: UDP是一…...

vue3还用this吗?getCurrentInstance获取当前组件实例

在 Vue 2 中,this 关键字代表当前组件实例。在组件的选项对象中,this 可以用于访问组件实例的属性、方法以及 Vue 实例的一些特定方法。 在Vue3中,我们发现this是undefined,那我们真的没法使用this了吗?vu3给我们提供…...

高校学生宿舍公寓报修维修生活管理系统 微信小程序b2529

本课题要求实现一套基于微信小程序宿舍生活管理系统,系统主要包括(管理员,学生、维修员和卫检员)四个模块等功能。 使用基于微信小程序宿舍生活管理系统相对传统宿舍生活管理系统信息管理方式具备很多优点:首先可以大幅…...

C++类与对象(7)—友元、内部类、匿名对象、拷贝对象时编译器优化

目录 一、友元 1、定义 2、友元函数 3、友元类 二、内部类 1、定义 2、特性: 三、匿名对象 四、拷贝对象时的一些编译器优化 1、传值&传引用返回优化对比 2、匿名对象作为函数返回对象 3、接收返回值方式对比 总结: 一、友元 1、定义…...

Django回顾2

目录 一.HTTP 1.URL介绍 2.格式: 3.补充: 二.web框架 1.什么是框架 2.什么是web框架 3.wsgi协议 基于wsgi协议的web服务器: 4.协议是怎么规定的 三.Django 1.MVC与MTV模型(所有框架其实都遵循MVC架构) 2.…...

<JavaDS> 二叉树遍历各种遍历方式的代码实现 -- 前序、中序、后序、层序遍历

目录 有以下二叉树: 一、递归 1.1 前序遍历-递归 1.2 中序遍历-递归 1.3 后序遍历-递归 二、递归--使用链表 2.1 前序遍历-递归-返回链表 2.2 中序遍历-递归-返回链表 2.3 后序遍历-递归-返回链表 三、迭代--使用栈 3.1 前序遍历-迭代-使用栈 3.2 中序遍…...

2026年本地建材吨包袋批发厂家有何独特优势?快来一探究竟!

在建材行业蓬勃发展的2026年,吨包袋作为建材运输与存储的关键包装材料,其质量和供应稳定性至关重要。本地建材吨包袋批发厂家凭借多项独特优势,在市场中占据重要地位。以临沂领杰包装有限公司为例,让我们一同深入了解本地建材吨包…...

深度解析 Chromium WebUI 的生命周期与 IsJavascriptAllowed 崩溃之谜

在 Chromium (或基于其二次开发的浏览器等内核) 开发中,WebUI 是我们最常打交道的模块之一。诸如 chrome://settings、chrome://history 这些内置页面,都是通过 WebUI 机制实现前端 (HTML/JS) 与底层 C 的双向通信。然而,在处理后台异步任务向…...

推荐一些可以用于论文降重的爆款软件:2026年实测TOP5,AIGC率稳降至5%以下!

CSDN资深技术博主课代表总结: 2026年的毕业季,无数硕博生因为“AIGC疑似率过高”被卡在了送审的最后一关。很多同学后台私信让我“推荐一些可以用于论文降重的软件”。经过耗时半个月的对比交叉测试,我明确告诉大家:那些只会“同义…...

LangChain 源码剖析-消息类详解(Messages)

LangChain 源码剖析-消息类详解(Messages) 消息是包含以下内容的对象: 角色(Role)-标识消息类型(例如系统、用户) 内容(Content)-表示消息的实际内容(如文本、图像、音频、文档等) 元数据(Metadata)-可选字段,如响应信息、消息ID和令牌使用情况 LangChain提供了一种标…...

2026年翟章锁甲状腺调理新方法,比错不错的选择!

翟章锁:一位深耕甲状腺健康领域的中医专家在繁忙的都市生活中,人们越来越重视自身的身体状态。而甲状腺问题,作为常见的健康困扰之一,也逐渐引起了大家的关注。在北京大望路中西医结合医院,有一位名叫翟章锁的中医专家…...

保姆级教程:在Linux上用Neo4j 3.5.35社区版搭建你的第一个图数据库(附配置文件修改详解)

从零开始:Linux环境下Neo4j 3.5.35社区版实战部署指南 第一次接触图数据库时,那种既兴奋又忐忑的心情我至今记忆犹新。作为非关系型数据库中的重要分支,图数据库以其独特的节点-关系模型,在处理复杂关联数据时展现出惊人的效率。而…...

ADS实战:利用RFPro近场仿真精准定位微带电路耦合热点

1. 为什么需要近场仿真定位耦合热点? 微带电路设计中最头疼的问题,就是明明原理图仿真完美,实际布局后性能却突然恶化。上周我就遇到一个案例:某5G基站用的带通滤波器,在3.5GHz频段突然出现异常谐振,插损直…...

OpenClaw连接飞书(机器人)配置及相关参数说明

飞书企业自创应用(机器人) 飞书开发者后台:https://open.feishu.cn/app?langzh-CN 1、创建企业自建应用,填写应用名称和描述。 2、添加应用能力:机器人 3、权限管理:应用身份权限,开通聊天基础…...

R语言农业预测代码开源泄露?3个被90%农科院忽略的产量建模陷阱(附可复现代码)

第一章:R语言农业产量预测代码开源泄露事件全景剖析 2023年夏季,某国家级农业大数据平台在GitHub公开仓库中意外暴露了包含真实县域气象、土壤与历史产量数据的R语言建模脚本,引发行业级安全震动。该仓库原意为教学示范,但因.giti…...

论文降AI工具测评:10款对比后这款低至0.12%通过率极高

2026年国内学术圈AIGC检测规则全面更新,学生和科研人员对论文降AI工具的需求持续攀升,一季度用户规模已突破2000万。但市面上各类工具的技术能力差异极大,多数还停留在同义词替换、简单调整句式的浅层改写阶段,根本无法应对知网、…...