Cell Systems | 深度学习开启蛋白质设计新时代

今天为大家介绍的是来自Bruno Correia团队的一篇综述。深度学习领域的迅速进步对蛋白质设计产生了显著影响。最近,深度学习方法在蛋白质结构预测方面取得了重大突破,使我们能够得到数百万种蛋白质的高质量模型。结合用于生成建模和序列分析的新型架构,这些方法在过去几年里显著地革新了蛋白质设计领域,提高了识别新蛋白质序列和结构的准确性和能力。深度神经网络现在能够学习和提取蛋白质结构的基本特征,预测它们与其他生物分子的相互作用,并且有潜力创造用于治疗疾病的新有效药物。

04bc33c596cd13861462685bf776cc28.png

079a3533ef97dd5cff18a0fcb0ced977.png
图 1

这篇综述不仅旨在提供对深度学习驱动蛋白质设计当前能力的概述,而且还为关注应用的研究人员提供了深度学习中一些最具影响力的概念的更深入见解,帮助他们理解和评估这个快速发展领域中的新方法。综述的结构如下:首先描述支撑大多数最先进蛋白质设计工具的相关深度学习方法论构建块。这部分旨在提供深度学习方法的高层次概述。然后总结了这套工具集在蛋白质设计方面的最新应用,围绕着不同方式的序列-结构-功能关系(见图1)进行结构化。

深度学习

3ea01ada9b06e5347f11dd0cfa5ecfba.png
图 2

图在生物问题中有不同层次的应用,从代表分子结构到细胞中的大型互动网络。在蛋白质设计中,图通常将原子或氨基酸作为节点,并通过代表化学键或空间关系的边连接起来。将生物单位(如原子和共价键)分配给节点和边的这种灵活性,使得基于图的学习算法能够根据特定任务的需要定制局部性的概念。推动这一转变的主要动力之一是对图形机器学习和信息传递神经网络的迅速增长的兴趣,这导致了在许多蛋白质设计任务上取得了显著进展和优越性能(图2)。

f62258f9fcfd7c96e952cf6a0e1976ef.png
图 3

在过去几十年中,新的测序技术使蛋白质序列数据库的数量呈指数级增长,总序列数量每年翻倍,如图3A所示。随着时间的推移,测序变得更便宜,蛋白质序列数据库的增长速度甚至超过了计算能力。因此,利用序列信息研究蛋白质的结构和功能特性成为一种有前景的选择,特别是在为自然语言处理(NLP)任务设计的深度学习方法取得杰出成功后。大量可用的蛋白质序列使得通过训练蛋白质语言模型(PLMs)捕获蛋白质组中的统计模式成为可能,这些模型旨在学习氨基酸观察序列的概率分布。经过大量蛋白质序列的训练,蛋白质语言模型能够学习蛋白质序列和进化的规则,这些通常被称为“生命的语言”。与通常需要手动注释训练数据的监督学习方法不同,蛋白质语言模型通常以自我监督的方式训练,不需要标记的数据集,因此可以使用更大量的数据。自我监督的方法是在可以定义在未标记数据上的辅助目标上进行训练。在蛋白质序列的情况下,给定所有之前的残基,语言模型可以被训练来预测序列中的下一个氨基酸,或者,如图3B所示,预测从它们的上下文(周围残基)中掩盖的氨基酸。以这种任务不可知的方式训练,蛋白质语言模型可以进一步微调并应用于各种下游的监督和非监督任务,例如逆折叠和蛋白质结构预测,如图3C所示。

e91d352c0f91ad2a6d420b2e29593807.png
图 4

深度生成模型是一类神经网络,它们通过大型数据集来拟合概率分布。可以根据任务使用不同的神经网络主干(例如,卷积神经网络(CNNs)、图神经网络(GNNs)、Transformers)。根据生成方法的类型,数据分布可以显式或隐式地建模。然而,所有生成算法都设计成可以从学习到的分布中抽样新数据点。在蛋白质设计的背景下,生成模型具有很大的前景,因为它们不依赖于能量函数的准确性,因此可以被视为传统设计方法的补充方法。随着更大数据集的可用性,这一理念在基于结构的设计中越来越受欢迎。目前受关注的生成模型包括变分自编码器(VAEs)、生成对抗网络(GANs)和迅速在蛋白质设计社区中获得关注的扩散模型(图4)。

深度学习为蛋白质设计赋能

结构到序列

