当前位置: 首页 > news >正文

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一样去预测这些元素,在训练的时候加上这个任务会对整个序列建模的效果起到更好的作用。

相关文章:

AlphaFold的原理及解读

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

【ChatGLM3-6B】Docker下快速部署

【ChatGLM2-6B】小白入门及Docker下部署 前提下载安装包网盘地址 开始安装加载镜像启动镜像进入容器启动模型交互页面访问页面地址 前提 安装好了docker安装好了NVIDIA显卡16G 下载安装包 网盘地址 ​ 这里因为网盘上传文件有大小限制,所以使用了分卷压缩的方式…...

两部手机数据传输后备忘录不见了怎么回事

想必很多人都遇到过,当两部手机进行备忘录数据传输后,突然发现备忘录不见了,这让人不禁着急上火,我也曾经遇到过这种事情导致很多重要的内容都丢失了。 一般出现这种情况可能是因为,两部手机使用的是不同的云服务&…...

【Unity入门】LayerMask小结

LayerMask常用的几种方法 LayerMask.GetMask 根据 层名称 获取其层遮罩值 遮罩值 2^层索引 假设 UserLayerA 和 UserLayerB 是第十层和第十一层。 这两个层会具有 User Layer 值 10 和 11。若要获取其层遮罩值, 可以将其名称传入 GetMask。参数可以是 其名称的列…...

mysql按年、季度、月,统计

以下是按年、按季度和按月统计SQL查询语句: 按年统计: SELECTds.checker,YEAR(ds.create_time) AS settleYear,SUM(ds.quantity) AS quantity,SUM(ds.approval_price) AS approvalPrice FROMdata_settle ds WHEREds.delete_flag 0AND ds.approval_sta…...

Python的换行和转义:深入理解代码排版与字符串处理

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python的换行和转义:深入理解代码排版与字符串处理,全文2700字,阅读大约8分钟。 在Python编程中,正确使用换行和转义字符是保…...

dart多线程双向通信的案例----【小学4年级课程】

下面是运行后的打印顺序 I/flutter (20170): 上班 I/flutter (20170): 这里是校长室:main I/flutter (20170): 这里是饭堂:fantang1 I/flutter (20170): 这里是收发室--检查小孩发回去给他妈妈的信息是:我是秘书的儿子,我来到在校长室了。校长今晚想吃羊…...

每日一练:简易计算器

1. 题目 设计实现一个简易的计算器,可以进行加减乘除的计算。可以考虑通过GUI和命令行输入等方式实现。 2. 设计思路 创建一个简单的用户界面,可以使用 Python 的 Tkinter模块。在界面上放置按钮,每个按钮代表一个数字、运算符或其他功能。…...

Jmeter和Testlink自动化测试框架研究与实施

摘 要 目前基于Jmeter的接口自动化测试框架,大多只实现脚本维护和自动调度,无法与Testlink进行互通,实现测试方案与自动化实施流程连接,本文基于Testlink、Jmeter、Jenkins实现:通过Testlink统一维护接口自动化测试用…...

MethodArgumentNotValidException 与 ConstraintViolationException

MethodArgumentNotValidException 和ConstraintViolationException 都是用于处理参数校验异常的异常类,但它们在不同的上下文中使用。 1. MethodArgumentNotValidException: - MethodArgumentNotValidException 是在 Spring MVC 或 Spring Boot 中处…...

【数学】旋转矩阵

参考链接 OpenGL from OpenGL.GL import * from OpenGL.GLUT import * from math import * import numpy as np def draw_axes():glClear(GL_COLOR_BUFFER_BIT)# 绘制坐标轴glColor3f(1.0, 1.0, 1.0) # 设置坐标轴颜色为白色glBegin(GL_LINES)glVertex2f(-1.0, 0.0) # x 轴g…...

Python与设计模式--中介者模式

23种计模式之 前言 (5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、(11)策略模式、责任链模式、命令模式、中介者模…...

后台管理系统开源项目

最近项目没有什么事做,就自己整理,修改了一些vue2,react的后台管理系统项目,方便以后有需要可以直接提取,当然也方便了大家 vue2技术栈 lyl-vueProjectAdmin: vue2后台管理系统 react技术栈 lyl-reactAdminProject:…...

电子印章管理系统:是什么、3个平台推荐

说到印章,相信看过近现代电视剧的人都见过,一般在订立合约时最常用到,双方在合约上加盖印鉴,即代表着合约的成立。 我小时候还见过我父亲的印章,只是随着时代的发展,印章因为不易携带,容易被盗…...

现货黄金区间交易的两个要点

在现货黄金市场中,我们常碰到横盘区间行情。有区间,就终究会出现突破,因为金价不可能缺乏方向而一直在区间内运行。那既然要突破,我们又应当如何应对和交易呢?下面我们就来讨论一下。 切忌在突破发生时马上跟随突破方向…...

安卓底部导航栏BottomNavigationView

目录 1. BottomNavigationView (1) 准备BottomNavigationView使用的菜单资源文件 (2) 准备颜色选择器 (3) BottomNavigationView控件设置 (4) 在Java代码中设置OnItemSelectedListener监听器 (5) 与Fragment配合 2. BottomTabBar 实现安卓底部导航栏,google为…...

rust每日一库 rand 生成随机数

文章目录 生成随机值生成随机数生成范围内随机数生成自定义类型随机值从一组字母数字字符创建随机密码从一组用户定义字符创建随机密码 总结 生成随机值 rust中官方并没有像以他语言一样,rust并没有官方并没有提供生成随机数的工具,所以我们要借助rand包…...

Unity SRP 管线【第三讲:URP 光照】

3.2.3 以前属于Shader部分,Shader部分不进行讲解。 这里只涉及Unity内部管线的设置问题。 文章目录 3.2.3 向GPU发送灯光数据设置光源数据设置主光源设置额外点光源 Shader中的数据 3.2.3 向GPU发送灯光数据 在UniversalRenderPipeline.cs > RenderSingleCamera…...

怎么更新BI报表数据?问我就对了

BI大数据分析工具上有大量的BI报表模板,这些模板都是一个个完整的BI报表,只需将数据源更换,立即就能用来分析我们自己的数据。那,BI报表的数据怎么更新?接下来就来说说这事。 目的:更新BI报表数据 工具&a…...

SpringBoot 入门学习

开发环境配置 JDK 1.8、Maven 3.8.8、 IDEA CE 2023.2 框架介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

爬虫基础学习day2

# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

微服务通信安全:深入解析mTLS的原理与实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言&#xff1a;微服务时代的通信安全挑战 随着云原生和微服务架构的普及&#xff0c;服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...