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

Nat. Mach. Intell 2023 | DrugBAN+:域自适应的可解释双线性插值网络改进药物-靶标预测(DTI)

DrugBAN+:Interpretable bilinear attention network with domain adaptation improves drug–target prediction

论文:Interpretable bilinear attention network with domain adaptation improves drug–target prediction | Nature Machine Intelligence

代码:https://github.com/peizhenbai/DrugBAN

数据集BioSNAP:https://github.com/kexinhuang12345/MolTrans/tree/master/dataset/BIOSNAP/full_data

一、问题

传统的基于结构基于配体的虚拟筛选方法因其相对有效的性能而得到了广泛的研究。然而,基于结构的虚拟筛选需要分子对接模拟,如果目标蛋白的三维结构未知,则不适用。此外,基于配体的虚拟筛选基于同一蛋白质的已知活性预测新的活性分子,但当已知活性数量不足时,性能较差

DTI本质上是由药物化合物中重要分子亚结构蛋白质序列结合位点之间的相互作用决定的。

问题1:许多以前的模型使用它们单独的编码器学习全局表示,而没有明确地学习局部交互。因此,首先学习整个结构的药物和蛋白质表示,而相互信息仅在黑箱解码模块中隐式学习。药物与靶标之间的相互作用尤其与其关键的亚结构有关; 因此,单独的全局表示学习往往会限制建模能力和预测性能。此外,如果没有对局部相互作用的明确学习,即使预测是准确的,预测结果也很难解释

问题2:跨领域推广预测性能,超越学习分布。由于化学和基因组空间的广阔区域,在实际应用中需要预测的药物靶标对通常是不可见的,并且与训练数据中的任何对都不相似。它们具有不同的分布,因此需要跨域建模。一个健壮的模型应该能够将学习到的知识转移到一个只有未标记数据的新领域。在这种情况下,需要通过学习可转移表征来对齐分布并提高跨域泛化性能

二、模型方法

1、Problem formulation

蛋白质序列:P=(a1,a2,...,an),每一个ai是23种氨基酸之一,药物分子是使用graph表示���=(V,E)。

2、DrugBAN framework

给定drug–target pair,首先分别使用GCN和1D CNN分别编码分子图和蛋白质序列信息。然后,使用双线性注意网络模块来学习编码drug和蛋白质(target)表征之间的局部相互作用。

双线性注意网络由双线性attention step和双线pooling  step组成,以生成联合表示,如b所示。其次,MLP预测分数,表示交互的概率。为了提高跨域药物-目标对的模型泛化性能,进一步将CDAN嵌入到框架中,以适应表示,以便更好地对齐源和目标分布,如图c所示

Domain adaptation

减少源域和目标域之间的域分布偏移(在源域中使用标记数据,在目标域中使用未标记数据),CDAN将对抗网络与多线性条件作用相结合,用于可转移表征学习。

CNN for protein sequence

蛋白质特征编码器由三个连续的1D卷积层组成,将输入的蛋白质序列转换为潜在特征空间中的矩阵表示。氨基酸有23种,将其nn.Embedding得到初始特征矩阵Xp。超过max_length(实验中1200)的截断,短于max_length的0填充。蛋白质编码器从蛋白质特征矩阵Xp中提取局部残基模式。第一个卷积层用于捕获kernel=3的3-mer残差级特征,后两层(kernel_size=6、9,channel=128)继续扩大感受野,学习局部蛋白质片段的更抽象的特征,CNN:

GCN for molecular graph

将每个SMILES字符串转换为其二维分子图���。首先根据其化学性质初始化每个原子节点,74维,7种性质:原子类型、原子度、隐含Hs数、形式电荷、自由基电子数、原子杂化、总Hs数以及原子是否芳香族。设置了最大允许的节点数Θd(论文中290),具有较少节点的分子将包含带有零填充的虚拟节点。特征矩阵设为Md,使用简单的线性变换变成实值密集矩阵Xd,使用三层GCN来有效地学习的图表示,通过聚合节点相应的由化学键连接的邻近原子集来更新原子特征向量。这种传播机制自动捕获分子的子结构信息。因此GCN:

Pairwise interaction learning

应用双线性注意网络模块来捕捉药物和蛋白质之间的成对局部相互作用。它由两层组成: 一层是a bilinear interaction map,用于捕获两两注意权重; 另一层是interaction map上的a bilinear pooling layer,用于提取联合药物-靶标表示。

CNN和GCN得到不同的特征:

step1双线性注意层,heads=2,hidden_dim k设为768,通过变换矩阵U和V,低秩双线性交互建模得到双线性注意映射矩阵I,以测量子结构级交互强度:

可以将双线性相互作用视为首先将表示hid和hjp映射到具有权重矩阵U和V的公共特征空间,然后学习Hadamard积和向量q的权重的相互作用。这样,两两相互作用为子结构对预测结果贡献提供可解释性。

step2池化层没有新的可学习参数(pooling size s设为3)。权重矩阵U和V与前一交互映射层共享,以减少参数量,缓解过拟合:

将联合表示f输入解码器,解码器是一个完全连接的分类层(hidden size设为512),后面是一个sigmoid函数:

并使用交叉熵损失+L2正则化:

Cross-domain adaptation for better generalization

特征提取器F(⋅), 解码器 G(⋅) and 域判别器 D(⋅)

F(⋅)表示单独的feature encoders和bilinear attention network,生成输入域数据的联合表示

G(⋅)表示Decoder,全连接层:

应用一个多线性映射将联合表示F和分类器预测G嵌入到一个联合条件表示,并且Flatten:

通过在h上调节域判别器D(⋅),同时对齐联合表示并预测源域和目标域的分类分布。由三层全连接网络组成的域判别器D(⋅)学习区分联合条件表示h是来自源域还是来自目标域。相反,训练特征提取器F(⋅)和解码器G(⋅),利用源标记信息最小化源域交叉熵损失(cross-entropy loss),同时生成不可区分的表示h,混淆鉴别器D(⋅):

判别器:

看论文的话会很懵(如果没有对域适配有概念的话),判别器D(.)如何实现域适配的?

答:首先论文中的特征提取器F(.)是提取feature以供解码器G(.)和域判别器D(.)使用。对于G,最小化损失完成DTI任务;对于D,最大化域分类对抗损失(损失越大,说明D无法判别,以达到域适配的目的)

如何实现最大化对抗损失呢?向负的梯度方向优化就是最大化目标函数。

三、实验

1、Experimental setting

三个公共DTI数据集(BindingDB、BioSNAP和Human)上评估

2、Evaluation strategies and metrics

随机分为训练集、验证集和测试集,比例为7:1:2。

跨域评估:基于聚类的对分割策略(clustering-based pair split strategy):首先使用单链接算法分别通过ECFP4指纹和伪氨基酸组成(PSC)聚类药物和蛋白质。之后,从聚类结果中随机选择60%的药物簇和60%的蛋白质簇,并将所选药物和蛋白质之间的所有药物-靶标对作为源域数据。其余簇中药物和蛋白质之间的所有对都被认为是靶域数据。

评估使用AUROC、AUPRC

3、In-domain performance comparison(没有CDAN)

冷对分割策略保证了在训练过程中不会观察到所有的测试药物和蛋白质,从而使得对测试数据的预测不能仅仅依赖于已知药物或蛋白质的特征。所有模型的性能都有明显的下降,特别是SVM和RF,在其他最先进的深度学习基线上,DrugBAN仍然取得了最好的性能

4、Cross-domain performance comparison(+CDAN模块)

训练测试数据有不同的分布,RF在BindingDB数据集上取得了良好的性能,甚至持续优于其他深度学习基线(DeepConv, GraphDTA和MolTrans)

5、Ablation study

以探讨双线性注意和域适应模块对DrugBAN的影响:

将DrugBAN中的双线性注意替换为one-side attention,生成两种变体。

研究了两种变体:带有域对抗神经网络(DANN)的DrugBAN(即DrugBANDANN)和带有CDAN的MolTrans(即MolTransCDAN)

