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将会使用元学习进行结合预测任务;
数据处理流程:

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

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

- 第三步:小样本预测和零样本预测的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的基本训练策略:
-
任务抽样:在训练过程中,从数据集中随机抽取一批任务。每个任务都有自己的训练数据(支持集)和验证数据(查询集)。
-
内部循环(Inner Loop):对于每个任务,模型从一个共享的初始化参数开始,并仅使用该任务的支持集进行几步梯度更新(这就是“k-shot”学习)。这些更新被称为内部循环或者快速适应。
-
计算损失:在内部循环的梯度更新后,使用该任务的查询集计算模型的损失。这个损失表示模型对新数据的泛化能力。
-
外部循环(Outer Loop):损失函数根据所有任务的查询集损失来计算。然后使用这个总损失来更新模型的初始化参数。这些更新被称为外部循环或元更新。
-
重复过程:重复以上步骤,每次迭代都会选择新的任务批次进行训练。通过多次迭代,模型的初始化参数会逐渐适应各种任务,目的是找到一个好的起点,使模型能够通过少量的调整快速适应新任务。
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。前者使用元学习器直接进行预测,后者使用蛋白质特异性模型在元测试中使用蛋白质样本进行微调后进行预测。

- 图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论文的思路与实现路径。 若文中内容有误…...
查询json数组
步骤一:创建表格 首先,我们需要创建一个表格来存储包含JSON对象数组的数据。可以使用以下代码创建一个名为 my_table 的表格: CREATE TABLE my_table (id INT PRIMARY KEY AUTO_INCREMENT,json_data JSON ); 上述代码创建了一个包含两个列的…...
Docker mysql 主从复制
目录 介绍:为什么需要进行mysql的主从复制 主从复制原理: ✨主从环境搭建 主从一般面试问题: 介绍:为什么需要进行mysql的主从复制 在实际的生产中,为了解决Mysql的单点故障已经提高MySQL的整体服务性能ÿ…...
第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技术,我让助理负责分享…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
