AlphaFold的原理及解读

1、背景

蛋白质是生物体内一类重要的生物大分子,其结构复杂多样,蛋白质的结构对于理解其功能和参与的生物学过程具有重要意义。从生物学角度上看,蛋白质的结构可以分为四个层次:初级结构、二级结构、三级结构和四级结构。

  1. 初级结构:初级结构是蛋白质的氨基酸序列,即蛋白质由多个氨基酸按照特定的顺序连接而成。氨基酸是蛋白质的基本组成单位,共有20种常见氨基酸,它们的不同排列形成了蛋白质的初级结构。

  2. 二级结构:二级结构是蛋白质中局部区域的空间排列方式。常见的二级结构包括α-螺旋和β-折叠。α-螺旋是由多个氨基酸沿着螺旋状排列而成,而β-折叠是由氨基酸链的不同区域之间的相互作用形成的折叠结构。

  3. 三级结构:三级结构是整个蛋白质分子的空间结构。这个结构由蛋白质的二级结构在整个分子中的排列和折叠所决定。各种相互作用力,如氢键、离子键、范德华力和疏水效应等,参与了蛋白质分子的三级结构的稳定。

  4. 四级结构:四级结构是由多个蛋白质分子相互组合而成的复合体,通常称为蛋白质的多聚体。多个蛋白质分子通过各种力和作用结合在一起,形成功能更为复杂的生物大分子。

其中初级结构一般可以通过Edman降解法和质谱法进行确定,而二级结构及三级结构通常需要如X射线晶体学、电镜等高度专业的设备和技术来确定,其需要极高人工及金钱成本。而AlphaFold通过深度学习技术解决蛋白质的二级结构及三级结构的预测问题,极大地提高了蛋白质结构解析效率,因此也被认为是诺奖级跨时代的工作。

2、特征输入

前文我们提到,AlphaFold根据深度学习技术,通过输入蛋白质一级结构来解析二级结构及三级结构,而一级结构为一组蛋白质氨基酸序列,但是AlphaFold的特征并不只是输入蛋白质氨基酸序列,而包含了多种相关信息。

  • 单氨基酸序列target_feat$[r,f]$:其中f为21维氨基酸的one-hot向量(20种常见氨基酸+1种未知默认),r表示序列长度

  • 氨基酸序列标号residue_index$[r]$

  • 同类MSA特征msa_feat$[s_c,r,f_c]$:MSA特征主要表示同类特征,$s_c$表示同类的数量,r表示序列长度,$f_c$表示聚类特征长度

  • 非同类MSA特征extra_msa_feat$[s_e,r,f_e]$

  • 氨基酸序列交互特征template_pair_feat$[s_t,r,r,f_p]$:主要用于反映氨基酸序列中各氨基酸之间的位置关系特征

  • 氨基酸序列交互特征template_angle_feat$[s_t,r,f_a]$:主要用于反映氨基酸序列中各氨基酸本身残基的角度关系。

上述所有特征再经过一个特征预处理模块,得到最终融合的MSA representation特征及Pair representation特征进入后续的编解码过程。

3、模型输出

AlphaFold的输出包含了两个部分,一个是氨基酸本身的在三维空间的旋转方向关系一般通过3x3的矩阵来表示,另一个是氨基酸之间的空间关系可以用一个三维向量表示,因此根据数学关系,一个氨基酸在蛋白质结构中的旋转+空间位置关系也可以通过3+3的六维向量整体表示,由于刚体空间结构不变性,从空间某个指定位置开始,已知下一个氨基酸同上一个氨基酸的空间位置关系,就可以组成整个序列的空间结构,因此整体的蛋白质做旋转或者位移,不会对变换系数产生影响。

4、模型结构

AlphaFold的模型结构分为了两个部分,分别是Encoder模块和Decode模块,在Encoder模块主要是生成蛋白质的氨基酸序列的新特征表示,而Decode模块输出蛋白质中各氨基酸的相对的旋转+空间位置关系。

4.1 Encoder模块

4.1.1 行列门控attention模块

self-attention是一种高效的序列特征抽取器,而一般的attention组件只能支持二维向量,而AlphaFold通过两组attention模块分别抽取行列维向量叠加从而实现了三维的attention抽取器。

此外引入了一个门控组件,其通过一个简单的线性网络来控制行列信息的引入,添加该组件的一个可能原因是因为MSA是通过某种先验的聚类方法来生成的,不同蛋白质之间并不像语句具有较强的信息关系,因此通过门控来排除干扰信息是有必要的。

4.1.2 MSA Transition

MSA Transition模块类似于Transformer结构中的attention之后FC网络。

4.1.3 Outer product mean

该模块主要通过根据MSA特征来计算不同氨基酸之间的相关性特征,其会同通过template计算的初级的相关性特征进行融合,之后还会经过多层结构,得到更为深层次的氨基酸对之间的相关性特征表示。

4.1.4 三角乘法更新模块

如果说上面的Outer product模块建立了不同氨基酸之间的直接关系,通过三角乘法更新模块主要建立了两个氨基酸之间的间接关系,其通过了两个行列不同方向模块来建模两种不同的关系流向。

4.1.5 Pair行列门控attention模块

其同4.1.1 行列门控attention模块是类似的,是三维的attention模块实现

4.2 解码器

解码器中的主要结构为不动点注意力模块(IPA),对于下图所示的IPA模块,如果我们只看红色部分,其是一个典型的attention模块,IPA模块最大的特色是其整合了三部分的特征:

  • 目标蛋白质的氨基酸特征表示序列

  • 氨基酸对间的特征表示序列

  • 叠加空间位置变换后的氨基酸特征

