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

ZeroBind:DTI零样本预测器

现有的药物-靶点相互作用(DTI)预测方法通常无法很好地推广到新的(unseen)蛋白质和药物。 在这项研究中,作者提出了一种具有子图匹配功能的蛋白质特异性元学习框架 ZeroBind,用于根据其结构预测蛋白质-药物相互作用。 在元学习过程中,ZeroBind为每个蛋白质制定了一个模型,这也被认为是一个学习任务,每个任务都使用图神经网络(GNN)来学习蛋白质graph嵌入和分子graph嵌入。受到分子与蛋白质中的结合袋而不是整个蛋白质结合这一事实的启发,ZeroBind 引入了无监督子图信息瓶颈(SIB,subgraph information bottleneck)模块,以将蛋白质图中信息量最大且压缩的子图识别为潜在的结合袋。此外,ZeroBind 将单个蛋白质的模型用多任务训练,其重要性通过任务自适应自注意力模块自动学习以做出最终预测。 结果表明,ZeroBind 在 DTI 预测方面比现有方法取得了优异的性能,特别是对于那些新的蛋白质和药物,并且在对那些具有一些已知结合注释的蛋白质或药物进行微调后表现良好。

来自:ZeroBind: a protein-specific zero-shot predictor with subgraph matching for drug-target interactions
工程地址:http://www.csbio.sjtu.edu.cn/bioinf/ZeroBind/readme.html

目录

  • 基本介绍
  • 方法
    • 元学习设置
    • 模型架构

基本介绍

输入的是分子图和蛋白质图,对于分子图 ,节点为原子,对于蛋白质图,节点为残基。

  • 分子图 G m = { V m , E m } G_{m}=\left\{V_{m},E_{m}\right\} Gm={Vm,Em}
  • 蛋白质图 G p = { V p , E p } G_{p}=\left\{V_{p},E_{p}\right\} Gp={Vp,Ep}

氨基酸组成了蛋白质,氨基酸通过脱水缩合形成肽链,剩余的部分就是残基,在获取蛋白质图的过程中,残基作为节点,节点之间的连接依据蛋白质的3D结构,如果两个残基在3D空间中的距离小于设定距离,则连接两个残基节点


zerobind的输入输出为:

  • 输入:蛋白质3D结构(PDB格式)和分子的SMILES;
  • 输出:zerobind自动根据输入的蛋白质搜索训练过的protein-specific模型,得到预测结果,如果搜索不到这个蛋白质相关的模型,zerobind将会使用元学习进行结合预测任务;

数据处理流程:
step1

  • 第一步:从蛋白质三维结构构建蛋白质图。不使用肽键作为边,而是连接距离小于8Å的残基,其中使用ESM-2预训练模型提取边和节点特征

step2

  • 第二步:从蛋白质3D结构构建蛋白质图的一个例子

step3

  • 第三步:小样本预测和零样本预测的schedule

方法

元学习设置

zerobind在每个蛋白质上训练一个DTI任务,定义DTI任务 T p = { p , M p } T_{p}=\left\{p,M_{p}\right\} Tp={p,Mp},其中 p p p是蛋白质集合 P P P中的蛋白质, M p M_{p} Mp p p p对应的结合分子和非结合分子的药物集。

元学习框架最初是为了在分布中的多个相关任务中学习一般知识而提出的,并利用这种一般经验快速适应额外的任务,提高预测性能。元学习框架主要有两种类型:

  • 基于梯度的方法:经典的基于梯度的MAML方法使用元学习器通过总结多个任务损失来学习良好的初始化。因此,MAML可以实现高精度和快速的泛化,该研究就采用MAML作为训练策略
  • 基于度量的方法:原型网络是一种经典的基于度量的元学习算法,它直接训练每个类别的向量表示。一旦训练了一个好的特征提取器,新样本的类别就由其在向量空间中最接近的原型来确定;

首先,随机初始化网络参数 θ \theta θ,从任务 T p = { p , M p } T_{p}=\left\{p,M_{p}\right\} Tp={p,Mp}中采样出任务(以protein为索引),MAML旨在学习初始化参数,以快速适应额外任务。对于一对蛋白质和药物,按照2-way(2分类),k-shot(每个类别中有k个样本),m-query(query中的样本数量)进行采样。在这三个超参数中,由于在分类任务中只有结合和非结合两种类型的标签,因此设置了2-way。在最初的MAML框架中,模型首先对每个标签的k个样本进行内部训练,以学习特定于task的模型,然后对m个样本进行测试。在获得每个任务的损失后,MAML将梯度下降与所有任务的损失总和平均值相结合。在这里,作者将训练任务和测试任务分别称为support集和query集。