早期版本的Rosetta能够使用类似局部序列的结构片段组合和模拟退火方案准确预测小蛋白质域。随后,该框架迅速配备了蒙特卡罗优化过程,用于寻找天然折叠的稳定序列和新结构,从而将其转变为蛋白质设计工具。同样,现代蛋白质折叠神经网络的第一代已经导致了许多衍生的设计方案,AlphaFold2的前所未有的成功又引发了这种情况的另一波浪潮。一个流行的序列设计方法类别尝试通过在序列空间中的优化来逆转结构预测模型。这种想法在概念上类似于序列到结构的最大似然解,由折叠算法近似。一种常见的方法是从随机化的氨基酸序列开始,并使用置信度和结构损失对目标折叠进行优化。

e5e6ef20da87691ac01345eb53176884.png
图 5

最近的工作转向了更新、更准确的RoseTTAfold和AlphaFold2结构预测网络。除了这些专用的结构预测器,序列优化有时也使用带有折叠头的大型语言模型(例如,ESMFold和OmegaFold)或简单的将学到的注意力图线性投影到结构特征上进行。优化步骤通常以图5中描述的两种方式之一执行。在马尔可夫链蒙特卡罗(MCMC)工作线中,随机抽样新的候选序列,由结构预测模型处理,并根据选择的损失函数和标准接受(即,在下一次迭代中使用)。这个过程重复直到损失函数收敛。另一方面,基于梯度的方法利用了深度神经网络的可微性。对初始序列预测结构并计算结构损失。接下来,通过网络将误差梯度向输入反向传播,并使用梯度下降更新每个位置上的氨基酸身份的概率分布。从这个概率分布中提取最有可能的序列,并用于下一次迭代。

尽管在蛋白质设计方面取得了一些积极的成果,研究表明目前在体外蛋白质设计成功率较低,并且由于表面暴露的疏水残基导致溶解度不佳。这要求在设计过程后期使用其他序列设计工具进行精细调整,例如Rosetta或ProteinMPNN。特别是ProteinMPNN,是一种基于图的神经网络,用于序列设计,。该模型包括一个基于空间最近邻图计算节点和边特征的主干编码模块,以及一个解码模块,后者根据之前生成的氨基酸上下文更新节点特征,并将其转化为分类概率分布,用于抽样新的氨基酸类型。为了为给定的固定主链设计新序列,模型以自回归方式预测每个氨基酸的身份。由于蛋白质3D结构中的残基相互作用很多是长距离序列依赖关系,ProteinMPNN的高性能主要归因于对3D主链结构的图编码,这使得空间邻域聚集成为可能。研究者和其他迅速采用此工具的研究人员报告称,ProteinMPNN在多种蛋白质设计任务上取得了高成功率,包括单体蛋白、对称重复结构、纳米颗粒以及靶向蛋白结合物等。

功能到结构

76f9f3a3db70b75e1f2b09a71305554b.png
图 6

在许多蛋白质设计应用中,目标蛋白质的主链结构是未知的,需要从头开始生成。主要目标是优化选定结构来设计新蛋白质,使其能够执行特定任务或展现特定属性,如酶活性、与目标分子的结合亲和力、溶解性或稳定性。许多工作将这一任务视为分布学习问题。如图6所示,生成模型(VAE、GAN和扩散模型)的应用范围涵盖了蛋白质设计的各个子任务,如从头开始设计主链、小分子或蛋白质结合剂、对称寡聚体、特定表位的抗体和支持基序的骨架。

以结构为中心的蛋白质设计主要通过应用于成对距离图的VAE和GAN来解决,这些图是一种方便且关键的蛋白质表示,不受旋转/平移影响,适用于当时主流的CNN架构。为了获得结构模型,这些接必须使用诸如凸优化算法、专用神经网络模块或其他外部软件工具等多种工具转换为3D坐标。通常情况下,用单一神经网络建模整个蛋白质结构空间是困难的,因此许多方法转而使用专门针对具有有限结构多样性的特定蛋白质家族的模型。这些早期方法的一个共同问题是生成的图无效。由于神经网络的输出域通常不受足够限制,模型必须完全从数据中学习所有几何约束,这通常会导致不完美的结果,并最终阻碍3D模型的重建。虽然可以通过直接生成3D坐标但基于2D对表示计算训练损失的混合模型来解决这个问题,但几乎所有最新的结构生成模型都专门在3D中操作。伴随这一趋势,研究人员也开始倾向于使用扩散模型框架而非VAE和GAN。据作者表示,目前没有根本原因解释为什么VAE和GAN主要与距离和角度图一起使用,而扩散模型通常直接在3D中生成结构。作者推测这种现象是计算生物学社区中几种趋势同时发生的结果。VAE和GAN是先前成对距离和角度图成为蛋白质表示首选时的主要概率框架,而扩散模型在相关研究开始转向显式3D表示和几何深度学习的同时其效果超越了其他生成模型。