6、Interpretability with bilinear attention visualization

利用双线性注意图的组成部分,可视化每个子结构对最终预测结果的贡献,使分子水平的洞察和解释对药物设计工作至关重要。研究来自蛋白质数据库(PDB)的共结晶配体的前三个预测(PDB id: 6QL2,5W8L和4N6H)

可视化结果如图4a所示,并附有相应x射线结构产生的配体-蛋白质相互作用图。对于每个分子,我们将双线性注意力图中前20%的加权原子涂成橙色。

尽管许多被预测可能参与配体结合的氨基酸残基实际上距离各自的化合物很远,但形成结合位点的一些氨基酸残基被正确预测(图4b)。例如,在6QL2复合物中,突出显示了以下残基:His94, His96, Thr200, Pro201, Pro202, Leu203, Val207和Trp209。其中,只有His94与乙氧唑胺形成特异性相互作用。在5W8L中,没有一个构成配体-蛋白结合位点的残基被突出显示。然而,在4N6H中,在结合位点内有几个正确预测的残基:Lys214、Val217、Leu300、Cys303、Ile304、Gly307和Tyr308。不幸的是,没有任何残基参与与配体的特定相互作用。

最近从100万个物种中生成了20亿个蛋白质3D结构预测。这一进展为利用3D结构信息进行基于化学基因组学的DTI预测打开了大门。(有计算资源,这就是新方向,没有计算资源,图个乐)

相关文章:

Nat. Mach. Intell 2023 | DrugBAN+:域自适应的可解释双线性插值网络改进药物-靶标预测(DTI)

DrugBAN:Interpretable bilinear attention network with domain adaptation improves drug–target prediction 论文:Interpretable bilinear attention network with domain adaptation improves drug–target prediction | Nature Machine Intellige…...

org.springframework.web.reactive.function.server.ServerResponse设置响应头

