今天给大家介绍由巴黎文理研究大学计算生物研究中心的Veronique Stoven教授课题组发表在J Cheminform上的一篇文章。作者提出一种具有深度学习功能的化学基因组神经网络(CN),以分子图和蛋白质序列编码器学习的分子和蛋白质表示形式的组合作为输入。实验结果显示,在大型数据集上深度学习CN模型优于最先进的浅层方法,与基于专家的描述符的深层方法相当;而在小型数据集上浅层方法比深层学习方法具有更好的预测性能。作者还使用了数据增强技术,即多视图和迁移学习,以提高化学基因组神经网络的预测性能。

1

介绍

合理药物设计的最新范例是治疗靶标,它将疾病与一种或几种蛋白质靶点相关联,属于与疾病发展有关的生物途径。药物发现过程的目标是确定一种能够与蛋白质靶标结合并改变疾病发展的药物分子,但是,药物发现过程取得的成功有限,每年只有几十种新药进入市场。由于副作用和毒性,高通量筛选(HTS)所鉴定的大多数命中药物都未能成为批准的药物,这种情况的部分原因是由于药物缺乏特异性,与所谓的“靶标”蛋白发生了意外相互作用。化学基因组学是定量构效关系(QSAR)方法的概括。QSAR方法可以预测给定蛋白质的相互作用,而化学基因组模型经过训练可以同时预测几种蛋白质的相互作用,其基本思想是:靶相互作用可以受益于其他靶与其他分子之间已知的相互作用。

本文中作者提出了一个正式的方案,称为化学基因组神经网络(CN),用于表示分子和蛋白质在上下文中学习化学基因组学的深度学习。作者首先比较了最新的浅层和深层机器学习方法的预测性能,在小型数据集上较简单且对计算要求较低的浅层方法比深度学习方法的性能更好。在大型数据集上,提出的具有表示学习功能的化学基因组神经网络与使用基于专家的描述符的最先进的浅层和深层方法竞争,但最终并不优越。此外,作者还考虑了数据增强技术,即多视图和迁移学习,可以提高深度学习方法在小型数据集上的预测性能。

2

模型

CN网络模型如下图所示,它包含四个主要组成部分:(1)分子编码器,可根据分子的结构学习分子的抽象描述符; (2)蛋白质编码器,可从它们的氨基酸序列中学习抽象描述符; (3)结合分子和蛋白质描述子以构建(分子-蛋白质)对的成对潜在表示的操作或神经网络模块;(4)MLPpair(对于成对的多层感知器,也称为前馈神经网络(FNN)用来预测(分子-蛋白质)对是否相互作用。

分子编码器 分子可以用分子图G =(V,E)二维表示,其中V是顶点(或节点)的集合,E是边的集合。节点具有原子特性(例如原子类型或物理化学特性),而边缘具有键特性(例如键类型或拓扑特性)。在本次研究中,因为图神经网络(GNN)具有多功能性和更大的改进空间,因此作者使用GNN对表示分子的无向图进行编码,具体算法如下图所示。在每一层,所有节点在表示向量中聚集来自其本地邻居的信息,这些信息在分子的m(l)表示中聚集。在每次迭代中,节点从其他节点获取信息。最后,通过组合m(l)个表示来建立分子的整体表示m。

蛋白质序列编码器 用神经网络编码器编码蛋白质需要定义氨基酸的输入属性,例如“one-hot”编码。由于蛋白质是氨基酸序列,因此可以通过卷积神经网络(CNN)和递归神经网络来学习其表示形式,作者观察到bi-LSTM网络没有提高DTI预测的性能,因此作者使用了CNN编码蛋白质。

结合蛋白质和分子编码 结合了所学的蛋白质和分子表示的CN网络的Comb块使用了直观的串联功能。

MLPpair 化学基因组神经网络基于最终的多层感知器(MLP)执行DTI预测任务。它由堆叠的全连接层组成,其中第L层的每个神经元都将第L-1层的所有神经元输出作为输入,因此将其输出定向到第L + 1层的所有神经元。数据经过非线性变换后,中间层可以看作是原始数据的隐藏抽象表示。MLPpair网络可以视为表示学习模型,因为它可以为考虑的预测任务学习最佳表示。

3

实验

数据集

DrugBank数据库被广泛用作生物活性数据库,它包含大约17000个高质量标准的药物靶标关联。因此,作者使用DrugBank数据库版本5.1.0构建了两个相互作用数据集,这些数据集覆盖了整个可药物蛋白质组中的蛋白质。第一个数据集称为DBHuman,保持了涉及人类蛋白质及其配体的相互作用,而第二个数据集称为DBEColi,保持了涉及大肠杆菌蛋白及其配体的相互作用。作者还使用了来自ChEMBL数据库的更大数据集,同时为了提供用于迁移学习的源任务,作者考虑了基于PubChem的数据集来对辅助任务上的分子编码器进行预训练,使用MolNet数据集(即PCBA数据集)构建了一个大型数据集。

评估程序 

作者通过5倍嵌套交叉验证来评估性能,记录了每个测试折叠的ROCAUC 和AUPR分数,主要参考AUPR。

参考方法 

作者考虑了kronSVM ,NRLMF,以及scikit-learn 实现的随机森林作为参考浅层方法。作为参考深度学习方法,作者考虑了一个简单的前馈神经网络(FNN),将基于专家的数值特征向量连接起来作为蛋白质和分子的输入。

实验结果 

作者将化学基因组神经网络(CN)的性能与最新的参考方法(即用于机器学习的浅层方法的kronSVM和NRLMF,以及具有基于专家的描述符的FNN作为深度学习的输入)的性能进行了比较,下图显示了在DBEColi和DBHuman数据集上获得的ROCAUC和AUPR性能。

作者提出在小型DBEColi数据集(874个交互)上,所有方法的ROCAUC得分都非常接近,但是浅层NRLMF方法往往表现最佳。对于更重要的AUPR得分),NRLMF和kronSVM浅层方法明显优于深层方法。总体而言,在深度学习方法中,所提出的CN比FNN参考方法表现更好。结果表明,在小型数据集(数千个交互或更少的交互)上,浅层方法应该是首选。在较大的DBHuman数据集(13,070个交互)上,就ROCAUC和AUPR而言,两种深度学习方法CN和FNN均优于两种浅层方法NRLMF和kronSVM。对于大型数据集(范围为十千次互动或以上),深度学习方法应优先于浅层方法,因为它们在广泛的设置下表现更好。作者指出将训练集中的负样本数量增加到正样本数量的五倍,可使CN和FNN的性能有效提高。同时,作者观察到在训练集中越来越多的负值使CN受益比FNN略少。

