目录
背景
方法
效果
总结
首页 科技周边 人工智能 全球首创 :分子之心开源新AI算法,攻克蛋白质侧链预测与序列设计难题

全球首创 :分子之心开源新AI算法,攻克蛋白质侧链预测与序列设计难题

Jun 05, 2023 pm 06:10 PM
ai 算法

蛋白质结构和功能的形成,很大程度上取决于侧链原子间的相互作用,因此,精准的蛋白质侧链预测(PSCP)是解决蛋白质结构预测和蛋白质设计难题的关键一环。但此前蛋白质结构预测大多聚焦于主链结构,侧链结构预测始终是一个未被完全解决的难题。

近日,分子之心许锦波团队推出一种新的 PSCP 深度架构 AttnPacker,在速度、内存效率和整体精度方面取得大幅提升,是目前已知的最优侧链结构预测算法,也是全球首创的可同时进行蛋白质侧链预测和序列设计的 AI 算法。

论文发表在《美国科学院院刊》(PNAS)上,其预训练模型、源代码和推理脚本都已在 Github 上开源。

全球首创 :分子之心开源新AI算法,攻克蛋白质侧链预测与序列设计难题

  • 论文链接:https://www.pnas.org/doi/10.1073/pnas.2216438120#supplementary-materials
  • 开源链接:https://github.com/MattMcPartlon/AttnPacker

背景

蛋白质由数个氨基酸折叠而成,其结构分为主链和侧链。侧链的差异性对蛋白质的结构与功能有巨大影响,尤其是生物活性。基于对侧链结构的清晰认知,科学家们能够更精准地测定蛋白质三维结构,解析蛋白质 - 蛋白质之间的相互作用,并进行理性蛋白设计。应用到药物设计领域,科学家们便能更快、更准确地找到适合药物与受体的结合点位,甚至根据需要优化或设计结合点位;在酶优化领域,科学家们可以通过对序列的优化改造,让多个侧链参与催化反应,实现更高效、特异性更高的催化效果。

当前大多数蛋白质结构预测算法主要针对主链的结构解析,但蛋白质侧链结构预测还是一个未被完全突破的难题。无论是 AlphaFold2 等热门蛋白质结构预测算法,还是 DLPacker、RosettaPacker 等专注侧链结构预测的算法,准确度或速度都不尽如人意。这也为蛋白质设计带来了限制。

传统方法,如 RosettaPacker,主要使用能量优化方法,先对侧链原子的分布进行分组,再针对某个特定氨基酸来搜索侧链的分组,寻找能量最小的组合。这些方法主要区别于研究者对旋转异构体文库、能量函数和能量最小化程序的选择,准确性受限于对搜索启发式方法和离散抽样程序的使用。业界也有基于深度学习的侧链预测方法,如 DLPacker,它将 PSCP 表述为图像到图像的转换问题,并采用了 U-net 模型结构。但预测精度和速度依然不够理想。

方法

AttnPacker 是一种端到端的预测蛋白质侧链坐标的深度学习方法。它联合模拟了侧链相互作用,直接预测的侧链结构在物理上更可行,具有更少的原子碰撞和更理想的键长和角度。

具体而言,AttnPacker 引入了一种利用 PSCP 的几何和关系方面的深度图转换器架构。受 AlphaFold2 启发,分子之心提出了位置感知三角形更新,以使用基于图形的框架来计算三角形注意力和乘法更新,从而优化成对特征。通过这种方法,AttnPacker 的内存显著减少并拥有更高容量的模型。此外,分子之心探索了几种 SE (3) 等变注意力机制,并提出了一种用于从 3D 点学习的等变变换器架构。

全球首创 :分子之心开源新AI算法,攻克蛋白质侧链预测与序列设计难题

AttnPacker 运行流程。以蛋白质主链坐标和序列作为输入,并基于坐标信息导出空间特征图和等变基。特征图由不变量 graph-transformer 模块处理,然后传递给一个等变的 TFN-Transformer 输出预测的侧链坐标、每个残基的置信度分数和可选的设计序列。预测坐标经过后处理,以去除所有空间冲突,并确保理想化的几何结构。

效果

在预测效果上,AttnPacker 对天然和非天然主链结构都显示出准确性和效率上的改进。同时保证了物理上的可行性,与理想键长和角度的偏差可以忽略不计,且产生了最小的原子空间位阻。