记录一下 String host serverRequest.uri().getHost();Consumer<HttpHeaders> headersConsumer consumer -> {consumer.setAccessControlAllowOrigin(host);consumer.setAccessControlAllowCredentials(true);consumer.set("Access-Control-Allow-Headers"…...

高频面试题:如何分别用三种姿势实现三个线程交替打印0到100

最近面试遇到的一道题&#xff0c;需要三个线程交替打印0-100&#xff0c;当时对多线程并不是很熟悉因此没怎么写出来&#xff0c;网上搜了之后得到现 synchronized wait/notifyAll 实现思路&#xff1a;判断当前打印数字和线程数的取余&#xff0c;不等于当前线程则处于等待…...

【git】Idea撤回本地分支、或远程分支提交记录的各种实际场景操作步骤

文章目录 idea撤回本地分支、远程分支场景操作集合场景1&#xff1a;要撤回最后一次本地分支的提交实现效果&#xff1a;操作步骤&#xff1a; 场景2&#xff1a;要撤回最后一次远程分支的提交有撤销记录的&#xff1a;实现效果&#xff1a;操作步骤&#xff1a; 无撤销记录的&…...

FPGA SPI 驱动程序

1.引言 此驱动程序已经完成很久了&#xff0c;花了2个星期的时间&#xff0c;主要是提升程序运行的效率。最近整理文件的时候又看到了&#xff0c;记录一下。 2.程序框架分解 module adc7254_Ctrl(input sys_clk, //system clkc 50Minput re…...

【实战】十一、看板页面及任务组页面开发(五) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十七)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...

mac m1 docker 安装kafka和zookeeper

获取本地ip地址 ifconfig en0 192.168.0.105. 下面的ip都会使用到 1、拉取镜像 docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka 2、启动容器 启动 zookeeper docker run -d --name zookeeper -p 2181:2181 映射 3、 启动 kafka 注意&#xff…...

宏观经济和风电预测误差分析(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

GO学习之 搜索引擎(ElasticSearch)

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…...

Sentinel —实时监控

Sentinel 提供对所有资源的实时监控。如果需要实时监控&#xff0c;客户端需引入以下依赖&#xff08;以 Maven 为例&#xff09;&#xff1a; <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-transport-simple-http</artif…...

接口优化通用方案

目录 批量异步、回调缓存预取池化并行锁粒度索引大事务海量数据 批量 批量思想&#xff1a;批量操作数据库 优化前&#xff1a; //for循环单笔入库 for(TransDetail detail:transDetailList){ insert(detail); } 优化后&#xff1a; batchInsert(transDetailList); 异步、回…...

用Visual Studio 2022的.map文件来查看C++变量在内存中的布局情况

先看几个实例 代码1 #include <iostream> int data_arr[32768]; int main() {data_arr[1] 11;std::cout<<"data_arr[1]: " << data_arr[1] << std::endl;return data_arr[1]; } 上述代码在Win10 X64&#xff0c;MSVC Release模式下编译&…...

使用代理突破浏览器IP限制

一、实验目的: 主要时了解代理服务器的概念&#xff0c;同时如何突破浏览器IP限制 二、预备知识&#xff1a; 代理服务器英文全称是Proxy Server&#xff0c;其功能就是代理网络用户去取得网络信息。形象的说&#xff1a;它是网络信息的中转站&#xff0c;特别是它具有一个cac…...

HuggingFace中的 Files and versions 如何优雅下载到本地?(Python requests,tqdm)

前言 在使用huggingface把玩各种大模型时&#xff0c;如果选择从远程加载模型&#xff0c;这个过程可能因为网络问题而非常耗时甚至直接失败&#xff0c;所以把模型、分词器等相关文件下载到本地&#xff0c;再直接从本地加载就成了不可回避的流程。 在进入具体版本的模型后&…...

三、原型模式

一、什么是原型模式 原型&#xff08;Prototype&#xff09;模式的定义如下&#xff1a;用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里&#xff0c;原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效&a…...

transformer实现词性标注

1、self-attention 1.1、self-attention结构图 上图是 Self-Attention 的结构&#xff0c;在计算的时候需要用到矩阵 Q(查询), K(键值), V(值)。在实际中&#xff0c;Self-Attention 接收的是输入(单词的表示向量 x组成的矩阵 X) 或者上一个 Encoder block 的输出。而 Q, K, V…...

Java中异或操作和OTP算法

最近在研究加密算法&#xff0c;发现异或操作在加密算法中用途特别广&#xff0c;也特别好用。下面以Java语言为例&#xff0c;简单记录一下异或操作&#xff0c;以及在算法中的使用&#xff0c;包括常用的OTP算法。 一&#xff0c;异或操作特征 1&#xff0c; 相同出0&#…...

K8S最新版本集群部署(v1.28) + 容器引擎Docker部署(下)

温故知新 &#x1f4da;第三章 Kubernetes各组件部署&#x1f4d7;安装kubectl&#xff08;可直接跳转到安装kubeadm章节&#xff0c;直接全部安装了&#xff09;&#x1f4d5;下载kubectl安装包&#x1f4d5;执行kubectl安装&#x1f4d5;验证kubectl &#x1f4d7;安装kubead…...

女子垒球运动的发展·垒球1号位

女子垒球运动的发展 1. 女子垒球运动的起源和发展概述 女子垒球运动&#xff0c;诞生于19世纪末的美国&#xff0c;作为棒球运动的衍生品&#xff0c;经过百年的积淀&#xff0c;已在全球范围内广泛传播&#xff0c;形成了丰富的赛事文化。她的起源&#xff0c;可以追溯到19世…...

Debian 30 周年,生日快乐!

导读近日是 Debian 日&#xff0c;也是由伊恩-默多克&#xff08;Ian Murdock&#xff09;创立的 Debian GNU/Linux 通用操作系统和社区支持的 Debian 项目 30 周年纪念日。 不管你信不信&#xff0c;从已故的伊恩-默多克于 1993 年 8 月 16 日宣布成立 Debian 项目&#xff0c…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中&#xff0c;群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS&#xff0c;在uniapp中实现&#xff1a; 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...