赠书 | GNN 模型在生物化学和医疗健康中的典型应用
计算生物化学和医疗健康的数据常常通过图来表示。
例如,分子和化合物可以自然地表示为以原子为节点、以键为边的图。蛋白质相互作用(Protein-ProteinInteractions,PPI)记录了两个或多个蛋白质之间的物理联系, 这种联系可以很自然地用图的形式表示。
此外,在制药行业中,药物相互作用(Drug-Drug Interactions,DDI)描述了在使用不同药物组合治疗复杂疾病时的不良结果,这种相互作用也可以用图来表示。
图神经网络模型具有强大的图表示学习能力,已被应用于许多生物化学和医疗健康应用中,包括药物开发与发现、药物相似性整合、复方药物副作用预测、药物推荐和疾病预测。
下面将讨论GNN 模型在生物化学和医疗健康中的一些典型应用。
图神经网络已经被用来推动药物开发和发现中的许多重要任务。
这些任务的实例包括:
1)分子表示学习,该任务可以用于辅助分子属性预测等下游任务,从而有助于将候选分子的搜索范围缩小到具有合适性质的分子上;
2)分子图生成,旨在生成具有某种期望性质的分子;
3)药物–靶标结合亲和力预测,即预测药物–靶标的相互作用强度,以便于新药开发和药物再利用;
4)蛋白质相互作用界面预测,其目的在于预测蛋白质相互作用界面,以便于理解分子相互作用界面,进而理解分子机制。
接下来介绍图神经网络在分子表示学习、药物–靶标结合亲和力预测以及蛋白质相互作用界面预测等方面的应用。
分子表示学习
预测新型分子的性质对于材料设计和药物发现具有重要意义。
深度学习方法已经被用于预测分子性质。
通常来说,分子可以是任意大小和形状的,所以前馈网络和卷积神经网络等深度学习方法不能直接应用于分子数据。
预测过程通常包括两个阶段:特征提取,提取分子指纹,即编码分子结构信息的向量表示;性质预测,将提取的分子指纹作为输入,利用深度学习方法预测。
在传统方法中,可以使用一些现成的指纹软件提取分子指纹,而这样缺乏来自下游任务的指导。因此,提取出来的表示对于下游任务来说可能并不是最佳的。
文献[1]提出了一种端到端的预测框架,它采用图神经网络以一种可微的方式学习分子指纹。具体而言,一个分子可以表示为一个图 ,其中节点表示原子,边表示这些原子之间的键。因此,分子性质预测的任务可以看作图分类或图回归问题,这就需要学习图级表示。注意,在描述分子的背景下,这些表示称为分子指纹。应用于该任务的图神经网络模型由图滤波层和图池化层组成。具体而言,文献[1]采用了全局池化方法。
本文首先介绍其图滤波层,再介绍获取分子指纹的全局池化层。对于节点 ,第 层中的图滤波操作可表述为:
(1)
式中, 表示一个依赖于节点 邻居数量
的变换矩阵。因此,每一层中变换矩阵的数量由邻域大小的数目决定。在有机分子中,一个原子最多可以有5个邻居,因此,每一层有5 种不同的转换矩阵。分子 的分子指纹
可以通过如下的全局池化操作得到:
(2)
式中, 表示图滤波层的层数; 表示被用来变换第 层中学习到节点的表示。
式(2) 中的全局池化操作聚合了来自所有图滤波层学到的节点表示。获得的分子指纹 可用于诸如性质预测的下游任务。式(1) 中的图滤波过程和式(2)中的图池化过程会受给定的下游任务影响,如分子性质预测。
事实上,除了上面介绍的方法,任何为学习图级表示而设计的图神经网络都可以用来学习分子表示。如《图深度学习》一书中的第5 章介绍的,可以用图滤波层和图池化层组成一个图神经网络模型。特别地,5.3.2节介绍的MPNN-Filter 的通用框架的应用场景即为提取分子表示。
蛋白质相互作用界面预测
如图1 所示,蛋白质是具有生化功能的氨基酸链。如图2 所示,氨基酸是一种有机化合物,它含有氨基(–NH2)、羧基(–COOH)官能团和每个氨基酸特有的侧链(R 基)。
图1 蛋白质由一串氨基酸组成
图2 氨基酸的一个说明性示例
蛋白质为了实现它们的功能,需要与其他蛋白质相互作用。预测这些相互作用发生的界面是一个具有挑战性的任务,同时这也在药物发现和设计中有着重要的应用。蛋白质相互作用界面由相互作用的蛋白质中相互作用的氨基酸残基和附近的氨基酸残基组成。
具体来讲,文献[3]考虑来自不同蛋白质的两个氨基酸残基,如果其中一个氨基酸残基中的任何一个非氢原子在另一个氨基酸残基中任何一个非氢原子的6Å 内,则认为它们是界面的一部分。因此,蛋白质相互作用界面预测问题可以建模为以来自不同蛋白质的一对氨基酸残基作为输入的二分类问题。
在文献[2]中,蛋白质被建模为图。在图中,蛋白质中的氨基酸残基被视为节点,这些节点之间的关系被定义为边,然后使用图神经网络模型学习节点表示,并利用这些表示进行分类。
接下来介绍如何将蛋白质表示为图,并介绍蛋白质相互作用界面预测的方法。
将蛋白质表示为图
一个蛋白质可以表示为一个图 。蛋白质中的每个氨基酸残基都被视为一个节点,利用氨基酸残基之间的空间关系建立它们之间的边。每个氨基酸残基节点与其 个最相邻的氨基酸残基相连,残基是否相邻由它们原子间的平均距离决定。图中的每个节点和边都与一些特征相关联。具体而言,节点 的特征用 表示,而边 的特征用 表示。
蛋白质相互作用界面预测
给定一对氨基酸残基,一个来自配基蛋白 ,另一个来自受体蛋白 ,蛋白质相互作用界面预测的任务是判断这两个残基是否在蛋白质相互作用界面上。这可以被视为一个二分类问题,其中每个样本都是一对氨基酸残基 ,其中 且 。将图滤波操作应用于
和
,学习图上的节点表示,然后将 和 的节点表示合并,得到该氨基酸残基对的统一表示,最后将其输入全连接层进行分类。类似于GCN-Filter 的图滤波器可用于学习节点表示,对于其中的第 层:
式中, 和
分别表示针对中心节点和邻居节点的可学习的矩阵; 表示偏置项。此外,为了结合边的特征,提出了以下图滤波操作:
式中, 表示边 的特征; 表示对应于边的可学习的变换矩阵。注意,在训练过程中,边的特征是固定不变的。
药物-靶标结合亲和力预测
开发一种新药通常既耗时又昂贵。
在药物开发的早期阶段,药物–靶标相互作用(Drug-Target Interactions,DTI)的识别对于缩小候选药物的搜索范围至关重要。它还可用于药物再利用,旨在识别现有或废弃药物的新靶标。
药物–靶标结合亲和力预测任务是推断给定的药物对与靶标之间的结合强度,可以将其视为一项回归任务。在药物–靶标亲和力预测任务中,经常涉及的靶标主要有4 种,即蛋白质、疾病、基因和副作用。本节以蛋白质为例说明如何在这项任务中使用图神经网络模型。
一个药物–蛋白质对表示为 ,其中
、 分别表示药物和蛋白质。药物
表示为以原子为节点、以化学键为边的分子图。蛋白质既可以表示为序列,也可以表示为图。
在文献[4]中,这些蛋白质被表示为氨基酸序列,本节用如图1 所示的氨基酸序列说明药物–靶标结合亲和力预测的框架。在该框架中,药物 通过图神经网络模型学习图级药物表示,而蛋白质被送入序列模型中学习蛋白质表示。这两个表示通过拼接(串联)生成该药物–蛋白质对的组合表示,然后利用该组合表示预测药物–靶结合亲和力。
《图深度学习》一书的13.2.1 节介绍的用于分子表示学习的图神经网络模型也可用于学习药物表示,例如1-D CNN、LSTM 和GRU 的序列模型可以用来学习蛋白质表示。此外,如果将蛋白质建模为图,还可以使用图神经网络来代替图3 中的序列模型。
图3 药物–靶结合亲和力预测的一般框架
▼
参考文献:
[1] DUVENAUD D K, MACLAURIN D, IPARRAGUIRRE J, et al. Convolutional networks on graphs for learning molecular fingerprints[C]. Advances in neural information processing systems, 2015: 2224–2232.
[2] FOUT A, BYRD J, SHARIAT B, et al. Protein interface prediction using graph convolutional networks[C]. Advances in Neural Information Processing Systems, 2017:6530–6539.
[3] AFSAR MINHAS F U A, GEISS B J, BEN-HUR A. Pairpred: Partner-specific prediction of interacting residues from sequence and structure[J]. Proteins: Structure,Function, and Bioinformatics, 2014, 82(7): 1142–1155.
[4] NGUYEN T, LE H, VENKATESH S. GraphDTA: prediction of drug–target binding affinity using graph convolutional networks[J]. BioRxiv, 2019.
以上内容节选自《图深度学习》一书!
▊《图深度学习》
马耀,汤继良 著
王怡琦,金卫 译
揭秘图深度学习的研究和学习路线图
全面覆盖图深度学习的基础理论、模型方法、实际应用及前沿进展
获俞士纶等十余位人工智能国际专家赞誉!
本书全面介绍了图深度学习的理论基础、模型方法及实际应用,既适合对数据挖掘、机器学习和社交网络分析感兴趣的本科生和研究生阅读,也适合企业开发者和项目经理阅读。对于没有计算机科学背景,但想要应用图神经网络来推进其所在学科发展的研究人员,本书同样是一本值得参考的读物。
对于图深度学习,你有哪些见解呢?
#欢迎来评论区讨论#
AI科技大本营 将选出三名优质留言
携手【博文视点】送出
《图深度学习》各一本
截至7月2日14:00点
更多精彩推荐
“去了太空就别回来了!”贝索斯还没“上天”,就遭美国 5 万多人请愿:不准重返地球赠书 | JavaScript 武力值飙升!用 TensorFlow.js 轻松在浏览器里搞深度学习横扫六大权威榜单后,达摩院开源深度语言模型体系 AliceMind点分享点收藏点点赞点在看
相关文章:

C#控制远程计算机的服务
在.net中提供了一些类来显示和控制Windows系统上的服务,并可以实现对远程计算机服务服务的访问,如System.ServiceProcess命名空间下面的ServiceController 类,System.Management下面的一些WMI操作的类。虽然用ServiceController可以很方便的实…

百度WordPress结构化数据插件上线
2019独角兽企业重金招聘Python工程师标准>>> 博客文章收录慢?内容收录不全?马上使用百度WordPress结构化数据插件,轻松解决博客内容的收录问题,同时内容还能够在搜索结果中获得更丰富的展现,提高用户点击率…

MailMail、RegeX等程序的云端版
云端是一款优秀的国产软件,它通过虚拟环境的方式使软件与系统隔离,使软件做到免安装、易于删除、不留残余垃圾。 (这里捎带提醒一下,云端与Visual Studio有冲突,必须在禁用云端服务的情况下安装,详见《Visu…

java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题
2019独角兽企业重金招聘Python工程师标准>>> /* * 几大原则 * 一、静态成员变量(Static) * 1、静态成员变量为类变量,所有对象共享同一内存空间 * 2、静态成员变量的声明和定义仅在首次加载类时执行一次 * 3、首次加载类…

什么?我要对AI礼貌?人机交互面临的道德漏洞
作者 | 库珀来源 | 数据实战派头图 | 付费下载于 IC Photo如果你在一条道路上行驶,突然前面拐弯处出现一辆无人驾驶汽车,你会继续坚持你的道路优先权,还是让位使它先过去?目前,我们大多数人在涉及其他人的情况下能表现…

C#多线程共享数据
在多线程编程中,我们经常要使用数据共享.C#中是如何实现的呢?很简单,只要把你要共享的数据设置成静态的就可以了.关键字static .如下: static Queue q1new Queue(); static int b0; 在这里我定义了一个整形变量b和队列q1. 接下去就可以创建多线程代码了.如下: MyThread m…

异常-----Java compiler level does not match解决方法
假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请…

求几亿个数中不重复元素的个数
题目: 有2.5亿个无符号整数(但在文件里面),要求找出这2.5亿个数字里面,不重复的数字的个数(那些只出现一次的数字的数目);另外,可用的内存限定为600M;要求算法…

进一步提升用户信息安全保护意识 小米安全与隐私宣传月完满落幕
6月29日,第二届小米安全与隐私宣传月活动完美落幕。活动通过多形式、多层次、全方位展示了小米在信息安全与用户隐私保护方面的实践和成就,进一步提升小米全体员工保护消费者个人信息的安全意识,为小米全线产品的安全防护水平奠定基础。 闭幕…

已知2个整形数据a,b.不使用if,?:以及其他任何条件判断的语法,找出a跟b中数据的大者。
已知2个整形数据a,b.不使用if,?:以及其他任何条件判断的语法,找出a跟b中数据的大者。答案: int max(int a,int b){return (ababs(a-b))/2;}类似的 请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 答案࿱…

flume源码学习8-hdfs sink的具体写入流程
上一篇说了HDFSEventSink的实现,这里根据hdfs sink的配置和调用分析来看下sink中整个hdfs数据写入的过程: 线上hdfs sink的几个重要设置 12345678hdfs.path hdfs://xxxxx/%{logtypename}/%Y%m%d/%H: hdfs.rollInterval 60 hdfs.rollSize 0…

详解zabbix中文版安装部署
一、zabbix简介(摘自百度百科)zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在…

赠书 | 图解机器学习算法,看这文就够了!
机器学习指的是计算机根据给定的问题、课题或环境进行学习,并利用学习结果解决问题或课题等的一整套机制(图 1-1)。 图 1-1 分类的示意图与机器学习共同成为热门话题的还有人工智能和深度学习。这里梳理一下它们之间的关系(图 1-…

C#获得文件版本信息及只读文件的删除
获取文件的版本信息: FileVersionInfo myFileVersionInfo1 FileVersionInfo.GetVersionInfo("D://TEST.DLL"); textBox1.Text"版本号: " myFileVersionInfo1.FileVersion; 更改文件属性,删除只读文件: 下例欲将E:/test.txt文件…

组策略 从入门到精通(二) 如何区别跨越WAN网的计算机对组策略的套用
如果客户机与DC中间跨越了网络,造成传输速率慢的情况,我们希望通过策略中的一些元素,达成对这些计算机的另类处理。但我们并不知道这些计算机哪些与我们DC之间属于低速连接,哪些属于高速连接,那么我们要如何通过组策略…

插入记录时单引号的处理
由于Content, Title中可能包含单引号,直接使用sql的insert命令会报错,对此有两种处理方法,一种将单引号替换成两个单引号,第2种方法是使用存储过程。 表myBBS的格式定义如下: CREATE TABLE [dbo].[myBBS] ( [ID] [bi…

仅用 480 块 GPU 跑出万亿参数!全球首个“低碳版”巨模型 M6 来了
继今年 3 月阿里达摩院发布国内首个千亿参数多模态大模型 M6(MultiModality-to-MultiModality MultitaskMega-transformer,以下简称 M6) 之后,6 月 25 日,达摩院宣布对 M6 进行全新升级,带来“低碳版”巨模…

怎样将jpg转换成pdf软件
为什么80%的码农都做不了架构师?>>> 怎样将jpg转换成pdf软件 序言: 企业或个人通常会遇到设备终端软件的兼容性和支持性问题,比如,JPG转PDF文本,这给等于给用户设置了一个门槛,遇到需要将JPG转换…

二叉树的层次遍历 II
给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历) 样例 给出一棵二叉树 {3,9,20,#,#,15,7}, 3/ \9 20/ \15 7 按照从下往上的层次遍历为: [[15,7],[…

jquery autocomplete实现solr查询字段自动填充并执行查询
2019独角兽企业重金招聘Python工程师标准>>> 页面引入三个JS: <script type"text/javascript" src"js/jquery-1.7.2.js"></script> <script type"text/javascript" src"js/jquery-ui.js">&l…

C#使用CDO发送邮件
可以引用的COM组件列表,发现里面有一个名为Microsoft CDO For Exchange 2000 Library的COM组件,就是这个,我们可以用它来连接SMTP Server,使用用户名/密码验证发送邮件。 下面是实现的一个例子: Smtp Server使用的Smtp…

干货 | 当 YOLOv5 遇见 OpenVINO,实现自动检测佩戴口罩
YOLOv5网络YOLOv5代码链接:https://github.com/ultralytics/yolov5YOLOv5 于2020年6月横空出世!一经推出,便得到CV圈的瞩目,目前在各大目标检测竞赛、落地实战项目中得到广泛应用。 YOLOv5在COCO上的性能表现:YOLOv5一…

Ubuntu 16.04安装双显卡驱动方法收集
说明:不一定有效,要不断尝试。 http://www.linuxwang.com/html/2150.html http://blog.csdn.net/feishicheng/article/details/70662094>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<

C#中的类型转换
C# 出来也有些日子了,最近由于编程的需要,对 C# 的类型转换做了一些研究,其内容涉及 C# 的装箱/拆箱/别名、数值类型间相互转换、字符的 ASCII 码和 Unicode 码、数值字符串和数值之间的转换、字符串和字符数组/字节数组之间的转换、各种数值…

解构 StyleCLIP:文本驱动、按需设计,媲美人类 P 图师
来源 | HyperAI超神经(ID:HyperAI)作者 | 神经三羊StyleCLIP 是一种新型「P 图法」,它结合了 StyleGAN 和 CLIP,可以仅依据文本描述,对图像进行修改和处理。提起 StyleGAN 大家都不陌生。这个由 NVIDIA 发布的新型生成…

nexus 4 下 DualBootInstallation 安装 ubuntu touch
最近折腾ubuntu for phone ubuntu也算是雷声大雨点小,从edge手机开始,到说兼容一大部分谷歌机,到现在缩水说只适配nexus 4 节操掉了一地啊,对付这种情况,ubuntu touch也就可以只装着玩玩了,还好ubuntu 官方…

我的家庭私有云计划-13
嗯,昨天算由感而发啊,大家看看就好了。 嗯,接着说咱们的云。 先说啊,我没打算在这个领域里面完全自研,我还没那么疯,这个呢属于一体化解决方案,我认为还是社会分工合作的结果,不强调…

C语言return函数
return函数 说到return,有必要提及主函数的定义。很多人甚至市面上的一些书籍,都使用了void main( )这一形式 ,其实这是错误的。 C/C 中从来没有定义过void main( ) 。C 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着: The defi…

怎样写出一个较好的高速排序程序
写出一个较好的高速排序程序 高速排序是经常使用的排序算法之中的一个,但要想写出一个又快又准的使用程序,就不是那么简单了须要注意的事项 首先要写正确。通常使用递归实现。其递归相当于二叉树展开,因此假设要用迭代实现的话须要使用一个队…

写代码时发现......还得是 SpringBoot !一篇拿下
关注了很多技术类公众号的读者肯定有这样一个感受,SpringBoot相关的文章铺天盖地,并且SpringBoot相关的文章阅读量、收藏量都很高,这也从侧面反映了SpringBoot技术的火爆。一切都在证明,SpringBoot已经成为了Java程序员必备的技能…