尽管扩散模型已成功应用于生成小分子,但将这些技术应用于蛋白质设计更具挑战性,因为蛋白质结构中的原子数量远多于小分子。迄今为止,基于扩散的蛋白质设计方法通过仅设计蛋白质的部分或使用更粗粒度的蛋白质表示来克服这一问题。最广泛采用的选择是Ca原子及其对应的残基类型作为基本构建块。在大多数情况下,这种表示还附加有基于N-Ca-C主链原子的全局残基方向概念,这些原子形成一个局部参考框架。在这些模型中,位置、方向和氨基酸类型都配备了适当的扩散过程和损失函数。

功能到序列

不同于以结构为中心的蛋白质设计,功能到序列的设计以期望的功能或活性为起点,目标是确定能够执行该功能的氨基酸序列,而不需要显式地建模蛋白质的折叠状态。在这个领域中,生成型的VAE和GAN模型已经找到了许多应用。例如,Riesselman等人使用VAE对同源序列集进行拟合,并通过近似野生型与突变序列概率的对数比来预测突变的效果。他们的模型捕捉到蛋白质序列之间的非平凡关系,并可以用来预测与实验突变扫描相关的有益和有害突变。Gupta和Zou利用GAN模型生成了最多包含50个氨基酸的小蛋白质的合成序列,他们的模型能够优化几乎任何期望的属性,只要存在可靠的评分预测模型。蛋白质序列建模的最新进展是大型蛋白质语言模型。一系列工作表明,蛋白质语言模型是有效探索蛋白质序列空间的良好候选者。例如,基于transformer的语言模型的注意力图可以捕捉蛋白质的折叠结构,目标蛋白结合位点,并且能够从无监督的语言建模目标学习残基接触,而无需进一步的监督微调。这些发现最近使研究人员能够利用语言模型生成满足特定功能或结构要求的新蛋白质序列。

参考资料

Khakzad, H., Igashov, I., Schneuing, A., Goverde, C., Bronstein, M., & Correia, B. (2023). A new age in protein design empowered by deep learning. Cell Systems, 14(11), 925-939.

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

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

相关文章

相机倾斜棋盘格标定全记录 vs200+opencv安装

论文参考是这个 Geiger A, Moosmann F, Car , et al. Automatic camera and range sensor calibration using a single shot[C]//Robotics and Automation (ICRA), 2012 IEEE International Conference on. IEEE, 2012: 3936-3943. 代码是这个github 花了一上午配好了c环境。。…

Flink系列之:SQL提示

Flink系列之:SQL提示 一、动态表选项二、语法三、例子四、查询提示五、句法六、加入提示七、播送八、随机散列九、随机合并十、嵌套循环十一、LOOKUP十二、进一步说明十三、故障排除十四、连接提示中的冲突案例十五、什么是查询块 SQL 提示可以与 SQL 语句一起使用来…

Sci. Rep. | 一个对任意分子体系实现准确且高效几何深度学习的通用框架

这篇工作是来自纽约城市大学/康奈尔医学院谢磊团队的一篇论文。作者提出了一个通用框架,PAMNet,可以对任意分子体系实现准确且高效的几何深度学习。在小分子性质、RNA三维结构以及蛋白质-配体结合亲和力的预测任务上,PAMNet在准确性和效率方面…

【ESXi】ESXi 版本回退

目录 8. ESXi 版本回退8.1 版本回退条件与注意事项8.2 版本回退步骤8.3 示例演示(1)准备工作(2)进入DCUI界面(3)按 F11 重启系统引导(4)进入引导选项(5)进入 …

弧形导轨的精度等级

为符合工控自动化生产制造必须,弧形导轨在运输武器装备领域应时而生,并已在电子生产制造、手机上、半导体材料、动力锂电池等领域获得广泛运用。其中,弧形导轨的精度等级是评估其运动精度的重要指标,通常包括制造精度和运行精度两…

Flink系列之:大状态与 Checkpoint 调优

