AI赋能蛋白质研究:SaprotHub让蛋白质AI模型训练和调用不再有门槛!

图片

编辑 | scienceai

近年来,AI 技术在蛋白质研究领域发挥了越来越重要的作用。从 AlphaFold2 在结构预测任务上的脱颖而出,到各类蛋白质语言模型(PLMs)在功能预测方面的重大进展,生物研究者们可以利用各式各样的 AI 模型来辅助他们的研究。

然而,随着模型变得越来越复杂,如何训练和调用这些 AI 模型对于缺乏机器学习专业知识的研究者来说是一件非常具有挑战的任务,也因此限制了 AI 技术在实际研究中的应用。

为了解决这个限制,来自西湖大学的研究人员推出了 SaprotHub,允许生物学家以交互的方式训练和调用 AI 模型,同时提出了社区共建的概念,鼓励用户分享训练好的模型权重,促进领域的生态发展。

该研究以「SaprotHub: Making Protein Modeling Accessible to All Biologists」为题,于 2024 年 12 月 13 日更新在 bioRxiv 预印本平台

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

SaprotHub 平台

SaprotHub 包括三个核心部分:Saprot 模型、ColabSaprot 交互界面以及 HuggingFace 模型仓库。用户通过 ColabSaprot 来训练和使用 Saprot 模型,同时可以直接加载 HuggingFace 仓库中的模型来进行预测。

关于 Saprot 的详细介绍,请参考作者的文章分享《基于结构感知词表的蛋白质语言模型 SaProt》。

文章链接:https://zhuanlan.zhihu.com/p/664754366

ColabSaprot

ColabSaprot 以交互界面的形式让用户可以不需要编写任何代码就能够训练和调用模型,包括一键配置环境、自动处理数据、模型训练监控、最佳权重保存等。

ColabSaprot 目前提供三大功能:模型训练、模型调用以及模型分享。详细功能介绍如下:

模型训练

ColabSaprot 将训练模型所需的繁杂步骤全部进行了封装。用户只需要在交互界面中按照需求设定好目标训练任务,随后上传一个指定格式的数据集文件即可开始训练。

考虑到使用者可能对相关的机器学习知识并不熟悉(例如 learning rate、batch size 等),ColabSaprot 在每一个选择栏都有相关的提示说明,确保使用者能够轻松地使用 ColabSaprot 完成自己的模型训练。

图片

图示:ColabSaprot 模型训练界面。(来源:ColabSaprot 平台截图)

模型调用

ColabSaprot 提供了多种预测任务供用户调用,包括蛋白质属性预测(利用自己训练好的模型或者 SaprotHub 模型仓库的模型进行预测)、突变效应预测(预测单点突变或组合突变对蛋白质 fitness 的影响,例如酶活性等)、蛋白质序列设计(根据上传的蛋白质骨架反向设计序列)以及蛋白质表征获取(获取模型生成的蛋白质 embedding 进行后续分析)。

用户可以自由选择想要使用的功能,跟随指引即可轻松使用。

图片

图示:ColabSaprot 支持多种预测任务。(来源:ColabSaprot 平台截图)

模型分享

为了鼓励用户分享自己训练的模型,共同促进领域内的发展,ColabSaprot 集成了 HuggingFace 的模型上传功能,让用户可以无缝将自己训练完的模型上传到模型仓库中供他人使用,在促进社区发展的同时也能提高自身工作的影响力。

图片

图示:ColabSaprot 模型分享界面。(来源:ColabSaprot 平台截图)

HuggingFace 仓库

作为 SaprotHub 的另一个核心模块,HuggingFace 模型仓库存储了多种已经训练好的模型,可分别用于不同的下游任务预测。

为了方便模型共享和社区协作,ColabSaprot 在训练时采用了 LoRA 的训练机制,通过冻结 backbone 只训练低秩矩阵,大大降低了模型存储和传输的开销。

图片

图示:SaprotHub 模型仓库。(来源:论文)

除此之外,为了方便用户在数量众多的模型中快速找到自己感兴趣的模型,作者开发了基于 HuggingFace 的搜索引擎,允许用户通过输入关键词来定位相关的模型以及数据集。

