几何相互作用GNN预测3D-PLA

预测PLA是药物发现中的核心问题。最近的进展显示了将ML应用于PLA预测的巨大潜力。然而,它们大多忽略了复合物的3D结构和蛋白质与配体之间的物理相互作用,而这对于理解结合机制至关重要。作者提出了一种结合3D结构和物理相互作用的几何相互作用图神经网络GIGN,用于预测蛋白质-配体的结合亲和力。具体来说,作者设计了一个异构相互作用层,将共价和非共价相互作用统一到消息传递阶段,以更有效地学习节点表示。异构相互作用层还遵循基本的生物学定律,包括复合物的平移和旋转的不变性,从而避免了昂贵的数据增强策略。GIGN在三个外部测试集上实现了最先进的性能。

来自:Geometric Interaction Graph Neural Network for Predicting Protein−Ligand Binding Affinities from 3D Structures (GIGN)

目录

  • 背景概述
  • 方法-不变性
    • 定义
    • GIGN的不变性分析

背景概述

药物发现中的一个关键问题是蛋白质-配体结合亲和力的预测,PLA描述了候选药物与蛋白质之间结合相互作用的强度。为了确定对某一特定蛋白质有效而安全的药物,药理学家必须测试数千种化合物。然而,实验测量PLA既费时又耗资源。计算机方法能够根据PLA的预测对候选药物进行排序并优先考虑更好的药物,从而加快药物筛选的过程。

随着高质量实验确定的蛋白质-配体结构及其结合亲和力的增加,ML方法已被广泛用于通过从数据中识别有用的模式来预测蛋白质-配体的结合亲和力或相互作用。根据模型是否依赖物理相互作用做出决策,现有的基于ML的PLA预测方法可分为无交互和基于交互两类,如图1所示。

无相互作用方法隐含地假设ML模型可以从不显示物理蛋白质-配体相互作用的数据中预测PLA。因此,配体通常用SMILES或二维graph表示,蛋白质用序列表示,而为了简单起见,省略了原子相互作用。例如,DeepDTA使用SMILES字符串和蛋白质序列作为输入,然后使用两个CNN从中提取特征。另一方面,GraphDTA和MGraphDTA将配体表示为二维分子graph,以保留二维结构信息。无相互作用的方法可以用于预测没有三维结构和物理相互作用信息的配合物的结合亲和力。然而,三维结构和物理相互作用已被证明是提高模型泛化能力的必要条件(Structure-aware interactive graph neural networks for the prediction of protein-ligand binding affinity)。

相比之下,基于相互作用的模型基于复合物的三维结构和蛋白质与配体的物理相互作用进行预测。在基于相互作用的模型中,3D-CNNs和相互作用图神经网络IGNNs是最常用的基于原子相互作用信息的三维结构结合亲和力预测模型。3D-CNNs针对复合物的3D grids提取特征,这是效率较低的,因为grid中的大多数体素不包含结构相关的有用信息。此外,由于每个体素的位置不是旋转不变的,旋转原子坐标会改变结合亲和力的预测值,这与生物学事实不一致。另一方面,IGNNs将蛋白质-配体复合物表示为相互作用图,其中节点对应原子,边缘对应共价键或非共价键/相互作用。向IGNNs中注入结构信息的最常见方法是使用从它们的3D坐标计算的成对原子-原子距离,这确保了IGNNs对复合物的平移和旋转的不变性。

尽管IGNNs在PLA预测方面具有巨大的潜力,但由于其泛化能力不足,导致还没有为实际应用做好准备。作者总结了现有IGNNs在结合亲和力预测方面存在的两个潜在问题。首先,现有的IGNNs通常将共价相互作用和非共价相互作用视为同一类型的相互作用。在这种情况下,配体节点可以在信息传递过程中同时接收来自其共价和非共价邻居的信息,如图2a所示。尽管这种假设简化了建模,但它有一个明显的缺点。非共价相互作用的数量远远大于共价相互作用的数量,因此非共价相互作用将主导计算,即共价相互作用的信息可能被非共价相互作用的信息所吞没。其次,几何先验(对称先验)是一种重要的inductive bias,可以利用问题的对称性将神经网络限制在相关函数上,从而提高模型泛化能力。例如,对于具有不同初始位置,例如不同位置和方向的相同蛋白质-配体复合物,预测的结合亲和力应该保持不变,如图2b所示。然而,这种不变性仍然没有得到充分的研究,例如,很少有研究试图证明IGNNs可以从考虑不变性中受益。
fig1

  • 图1:PLA方法总结。

fig2

  • 图2:动机和方法。

