【文献阅读】Pocket2Mol : 基于3D蛋白质口袋的高效分子采样 + CrossDocked数据集说明

news2025/1/18 6:44:00

Pocket2Mol: Efficient Molecular Sampling Based on 3D Protein Pockets

code: GitHub - pengxingang/Pocket2Mol: Pocket2Mol: Efficient Molecular Sampling Based on 3D Protein Pockets


所用数据集

与“A 3D Generative Model for Structure-Based Drug Design”文章所用的数据集一致:

Data We use the CrossDocked dataset [7] following [20]. The dataset originally contains 22.5 million docked protein-ligand pairs at different levels of quality. We filter out data points whose binding pose RMSD is greater than 1Å, leading to a refined subset consisting of 184,057 data points. We use mmseqs2 [31] to cluster data at 30% sequence identity, and randomly draw 100,000 protein-ligand pairs for training and 100 proteins from remaining clusters for testing.

RMSD是用来比较实验或计算得到的蛋白质-配体复合物的结构与某个参考结构之间的差异,这里过滤掉了相似度(RMSD)大于 1Å的复合物。

“crossdocked_pocket10/index.pkl”中包含3种信息,分别是: pocket_fn(口袋名称), ligand_fn(配体名称), _, rmsd_str(受配体RMSD(比较蛋白质结构或化合物结构之间的相似程度))

评价指标

这里主要介绍容易混淆的两个metrics:

Vina Score(kcal/mol, ):We use Vina [33, 1] to compute the binding affinity (Vina Score). Before feeding the molecules to Vina, we employ the universal force fields (UFF) [24] to refine the  generated structures following [20].

High Affinity(%, ):有更高亲和力的百分比,测量结合位点生成的结合亲和力高于或等于参考ligand的分子的百分比


 作者提出了一种新的可以满足口袋施加的多个几何约束的采样方法:Pocket2Mol,这是一个由两个模块组成的 E(3)-等变生成网络,它不仅可以捕获结合口袋原子之间的空间和键合关系,还可以在不依赖 马尔科夫链蒙特卡洛方法(MCMC)的情况下从易于处理的分布中以口袋表示为条件对新候选药物进行采样。实验结果表明,从 Pocket2Mol 中取样的分子具有明显更好的结合亲和力和其他药物特性,例如药物相似性和合成可及性。

1.介绍

深度学习在药物设计方面取得了巨大成功。生成模型主要思想是在紧凑的低维空间中高效地表示所有收集的化学结构,并通过扰乱隐藏值来采样新的候选药物。这些模型的输出可以是一维化学描述符、二维图(graph)和3D结构。

然而,在分子水平上,小分子仅通过与特定的蛋白质口袋结合来抑制或激活特定的生物学功能。因此,基于口袋的药物设计受到越来越多的关注。更具体地说,给定目标蛋白的 3D 结合口袋,这些模型知道 3D 口袋的几何信息,并相应地生成与口袋结合的分子。早期的方法通过:

  1. 集成评估功能(例如采样分子和口袋之间的对接分数)来修改无口袋模型,以指导候选搜索。
  2. 另一种方法将 3D 口袋结构转换为分子 SMILES 字符串或 2D 分子图,但是没有明确建模小分子结构和 3D 口袋之间的相互作用。

条件生成模型可以模拟 3D 口袋结构内的 3D 原子密度分布。然后这个问题的挑战点从学习分布转移到结构采样算法的效率上。此外,以前的模型过分强调原子 3D 位置的重要性,而忽略了化学键的产生,这导致在实践中原子连接不切实际。作者从以下方向改进了基于口袋的药物设计:

  1. 第一,开发一种新的深度几何神经网络来准确地模拟口袋的 3D 结构;
  2. 第二, 设计一种新的采样策略,以实现更有效的条件 3D 坐标采样;
  3. 第三,将采样一对原子之间的化学键的能力分配给Pocket2Mol模型。

Pocket2Mol模型利用基于向量的神经元几何向量感知器学习蛋白质口袋施加的化学和几何约束,通过共享原子级嵌入联合预测前沿原子、原子位置、原子类型和化学键,并以自回归方式对分子进行采样。由于基于向量的神经元,该模型可以直接生成相对于焦点原子的相对原子坐标的易处理分布,以避免使用传统的 MCMC 算法。实验结果表明,Pocket2Mol 采样的候选药物不仅表现出更高的结合亲和力和药物相似性,而且比最先进的模型包含更真实的子结构。此外,Pocket2Mol 比以前基于 MCMC 的自回归采样算法快得多。