搜索引擎链接:https://huggingface.co/spaces/SaProtHub/SaprotHub-search

图片
图示:SaprotHub 搜索引擎。(来源:ColabSaprot 平台截图)

实验分析

ColabSaprot 用户测试

为了验证 ColabSaprot 的可用性,作者招募了 12 位没有机器学习相关背景的生物研究者进行了使用测试,结果如下:

图片

图示:supervised fine-tuning 和zero-shot 预测的结果。(来源:论文)

图中蓝色字体代表监督微调任务,橙色字体代表 zero-shot 突变预测任务。

可以看到,利用 ColabSaprot,即使是没有机器学习背景的用户也能够训练出和 AI 专业的研究者 comparable 的模型,并且用户还能够在 SaprotHub 已有的模型的基础上进一步训练模型,从而缓解了数据不足导致模型性能较弱的情况(见 eYFP fitness prediction)。

而对于突变预测任务,用户可以轻松地获得与编写代码跑出来一致的结果,仅仅需要通过鼠标点击的方式。

湿实验验证

为了验证 ColabSaprot 在实际研究中的可用性,作者对 ColabSaprot 的预测结果进行了多种湿实验验证,包括:

木聚糖酶突变优化(zero-shot)

在预测的 top 20 个突变中,有 13 个突变都使酶活性增强,其中 R59S 和 F212N 分别是原始酶活性的 2.55 倍和 1.88 倍。

TDG 突变优化(zero-shot)

在预测的 top 20 个突变中,有 17 个突变都使编辑效率增强,其中 L74E、H11K 和 L74Q 突变体的编辑效率接近原始蛋白的 2 倍。

GFP 突变优化(supervised fine-tuning)

在通过 GFP 突变数据微调过后,利用模型预测的 top 9 个双点突变中,有 7 个都提高了荧光强度,其中一个突变体达到了野生型 8 倍以上的荧光强度。

结论

研究人员开源的 ColabSaprot 交互式蛋白质语言模型平台,旨在降低 AI 技术的使用门槛,使生物学研究者无需复杂的机器学习背景或编程能力,即可轻松训练和调用 AI 模型。

这一创新举措不仅为研究者提供了强大的工具支持,还显著提升了 AI 技术在蛋白质科学研究中的可及性和实用性。通过 ColabSaprot,更多研究者能够便捷地利用先进 AI 技术,加速研究进程,推动蛋白质科学迈入 AI 赋能的新时代。

论文链接:https://www.biorxiv.org/content/10.1101/2024.05.24.595648v5

使用平台:https://colab.research.google.com/github/westlake-repl/SaprotHub/blob/main/colab/SaprotHub_v2.ipynb

代码仓库:https://colab.research.google.com/github/westlake-repl/SaprotHub/blob/main/colab/SaprotHub_v2.ipynb

以上就是AI赋能蛋白质研究:SaprotHub让蛋白质AI模型训练和调用不再有门槛!的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/191835.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月1日 13:27:44
下一篇 2025年11月1日 13:31:14