为了解决上述问题,作者提出了一种几何相互作用图神经网络GIGN,该网络结合了三维结构和物理相互作用以及不变性约束来预测蛋白质-配体的结合亲和力。GIGN的主要贡献包括:

  • GIGN使用异构交互层,将共价和非共价交互统一到消息传递阶段,以更有效地学习节点表示。异构交互层将共价交互和非共价交互视为不同类型的交互,并在消息传递期间独立处理它们,从而避免了图2a中描述的缺点。
  • GIGN强制神经网络满足关于输入平移和旋转的不变性。研究表明,考虑模型的不变性可以大大提高模型的泛化能力。
  • 实验结果表明,GIGN在三个外部测试集上达到了最先进的性能,且计算成本较低,更易于适用于大规模数据库。
  • 可视化结果表明,GIGN可以捕获与binding相关的基本特征。

方法-不变性

定义

T : X → X T:X\rightarrow X T:XX为一个变换集合(比如,旋转,平移,反射,排列)。GNN f : X → Y f:X\rightarrow Y f:XY对于 T T T是不变的,前提是: f ( T ( X ) ) = f ( X ) f(T(X))=f(X) f(T(X))=f(X)

GIGN中探讨了两种不变性:

  • 平移不变性: f ( X + g ) = f ( X ) f(X+g)=f(X) f(X+g)=f(X)
  • 旋转不变性: f ( Q X ) = f ( X ) f(QX)=f(X) f(QX)=f(X)

GIGN的不变性分析

异构交互层 F F F对于平移和旋转是不变的。形式上, F F

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

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

相关文章

mac下Appuim环境安装

参考资料 Mac安装Appium_mac电脑安装appium-CSDN博客 安卓测试工具:Appium 环境安装(mac版本)_安卓自动化测试mac环境搭建-CSDN博客 1. 基本环境依赖 1 node.js 2 JDK(Java JDK) 3 Android SDK 4 Appium&#x…

多线程(代码案例: 单例模式, 阻塞队列, 生产者消费者模型,定时器)

设计模式是什么 类似于棋谱一样的东西 计算机圈子里的大佬为了能让小菜鸡的代码不要写的太差 针对一些典型的场景, 给出了一些典型的解决方案 这样小菜鸡们可以根据这些方案(ACM里面叫板子, 象棋五子棋里叫棋谱, 咱这里叫 设计模式), 略加修改, 这样代码再差也差不到哪里去 … …

C#装箱和拆箱

一,装箱 装箱是指将值类型转化为引用类型。 代码如下: 装箱的内部过程 当值类型需要被装箱为引用类型时,CLR(Common Language Runtime)会为值类型分配内存,在堆上创建一个新的对象。值类型的数据会被复…

Flask智慧农业农产品价格可视化

Flaskecharts做多图联动查询界面: 引言 目的和背景文档结构 农产品价格数据/空气质量指数AQI可视化展示分析 数据收集和准备 数据源描述数据收集方法数据清洗与预处理 可视化界面设计与实现 界面需求描述使用echarts和pyecharts实现可视化界面输入参数和数据展示方…

【Kubernetes】k8s删除master节点后重新加入集群

目录 前言一、思路二、实战1.安装etcdctl指令2.重置旧节点的k8s3.旧节点的的 etcd 从 etcd 集群删除4.在 master03 上,创建存放证书目录5.把其他控制节点的证书拷贝到 master01 上6.把 master03 加入到集群7.验证 master03 是否加入到 k8s 集群,检查业务…

Milvus向量数据库检索

官方文档:https://milvus.io/docs/search.md   本节介绍如何使用 Milvus 搜索实体。   Milvus 中的向量相似度搜索会计算查询向量与具有指定相似度度量的集合中的向量之间的距离,并返回最相似的结果。您可以通过指定过滤标量字段或主键字段的布尔表达…

sql join