MAML(Model-Agnostic Meta-Learning)是一种流行的元学习算法,它的目标是训练模型在接收少量新数据时能够快速适应新任务。MAML的核心思想是通过在多个任务上训练,找到一个好的参数初始化,这个初始化能够使得模型通过少量的梯度更新即可对新任务进行有效学习。以下是MAML的基本训练策略:

  1. 任务抽样:在训练过程中,从数据集中随机抽取一批任务。每个任务都有自己的训练数据(支持集)和验证数据(查询集)。

  2. 内部循环(Inner Loop):对于每个任务,模型从一个共享的初始化参数开始,并仅使用该任务的支持集进行几步梯度更新(这就是“k-shot”学习)。这些更新被称为内部循环或者快速适应。

  3. 计算损失:在内部循环的梯度更新后,使用该任务的查询集计算模型的损失。这个损失表示模型对新数据的泛化能力。

  4. 外部循环(Outer Loop):损失函数根据所有任务的查询集损失来计算。然后使用这个总损失来更新模型的初始化参数。这些更新被称为外部循环或元更新。

  5. 重复过程:重复以上步骤,每次迭代都会选择新的任务批次进行训练。通过多次迭代,模型的初始化参数会逐渐适应各种任务,目的是找到一个好的起点,使模型能够通过少量的调整快速适应新任务。

MAML的关键优势在于其模型无关性,即它可以应用于任何能够通过梯度下降进行训练的模型,包括但不限于神经网络。通过在多个任务上进行元学习,MAML找到的参数初始化可以被迅速微调以适应新任务,这对于在数据稀缺的场景下有着重要意义。


模型架构

ZeroBind将DTI预测表示为元学习任务,并用MAML框架来解决DTI预测中看不见的蛋白质和药物的泛化问题。具体而言,元学习任务被定义为特定蛋白质的药物的结合预测,网络结构中利用子图学习自动发现子图作为蛋白质中的潜在结合口袋,并设计自注意力机制来学习每个任务的权重。ZeroBind的流程如图1所示。

ZeroBind将 T p = { p , M p } T_{p}=\left\{p,M_{p}\right\} Tp={p,Mp}采样到support和query集中(图1a),其中support集用于训练base学习器,query集用于训练task-specific模型。在重复N个内部步骤后,对所有损失进行加权,以优化具有梯度下降的base学习器。对于每种蛋白质,ZeroBind训练一个DTI预测任务。图1b给出了ZeroBind中基础模型的架构,其中蛋白质图和分子图被输入到GCN中,以学习药物和蛋白质的嵌入。此外,设计了一个弱监督子图信息瓶颈(SIB)模块来建模和发现蛋白质中的潜在结合口袋。SIB模块不仅减少了冗余信息以提高性能,而且通过识别蛋白质中的关键残基,为ZeroBind带来了可解释的见解。图1c介绍了一个自适应自注意力模块,用于测量每个任务的贡献,其中不同的DTI任务对元学习器有不同的贡献。ZeroBind支持在零样本和小样本场景中预测DTI。前者使用元学习器直接进行预测,后者使用蛋白质特异性模型在元测试中使用蛋白质样本进行微调后进行预测。
fig1

  • 图1a:给定support集和query集,首先计算 L s u p p o r t L_{support} Lsupport,并使用每个任务的support集将参数为 θ θ θ的base模型更新为参数为 θ ′ θ' θ的task-specific模型,然后任务特定模型使用任务的query集计算 L q u e r y L_{query} Lquery。重复 N N N次后,所有损失被加权平均更新元模型。
  • 图1b:zerobind中基本模型的结构。对于每个任务,蛋白质图和分子图都被输入到具有参数 θ p \theta_{p} θp θ M \theta_{M} θM的GCN中,接下来,以弱监督的方式生成蛋白质的IB子图作为潜在结合口袋。蛋白质子图嵌入与分子嵌入连接,并将它们输入MLP以识别相互作用
  • 图1c:任务自适应注意力模块。将蛋白质embedding G p , k G_{p,k} Gp,k和query中所有分子embeddings { G m , k i } i = 1 m \left\{G_{m,k}^{i}\right\}_{i=1}^{m} {Gm,ki}i=1m的平均拼接作为任务的embedding。在使用自注意力层计算每个任务的权重后,记为 { η T i } i = 1 N \left\{\eta_{T_{i}}\right\}_{i=1}^{N} {ηTi}i=1N,对总损失进行平均,并将其合并到元训练过程中以更新模型参数。

