来自Manolis Kellis教授(MIT计算生物学主任)的课《人工智能与机器学习》,中间结合李沐老师的两个精读视频(GNN和AlphaFold2)作为补充
本节课主要介绍了几何深度学习、图神经网络
主要内容有图神经网络、GNN、GCN、对称性、等变性、信息传递、蛋白质空间结构预测(AlphaFold2)、药物设计(虚拟药物筛选和新药设计)
本节课的内容比较多,按照目录/大纲点击跳转到需要的模块就行
有需要课程视频的可以私信发油管链接
AI for Drug Design - Lecture 16 - Deep Learning in the Life Sciences (Spring 2021)
Deep Learning for Protein Folding - Lecture 17 - MIT Deep Learning in Life Sciences (Spring 2021)
快速预习三件套(1h):
李沐老师论文精读视频:零基础多图详解图神经网络(GNN/GCN)【论文精读】
博客文章链接:A Gentle Introduction to Graph Neural Networks
博客的博客(方便回顾):【李沐精读GNN论文总结】A Gentle Introduction to Graph Neural Networks
进阶、更全面(3h):
唐宇迪AI:【唐博士带你学AI】2022最新图神经网络课程
当然了,图神经网络的内容远远不是几个小时可以学完的,以上的内容都仅仅算是入门。GNN存在一定的门槛,要先有一定的深度学习基础。
刚复习完一些图论就来学图神经网络里,感受到了图论和机器学习的结合,好玩捏
本次是第六周的课程,讲座主要内容如下:
本讲座涵盖了几何深度学习和图神经网络。几何深度学习是一种从图中学习的框架。图神经网络是一种可以从图表示学习的深度学习网络,可以用于处理大语言模型的顺序数据,蛋白质折叠,药物设计和计算药物开发。讲师介绍了对称性、变化和消息方式的概念。
Manolis 正在讨论使用网络和图来表示复杂的3D网络。他解释说网络可以被表示为图,这可以用来表示用户和对象之间的关系。他举了一个例子,说明化学网络是通过化学键的图表来表示的,大脑是通过神经元网络来表示的。Manolis正在寻找一种原始的方法来用邻居表示生物网络。当前的方法使用卷积神经网络,其中每个节点都连接到所有邻居,但这有太多的参数,不能适用于不同大小的图。Manolis 建议使用图神经网络,其中节点连接到他们的邻居,然后根据每个节点的邻居学习特征。
Manolis 讨论了图神经网络如何应用于计算药物开发,虚拟药物筛选和新药设计。他解释说,化学结构可以被表示为图,这与化学图表是一样的。他展示了如何比较这些图来创建一个化学指纹。
Manolis 在图上进行了智慧发现柠檬测试。该测试问的是,每个节点可以根据其邻居计算什么功能。Manolis查看每个节点的属性,并根据每个节点的邻居进行命名。这表明在图中有两种类型的节点:有3个邻居的节点和有2个邻居的节点。
Manolis想知道我们是否能通过在图中编码蛋白质来预测他们的性质,比如他们在三维空间中的结构,从而了解化学、化学和生物学的一些信息。Manolis解释说,蛋白质的结构是由其氨基酸序列决定的。有许多蛋白质结构预测的方法,包括模板基础建模,该方法使用一个模板作为模板来模拟任何预测中的蛋白质。最成功的方法是多序列比对,该方法将序列对齐到已知的片段,并模拟他们如何配合。
Manolis进行了计算药物发现的演示。主要有三种方法:1.虚拟筛选:筛选大量化合物并测试它们是否符合目标。2.模拟:模拟化学空间并预测它在三维中如何折叠。3.新药设计:预测细菌对抗生素的抗性。
Manolis展示了如何使用层次化的编码器和解码器在一个交叉树中表示一个分子图。目标是从分子图的简化表示中生成有意义的分子。Manolis展示了如何使用一个基于图神经网络的动机网络对分子进行编码和解码。
Manolis对他和他的团队在深度学习和图神经网络方面所做的研究进行了概述。他们研究了如何通过学习邻居的属性并将它们传递给节点本身来建模图中节点之间的关系。这使他们能够根据邻居学习更多的属性,然后通过网络的不同层次传播这些属性,并对邻居层的嵌入进行平均。这项研究已经导致了两种类型的应用:筛选分子的属性并根据这些属性生成新的药物。
更多的graph数据
CNN vs GNN:
一个核心点就是CNN处理的图像(二维网格数据),是有一个平移对称的感觉在里面的,里面都是一个个的像素点。而GNN处理的图(graph),存在一个排列对称性,就是说不管你这个图长的什么奇形怪状七扭八扭的,只要都是一样的节点和边,那这个图就是一样的。
某种意义上来说,graph可以看作成grid(二维网格数据)的简单概括,它表示了有关系的像素点(网格点),可以这么理解。
- 卷积神经网络:
- 基础领域:网格。在卷积神经网络中,输入数据(如图像)通常被表示为一个网格,其中每个网格点(即像素)包含一些特定的信息(如颜色)。
- 对称性:平移。卷积神经网络具有平移对称性,这意味着无论图像的对象在何处出现(例如,靠近图像的左边缘、右边缘或中心),网络都能以同样的方式检测到它。
- 卷积:平移等变。这是指,卷积操作在平移下保持不变,即如果输入数据平移,那么输出数据也将以相同的方式平移。
- 图神经网络:
- 基础领域:图。在图神经网络中,输入数据被表示为一个图,其中每个节点包含一些特定的信息,每条边表示两个节点之间的关系。
- 对称性:排列。图神经网络具有排列对称性,这意味着无论图中的节点如何重新排列(即,无论节点的标识如何改变),网络都将产生相同的输出。
- 消息传递:排列等变。这是指,消息传递操作在排列下保持不变,即如果输入数据的节点被重新排列,那么输出数据也将以相同的方式重新排列。
对于graph来说,其每个节点也是有属性的,就像CNN(grid数据)里的一样,每个像素点有相应的像素值。graph里的每个节点也有对应的属性,比如如果图是分子图,那么里面,原子(node)可能是亲水性的或者疏水性的。如果图是社交网络,那么人(node)就有不同的爱好/兴趣。这些都可以作为一个向量进行表示其节点属性。我们要做的任务之一就是研究这些节点属性。
GNN要做到的一个任务(挑战)就是,因为是图,对于同一个图的不同形式的输入要有相同的结果输出
比如如下24种矩阵表示的是同一个图,但是输入的矩阵不一样(表示形式),我们通过GNN得到的结果应该是一样的。(因为本质是同一个图)
主流的一些神经网络结构,我们今天主要是学GNN
机器学习生命周期如图所示,传统的算法要自己做特征工程,将数据预处理为结构化数据,现代的算法(深度学习)则可以自己学习特征,直接喂没加工的数据就行,这也就是所谓的表征学习(Representation Learning)
在encoder(编码器)中,将不同的元素embed(映射)到嵌入空间里。这就是Representation存在的地方。比如以前nlp里讲过的一种词嵌入(word embedding)技术(word2vec),就是这种东西。
现代的深度学习的算法,都是设计服务于简单的序列/网格数据,但是像图(graph)这样的数据是无法简单的用序列/网格表示的,所以我们需要更广泛应用的深度学习神经网络。
但是这个过程并不容易,因为graph太复杂了,复杂性和动态性,为什么呢:
- 任意大小和复杂的拓扑结构:网络的规模和形状是任意的,而且它们的拓扑结构往往比网格更复杂。例如,在图像(即网格)中,每个像素都有固定的邻居,但在网络中,节点的邻居数量和身份可能会因节点而异。此外,网络中没有像网格中那样的空间局部性,这使得不能直接应用许多针对网格的技术(如卷积)。
- 无固定的节点顺序或参考点:网络中的节点没有固定的顺序,也没有固定的参考点。这意味着不能仅仅根据节点的标识或位置来推断出它的特性或行为。
- 常常是动态的并有多模态特性:许多网络都是动态的,即它们的结构和属性随时间变化。例如,在社交网络中,新的连接可能会形成,老的连接可能会消失,而节点的属性(如用户的兴趣)也可能会改变。此外,网络的节点和边可能会有多种类型的属性,这些属性可能会以多种模态存在(如数值、文本、图像等)。
还是需要依靠embed技术(嵌入),就像我们在前面的LLM里学到的Attention机制一样,是能捕捉词语的上下文关系一样,节点与其邻居也有这样的关系,我们在节点本身的属性基础上,还需要获得其与周边节点的关系信息。这是graph的特征学习。输入是图,输出是一个低维空间,比如二维平面,每个节点表示是一个坐标(举例子,不一定准确)。
在图中的特征学习主要是指如何从图结构中提取有用的信息并将其转换为能够用于后续机器学习任务的特征表示或嵌入。这通常涉及学习一个映射函数f,该函数能够将图中的节点(或边)映射到一个低维空间,这个低维空间(也称为嵌入空间)通常具有比原始图结构更容易处理的性质。
在这个过程中,输入是图结构,输出是低维节点嵌入。例如,在医疗领域,输入图可能代表疾病的网络,其中节点代表不同的疾病,边代表疾病之间的关系(如共发性)。通过图的特征学习,我们可以得到每种疾病的低维嵌入,这些嵌入捕捉了疾病之间的关系并可以用于后续的机器学习任务,如疾病预测或药物推荐。
如何学习映射函数f是一个关键的问题。常见的方法包括图卷积网络(Graph Convolutional Networks)和图注意力网络(Graph Attention Networks)等。这些方法都试图通过利用图的拓扑结构和节点特征,学习出能够捕捉节点之间关系的嵌入。
将一个节点转换成一个对应的向量,图嵌入技术。
目标是为网络中的机器学习任务提供有效的、独立于任务的特征学习。换句话说,我们希望学习到的特征或嵌入不仅对当前的任务有用,而且能够轻松地迁移到其他相关的任务上。例如,学习到的疾病嵌入不仅可以用于预测某种疾病的发病率,还可以用于推荐针对这种疾病的治疗方法。
这里补充一个小知识点,就是关于embed(嵌入)这个词,在深度学习里老是见到:
在机器学习中,"embed"或者"embedding"一般有两个主要的含义:
- **表示转换或映射:**这个意思源于词嵌入(word embedding)的概念,例如Word2Vec、GloVe等。这里的"embed"意味着将词语或其他类型的对象从原始的表示空间映射到一个新的(通常是低维度的)表示空间。比如,我们可能将一个单词(通常以one-hot编码的方式表示)映射到一个实数向量空间(例如,一个300维的向量)。这种新的表示空间被设计为能捕获到单词之间的某些关系(如语义或语法相似性)。
- **数据的嵌入式表示:**在更广泛的意义上,"embed"或"embedding"也可以指的是任何将数据从一个表示空间转换到另一个表示空间的过程。这可以涵盖词嵌入之外的其他类型的嵌入,例如实体嵌入(entity embedding)、图嵌入(graph embedding)等。
这是分析网络的一些方式和任务:
图的符号表示,假设我们有一个图G:
节点特征:
最初级的方法就是利用传统的机器学习思想,将数据转换成结构化数据,投喂到神经网络中。在这里就是将邻接矩阵和特征矩阵结合在一起,然后将它们输入到一个深度神经网络中进行处理。
然而,这个想法存在一些问题:
因此,虽然这种直接的方法在某些情况下可能有效,但在许多实际应用中,我们需要更复杂、更灵活的方法来处理图数据,例如图神经网络(Graph Neural Networks)。
还是推荐大家去这个博客开头玩一下,可交互:A Gentle Introduction to Graph Neural Networks
这里更好的方式就是一种类似于卷积的方式,只不过用在图上,对于一个节点来说,它第一层卷积学到的就是它邻居的数据,第二层就是邻居的邻居,第三层就是邻居的邻居的邻居这样。通过这种方式实现图的嵌入,提取出节点的信息。而不是前面简单粗暴的转换成邻接矩阵。
By gpt4:
深度图编码器(Deep Graph Encoders)使用一种特殊的卷积运算——图卷积(Graph Convolutions),来提取节点或图的特征,生成高质量的节点或图嵌入(embeddings)。
下面是一种常见的深度图编码器的架构:
- 图卷积(Graph Convolutions):这是一个操作,用于在图中的每个节点上进行信息聚合。每个节点的新特征是其邻居特征的函数,这个函数通常是加权和或平均。
- 激活函数(Activation Function):通过一个非线性函数,如ReLU或tanh,来增加模型的表达能力。
- 规范化(Regularization):例如,dropout是一种用于防止过拟合的技术,通过在训练过程中随机丢弃一部分节点,来增加模型的泛化能力。
- 图卷积(Graph Convolutions):进行另一轮的图卷积,进一步提取和整合节点特征。
输出结果是节点嵌入,这些嵌入能够捕获节点的特征及其在图中的位置。此外,我们还可以将这种方法扩展,用来生成子图或整个图的嵌入。
这种深度图编码器在处理具有复杂结构和特征的图数据时,比传统的深度学习方法更有效。
图卷积网络(Graph Convolutional Networks,GCNs)是一种深度学习模型,专门用于处理图数据。GCNs的主要思想是一个节点的邻域定义了一个计算图,我们可以通过这个计算图,传播和转换节点间的信息,以计算节点的特征。
GCNs的操作步骤可以简述如下:
GCNs的一个关键思想是聚合邻居信息,邻域聚合(Neighborhood Aggregation)是图神经网络中的关键概念。不同的方法在如何聚合邻居信息方。基本的直觉是,节点可以通过神经网络从其邻居那里聚合信息。例如,一个节点可能会计算其所有邻居特征的加权和,然后将这个加权和作为输入,通过一个神经网络进行处理,生成新的节点特征。
这里图中可以看到第0层是A,第1层是BCD,第2层也存在A,这个不是循环,是按一层层来的,先有A的信息给了B、C、D更新,然后这个信息再传递到第0层的A。
这种方法的一个优点是,它可以直接处理图数据,而无需将图转换为其他格式。这使得GCNs在处理复杂图数据时,能够保留图的结构和特征信息。
以上所述的GCNs的工作原理是根据Kipf和Welling在2017年的ICLR会议上发布的论文《Semi-Supervised Classification with Graph Convolutional Networks》中的方法
不同的方法在如何聚合邻居信息方面存在一些区别,但基本的方法是从邻居中平均信息,并应用一个神经网络进行处理。具体来说,这个过程可以分为两步:
这个从邻居这里收集信息应该不难理解,应用神经网络乍一看有点抽象,但实际上不抽象,一定程度上就好像CNN的卷积+MLP一样。从GCN的角度理解,其实就是根据原来的数据去学习新的节点特征的过程。(语言表达能力有限,反正就是参考CNN)
以上的流程形成了学习图数据的一般蓝图,可以用于节点分类、图分类和链接预测等任务:
图神经网络(GNN)层的设计是当前非常活跃的研究领域。一个GNN层的主要目标是建立在图形上的排列等变函数F(X, A),通过共享的局部排列不变函数φ(X#) Xw)来实现。在这里,X代表节点特征,A代表邻接矩阵。
以下是一些常用的术语:
那么,如何实现φ呢?这是一个非常活跃的研究领域,幸运的是,几乎所有的φ都可以按照三种"风味"(即注意力、消息传递和卷积)进行分类。
图神经网络(GNN)有三种“风味”的层:
这三种类型的图神经网络层都是尝试从节点的邻居中获取信息,但它们采用了不同的策略,因此可能在不同的任务和图结构中表现不同。
我有点分不清GCN和MPNN,就问了一下gpt4,还是不太懂,但是未来有时间慢慢再了解:
图卷积网络(GCN)和消息传递神经网络(MPNN)在某种程度上有相似之处,因为它们都试图在节点与其邻居之间传递信息。然而,它们在实现细节和概念上是有所不同的。
- 图卷积网络(GCN):GCN受到卷积神经网络(CNN)的启发,它试图从一个节点的邻居捕获局部信息。与CNN在规则网格上进行局部卷积不同,GCN在不规则的图结构上进行卷积。在GCN中,每个节点的新特征是其邻居特征的加权平均(加权项通常是与边相关的属性或节点的度),然后再通过一个非线性激活函数。这种操作可以视为一种形式的卷积,它在图的空间结构上定义了一种局部邻域。
- 消息传递神经网络(MPNN):MPNN的工作方式是每个节点向其邻居发送“消息”,然后根据收到的所有消息更新自己的状态。这些消息是通过神经网络函数从发送节点的特征生成的。然后,节点将收到的所有消息聚合(比如通过求和或取最大值),并更新自己的状态。这种方式使得模型可以捕捉到更复杂的依赖关系,因为每个节点都可以根据它自己的特征以及收到的消息来决定如何更新自己的状态。
简单来说,卷积操作侧重于捕获节点和其邻居之间的一种固定模式(即“平均”),而消息传递则允许更复杂的交互模式,因为它允许每个节点根据它自己的特征和收到的消息来自主地更新其状态。
这个数学模型描述的是深度编码器(Deep Encoder)在图神经网络中如何工作。这种深度编码器的基本方法是采用邻居节点的信息(即消息),对其进行平均,并应用一个神经网络。
以下是对这个模型的具体解释:
以上步骤在k层中进行,每一层都在原来的嵌入上增加了更多的邻居信息,最终生成深层次的节点表示。
模型参数就是权重和偏置:
参数设置:
- 可训练的权重矩阵:在每一层的计算过程中,都有一个权重矩阵W_k用于更新节点的嵌入。这个权重矩阵是模型需要学习的参数之一。每一层的权重矩阵可以不同,也就是说W_k可以随着层级k的变化而变化。
- 计算节点嵌入:每一个节点u的嵌入h(k)_u是通过对其邻居节点在上一层的嵌入求平均,然后乘以权重矩阵W_k,并添加一个偏置项b(k),最后通过一个非线性激活函数计算得到的。
- 损失函数和优化:得到的节点嵌入可以用于计算任何适当的损失函数,例如用于节点分类任务的交叉熵损失,或者用于链接预测的负对数似然损失等。然后,通过随机梯度下降(SGD)或其它优化算法来调整权重矩阵和偏置项,使得损失函数最小,从而训练模型。
GraphSAGE(图采样与聚合)是一种用于在大型图中进行表示学习的框架。其目的是为了生成节点嵌入,这些嵌入能够在训练时候未见过的节点和图形上进行泛化,这对于许多实际应用非常有价值,因为实际的图经常是动态生成和扩展的。
到目前为止,我们已经通过取邻居消息的(加权)平均来进行聚合,GraphSAGE提出了一种改进的方式。
GraphSAGE方法的关键思想是,对于每个节点,它会先采样一个固定数量的邻居节点,然后将这些邻居节点的特征进行某种形式的聚合(例如,取平均、池化、或者使用LSTM等),然后将聚合得到的邻居特征与该节点自身的特征进行合并(例如,拼接或者求和),并通过一个非线性转换(例如,ReLU)生成新的节点特征。这个过程可以重复多次,类似于在图上进行多层卷积。最后,得到的节点特征就可以用于各种下游任务,例如,节点分类、链接预测等。
三种聚合变体方式:
- 平均:对邻居节点取加权平均 公式中的AGG表示聚合函数,其中hk-1是前一层的嵌入,u属于N(y),其中N(y)表示节点y的邻居集合。
- Pool(池化):对邻居向量进行转换并应用对称向量函数 比如,可以对每个邻居向量进行线性变换(乘以权重矩阵Q),然后在所有邻居向量上取元素级的平均值或最大值。这种方法的一个好处是,因为平均值和最大值操作都是对称的,所以无论邻居节点的顺序如何,聚合结果都是一样的。
- LSTM:将LSTM应用到邻居的重新排序上 对于每个节点,首先对其邻居节点的嵌入进行重新排序,然后将这些嵌入作为序列输入到一个LSTM网络中。得到的LSTM的最后输出被用作该节点的新的嵌入。这种方法的一个缺点是,LSTM不是对称的,所以同样的邻居节点,如果顺序不同,可能会产生不同的聚合结果。
模型应用在多药治疗的副作用预测中: 给定一组被处方的药物,该模型能预测这些药物可能会引起的副作用。每种副作用以一个概率表示,概率越高,产生该副作用的可能性越大。
在药物的研究和开发过程中,理解和预测药物的副作用是至关重要的。如果一个药物的副作用过于严重,那么这个药物可能就无法投入市场。通过使用图神经网络来预测药物的副作用,研究人员可以更好地理解药物之间的相互作用,并可能帮助他们设计出更安全、更有效的新药。
By gpt4:
异构网络如何嵌入?
异构网络是指网络中的节点和边可以有多种类型。例如,在社交网络中,节点可能代表个人或组织,边可能代表友谊或商业关系。在这种情况下,我们需要一种方法来嵌入这种多样性的网络。
对异构网络进行嵌入的一种方法是使用图神经网络(GNN)。这些模型可以处理多种类型的节点和边,**通过考虑节点和边的类型信息来生成节点的嵌入。**例如,具有不同类型边的节点可能会被编码为具有不同的特征。
对于每种类型的节点或边,我们可以有一个不同的嵌入模型或一组参数。然后,通过合适的聚合策略(例如,加权求和,平均,最大池化等)来组合不同类型的邻居信息。这就是所谓的异构图神经网络。
异构图神经网络的设计和应用是当前图深度学习研究的热点,具有丰富的理论研究和应用实践。
我们需要去定义一个损失函数,对embedding后的内容进行训练
简单解释一下,我们看第一排:
这段内容概述了利用图神经网络进行药物研发的两个主要技术:虚拟筛选/分子属性预测和新药设计。
虚拟筛选/分子属性预测: 虚拟筛选是一种计算技术,用于在大规模化合物库中识别可能的药物候选物。在这个过程中,图神经网络被用于学习分子的低维度表示,这些表示可以用于预测分子的属性,如溶解度、毒性等。这项技术已经在多项研究中得到应用,包括Duvenaud等人(2015),Kearnes等人(2016)和Jin等人(2018)的研究。
新药设计: 新药设计,也被称为"de novo"药物设计,是一个利用计算工具来设计新的潜在药物的过程。在这个过程中,图神经网络被用于生成新的分子结构。这项技术已经在多项研究中得到应用,包括Olivecrona等人(2018),Gomez-bombarelli等人(2018),Jin等人(2018)和Popova等人(2018)的研究
三维的蛋白质结构由一维的氨基酸序列折叠而成,这个问题已经被研究了几十年。
蛋白质结构预测是一种用于确定蛋白质的三维结构的方法,通常是通过其氨基酸序列。理解蛋白质的三维结构是非常重要的,因为它可以帮助我们理解蛋白质的功能,并在药物设计中找到可能的药物靶点。
蛋白质折叠通常涉及如下几个主要的结构元素:
蛋白质结构预测在计算生物学中是一个重要且具有挑战性的问题。许多不同的技术和方法已经被开发出来解决这个问题,包括模板匹配、同源建模,以及更先进的方法,如深度学习。深度学习的方法,例如AlphaFold,已经在CASB (Critical Assessment of protein Structure Prediction)竞赛中取得了显著的成果,显示出其在预测蛋白质结构方面的潜力。
模板依赖建模和模板自由建模是两种常用的蛋白质结构预测方法。
最近,深度学习方法(如AlphaFold)已经在蛋白质结构预测中显示出很大的潜力,这种方法既可以利用已知的蛋白质结构信息(如果可用),也可以从头开始预测蛋白质的结构,从而结合了模板依赖和模板自由建模的优点
Fragment assembly是一种传统的蛋白质结构预测方法,具体过程如下:
1. 目标序列:首先,我们有一个需要预测结构的蛋白质目标序列。
2. 片段库 (Fragment Library):通过从已知结构的蛋白质中提取短序列片段来创建一个片段库。这些片段的长度通常为3到9个氨基酸。
3. Profile-Profile Alignment:然后,将目标序列的氨基酸剖面与库中的每个片段剖面进行对比。
4. 蒙特卡洛片段装配 (Monte Carlo Fragment Assembly):通过蒙特卡洛方法从片段库中随机选取片段,并将它们拼接在一起以构建蛋白质的初步模型。通过重复这个过程,产生大量的蛋白质模型。
5. 基于知识的势能 (Knowledge-based potentials):使用基于统计的得分函数(如Rosetta的得分函数)来评估和排列这些模型,选取得分最高的模型作为最佳模型。
6. 基于物理的原子精修 (Physics-based atomic refinement):最后,基于物理的能量最小化过程对选定的模型进行精修,包括优化氨基酸侧链位置和小幅度调整蛋白质的主链。
这种方法的一个主要问题是计算效率较低,且准确度受到已知结构片段库的限制。
这个新策略包含了以下步骤:
这个策略提供了一种有效的方法来预测蛋白质结构,与传统的方法相比,它更多地利用了深度学习和序列演化信息,因此通常可以得到更准确的预测结果。
蛋白质的结构和功能严重依赖于其氨基酸的排列顺序和化学性质。如果一个氨基酸突变,使得其边链增大,这可能会干扰蛋白质的结构或者影响其功能,因为这可能会使其与邻近氨基酸的相互作用发生改变。
但是,如果另一个邻近的氨基酸同时发生突变,使其变小,这就可能可以平衡边链的大小变化,保持蛋白质的稳定性。这种情况下,两个氨基酸就会表现出共演化的特性,即它们的变化是协调的。
这种共演化现象可以帮助我们理解蛋白质的三维结构和功能,因为共演化的氨基酸对通常在三维结构中紧密接触,共同参与形成蛋白质的活性位点或者结构域。因此,通过分析多个蛋白质序列的共演化模式,我们可以预测蛋白质的结构或者功能位点。
共演化的概念可能比较抽象,我们通过一个简单的例子来理解它。
假设我们有一种具有三个氨基酸的极简单的生物体。这三个氨基酸排列在一条链上,形成了一种蛋白质。我们将这三个氨基酸分别命名为A,B,C。
在一种理想的环境下,这三个氨基酸的理想形态分别为大,中,小。也就是说,最好的蛋白质形式是大的A,中的B,小的C。这种组合能让生物体达到最好的适应环境的效果。
然而,生物体在演化过程中会发生突变,氨基酸可能会改变形态。比如,A可能突变为中型,或者B突变为大型。
现在,如果A突变为中型,那么与A相邻的B就会面临压力,因为它现在与A一样大了。为了维持蛋白质的最优形态,B可能也会随之突变为小型。这样,A和B就通过共同适应环境压力而发生了共演化。
如果我们只看一个生物体,可能很难观察到这种共演化的现象。但如果我们观察很多具有相似蛋白质的生物体,我们就可以看到某些氨基酸位置上的突变是有关联的。例如,我们可能会观察到,每当A变为中型时,B也往往变为小型。
这就是共演化的基本概念。在实际的生物体和蛋白质中,情况会复杂得多,因为一个蛋白质可能由数百或数千个氨基酸组成,每个氨基酸可能以20种不同的形式出现。但即使在这种复杂的环境中,我们仍然可以通过统计分析发现共演化的模式,从而预测蛋白质的结构或功能。
这里是对多序列比对(MSA,Multiple Sequence Alignment)的共演化分析的介绍。共演化分析在生物信息学中被广泛应用,尤其是在蛋白质结构预测和功能位点预测等领域。
这里的图形模型(也被称为图模型或马尔可夫随机场,MRF)是用来建模MSA的。它将氨基酸序列中的每个位置看作一个随机变量,并假定两个位置之间的关系可以由一个权重函数来描述。
对于给定的氨基酸序列S,其生成概率 P ( S ) P(S) P(S)可以由这个图模型来计算,其中 φ ( x ) φ(x) φ(x)表示序列中某个位置的单点概率,而 w ( x i , x j ) w(x_i, x_j) w(xi,xj)表示序列中两个位置的相关性或协变性。
这个模型的参数 φ φ φ和 w w w可以通过最大似然法或伪似然法进行估计。这种方法的一个特例是高斯图形模型,它假定随机变量服从多元正态分布。
总的来说,这个方法的目标是通过分析蛋白质序列的共演化模式,来预测蛋白质的结构或功能位点。
在蛋白质结构预测中,通常需要收集并利用一些蛋白质的特征和标签。这些特征和标签可以帮助我们理解蛋白质的性质并预测其未来的行为。
在收集了这些特征和标签后,我们就可以使用一些机器学习或深度学习的方法来训练一个模型,该模型可以从这些特征中学习并预测蛋白质的结构或者行为。
"Towards An End-to-End Workflow"工作流程引入了一个额外的步骤,即"Templates"步骤。
Templates步骤通常涉及到使用已知的蛋白质结构作为模板,这些模板在某种程度上与目标蛋白质的序列相似。这些模板可以提供额外的结构信息,有助于提高预测的准确性。这种方法尤其对于那些能找到良好模板的蛋白质序列特别有用。
在这个工作流程中,模板不仅被用于初始化预测,还被用于训练深度神经网络。这意味着,网络不仅从多序列比对和共演化分析中学习信息,而且还从模板中学习结构信息。这种结合使用数据驱动和知识驱动方法的策略有可能提高预测的准确性和鲁棒性。
需要注意的是,模板引导的预测可能对模板的质量和与目标序列的相似度高度敏感,而且不适用于那些无法找到合适模板的蛋白质。此外,这种方法可能需要更复杂的训练步骤和更多的计算资源。
AlphaFold2是一种革新性的蛋白质结构预测方法,由DeepMind公司开发。它在2020年的蛋白质结构预测竞赛(CASP14)中表现出色,标志着蛋白质折叠问题的一个重大突破。
这种方法是端到端的,这意味着它接受一系列氨基酸(即蛋白质序列)作为输入,并输出预测的蛋白质三维结构。这与许多早期的方法不同,这些方法通常需要一系列中间步骤和手动调整。
在AlphaFold2的架构中,首先执行多序列比对,并搜索模板。然后,这些信息被喂入一个类似于Transformer的深度网络中。这个网络包括多个模块,如Evotransformer模块和Structure模块,这些模块通过大量的注意力机制和残差连接来处理序列和模板信息。
网络的输出是一个三维表示,描述了每个氨基酸在空间中的预期位置。这个表示随后被用来重构蛋白质的三维结构。
AlphaFold2的一大创新是引入了模板和多序列比对信息,这些信息通过一个强大的Transformer-like网络进行处理。这允许网络学习复杂的序列-结构关系,并提高预测的准确性。
然而,虽然AlphaFold2取得了显著的成就,但仍有一些挑战。例如,对大蛋白质的预测,以及对蛋白质动态和蛋白质-蛋白质相互作用的预测,仍然是困难的问题。
图神经网络的关键就是学习各个残基之间的关系,完成某些三维结构中每个残基的嵌入,预测最后的三维结构
在蛋白质结构预测的情况下,GNN可以被用来模拟蛋白质折叠的过程,其中节点代表氨基酸,边代表氨基酸之间的相互作用。GNN可以捕获蛋白质的局部和全局结构特征,以及氨基酸之间的复杂相互作用。
例如,可以使用GNN来预测氨基酸之间的距离,这是蛋白质三维结构预测的一个关键步骤。GNN可以通过在蛋白质图中传播信息,来捕获氨基酸之间的长距离依赖性。
李沐老师b站:AlphaFold 2 论文精读【论文精读】
三个部分,第一个部分是抽取特征,第二个是encode,第三个是decode
对于第二部分,是输入两个三维的张量
然后将两个输入进Evoformer(可以看做transformer的变种)
这里还有一个回收机制,将编码器和解码器的输出,又拿回去做了编码器的输入。有点像RNN,可以看做变成了一个四倍更深的一个网络,达到更好的进度。
一些不同:每次复制的权重还是基于前面的,还有做回收的时候梯度是不反传的
暂停来自视频23:05,编码器和解码器的内部结构以后再来补充
摘录了一些小伙伴的b站评论:
问:首先是一个不成熟的小建议:我觉得李老师在做AI for science这类论文的解读时,要是能够对这个science任务做个简要介绍就更好了。比如这个任务是要从什么已知条件得到什么未知结果,以及目前非AI方向是用哪一些方法来完成这个任务。这应该能有助于我们更好地理解作者在这篇文章中某些做法的意图。这是我这几天找的资料整理的,生信的小伙伴们看看有没有什么问题:
蛋白质的三级结构是由一级结构决定的,每种蛋白质都有自己特定的氨基酸排列顺序,从而构成其固有的独特的三级结构。蛋白三维结构预测就是指输入一段蛋白序列(一级结构),输出蛋白所有原子的三维空间坐标。当前对蛋白质三位结构进行预测的方法,除了文中提到的Cryo-SEM,还有通过同源蛋白质的同源建模方法。具体步骤如下:首先选择最佳模板3D结构后进行序列比对,第一次的序列比对通常使用BLOcks替换矩阵执行。第二次序列比对(也称为比对校正)用于构建骨干三维结构。然后对无模板区域或者相似性比较低的区域进行loop建模,最高精度可达12~13个残基。接着是侧链重建,通过依赖主链的旋转体库进行构象搜索。接下来应该通过各种质量评估工具对结构进行改进和验证。我想在本文中输入的MSA,正是对应模版的蛋白质序列,而template也就是这些模版蛋白质序列对应的结构信息。
答1:MSA和template并不一样,MSA的序列远比template里面的序列多的多。MSA建模的思想是来自共进化分析,也就是只通过MSA完全不要序列理论上也能得到3D结构;template建模就是您说的同源建模的思想。但是AF里面保证精度的核心是MSA
答2:MSA 是在seq databse里搜索和查询目标相似的序列来提取共进化信息,也就是在序列层面上获取一些残基之间的接触关系来指导最终的结构预测,template 基于序列直接搜索同源结构,获取的是模板结构在三维空间中残基之间的相对位置信息。MSA 的适用性要更广于template,主要原因在于蛋白质序列的数据库规模要远大于解出结构的蛋白质构成的结构数据库。
从数百万种化合物中,找到我们做实验用的几种化合物。设计一个药物的时间和金钱成本是巨大的
药物发现的过程包括几个阶段:
- 目标识别和验证:在这个阶段,科学家们会识别在疾病过程中发挥关键作用的分子或通路,并验证其作为药物靶点的潜力。
- 筛选和优化引物:在此阶段,大量的化学物质库被筛查,以识别与目标互动的"命中"化合物。这些"命中"化合物然后被优化成"引物"化合物 - 有可能成为药物,能对目标产生期望的影响,且安全、可以有效生产。
- 临床前测试:在实验室和动物模型中对引物化合物进行测试,以评估其在人体内测试之前的安全性和有效性。
- 临床试验:临床试验涉及在人体内测试药物。它们通常分为三个阶段。第一阶段的试验涉及到一小组健康的志愿者,目的是评估安全性和剂量。第二阶段的试验涉及到更大的患者群体,目的是评估效果和副作用。第三阶段的试验涉及到大群患者,目的是确认效果,监控副作用,并将药物与常用的治疗方法进行比较。
- 监管批准:如果临床试验的结果是积极的,药品公司可以申请监管批准以销售药物。
计算机辅助药物发现有三种主要的策略:
虚拟筛选
虚拟筛选是使用计算模型来评估一个化合物是否是好的药物(Walters等人,1998; McGregor等人,2007)。
虚拟筛选模型 --> 预测:好的! --> 化合物 --> 实验
虚拟筛选比实验室的实验筛选要快得多。它可以在一天内测试10的9次方种化合物,而实验筛选需要花费数年时间。同时,虚拟筛选也比实验筛选更便宜
虚拟筛选是一种内在的权衡
抗生素的滥用导致了耐药性的细菌的生长。1987年之后就没有新的抗生素种类的引入了。而因为抗药性,我们需要研发新的抗生素。
虚拟筛选用于抗生素发现
通过与Broad研究所的合作,我们收集了2560种对大肠杆菌(BW25113)的生长抑制测量结果的分子。
为什么选择图神经网络?
我们有一些药物数据,例如Nitrocefin、Reserpine、Penicillin和IQ-1S,它们是否具有抗菌性质,我们通过训练,然后预测其抗菌性质。
图神经网络可以自动从数据中学习特征表示。
传统方法:手工制作的特性
传统特性的问题
用图来表示化合物分子,edge是键,node是原子,node的属性不止是原子本身,还包括embedding来的(从周围)
像卷积一样,从原子类型开始,然后根据其邻居的属性来学习,再然后根据邻居的邻居的属性来学习。通过图结构的传播,最终对整个分子的属性进行编码
结合手工的特征和深度学习的特征,来判断是否有抗菌性
我们在Broad药物再利用中心虚拟筛选了10^6种以上的化合物,并在Broad研究所对排名前99的化合物进行了实验测试。结果发现,其中的51种化合物确实具有抗菌活性,命中率为51.5%。
SU3327化合物(重命名为Halicin)是一种新型和强效的抗生素。在体外实验中,Halicin对大肠杆菌表现出强力的生长抑制作用,其结构也与已知的抗生素明显不同,与现有抗生素的相似性低。
Halicin对抗耐药细菌的效力在老鼠身上得到了验证。对抗多重抗药性的鲍曼不动杆菌(A. baumannii)以及抗药性艰难梭菌(C. difficile)在体内都展示出强烈的抑制效果。
我们还对ZINC库中的10^9种化合物进行了大规模虚拟筛选,成功鉴定出8种对大肠杆菌(EC)和耐药金黄色葡萄球菌(S)具有抑制作用的化合物。
比虚拟筛选更进一步的,创造新药物。我们使用生成模型去尝试。
“从头”药物设计是直接生成具有期望属性的化合物的过程(Moon等人,1991;Clark等人,1995;Schneider & Fechner,2005;)。在这个过程中,我们需要解决反问题:根据期望的属性(例如,氧化还原电位,溶解度,毒性)在功能空间和化学空间中找到一个好的药物。
“从头”药物设计的固有权衡:虚拟筛选仅限于商业化合物(例如,ZINC库)。优点是能有效地探索整个化学空间。但是限制在于我们需要合成新化合物,这可能很难。“从头”药物设计基于手工设计的规则(例如,遗传算法)来探索空间。
设计新药的动机:深度学习可以发现新的抗生素和COVID-19药物。简单的方法是训练一个图神经网络对所有在库中的化合物进行排序。原因是这样可以最大化实验验证的速度。问题在于,像药物的分子数量达到了10^60,我们无法对所有分子进行排序。
为“从头”药物设计进行图生成:我们要学习一个分布,其质量集中在“好”的分子附近。我们可以训练一个生成模型直接生成“好”的分子。这种方法可以有效地探索整个化学空间(10^60种分子)。接下来的问题是如何生成分子图?
使用motif来分解替代表示。638个motifs涵盖了250k的图
"结点树变分自编码器"的设计灵感来源于图模型中的结点树算法。这种方法考虑了分子图中常见的结构模式(motifs),将复杂的分子结构分解为较小的部分。
这些小部分被称为"motifs",它们因树宽度低而规模较小。我们可以从大量图表(例如,250K图表)中提取出这些模式,形成一个"motif词汇表"。
然后,我们将这些motifs重新组合成新的分子结构。这个过程覆盖了99.9%的新图表,这表明我们可以生成几乎任何类型的分子结构。
在这种方法中,分子图表被表示为其对应的结点树,这使得我们可以有效地对图表进行操作并从数据中自动学习特征表示
用结点树来表示分子图
这种分层的编码-解码过程允许模型捕获和生成复杂的分子结构,同时保持计算效率。
Motif-by-Motif 对比 Node-by-Node
训练目标:最小化重构损失
与逐节点生成相比,Motif-by-Motif(按motif生成)方法能够更好地重构大分子!
图中的重构准确性展示了这种差异。Motif-by-Motif生成的准确性随分子大小(原子数量)的增加而保持稳定,而逐节点生成则在分子大小增加时,准确性显著下降。
结果:分子优化
任务:学习将非药物样的分子修改为药物样的分子。药物样性由QED分数(Bickerton等人,2012年)衡量。
如图所示,Motif-by-Motif生成方法在提高药物样性的成功率上表现得更好,比逐节点和序列方法都要高。所以,这证明了使用Motif-by-Motif的方法,在保持分子结构复杂性的同时,能够有效地优化分子以达到预期的属性。