分子之心在 CASP13 和 CASP14 天然和非天然蛋白质主链数据集上对 AttnPacker 与目前最先进的方法 ——SCWRL4、FASPR、RosettaPacker 和 DLPacker 进行对比测试。结果显示,AttnPacker 在 CASP13 和 CASP14 天然主链上显著优于传统蛋白质侧链预测方法,平均重建 RMSD 比每个测试集上的次优方法低 18% 以上。AttnPacker 还超越了深度学习方法 DLPacker,平均 RMSD 降低了 11% 以上,同时也显著提高了侧链二面角精度。除了准确性,AttnPacker 的原子碰撞明显少于其他方法。

全球首创 :分子之心开源新AI算法,攻克蛋白质侧链预测与序列设计难题

给出天然主链结构时,各算法在 CASP13 和 CASP14 目标蛋白上的侧链结构预测结果。星号表示平均冲突值低于天然结构 ——CASP13 为 56.0、5.9 和 0.4,CASP14 为 80.4、7.9 和 2.5。

在 CASP13 和 CASP14 非天然主链上,AttnPacker 也明显优于其他方法,原子碰撞也明显少于其他方法。

全球首创 :分子之心开源新AI算法,攻克蛋白质侧链预测与序列设计难题

给出非天然主链结构时,各算法在 CASP13 和 CASP14 目标蛋白上的侧链结构预测结果。星号表示平均冲突值低于相应天然结构 ——CASP13 的 34.6、2.2、0.5 和 CASP14 的 40.0、2.7、0.7。

创新性地摈弃了离散的旋转异构体库以及计算上昂贵的构象搜索和采样步骤,直接结合主链 3D 几何结构来并行计算所有侧链坐标。AttnPacker 与基于深度学习的方法 DLPacker、基于传统计算方法的 RosettaPacker 相比,计算效率显著提高,减少了 100 倍以上的推理时间。

不同 PSCP 方法的时间比较。重建所有 83 个 CASP13 目标蛋白的侧链原子的相对时间。

AttnPacker 在蛋白质设计上的表现同样优秀。分子之心训练了一个 AttnPacker 变体用以协同设计,该变体可实现媲美当下最先进的方法的天然序列恢复率,同时还可生产高度精确的组装。Rosetta 模拟验证显示,AttnPacker 设计的结构通常会产生亚原生(更低的)Rosetta 能量。

全球首创 :分子之心开源新AI算法,攻克蛋白质侧链预测与序列设计难题

用 ESMFold scTM 和 plDDT 指标对比天然蛋白质序列和 AttnPacker 生成的序列,以评估 AttnPacker 的生成质量,结果表现出强相关性。

除了效果和效率惊人之外,AttnPaker 还有一个非常实用的价值 —— 它非常易用。AttnPaker 只需要一个蛋白质的结构文件即可运行。相比之下,OPUS-Rota4 (28) 需要来自 DLPacker 的原子环境的体素表示、来自 trRosetta100 的逻辑、二级结构和来自 OPUS-CM 输出的约束文件。另外,由于 AttnPacker 直接预测侧链坐标,输出是完全可微分的,这有利于下游预测任务,例如优化或蛋白质 - 蛋白质相互作用。“预测效果好、效率高、易用,这些优势有利于 AttnPacker 在研究和工业领域的广泛使用。” 许锦波教授表示。

总结

1、AttnPacker 是一个用于直接预测序列和侧链坐标的 SE(3)等变模型,可以用于蛋白质侧链结构预测,也可用于蛋白质序列设计,是一项开创性的工作。

2、AttnPacker 的准确性优于其他方法,且效率大幅提升,并具备极高的易用性。

以上是全球首创 :分子之心开源新AI算法,攻克蛋白质侧链预测与序列设计难题的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1249
24
C  中的chrono库如何使用? C 中的chrono库如何使用? Apr 28, 2025 pm 10:18 PM

使用C 中的chrono库可以让你更加精确地控制时间和时间间隔,让我们来探讨一下这个库的魅力所在吧。C 的chrono库是标准库的一部分,它提供了一种现代化的方式来处理时间和时间间隔。对于那些曾经饱受time.h和ctime折磨的程序员来说,chrono无疑是一个福音。它不仅提高了代码的可读性和可维护性,还提供了更高的精度和灵活性。让我们从基础开始,chrono库主要包括以下几个关键组件:std::chrono::system_clock:表示系统时钟,用于获取当前时间。std::chron