作者认为直接以专家为基础的蛋白质和分子特征作为输入进行训练的参考FNN在某些情况下优于拟议的化学基因组神经网络。因此,作者考虑了两个将蛋白质和分子的这些基于专家的知识和学到的特征集成到最终的成对表示中的体系结构。经过相应预训练后,试验结果表明,图5中的模型体系结构所达到的性能明显低于图1的CN化学基因组神经网络和具有专家功能的参考FNN获得的性能,图6中的方法CN-feaMLP表现优于或相似于CN神经网络。

通过对形式相同的源任务进行预训练来迁移学习 CN化学基因组网络在大型数据集(如DBHuman)上的性能优于深度和浅层机器学习方法(kronSVM或NRLMF),但在小型数据集(如DBEColi)上则不如。因此,作者选择DBEColi来进行迁移学习。通过预训练一个较大的,形式上完全相同的任务,即对DBHuman数据集进行预测,可以提高CN在小数据集(如DBEColi)上的预测性能,从而达到浅层方法的预测性能。具体方法是使用DBHuman上DTI预测的源任务来预训练整个CN网络(蛋白质编码器,分子编码器和MLPpair),之后在较小的DBEColi数据集上重新训练整个CN。

通过预训练不同的源任务来进行迁移学习 作者使用PCBA数据集作为源任务,它包含有关成千上万个分子的90种生物活性的信息。将分子图编码器预先训练在PCBA(分别为DBHuman)数据集上时获得的最终模型称为CN-currPCBA(分别为CN-currDBHuman)。实验结果表明,总体而言,总体而言,相对于直接在DBEColi(CN和CN-currDBHuman)上进行训练,在DBHuman上对分子图编码器进行预训练可以提高化学基因组网络在一些设置下的预测性能。作者指出在PCBA上对分子图编码器进行预训练的性能与在DBEColi上进行直接训练的性能相似,但是在DBHuman进行预训练时无法达到观察到的性能。作者提出与从较大但不太相似的源任务(PCBA)进行迁移相比,从较小,更相似的源任务(DBHuman)进行迁移可能会更好地改善目标任务的预测性能。

4

总结

作者在本文中提出了称为化学基因组神经网络(CN),对照浅层学习方法和深度学习方法,使用了不同大小的数据集,不同的训练集/测试集/验证集拆分方法,以及不同的迁移学习方法进行对比试验。实验结果显示,在大型数据集上深度学习CN模型相比于其他的浅层和深度对照模型,有着相似或者更好的性能。但是,在小型数据集上浅层方法比深度学习方法具有更好的预测性能,使用预训练的迁移学习也可以有效提高任务预测准确度。

代码

https:// github.com/bplaye/NNk_DTI

参考资料

