【论文分享】AF2:Highly accurate protein structure prediction with AlphaFold

前言:本文是PPT分享的文字稿,偏口语化,仅供参考。


论文正文内容梳理

团队介绍

在这里插入图片描述2010年 Demis Hassabis等人创建了DeepMind
2014年1月Google斥资4亿美元收购DeepMind
2016年3月,DeepMind开发的AlphaGo程序以4:1击败韩国围棋冠军李世石
2022年7月DeepMind发布AlphaFold算法,其破解了几乎所有已知的蛋白质结构,为开发新药物或新技术来应对饥荒或污染等全球性挑战铺平了道

背景介绍

蛋白质是单体(氨基酸)的线性序列,折叠成复杂的3D结构,有助于了解其功能和药物发现。

在这里插入图片描述ref:https://www.dnastar.com/blog/structural-biology/why-structure-prediction-matters/海量的序列信息,少量的结构信息
需要高精度高通量发现蛋白质结构的方法

预测方法分类

实验方法—低通量、高准确度

  • X-射线晶体衍射(X-ray crystallography):蛋白质样本必须是可结晶的。

  • 核磁共振(NMR):蛋白质分子大小限制 < 30 kD

  • 冷冻电镜(Cryo-EM):分辨率不如前两种,设备昂贵

计算方法—高通量、低准确度

AF2——发现蛋白质结构的计算方法

AF2解决的问题——提高计算方法预测蛋白质结构的准确度

预测效果

在这里插入图片描述在这里插入图片描述
  • AlphaFold2在CASP比赛中优势明显,达到原子精度

  • Alphafold2对PDB所有蛋白质预测的平均误差在1Å左右

算法框架

  1. 模型输入和特征获取

  2. Evoformer

  3. Structure Module

  4. Recycling 多轮迭代让模型的深度更深,能够通过迭代让结构预测更精确,预测到更复杂的结构

在这里插入图片描述

1. 模型输入

目的:搜索同源序列和模板,构造MSA特征和残基对特征得到特征表示

  • MSA特征:氨基酸序列在数据库中搜索多序列比对的匹配信息

  • 残基对特征:氨基酸间的信息

序列数据库
UniRef90 (JackHMMER)
Mgnify(JackHMMER)
BFD(HHnlits)
Uniclust30(HHnlits)
Pdb_seqres - multimer Uniprot
– multimer
结构数据库
PDB70聚类 (HHsearch)
PDB (用于训练)
pdb_mmcif
在这里插入图片描述MSA决定结构预测准确度的上限
AlphaFold的序列数据库足够大,MSA结果有一定的保证

What is MSA?

多序列比对(MSA)让参与比对的序列中有尽可能多的列具有相同的字符(即使得相同残基的位点位于同一列)

序列比对规则:

(a)一个序列所有残基的相对位置保持不变;

(b)将不同序列间相同或相似的残基放入同一列,即尽可能将序列间相同或相似残基上下对齐。

在这里插入图片描述

多序列比对(MSA)作用:发现不同的序列之间的相似部分,推断它们在结构和功能上的相似关系,得到共进化信息,主要用于预测蛋白质的二级结构和三级结构、估计蛋白质折叠类型的总数,基因组序列分析等。

2. Evoformer

目的:MSA表示和残基对表示之间互相交换信息

在这里插入图片描述

  • Row/cloumn-wise self-attention : MSA蛋白质的共进化信息

  • MSA特征和残基对特征相互影响:加入蛋白共进化信息到残基对表示

  • Triangle update and self-attention:通过周围残基对来更新当前残基对

在这里插入图片描述

What is Self-Attention?

Self-attention在自然语言领域可以用来捕获输入序列的单词之间的依赖关系,用在蛋白质序列里也可以捕捉氨基酸之间的信息。

Self-attention有三个和输入序列有关的矩阵QKV,比如左边的QK经过相乘就会得到一个矩阵,再经过softmax得到一个 0-1的矩阵即注意力,最终将这个注意力矩阵和V相乘得到了一次input更新。

AF2中的注意力机制(如右图):输入input变成了蛋白质序列,通过同样的计算QKV矩阵,输出的是氨基酸残基之间的注意力。其中QKV矩阵在AF2是由输入序列的氨基酸个数、注意力头数量和每一个氨基酸向量的长度构造的矩阵。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SD6ad5gQ-1670921445485)(./20221212_AF2论文分享.assets/image-20221213160643225.png)]在这里插入图片描述

AF2为什么使用多头注意力机制? 因为随着注意力头数的增加越多,能识别出蛋白质氨基酸残基之间的更复杂的关系。

MSA row-wise gated self-attention with pair bias

每一次取一条序列进行更新,并加入残基对的信息,构建残基之间的进化信息。残基对表示作为bias,可以鼓励两个表示之间的信息交流。

每一次从MSA表示中取出一行来,也就是一个氨基酸序列,计算QK相乘得到矩阵之后将pair的信息整合进来,通过softmax计算出一个0-1的权重,乘以V矩阵完成了一次对输入序列的更新。

在这里插入图片描述

MSA column-wise gated self-attention

每次取来自不同序列的相同残基交换信息,计算attention得到更新。

在这里插入图片描述

残基有向图的信息传递

残基图构造:
在这里插入图片描述

Triangle模块:

在这里插入图片描述

模块名称解析图
Triangular multiplicative update(三角乘法更新)
使用和残基i以及残基j共起点或共终点的边来更新边(i,j)
在这里插入图片描述
Triangular Self-attention(三角自注意力层)
使用从i出发或终止的所有边来更新边(i,j)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nUxbdnE9-1670921445490)(./20221212_AF2论文分享.assets/image-20221213161428238.png)]