如何理解C  中的DMA操作? 如何理解C 中的DMA操作? Apr 28, 2025 pm 10:09 PM

DMA在C 中是指DirectMemoryAccess,直接内存访问技术,允许硬件设备直接与内存进行数据传输,不需要CPU干预。1)DMA操作高度依赖于硬件设备和驱动程序,实现方式因系统而异。2)直接访问内存可能带来安全风险,需确保代码的正确性和安全性。3)DMA可提高性能,但使用不当可能导致系统性能下降。通过实践和学习,可以掌握DMA的使用技巧,在高速数据传输和实时信号处理等场景中发挥其最大效能。

怎样在C  中处理高DPI显示? 怎样在C 中处理高DPI显示? Apr 28, 2025 pm 09:57 PM

在C 中处理高DPI显示可以通过以下步骤实现:1)理解DPI和缩放,使用操作系统API获取DPI信息并调整图形输出;2)处理跨平台兼容性,使用如SDL或Qt的跨平台图形库;3)进行性能优化,通过缓存、硬件加速和动态调整细节级别来提升性能;4)解决常见问题,如模糊文本和界面元素过小,通过正确应用DPI缩放来解决。

C  中的实时操作系统编程是什么? C 中的实时操作系统编程是什么? Apr 28, 2025 pm 10:15 PM

C 在实时操作系统(RTOS)编程中表现出色,提供了高效的执行效率和精确的时间管理。1)C 通过直接操作硬件资源和高效的内存管理满足RTOS的需求。2)利用面向对象特性,C 可以设计灵活的任务调度系统。3)C 支持高效的中断处理,但需避免动态内存分配和异常处理以保证实时性。4)模板编程和内联函数有助于性能优化。5)实际应用中,C 可用于实现高效的日志系统。

怎样在C  中测量线程性能? 怎样在C 中测量线程性能? Apr 28, 2025 pm 10:21 PM

在C 中测量线程性能可以使用标准库中的计时工具、性能分析工具和自定义计时器。1.使用库测量执行时间。2.使用gprof进行性能分析,步骤包括编译时添加-pg选项、运行程序生成gmon.out文件、生成性能报告。3.使用Valgrind的Callgrind模块进行更详细的分析,步骤包括运行程序生成callgrind.out文件、使用kcachegrind查看结果。4.自定义计时器可灵活测量特定代码段的执行时间。这些方法帮助全面了解线程性能,并优化代码。

量化交易所排行榜2025 数字货币量化交易APP前十名推荐 量化交易所排行榜2025 数字货币量化交易APP前十名推荐 Apr 30, 2025 pm 07:24 PM

交易所内置量化工具包括:1. Binance(币安):提供Binance Futures量化模块,低手续费,支持AI辅助交易。2. OKX(欧易):支持多账户管理和智能订单路由,提供机构级风控。独立量化策略平台有:3. 3Commas:拖拽式策略生成器,适用于多平台对冲套利。4. Quadency:专业级算法策略库,支持自定义风险阈值。5. Pionex:内置16 预设策略,低交易手续费。垂直领域工具包括:6. Cryptohopper:云端量化平台,支持150 技术指标。7. Bitsgap:

给MySQL表添加和删除字段的操作步骤 给MySQL表添加和删除字段的操作步骤 Apr 29, 2025 pm 04:15 PM

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,删除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段时,需指定位置以优化查询性能和数据结构;删除字段前需确认操作不可逆;使用在线DDL、备份数据、测试环境和低负载时间段修改表结构是性能优化和最佳实践。

C  中的字符串流如何使用? C 中的字符串流如何使用? Apr 28, 2025 pm 09:12 PM

C 中使用字符串流的主要步骤和注意事项如下:1.创建输出字符串流并转换数据,如将整数转换为字符串。2.应用于复杂数据结构的序列化,如将vector转换为字符串。3.注意性能问题,避免在处理大量数据时频繁使用字符串流,可考虑使用std::string的append方法。4.注意内存管理,避免频繁创建和销毁字符串流对象,可以重用或使用std::stringstream。

See all articles