Playe, B., Stoven, V. Evaluation of deep and shallow learning methods in chemogenomics for the prediction of drugs specificity. J Cheminform 12, 11 (2020). https://doi.org/10.1186/s13321-020-0413-0

J. Cheminform. | 基于化学基因组学中深度和浅层学习预测药物特异性相关推荐

  1. DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码

    DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码 目录 基于自定义数据集利用深度神经网络(输入层(10个 ...

  2. 浅层学习(shallow learning) 与深度学习(deep learning ) 的不同

    主要参考文献:http://blog.csdn.net/zouxy09/article/details/8775360(从一到八):http://www.csdn.net/article/2013-0 ...

  3. 浅层学习与深层学习_深层副本与浅层副本-以及如何在Swift中使用它们

    浅层学习与深层学习 by Payal Gupta 通过Payal Gupta 深层副本与浅层副本-以及如何在Swift中使用它们 (Deep copy vs. shallow copy - and h ...

  4. python中复制、浅层拷贝、深层拷贝的区别

    python中复制.浅层拷贝.深层拷贝的区别 一.学习要点: 1.python中的复制与拷贝的区别 2.python中浅层拷贝与深层拷贝的区别 二.代码: import copy a=[1,2,3,4 ...

  5. J. Cheminform. | 基于SMILES的利用骨架的分子生成模型

    今天给大家介绍的是瑞典制药公司阿斯利康,伯尔尼大学和广州再生医学与健康中心广东省实验室于2020年2月4日联合发表在Journal of Cheminformatics的一篇论文,这篇文章提出了一种新 ...

  6. cnn池化层输入通道数_(pytorch-深度学习系列)CNN中的池化层-学习笔记

    CNN中的池化层 首先,池化(pooling)层的提出是为了缓解卷积层对位置的过度敏感性. 什么意思? 比如在图像边缘检测问题中,实际图像里,我们的目标物体不会总出现在固定位置,即使我们连续拍摄同一个 ...

  7. (pytorch-深度学习系列)CNN中的池化层-学习笔记

    CNN中的池化层 首先,池化(pooling)层的提出是为了缓解卷积层对位置的过度敏感性. 什么意思? 比如在图像边缘检测问题中,实际图像里,我们的目标物体不会总出现在固定位置,即使我们连续拍摄同一个 ...

  8. 深度学习和浅层学习 Deep Learning and Shallow Learning

    由于 Deep Learning 现在如火如荼的势头,在各种领域逐渐占据 state-of-the-art 的地位,上个学期在一门课的 project 中见识过了 deep learning 的效果, ...

  9. 综述:基于影像基因组学的肺癌诊断治疗方法研究

    介绍: 肺癌是世界上发病率和死亡率最高的恶性肿瘤之一,据美国癌症协会和癌症统计中心统计,每年超过15万个病人死于肺癌,20万个新诊病例.肺癌的致病因素有很多种,其发病率和死亡率都是最高的,是癌症中的第 ...

最新文章

  1. ORACLE日期加减【转】
  2. mui后端开发php,PHP解决mui中ajax的跨域问题
  3. 《皇帝:中国的崛起》从入门到精通
  4. python学习日记-2
  5. 牛津剑桥古怪面试题:美女与经济学
  6. send(),recv()函数详解
  7. shanghai road map and the operational time for 12306 system
  8. C#字数统计(字母、数字、汉字、符号)
  9. Mysql8秒级加字段_Mysql8.0秒级加字段
  10. java关闭文本_如何更优雅的关闭java文本、网络等资源
  11. Git 正在吞噬世界!
  12. 快速集成华为AGC-AppLinking服务-Cocos平台
  13. 人生的意义到底是什么?
  14. 我的ubuntu论坛账号
  15. 称重管理系统方案之车牌识别摄像机的应用
  16. 微信公众号代运营的的技巧有哪些(6)
  17. 数据分析常用方法和工具
  18. linux越狱时手机怎么进入dfu,手动进入DFU模式并开始越狱
  19. hpux 操作系统 磁带备份与恢复
  20. python代码弄成网站_原创:用python把链接指向的网页直接生成图片的http服务及网站(含源码及思想)...

热门文章

  1. AT91RM9200+pcf8563在linux2.6.20下的调试心得
  2. 一个女生写的如何追mm.看完后嫩头青变高手.zz(转贴)
  3. 本地方法接口和本地方法栈
  4. 云原生微服务技术趋势解读
  5. 10个解放双手实用在线工具,有些代码真的不用手写
  6. 求求你不要在用!=null判空了
  7. 实战篇:一个核心系统 3 万多行代码的重构之旅
  8. 分布式CAP中情侣的纠缠故事,真是剪不断 理还乱!
  9. 异步化,高并发大杀器
  10. 有关容器的六大误区和八大正确场景