其中第三部分叠加空间位置变换后的氨基酸特征(绿色部分)也是为什么被称为 IPA (Invariant point attention)的原因,因此理论上可以不需要该部分直接输出结果。

因为模型需要输出是同整体全局变换无关的氨基酸之间的相对关系,而如果直接生成时,整体全局变换可能会影响到输出结果。因此其考虑到两个基本几何变换原理。

  • 计算两个点之间的L2距离时,对点坐标做同样的全局变换后L2距离不变。

  • 在做多次空间变换时,全局变换和全局逆变换之间的作用可以抵消。

通过每个模块产出的空间位置变化,进行重复的加强叠加,最终可以消除全局变换的影响,有点类似于ResNet的效果

5、模型训练

5.1 损失函数

主要损失函数为FAPE损失(Frame aligned point erro),实际是衡量氨基酸的预测位置和真实位置之间MSE损失。

5.2 训练方法

  • 自蒸馏学习:先在PDB有label的数据集上训练一个模型,然后去预测一个更大的没有label的数据集,将其中预测比较置信的数据筛选出来,和之前有label的数据拼成一个更大的数据集,再重新训练一个模型,这样循环训练多次,达到充分利用数据的目的。在扩充没有label的数据集的时候,会有一些加噪声的细节,例如对预测的label做一些扰动。

  • 自监督学习:类Bert训练,在MSA序列特征随机屏蔽mask或变换一些氨基酸元素,然后像Bert一样去预测这些元素,在训练的时候加上这个任务会对整个序列建模的效果起到更好的作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/226593.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring-boot对rabbitMQ的操作

一、安装rabbitMQ 1、直接使用docker拉取镜像 docker pull rabbitmq:3.82、启动容器 docker run \-e RABBITMQ_DEFAULT_USERadmin \-e RABBITMQ_DEFAULT_PASS123456 \-v mq-plugins:/plugins \--name rabbit01 \--hostname rabbit01 --restartalways \-p 15672:15672 \-p 5672:…

量子力学:科技前沿的探索与挑战

量子力学:科技前沿的探索与挑战 一、量子力学的魅力与挑战 量子力学是研究微观粒子如电子、光子等行为的物理学分支。与经典力学不同,量子力学描述了一个充满不确定性和概率性的世界。在这个世界里,粒子可以同时处于多个状态,只有当我们对其进行测量时,它才会“选择”一个…

[含泪解决]OSError: [Errno 99] Cannot assign requested address__踩坑记录——app.py绑定IP失败

踩坑记录下。 是这个样子的,前几天帮别人部署Python的Flask项目到云服务器上,然后在 app.run(host"xxx.xxx.xxx.xxx",port8080) 这行代码中,xxx.xxx.xxx.xxx代表我的IP地址,port代表我的端口号。 然后不是要部署到服…

想成为网络安全工程师该如何学习?

一、网络安全应该怎么学? 1.计算机基础需要过关 这一步跟网安关系暂时不大,是进入it行业每个人都必须掌握的基础能力。 计算机网络计算机操作系统算法与数据架构数据库 Tips:不用非要钻研至非常精通,可以与学习其他课程同步进行。 2.渗透技…

数据库中生成列的对比

简介 生成列(虚拟列):在实际开发中,相对一个历史数据的表增加一个字段,增加下游报表,数据分析的可用性。常见的方法就是删表重建,或者使用ADD column 语法。如果是一个历史表,删…

电子学会C/C++编程等级考试2022年06月(三级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:制作蛋糕 小A擅长制作香蕉蛋糕和巧克力蛋糕。制作一个香蕉蛋糕需要2个单位的香蕉,250个单位的面粉,75个单位的糖,100个单位的黄油。制作一个巧克力蛋糕需要75个单位的可可粉,200个单位的面粉,150个单位的糖,150个单位的黄…

交叉编译

1. 交叉开发 交叉编译: 在电脑把程序编写 编译 调试好 再下载到嵌入式产品中运行 编译: gcc 之前编译环境和运行环境是一样的 交叉编译: 编译 把编译代码和运行分开 编译代码在虚拟机中 运行…

vue3(二)-基础入门之列表循环、数组变动检测、filter模糊查询、事件修饰符

一、列表循环 of 和 in 都是一样的效果 html代码&#xff1a; <div id"app"><ul><li v-for"item of datalist">{{ item }}</li></ul><ul><li v-for"item in dataobj">{{ item }}</li></u…

福州大学《嵌入式系统综合设计》 实验八:FFMPEG视频编码

一、实验目的 掌握使用算能平台进行视频编码的流程&#xff0c;包括开发主机环境与云平台的配置&#xff0c;视频编码程序的编写与理解&#xff0c;代码的编译、运行以及学习使用码流分析工具分析视频压缩码流等。 二、实验内容 搭建实验开发环境&#xff0c;编译并运行编码…

unity3d地图、地面跟着NPC跑

清除烘焙后&#xff0c;再 将地图、地面的设置为非静态。只设置NPC的寻路路面为静态&#xff0c;再烘焙

全面介绍SSO(单点登录)

全面介绍SSO&#xff08;单点登录&#xff09; SSO英文全称Single SignOn&#xff0c;单点登录。SSO是在多个应用系统中&#xff0c;用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比…

学习知识回顾随笔(远程连接MySQL|远程访问Django|HTTP协议|Web框架)

文章目录 如何远程连接MySQL数据库1.创建用户来运行&#xff0c;此用户从任何主机连接到mysql数据库2.使用IP地址来访问MySQL数据库 如何远程访问Django项目Web应用什么是Web应用应用程序的两种模式Web应用程序的优缺点 HTTP协议&#xff08;超文本传输协议&#xff09;简介HTT…