相关文章:

ZeroBind:DTI零样本预测器

现有的药物-靶点相互作用(DTI)预测方法通常无法很好地推广到新的(unseen)蛋白质和药物。 在这项研究中,作者提出了一种具有子图匹配功能的蛋白质特异性元学习框架 ZeroBind,用于根据其结构预测蛋白质-药物相…...

Win10子系统Ubuntu实战(一)

在 Windows 10 中安装 Ubuntu 子系统(Windows Subsystem for Linux,简称 WSL)有几个主要的用途和好处:Linux 环境的支持、跨平台开发、命令行工具、测试和验证、教育用途。总体而言,WSL 提供了一种将 Windows 和 Linux…...

[足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-2(3) 质量刚体的在坐标系下运动

本文仅供学习使用,总结很多本现有讲述运动学或动力学书籍后的总结,从矢量的角度进行分析,方法比较传统,但更易理解,并且现有的看似抽象方法,两者本质上并无不同。 2024年底本人学位论文发表后方可摘抄 若有…...

云计算历年题整理

目录 第一大题 第一大题HA计算 给出计算连接到EC2节点的EBS的高可用性(HA)的数学公式,如场景中所述;计算EC2节点上的EBS的高可用性(HA);场景中80%的AWS EC2节点用于并行处理,总共有100个虚拟中央处理单元(vCPUs)用于处理数据&a…...

2401vim,vim重要修改更新大全

原文 2023 更好的UTF-16支持 添加strutf16len()和utf16idx(),并在byteidx(),byteidxcomp()和charidx()中添加utf16标志,在内置.txt文档中. 添加crypymethod xchacha20v2 与xchacha20基本相同,但更能抵御libsodium的变化. 2022 添加"smoothscroll" 用鼠标滚动…...

安卓多用户管理之Userinfo

目录 前言Userinfo----用户信息1.1 属性1.2 构造器1.3 信息的判断及获取方法1.3.1 获取默认用户类型1.3.2 基础信息判断 1.4 序列化部分 总结 前言 UserManagerService内部类UserData中有一个Userinfo类型的info参数,在UserData中并未有所体现,但在后续…...

JavaScript-流程控制-笔记

1.流程语句的分类 顺序结构 分支结构 循环结构 2.if语句 1)if结构 if( 条件 ){ // 条件成立执行的代码 } 2)if else 结构 if( 条件 ){ // 条件成立执行的代码 }else{ // 条件不成…...

springboot + vue3实现增删改查分页操作

springboot vue3实现增删改查分页操作 环境最终实现效果实现功能主要框架代码实现数据库后端前端 注意事项 环境 jdk17 vue3 最终实现效果 实现功能 添加用户,禁用,启用,删除,编辑,分页查询 主要框架 后端 spri…...

leetcode01-重复的子字符串

题目链接:459. 重复的子字符串 - 力扣(LeetCode) 一般思路: 如果存在k是S的字串,记k的长度为s,S的长度为n,则一定有n是s的倍数,且满足对于j∈[s,n],一定存在s[j]s[j-s]; …...

目标检测数据集 - 夜间行人检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍:夜间、低光行人检测数据集,真实场景高质量图片数据,涉及场景丰富,比如夜间街景行人、夜间道路行人、夜间遮挡行人、夜间严重遮挡行人数据;适用实际项目应用:公共场所监控场景下夜间行人检测项目…...

【YOLO系列】 YOLOv4思想详解

前言 以下内容仅为个人在学习人工智能中所记录的笔记,先将目标识别算法yolo系列的整理出来分享给大家,供大家学习参考。 本文未对论文逐句逐段翻译,而是阅读全文后,总结出的YOLO V4论文的思路与实现路径。 若文中内容有误&#xf…...

查询json数组

步骤一:创建表格 首先,我们需要创建一个表格来存储包含JSON对象数组的数据。可以使用以下代码创建一个名为 my_table 的表格: CREATE TABLE my_table (id INT PRIMARY KEY AUTO_INCREMENT,json_data JSON ); 上述代码创建了一个包含两个列的…...

Docker mysql 主从复制

目录 介绍:为什么需要进行mysql的主从复制 主从复制原理: ✨主从环境搭建 主从一般面试问题: 介绍:为什么需要进行mysql的主从复制 在实际的生产中,为了解决Mysql的单点故障已经提高MySQL的整体服务性能&#xff…...

第7章-第1节-Java中的异常处理

1、异常Exception概述: 1)、异常的概念: 现实生活中万物在发展和变化会出现各种各样不正常的现象。 例如:人的成长过程中会生病。 实际工作中,遇到的情况不可能是非常完美的。 比如:你写的某个模块&…...

