DrugBAN:基于双线性注意力网络进行药物-靶点结合预测。

本文主要是介绍DrugBAN:基于双线性注意力网络进行药物-靶点结合预测。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DrugBan:一种可解释的双线性注意力网络进行药物-靶点结合预测。


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • DrugBan:一种可解释的双线性注意力网络进行药物-靶点结合预测。
  • 前言
  • 一、模型框架
      • 1. 编码器
      • 2. 双线性注意力网络(BAN)
      • 3. 对抗性的领域适应网络(CDAN)
  • 二、结果
      • 1. 模型性能
      • 2. 消融实验
      • 3. 模型解释性
  • 总结


前言

预测药物-靶点相互作用(DTI)时药物发现中的关键环节,近年来一些深度学习方法在该环节中显示了广泛的应用前景,但目前仍然存在两个关键问题:
1. 如何明确地建模和学习药物和靶标之间的局部相互作用,以便更好地预测。
2. 如何提升药物-靶标对的预测的泛化能力。

针对这两个问题,作者提出了一个深度双线性关注网络(drug- BAN)框架以学习药物和靶标之间的局部相互作用,并使用领域自适应模块应用到训练集分布以外地数据中(即未知的药物-靶标结构对)。


一、模型框架

在这里插入图片描述

模型由三部分组成:

1. 编码器

基于基于GCN编码分子smiles,CNN编码蛋白序列。

2. 双线性注意力网络(BAN)

为了更好的学习蛋白和配体之间的局部相互作用特征,没有将分子和蛋白特征直接拼合以表示分子-蛋白对。而是加入了一个attenion去生成一个新的集合特征I,之后再进行一层attention的套娃。与直接采用单层attention相比,双线性注意力网络能够更好的去学习两个子特征之间的联系,本质上是一种多模态模型。

3. 对抗性的领域适应网络(CDAN)

为了增强模型的泛化能力,作者在BAN之后接入了一个CDAN。该模块属于迁移学习的一种方式,其核心思维和生成对抗网络很像。具体表现为,当我们已经在source数据集上训练完成了BAN之后,如何去提升BAN模型的泛化能力的让其能够将soutce数据集中的知识应用数据分布有所不同的target数据集上。首先,两个数据集都会通过BAN网络得到特征f,之后经过分类器去进行鉴别。 BAN和这个分类器之间进行了一场”猫捉老鼠“的竞赛,分类器目标是识别出target和source,而BAN网络则是为了蒙混过关。在这个过程中,BAN也就逐渐将source上所学到的知识传到了target上以用于”伪装“。 此外,CADA 还引入了一个条件变量,也就是上图中的g,表示不同的任务场景。在本论文中即蛋白-配体结构对的类别,让BAN能够根据不同的类别以调整权重,更好地适应目标域的任务。

二、结果

1. 模型性能

作者一共在两个数据集上进行了相关的性能测试,BindingDB和BioSNAP。并分了两个任务场景,其一是随机批分或据集,第二则是先将数据进行相似性聚类后再批分数据集。前者的性能如下:
在这里插入图片描述
后者作者采用了ECFP4指纹和氨基酸序列进行了聚类,并随机抽取了百分之60的类作为sorce训练集,剩下的数据中的百分之80做验证集(target数据集),百分之20做最终的测试集合, 模型表现如下:
在这里插入图片描述
可以看到drug-ban呈现了SOTA性能。

2. 消融实验

在这里插入图片描述
CDAN的引入能够显著替身模型的泛化能力。

3. 模型解释性

在这里插入图片描述
根据模型给出的attention分数丢小分子进行着色,可以发现准确了发现了关键的原子位点。这些原子是配体与蛋白复合物稳定的关键。(但就展示了三个,这个解释性就见仁见智了)


总结

作者提出了 DrugBAN,一个用于 DTI 预测的端到端双线性注意深度学习框架。该模型具备如下三点优势:

  1. 作者将 CDAN整合到建模过程中,增强了模型的泛化能力。
  2. 通过将注意力权重映射到蛋白质子序列和药物化合物原子上,作者的模型可以为解释相互作用的性质提供生物学见解。

个人认为阻碍其性能进一步增长的原因:

  1. 蛋白和分子的表征仅仅包含结构,甚至于蛋白都只有序列信息。特征信息有待扩充:如三维坐标,物理化学性质。
  2. 看上去似乎是构建了蛋白和配体之间的相互作用,但实际上也就是两个图之间的特征相关性。相互作用其实也是可以作为一种输入表征的。
  3. 蛋白和配体的结合过程是一个动态拟合过程,依赖固定的2维分子图做预测可能并不够充分。

这篇关于DrugBAN:基于双线性注意力网络进行药物-靶点结合预测。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/906168

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S