3.方法

Pocket2Mol 的中心思想是根据已经存在的原子来学习口袋内每个位置的原子或键类型的概率分布。为了学习这种特定于上下文的分布,作者采用自回归策略从训练药物的其余部分预测随机被mask掉的部分。

3.1、生成步骤

形式上,蛋白质口袋表示为一组带有坐标的原子,

其中a_i^{pro}r_i^{pro} 分别是第 i 个重原子、及其坐标,N 是蛋白质口袋中的原子数。以连续方式对分子进行采样。将已经生成的具有n个原子的分子片段表示为带有坐标的图:

a_i^{mol}r_i^{mol}b_i^{mol} 分别表示第i个重原子,它的坐标、它与其他原子的价键

生成模型记为φ,生成过程定义如下:

P^{pro} 蛋白质口袋、G_n^{mol} 分子片段

对于每个原子,生成过程由四个主要步骤组成,如图一所示:

  1. 首先,该模型的前沿预测器 f_{fro} 将预测当前分子片段的前沿原子(Frontiers)。前沿被定义为可以共价连接到新原子的原子。如果所有的原子都不是前沿,则表明当前分子是完整的,生成过程终止。
  2. 第二步,该模型从前沿原子集中采样一个原子作为焦点(Focal)原子。
  3. 第三步,基于焦点(Focal)原子,模型的位置预测器 f_{pos} 预测新原子的相对位置。
  4. 最后,模型的原子元素预测器 f_{ele} 和键型预测器 f_{bond} 将预测元素类型和与键类型的概率,然后采样新原子的元素类型和价键。
  5. 通过这种方式,新原子被成功地添加到当前的分子片段中,生成过程继续下去,直到找不到前沿原子(Frontiers)。

这个生成过程对于第一个前沿原子是不同的,对于第一个原子,蛋白质口袋中的所有原子都被用来预测前沿(Frontiers),这里的Frontiers被定义为新原子可以在4˚A内产生的原子。【可以从第一个Frontiers的生成和采样做文章

3.2、模型架构

基于上述生成过程,模型需要由四个模块组成:编码器(encoder)、前沿原子预测器(frontier predictor)、原子位置预测器( position predictor )和元素和键预测器( element and-bond predictor)。

3.2.1、E(3)等变神经网络【主体架构,可以更好的捕获3D口袋和分子fragment的信息】

研究表明,用标量和向量特征表示三维图中的顶点和边(2021)可以帮助提高神经网络的表达能力。在我们的网络中,蛋白质口袋和分子片段的所有顶点和边都与标量和矢量特征相关联,以更好地捕获三维几何信息。

标量和向量分别用点和箭头表示

我们采用几何矢量感知器(geometric vector perceptrons GVP)(Jing et al.,2021)和基于矢量的神经网络(vector-based neural network)(Deng et al.,2021)来实现E(3)-等变。

  1. 几何向量感知器(GVP)扩展了标准的密集层(standard dense layers),可以在标量特征和向量特征之间传播信息(Jing et al., 2021)。
  2. 向量神经元网络将一组普通的神经操作(例如线性层、激活函数)扩展到向量特征空间(Deng et al., 2021)。

我们对原GVP进行修改,在GVP的输出向量上加入一个向量非线性激活(vector nonlinear activation),记为Gper:

可以是任何一对标量向量特征

在我们的模型中,我们选择LeakyReLU非线性函数作为GVP的标量和矢量输出。此外,我们通过去掉GVL的标量和矢量输出的非线性激活,定义了一个几何向量线性( geometric vector linear  GVL)块,记为Glin。改进的GVP块Gper和GVL块Glin是我们模型的主要构建块,这使得模型是E(3)-等变的。此外,包含矢量特征对于我们的模型直接准确地预测基于蛋白质口袋提供的几何环境的原子位置至关重要(细节将在第3.2.3节中描述)。

3.2.2 Encoder