相关推荐

  • PHP动态日期范围SQL查询的最佳实践教程

    本教程旨在解决PHP中动态生成并执行带有可变日期范围的SQL查询问题。我们将探讨如何避免使用全局变量,通过结构化数据管理日期区间,并利用PDO预处理语句实现安全、高效且可维护的查询逻辑,从而优化代码结构并提升应用性能。 引言:动态SQL查询与日期范围的挑战 在开发过程中,我们经常会遇到需要重复执行结…

    2025年12月10日
    000
  • 如何在PHP中从数组中随机取值?array_rand()函数的应用场景

    使用array_rand()可从数组中随机获取一个或多个键名,再通过键名取得对应值;该函数适用于索引和关联数组,返回随机键名,支持单个或多个元素选取,但需注意处理空数组返回null、请求数量超数组长度返回false等边界情况。 在PHP中,要从数组中随机取出值,最直接也最常用的方式就是利用 arra…

    2025年12月10日
    000
  • 什么是PHP在线运行的内存限制?如何处理大型代码的运行?

    答案:处理PHP内存限制需多层级优化。首先通过memory_get_usage()和Xdebug诊断内存使用,定位高消耗代码;其次优化代码,如使用生成器、及时释放变量、优化查询;再者通过php.ini、.htaccess或ini_set()调整memory_limit配置;最后在单机瓶颈时引入异步队…

    2025年12月10日
    000
  • PHP中字符串转数组失败怎么办?常见问题及解决方案

    字符串转数组失败主因是分隔符不匹配或格式错误,需用var_dump检查字符串结构;explode()要求精确分隔符,json_decode()需合法JSON且可用json_last_error()查错,复杂拆分宜用preg_split配合正则。 在PHP中,字符串转数组失败通常不是函数本身有问题,而…

    2025年12月10日
    000
  • PHP中如何将CSV字符串转为数组?str_getcsv函数使用方法

    最直接可靠的方法是使用str_getcsv()函数,它能正确处理分隔符、引号和转义字符,适用于解析内存中的CSV字符串。 在PHP中,将CSV格式的字符串转换成数组,最直接、最可靠的方法就是使用内置的 str_getcsv() 函数。它专门为此设计,能够很好地处理CSV格式的复杂性,比如包含逗号或引…

    2025年12月10日 好文分享
    000
  • 字符串转数组时如何处理编码问题?PHP中的UTF-8解决方案

    答案:PHP处理多字节字符需用mbstring函数避免乱码。核心是使用mb_strlen、mb_substr等函数按字符而非字节操作,PHP 7.4+可用mb_str_split直接拆分UTF-8字符串,旧版本可手动循环或preg_split配合u修饰符。常见陷阱包括strlen、substr按字节…

    2025年12月10日
    000
  • PHP动态SQL查询与日期区间处理的最佳实践

    本文旨在探讨在PHP中高效、安全地处理动态SQL查询与日期区间迭代的策略。针对传统方法中函数作为参数、全局变量等问题,我们提出了一种基于结构化数据、PDO预处理语句和函数参数传递的现代解决方案,以提升代码的可维护性、安全性和可读性。 在php开发中,我们经常会遇到需要根据一系列动态条件(例如不同的日…

    2025年12月10日
    000
  • 使用 filter_input() 实现自定义验证的回调函数

    filter_input() 函数是 PHP 中用于从外部获取输入并进行过滤的关键函数。它允许我们指定输入类型(例如 INPUT_POST, INPUT_GET),输入变量的名称,以及要使用的过滤器类型。当内置的过滤器类型无法满足需求时,我们可以使用 FILTER_CALLBACK 结合自定义函数来…

    2025年12月10日
    000
  • 使用 PHP Guzzle 处理 XML 响应并提取数据

    本文介绍了如何使用 PHP Guzzle 库发送 HTTP 请求,并从 XML 响应中提取所需数据。重点讲解了如何处理包含命名空间的 XML 数据,并提供使用 SimpleXMLElement 解析 XML 数据的示例代码,帮助开发者快速有效地提取 XML 数据中的特定字段。 在使用 PHP Guz…

    2025年12月10日
    000
  • PHP Guzzle请求中带命名空间的XML响应数据解析教程

    本文详细介绍了如何在PHP中使用Guzzle发起HTTP请求后,高效解析包含命名空间的XML响应数据。教程将重点讲解SimpleXMLElement库,特别是其children()方法如何处理XML命名空间,以准确提取如ID和NAME等关键字段,并提供实用代码示例,帮助开发者克服XML解析中的常见挑…

    2025年12月10日
    000
  • PHP Guzzle 请求中解析 XML 响应数据的方法

    本文介绍了如何使用 PHP Guzzle 库发送 HTTP 请求并解析 XML 响应数据。重点讲解了如何处理带有命名空间的 XML 数据,并提供示例代码演示如何提取 XML 中的特定字段,例如 ID 和 NAME,最终将数据转换为 key => value 数组形式。 在使用 PHP Guzz…

    2025年12月10日
    000
  • 在Doctrine中使用BINARY进行区分大小写查询:DQL函数扩展指南

    在Doctrine ORM和Query Builder中实现MySQL BINARY 关键字进行区分大小写查询的方法。由于Doctrine默认不直接支持所有数据库原生函数,我们将通过安装 beberlei/DoctrineExtensions 库并注册自定义DQL函数来解决这一问题,从而在DQL语句…

    2025年12月10日
    000
  • Doctrine ORM 中使用 BINARY 进行大小写敏感查询的教程

    本教程将指导您如何在 Doctrine Query Builder 和 DQL 中实现大小写敏感的字符串查询,特别是利用 BINARY 操作符。由于 BINARY 并非 Doctrine 原生支持的 DQL 函数,我们需要通过集成 beberlei/DoctrineExtensions 库并配置自定…

    2025年12月10日
    000
  • 解决Laravel中Auth::user()返回null:正确利用框架认证机制

    本文旨在解决Laravel应用中Auth::user()返回null的问题,即使用户已登录。核心在于避免手动管理用户会话ID,并正确配置和利用Laravel内置的认证系统,特别是通过Auth::login()方法在注册后显式登录用户,并确保自定义用户模型与认证守卫配置一致,从而实现全局、便捷的用户访…

    2025年12月10日
    000
  • 掌握Laravel认证:解决Auth::user()为null的常见问题

    本文深入探讨了在Laravel应用中Auth::user()返回null的常见原因及解决方案。当开发者手动管理用户会话(如session(‘person_id’))而非充分利用Laravel内置认证机制时,常会遇到此问题。教程将详细指导如何正确配置用户模型、在注册和登录流程中…

    2025年12月10日
    000
  • 解决回调URL中Session ID不一致问题的教程

    本文旨在解决API回调URL页面Session ID不一致导致数据无法关联的常见问题。我们将深入探讨问题根源,并提供一套基于唯一事务标识符的解决方案,通过在用户会话中存储该标识符并将其作为URL参数传递给回调函数,最终实现客户端与服务器端数据流的无缝对接,确保支付状态等关键信息能够准确回传并被原始请…

    2025年12月10日
    000
  • 解决回调URL页面Session ID频繁变更的问题

    ### 摘要本文针对在API回调场景下,Session ID在回调URL页面发生变化,导致无法正确关联请求与回调数据的问题,提出了一种解决方案。问题源于Session机制的特性,即Session ID可能在不同页面或请求中发生变化。为了解决这个问题,建议使用Cookie来存储一个唯一的ID,并在回调…

    2025年12月10日
    000
  • PHP DOM操作:在文本节点中安全地批量替换和包裹内容

    本文深入探讨了使用PHP DOMDocument和XPath在文本节点中批量查找并包裹特定短语时遇到的常见问题。核心挑战在于DOM修改(特别是splitText方法)会改变节点结构,导致后续操作的偏移量失效。通过纠正preg_match_all的迭代方式并采用从右到左(即倒序)处理匹配项的策略,可以…

    2025年12月10日 好文分享
    000
  • PHP DOMDocument 文本节点多次修改的偏移量问题与反向迭代解决方案

    本教程深入探讨了在使用 PHP DOMDocument 的 splitText 方法对文本节点进行多次修改时,因 DOM 结构变化导致的偏移量错误。文章详细分析了问题根源,并提供了一种高效且可靠的解决方案:通过反向迭代匹配项,确保每次修改都不影响后续操作的准确性,从而成功实现对所有目标文本的封装。 …

    2025年12月10日
    000
  • 实现可点击音频进度条并跳转播放

    本教程详细指导如何通过HTML、CSS和JavaScript构建一个可交互的自定义音频进度条。我们将学习如何监听音频播放事件来实时更新进度显示,并重点讲解如何通过捕获用户在进度条上的点击事件,计算点击位置并精确跳转音频播放时间点,从而实现一个功能完善且用户友好的音频播放体验。 在现代Web应用中,自…

    2025年12月10日
    000

发表回复

登录后才能评论
关注微信