-- 创建事实表 CREATE TABLE product_facts (id INT AUTO_INCREMENT PRIMARY KEY,product_name VARCHAR(255),price DECIMAL(10, 2) );-- 插入数据 INSERT INTO product_facts (product_name, price) VALUES (Product A, 100.00); INSERT INTO product_facts (product_name, pr…

Spring Boot(六十九):利用Alibaba Druid对数据库密码进行加密

1 Alibaba Druid简介 之前介绍过Alibaba Druid的,章节如下,这里就不介绍了: Spring Boot(六十六):集成Alibaba Druid 连接池 这章使用Alibaba Druid进行数据库密码加密,在上面的代码上进行修改,这章只介绍密码加密的步骤。 目前越来越严的安全等级要求,我们在做产品…

百科源码生活资讯百科门户类网站百科知识,生活常识

百科源码生活资讯百科门户类网站百科知识,生活常识 百科源码安装环境 支持php5.6,数据库mysql即可,需要有子目录权限,没有权限的话无法安装 百科源码可以创建百科内容,创建活动内容。 包含用户注册,词条创建&#xff…

使用 opencv 识别答题卡,生成填涂答案

一般答题卡设计时都在试卷4个角预留4个一样大小的黑块 仅能识别选择题判断题之类的填涂答题的题目,不能识别填空题应用题等其它主观题 使用 opencv 识别试卷图片中所有黑块,再根据黑块大小获取四个角的位置,根据四个黑块位置校正图像 将图…

Ansible非标记语言YAML与任务剧本Playbook

前言 上篇介绍了 Ansible 单模块(AD-Hoc)的相关内容Ansible自动化运维Inventory与Ad-Hoc-CSDN博客,Ad-Hoc 命令是一次性的、即时执行的命令,用于在远程主机上执行特定任务,这些命令通常用于快速执行简单的任务。当需要…

Spring Boot 集成 WebSocket 实例 | 前端持续打印远程日志文件更新内容(模拟 tail 命令)

这个是我在 CSDN 的第一百篇原则博文,留念😎 #1 需求说明 先说下项目结构,后端基于 Spring Boot 3,前端为 node.js 开发的控制台程序。现在希望能够在前端模拟 tail 命令,持续输出后端的日志文件。 #2 技术方案 #2.…

Python基础(七)之数值类型集合

Python基础(七)之数值类型集合 1、简介 集合,英文set。 集合(set)是由一个或多个元素组成,是一个无序且不可重复的序列。 集合(set)只存储不可变的数据类型,如Number、…

【mask】根据bbox提示同一张图片生成多个矩形框掩码

前提:使用labelimg得到bbox 1.代码 import cv2 import numpy as np# 读取图片 image cv2.imread("D:\Desktop\mult_test\images\SL03509990_1694761223500.jpg")# 假设我们有多个目标的ROI(感兴趣区域) rois [(565,635,1006,85…

MySQL实战:监控

监控指标 性能类指标 名称说明QPS数据库每秒处理的请求数量TPS数据库每秒处理的事务数量并发数数据库实例当前并行处理的会话数量连接数连接到数据库会话的数量缓存命中率Innodb的缓存命中率 功能类指标 名称说明可用性数据库是否正常对外提供服务阻塞当前是否有阻塞的会话…

zookeeper快速入门四:在java客户端中操作zookeeper

系列文章&#xff1a; zookeeper快速入门一&#xff1a;zookeeper安装与启动-CSDN博客 zookeeper快速入门二&#xff1a;zookeeper基本概念-CSDN博客 zookeeper快速入门三&#xff1a;zookeeper的基本操作 先启动zookeeper服务端。 在maven引入zookeeper依赖。 <depende…

51单片机—DS18B20温度传感器

目录 一.元件介绍及原理 二&#xff0c;应用&#xff1a;DS18B20读取温度 一.元件介绍及原理 1.元件 2.内部介绍 本次元件使用的是单总线 以下为单总线的介绍 时序结构 操作流程 本次需要使用的是SKIP ROM 跳过&#xff0c; CONVERT T温度变化&#xff0c;READ SCRATCHPAD…

RabbitMQ命令行监控命令详解

在分布式系统中&#xff0c;消息队列中间件如RabbitMQ扮演着至关重要的角色。为了保证系统的稳定性和高可用性&#xff0c;对RabbitMQ进行有效监控是必不可少的。本文将详细介绍RabbitMQ提供的命令行工具rabbitmqctl&#xff0c;这些工具可以帮助我们监控和管理RabbitMQ服务器。…

【论文精读】DDPM:Denoising Diffusion Probabilistic Models 去噪扩散概率模型

文章目录 一、背景&#xff08;一&#xff09;生成模型&#xff08;二&#xff09;数学理论基础&#xff08;三&#xff09;扩散模型的三种生成范式 二、文章概览&#xff08;一&#xff09;核心思想&#xff08;二&#xff09;前向过程&#xff08;三&#xff09;后向过程&…

玩转C语言——数组初探

一、前言 通过前面的学习&#xff0c;我们已了解C语言的结构变量、分支结构和循环结构。今天&#xff0c;我们一起来认识C语言的另一知识点——数组。先赞后看&#xff0c;养成习惯。 二、数组概念 学习数组&#xff0c;我们要明白数组是什么。在我看来&#xff1a;数组是⼀组…