三角自注意力层伪代码分析:
在这里插入图片描述

3. Structure Module

假定pair-wise已经通过evoformer将msa的信息学习到了,那么就需要输入pair representation到structure module计算得到最后的蛋白质结构位置信息(蛋白质结构的三维坐标)

在这里插入图片描述

详细结构分析

输入:single repr (取自evoformer输出的MSA表示的第一行)

输出:蛋白质的三维结构

在这里插入图片描述

详细过程:初始的single representation就是evoformer输出的MSA表示的第一行,就是目标查询序列表示。初始的氨基酸主链每个原点都是重合的,只是在后面的更新变得不一样。通过一个IPA模块进行single序列表示的更新以及主链相对旋转的更新,最后通过残基之间肽键的旋转角度和距离预测出蛋白质结构的三维坐标。

IPA不动点注意力机制

目的:分别引入残基对信息和坐标系信息来更新单序列表示

single representation也是通过了一个传统的注意力机制,但是在QK矩阵softmax之前引入残基对信息以及backbone frame的距离信息。将得到的attention矩阵分别乘以残基对representation、空间坐标转换后的value和单序列的value再通过一个线性变化得到单序列表示的更新。
在这里插入图片描述

structure design伪代码分析

在这里插入图片描述1.Update Single sequence repre 单序列表示更新
2.Update backbone 更新主链位置
3.Predict side chain and backbone torsion angles 预测侧链和主链扭转角
4.Auxiliary losses in every iteration 每次迭代中的辅助损失
5.No rotation gradients between iteration to stabilize training 在迭代之间没有旋转梯度以稳定训练
6.Final loss on all atom coordinates 所有原子坐标上的最终损失
7.Predict model confidence 预测模型置信度

Loss Function

在这里插入图片描述

训练的损失主要是FAPE和aux的加权平均值

L F A P E L_{FAPE} LFAPE:全原子的FAPE(Frame Aligned Point Error),FAPE是将预测结构和真实结构通过残基i对齐,计算其他残基之间的距离差异

L a u x L_{aux} Laux:structure module中只考虑 C α C_α Cα的FAPE和扭角的loss

L d i s t L_{dist} Ldist:distogram的差异,残基对距离分布的loss

L m s a L_{msa} Lmsa:预测MSA中被Mask的残基类型

L c o n f L_{conf} Lconf:模型置信度的损失

L e x p ⁡ r e s o l v e d L_{exp⁡resolved} Lexpresolved :预测结构是否位于PDB结构中

L v i o l L_{viol} Lviol:限制残基的空间排列

部分loss详细:

在这里插入图片描述

L v i o l L_{viol} Lviol = 惩罚不可能长度的键+扭转角+空间碰撞原子

在这里插入图片描述

在这里插入图片描述

AF2推理生成结果

masa根据使用的数据库有所不同

在这里插入图片描述

训练过程 Openfold(AF2复现)

训练集

训练集和AF几乎一致,看起来比AF2的数据要少一点

在这里插入图片描述

训练步骤

  1. 预先计算氨基酸的多序列比对(DeepMind/ColabFold)

  2. 在mmCIF模板文件生成用于预过滤模板的缓存

  3. 使用链簇文件(e.g. PDB40)生成单独的链级缓存,用于训练时间数据过滤

    PDB40文件参考
    >

训练命令

  • mmcif_dir为训练输入数据
  • alignment_dir为第一步输出的多序列比对结果
  • mmcif_chain为第二步过滤模板的缓存
  • chain_data_cache.json为第三步生成的链簇文件

在这里插入图片描述

AF2潜在问题

  • 不能预测未知结构蛋白质

  • 氨基酸数量限制

  • Inference预测时间长
    在这里插入图片描述

其他类似算法 - EsmFold

预测效果

实验结果说明
在这里插入图片描述在AF2去除MSA和模板信息的时候,esm的单链效果远超AF2和RoseTTA。
(Full: with MSA and template information )
在这里插入图片描述右侧的Esm生成的结构和AF2生成的结构相当。

结构简要说明

EsmFold 使用语言模型表示,消除了对明确的同源序列作为输入的需要。
在这里插入图片描述

  1. 氨基酸序列通过语言模型生成特征作为Folding Trunk的输入

  2. Folding Trunk的输出被结构模块处理,输出最终的结构和预测的置信度

伪代码分析:

  • 首先,使用ESM嵌入的学习加权和来产生模型中的初始隐藏状态。

  • 然后。通过MLP进行反馈。

  • 最后,结构模块将这些结果解析为坐标。

在这里插入图片描述

Folding Trunking

和Evoformer很相似,简要对比一下。

FoldingTrunk

  • 语言模型生成的seq rep代替MSA,通过标准attention更新

  • 删除templates信息,传递语言模型的注意力图

Evoformer

  • MSA通过轴向attention更新

  • templates信息以成对距离的形式添加到模型

在这里插入图片描述在这里插入图片描述

实现效果

ESM(time used for prediction)

  • monomer(1YQA) ~1.71s (7DF3) ~206.17s (1YQA短链、7DF3长链)

  • multimer(1BQL) ~26.34s

Memory consuming

  • long monomer/multimer ~81251/18687MB

在这里插入图片描述

在这里插入图片描述

Bad docking output for multimer

1BQL 三条链 总长度558,抗原抗体的Docking效果很差,EsmFold结合位置不正确。

在这里插入图片描述

1BQL推理结果

蓝色:标准结构

绿色:esm预测结构

参考资料

09-14 4219
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zoetu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值