使用python生成一个月度账单消费金额柱状图表

阿里云月度账单根据月份、消费金额(可开票)生成一个柱状图表 import pandas as pd import matplotlib.pyplot as plt import os# 设置中文字体 plt.rcParams[font.sans-serif] [SimHei] # 用于显示中文的宋体# 获取当前工作目录下所有CSV文件 csv_fil…...

将一个独立的磁盘添加到已有的 `/` 分区

将一个独立的磁盘添加到已有的 / 分区是比较复杂的,因为 / 分区已经是一个逻辑卷(LVM)。在这种情况下,可以扩展现有的 LVM 体积组(Volume Group),然后扩展 / 逻辑卷(Logical Volume&…...

AI智能电销器人需要注意哪些问题呢

随着科技的不断发展,人们出行变得越来越方便,市面上很多产品也越来越智能化,高科技的产品不仅改变了我们的生活方式而且也改变了企业的竞争方式,很多的企业尤其是电销行业中的大佬己经意识到了AI电销机器人的好处,因此…...

呼叫中心研究分析:到2027年市场规模预计将达4966亿美元

由于业务运营中以客户为中心的方法的兴起,呼叫中心市场近年来出现了显着增长。随着对客户满意度的日益重视,全球对呼叫中心服务的需求猛增。在本次分析中,我们将从全球和中国的角度审视呼叫中心市场的发展趋势。全球市场: 到 2027…...

工业数据采集分析——工厂大脑 提升综合经济效益

随着企业对数字化的认知越来越清晰,对工业数智化的战略越来越明确,企业的诉求也在发生转变。中国的工业企业经过近几十年的发展,自动化、信息化,以及一些基础的数据系统建设在不同的行业中慢慢地推进。近几年,工业企业…...

python系列教程218——生成器表达式

朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow 声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享…...

jquery 实现简单的标签页效果

实现 <!DOCTYPE html> <html> <head><title>jq 实现简单的标签页效果</title><script src"/jquery/jquery-1.11.1.min.js"></script><style>.tab {cursor: pointer;width:100px;height:30px;float:left;text-align…...

C++ Web框架Drogon初体验笔记

这段时间研究了一下C的Web框架Drogon。从设计原理上面来说和Python的Web框架是大同小异的&#xff0c;但是难点在于编译项目上面&#xff0c;所以现在记录一下编译的过程。下面图是我项目的目录。其中include放的是头文件&#xff0c;src放的是视图文件&#xff0c;static放的是…...

x-cmd pkg | busybox - 嵌入式 Linux 的瑞士军刀

目录 简介首次用户功能特点竞品和相关作品 进一步阅读 简介 busybox 是一个开源的轻量级工具集合&#xff0c;集成了一批最常用 Unix 工具命令&#xff0c;只需要几 MB 大小就能覆盖绝大多数用户在 Linux 的使用&#xff0c;能在多款 POSIX 环境的操作系统&#xff08;如 Linu…...

Java异常简单介绍

文章目录 1. 异常分类和关键字1.1 分类1.2 关键字 2. Error2.1 Error定义2.2 常见的Error2.2.1 VirtualMachineError2.2.2 ThreadDeath2.2.3 LinkageError2.2.4 AssertionError2.2.5 InternalError2.2.6 OutOfMemoryError2.2.6.1 OOM原因2.2.6.2 OutOfMemoryError会导致宕机吗 …...

ocrmypdf_pdf识别

安装 安装说明 https://ocrmypdf.readthedocs.io/en/latest/installation.html#native-windows提到需要的软件&#xff1a; Python 3.7 (64-bit) or later Tesseract 4.0 or later Ghostscript 9.50 or later 安装 ocrmypdf pip install ocrmypdf 添加语言包 https://oc…...

卷积神经网络|猫狗分类系列--导入kaggle猫狗数据集

解决任何真实问题的重要一步是获取数据&#xff0c;Kaggle提供了大量不同数据科学问题的竞赛。 我们将从 https://www.kaggle.com/competitions/dogs-vs-cats/data 下载猫狗数据集&#xff0c;并对其进行一定的操作&#xff0c;以正确的导入到我们的计算机&#xff0c;为接下…...

【linux 多线程并发】线程本地数据存储的两种方式,每个线程可以有同名全局私有数据,以及两种方式的性能分析

线程本地数据(TLS) ​专栏内容&#xff1a; 参天引擎内核架构 本专栏一起来聊聊参天引擎内核架构&#xff0c;以及如何实现多机的数据库节点的多读多写&#xff0c;与传统主备&#xff0c;MPP的区别&#xff0c;技术难点的分析&#xff0c;数据元数据同步&#xff0c;多主节点的…...

2401d,d导入C的问题

原文 D中是否可用仅C头文件库? 在C语言中,我需要这样做: #define STB_DS_IMPLEMENTATION #include "stb_ds.h"在包含h文件前,必须在单个C文件中定义. 在D中试过: enum STB_DS_IMPLEMENTATION 1; import stb_ds;但它不管用.有建议吗?也许使用中间C文件会工作 ,但…...

SpringCloud GateWay实现路由限流

目录 RequestRateLimiterGatewayFilterFactory令牌桶算法实现限流 RequestRateLimiterGatewayFilterFactory Spring Cloud Gateway 内置了一个限流功能的过滤器工厂&#xff0c;那就是RequestRateLimiterGatewayFilterFactory &#xff0c;它使用 Redis 和 Lua 脚本实现令牌桶…...

打印日期c++

给出年份 y和一年中的第 d天&#xff0c;算出第 d天是几月几号。 输入格式 输入包含多组测试数据。 每组数据占一行&#xff0c;包含两个整数 y 和 d。 输出格式 每组数据输出一行一个结果&#xff0c;格式为 yyyy-mm-dd。 数据范围 输入最多包含 100 组数据, 1≤y≤3000, 1≤d…...

潍坊中企动力做的网站怎么样/苏州网站建设开发公司

目的: shell脚本接受日期范围参数 输出范围内前闭后闭日期的列表 eg: 输入: 20200128-20200203 输出: 20200128 20200129 20200130 20200131 20200201 20200202 20200203输入: 20200128 输出: 20200128# 输出类型是+ 小括号 组成数组给变量 注意事项: 函数返回数组是一个个元…...

code snippet wordpress/seo是什么意思?

我有数字化图像哈希,哈希就像2k整数长.什么是将其存储在数据库和搜索中的最佳解决方案&#xff1f;行数至少为300万.对性能的建议&#xff1f;我正在考虑创建utf8_bin校对列并将所有数字转换为区分大小写的哈希并在列上添加索引,还是有其他更好的解决方案&#xff1f;附&#x…...

微信注册账号申请/广州seo关键词

题目 24点游戏是经典的纸牌益智游戏。 常见游戏规则&#xff1a; 从扑克中每次取出4张牌。使用加减乘除&#xff0c;第一个能得出24者为赢。&#xff08;其中&#xff0c;J代表11&#xff0c;Q代表12&#xff0c;K代表13&#xff0c;A代表1&#xff09;&#xff0c;按照要求编…...

wordpress seo知乎/泉州seo按天计费

http://acm.timus.ru/problem.aspx?space1&num1180 简单博弈 把前16个写出来就会发现 3 的倍数是奇异状态 因为 3 的倍数不可能为 2^k 要证明 3 的倍数为奇异状态 可以用数学归纳法。 代码&#xff1a; import java.util.*; import java.math.*;public class Main {pub…...

wordpress图片不居中/直通车关键词怎么选 选几个

//为什么会出现上方向和左方向的子弹不能发射的情况&#xff1f;检查了好久&#xff0c;有大佬帮帮忙吗&#xff0c;小白睡不着package TanKe.lbl;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.util.concurrent.atomic.Dou…...

设计网站页面要多少钱/电工培训机构

一、总概 对于微信小程序整个开发框架而言&#xff0c;其程序中包含一个描述整体程序 App 和多个描述各自页面的 pages 对于微信小程序来说&#xff0c;一个小程序主体部分由三个文件构成如下表所示 页面的开发都放在文件夹pages中&#xff0c;log文件夹是微信小程序自动生成的…...