Flink系列之:大状态与 Checkpoint 调优 一、概述二、监控状态和 Checkpoints三、Checkpoint 调优四、RocksDB 调优五、增量 Checkpoint六、RocksDB 或 JVM 堆中的计时器七、RocksDB 内存调优八、容量规划九、压缩十、Task 本地恢复十一、主要(分布式存储…

spring-kakfa依赖管理之org/springframework/kafka/listener/CommonErrorHandler错误

问题: 整个项目使用spring-boot2.6.8版本,使用gradle构建,在common模块指定了implementation org.springframework.kafka:spring-kafka:2.6.8’这个工程也都能运行(这正常发送kafka消息和接收消息),但是执行…

java --- 集合进阶

目录 一、单列集合顶层接口 Collection 1.1 基本方法 1.2 Collection 的遍历方式 二、list集合 1.2 ArrayList Vector 底层结构 1.3 LinkedList ArrayList 和 LinkedList 比较 三、set接口 3.1、Set 接口和常用方法 3.2 HashSet HashSet 底层机制(HashMap…

Python【Matplotlib】图例可拖动改变位置

代码: import matplotlib.pyplot as plt from matplotlib.widgets import Button# 创建一个示例图形 fig, ax plt.subplots() line, ax.plot([1, 2, 3], labelLine 1)# 添加图例 legend ax.legend(locupper right, draggableTrue)# 添加一个按钮,用于…

mybatis动态SQL-sql片段

1、建库建表 create database mybatis-example; use mybatis-example; create table emp (empNo varchar(40),empName varchar(100),sal int,deptno varchar(10) ); insert into emp values(e001,张三,8000,d001); insert into emp values(e002,李四,9000,d001); insert into…

简单电子报警器设计与制作方法

简单电子报警器设计与制作方法 注: 1、按上图连接好。 2、改变Rx的大小即使基极电路的电流发生改变,使频率发生改变。 3、增大电容,有利于低音向第一个三极管的基极反馈,因此最终 输出频率变低。 4、R2处接光敏电阻…

数据结构和算法-AOV与AOE网络和(逆)拓扑排序与关键路径

文章目录 AOV网络拓扑排序代码实现时间复杂度 逆拓扑排序实现DFS算法实现逆拓扑排序小结 AOE网络关键路径求关键路径求事件最早发生时间求事件最迟发生时间求活动最早发生时间求活动最迟发生时间求活动余量 关键活动 关键路径的特性小结 AOV网络 必须是DAG图(有向无…

本科论文降重修改技巧 神码ai

大家好,今天来聊聊本科论文降重修改技巧,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 本科论文降重修改技巧 对于本科论文的写作,降重修改是一个…

飞天使-docker知识点6-容器dockerfile各项名词解释

文章目录 docker的小技巧dockerfile容器为什么会出现启动了不暂停查看docker 网桥相关信息 docker 数据卷 docker的小技巧 [rootlight-test playbook-vars[]# docker inspect -f "{{.NetworkSettings.IPAddress}}" d3a9ae03ae5f 172.17.0.4docker d3a9ae03ae5f:/etc…

【idea】解决sprintboot项目创建遇到的问题

目录 一、报错Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found 二、报错java: 错误: 无效的源发行版:17 三、java: 无法访问org.springframework.web.bind.annotation.CrossOrigin 四、整合mybatis的时候,报java.lang.Ill…

电子元器件介绍——二极管(四)

电子元器件介绍 文章目录 电子元器件介绍前言一、二极管的基础知识二、二极管的分类三、二极管的应用总结 前言 这一节我们看一下二极管。 一、二极管的基础知识 PN结:是指一块半导体单晶,其中一部分是P型区,其余部分是N型区。 在电场作用…

听GPT 讲Rust源代码--src/tools(14)

File: rust/src/tools/rust-analyzer/crates/cfg/src/lib.rs 在Rust源代码中,rust/src/tools/rust-analyzer/crates/cfg/src/lib.rs这个文件是Rust语言分析器(Rust Analyzer)的一部分,用于处理和管理条件编译指令(Cond…

打破涨粉瓶颈!如何通过视频号找热门话题?

如果你正在运营视频号,相信你一定会遇到这样的瓶颈,视频号播放不理想,牟足劲想涨几个粉丝,结果还掉粉了?今天我们就聊聊如何通过视频号找热门话题! 当你的播放和粉丝增长停滞 数据不好的的时候需要更新迭代 同时还需…

DeciLM-7B:突破极限,高效率、高精准度的70亿参数AI模型

引言 在人工智能领域,语言模型的发展速度令人瞩目。Deci团队最近推出了一款具有革命性意义的语言模型——DeciLM-7B。这款模型在速度和精确度上都实现了显著的突破,以其70亿参数的规模,在语言模型的竞争中脱颖而出。 Huggingface模型下载&am…

torch中张量与数据类型的介绍

PyTorch张量的定义介绍 PyTorch最基本的操作对象是张量,它表示一个多维数组,类似NumPy的数组,但是前者可以在GPU上加速计算 初始化张量 ttorch.tensor([1,2]) # 创建一个张量 print(t) t.dtype #打印t的数据类型为torch.int…