我们将蛋白质口袋和分子片段表示为 k 近邻图(KNN),其中顶点为原子,每个原子与其 k 近邻相连。
蛋白质原子的输入标量特征包括元素类型、所属氨基酸以及是骨架原子还是侧链原子。
分子原子的输入标量特征包括元素类型、化合价和不同化学键的数量。
此外,所有原子还有一个标量特征,表明它们属于蛋白质还是分子片段。标量边缘特征包括用高斯 RBF 核(Sch¨utt et al. 输入矢量顶点特征包括原子坐标,而矢量边缘特征则是三维空间中边缘的单位方向矢量。

3.2.2 预测

前沿原子预测器(frontier predictor)

原子位置预测器( position predictor )

元素和键预测器( element and-bond predictor)。

4、训练

在训练阶段,作者随机mask分子的原子,并训练模型恢复被mask的原子。具体地说,对于每个口袋配体对,从均匀分布U[0,1]中抽样mask比率,并mask相应数量的分子原子。其余与被mask原子有价键的分子原子被定义为前沿(frontiers)。然后,位置预测器和元素键预测器试图通过预测掩蔽原子朝向相应前沿的位置、元素类型和与剩余分子原子的键,来恢复与前沿原子具有价键的mask原子。如果所有分子原子都被mask,则frontiers定义为在4˚A范围内具有mask原子的蛋白质原子,frontiers附近的被屏蔽原子将被恢复。对于元素类型预测,作者在查询位置增加了一个不表示任何内容的元素类型。

前沿预测的损失是预测前沿的二元交叉熵损失(binary cross entropy loss)。位置预测器的损失是掩蔽原子位置的负对数可能性(negative log likelihood)。对于元素类型和键型预测,作者使用交叉熵损失(cross entropy losses)进行分类。总损失函数为:

参考:

Pocket2Mol : 基于3D蛋白质口袋的高效分子采样 - 知乎

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

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

相关文章

【网络原理】初始网络,了解概念

文章目录 1. 网络通信1.1 局域网LAN1.2 广域网WAN 2. 基础概念2.1 IP2.2 端口号 3. 认识协议4. 五元组5. 协议分层5.1 分层的作用5.2 OSI七层模型5.3 TCP/IP五层(四层)模型 6. 封装和分用 1. 网络通信 计算机与计算机之间是互相独立,是独立模…

天选之子Linux是如何发展起来的?为何对全球IT行业的影响如此之大?

天选之子Linux是如何发展起来的?为何对全球IT行业的影响如此之大? 前言一、UNIX发展史二、Linux发展历史三、开源四、官网五、 企业应用现状六、发行版本 前言 上面这副图是博主历时半小时完成的,给出了Linxu的一些发展背景。球球给位看官老…

Linux—进程间通信之System V共享内存

目录 简介System V共享内存特点及用法 共享内存的创建共享内存的关联与去关联共享内存的删除共享内存通信代码实现总结 简介 System V共享内存是一种在Unix-like系统中广泛使用的共享内存机制。它是基于System V IPC(Inter-Process Communication,进程间…

2023.09.30使用golang1.18编译Hel10-Web/Databasetools的windows版

#Go 1.21新增的 log/slog 完美解决了以上问题,并且带来了很多其他很实用的特性。 本次编译不使用log/slog 包 su - echo $GOPATH ;echo $GOROOT; cd /tmp; busybox wget --no-check-certificate https://go.dev/dl/go1.18.linux-amd64.tar.gz;\ which tar&&am…

【腾讯云 TDSQL-C Serverless 产品体验】国产数据库遥遥领先

一、为什么选TDSQL-C 1、性能达到每分钟8.14亿笔交易 国产数据库傲立世界之巅!腾讯云数据库TDSQL-C性能刷新世界记录。 由TPC发起的TPC-C是针对在线事务处理(OLTP)的基准测试模型,是全球数据库厂商公认的性能评价标准,被誉为数据库领域的“…

解决WIFI网络登录困难的方法

当你遇到手机WIFI网络在连接成功后,总是提示网络受限或者当前网络无法连接互联网,但过一段时间后它又自动恢复正常的的问题,可以尝试用以下方法来解决。 第一步:打开WLAN连接设置界面,选择“更多设置” 第二步&#x…

关于TUM数据集

2、验证回环检测算法,需要有人工标记回环的数据集。然而人工标记回环是很不方便的,我们会考虑根据标准轨迹计算回环。即,如果轨迹中有两个帧的位姿非常相近,就认为它们是回环。请根据TUM数据集给出的标准轨迹,计算出一…

Flink中的状态一致性

1.概念 一致性其实就是结果的正确性。对于分布式系统而言,从不同节点读取时总能得到相同的值;而对于事务而言,是要求提交更新操作后,能够读取到新的数据。 有状态的流处理,内部每个算子任务都可以有自己的状态。对于流…

域环境介绍

一、概述 内网也指局域网,指的是某个区域由多台计算机互连而成的计算机组,范围通常在数千米以内,在局域网中,可以实现文件管理,应用软件共享,打印机共享、工作组内的日程安排、电子邮件和传真通信服务等&a…

【微服务保护】

文章目录 Sentinel 微服务雪崩问题: 微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。服务D有 故障进而导致服务A有故障,进而导致服务雪崩。 解决雪崩问题的常见方式有四种: 超时处理&#xff1…

iPhone苹果手机复制粘贴内容提示弹窗如何取消关闭提醒?

经常使用草柴APP查询淘宝、天猫、京东商品优惠券拿购物返利的iPhone苹果手机用户,复制商品链接后打开草柴APP粘贴商品链接查券时总是弹窗提示粘贴内容,为此很多苹果iPhone手机用户联系客服询问如何关闭iPhone苹果手机复制粘贴内容弹窗提醒功能的方法如下…

毛玻璃态按钮悬停效果

效果展示 页面结构组成 通过上述的效果展示可以看出如下几个效果 毛玻璃的按钮按钮上斜边背景及动画按钮上下边缘的小按钮和小按钮动画 CSS3 知识点 backdrop-filter 属性transition 属性transform 属性 实现基础按钮结构 <div class"btn"><a href&qu…

第三章 C运算符和控制语句

几乎每一个程序都需要进行运算&#xff0c;对数据进行加工处理&#xff0c;否则程序就没有意义了。要进行运算&#xff0c;就需规定可以使用的运算符。 C语言的运算符范围很宽&#xff0c;把除了控制语句和输人输出以外的几乎所有的基本操作都作为运算符处理。 运算符分类1 除…

【Linux】—— 详解动态库和静态库

前言&#xff1a; 本期我将要给大家讲解的是有关 动态库和静态库 的相关知识&#xff01;&#xff01;&#xff01; 目录 序言 见一见库 为什么要有库 &#xff08;一&#xff09;动态库&#xff08;.so&#xff09; 1.基本概念 2.命名规则 3.制作动态库 &#xff0…

No155.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

【KingbaseES】银河麒麟V10 ARM64架构_安装人大金仓数据库KingbaseES_V8R6(CentOS8)

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的…

C# 类型、变量与对象

变量一共7种&#xff1a; 静态变量&#xff08;静态字段&#xff09;、实例变量&#xff08;成员变量、字段&#xff09;、数组元素、值参数、引用参数、输出形参、局部变量 狭义的变量就是局部变量 内存的最小单位是比特&#xff08;byte&#xff09;&#xff0c;8个比特为…

【数据结构】【C++】封装哈希表模拟实现unordered_map和unordered_set容器

【数据结构】&&【C】封装哈希表模拟实现unordered_map和unordered_set容器 一.哈希表的完成二.改造哈希表(泛型适配)三.封装unordered_map和unordered_set的接口四.实现哈希表迭代器(泛型适配)五.封装unordered_map和unordered_set的迭代器六.解决key不能修改问题七.实…

Stm32_标准库_5_呼吸灯_按键控制

Stm32按键和输出差不多 PA1为LED供给正电&#xff0c;PB5放置按键&#xff0c;按键一端接PB5,另一端接负极 void Key_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //APB2总线连接着GPIOBGPIO_InitStructur.GPIO_Mode GPIO_Mode_IPU;GPIO_InitStructur.…

Java下对象的序列化和反序列化(写出和读入)

代码如下&#xff1a; public class MyWork {public static void main(String[] args) throws IOException, ClassNotFoundException {//序列化File f new File("testFile/testObject.txt");ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(…