← 返回信息流
GitHub 热榜GitHub Trending · 日·6 天前

Biohub发布ESM

原标题:Biohub/esm
Jupyter Notebook2,505 stars+102 今日

速览

该项目整合了 ESM-1b、ESM-2 等大规模蛋白质序列模型,支持零样本预测、掩码语言建模及序列嵌入提取。适用于生物信息学中的蛋白质功能预测、结构分析及序列设计等 AI 驱动的研究场景。

AI 深度解读

这是什么

Biohub/esm 是由 Biohub 团队发布的一个基于 Evolutionary Scale Modeling (ESM) 技术的蛋白质生物学世界模型(World Model)。该项目旨在构建一个科学引擎,用于蛋白质的预测、设计和发现。

该系统建立在最新的 ESM 技术栈之上,通过从进化产生的数十亿蛋白质序列中学习,掌握了蛋白质生物学的底层规律。它不仅能表示和映射蛋白质,还能跨尺度(从原子相互作用到跨越数十亿年的进化关系)进行预测和设计。

项目主要包含三个核心组件:

  1. ESMC:最先进的蛋白质语言模型。
  2. ESMFold2:基于 ESMC 的结构预测模型。
  3. ESM Atlas:涵盖 68 亿种蛋白质的生物多样性格局地图。

解决的问题

传统蛋白质研究面临三大核心挑战,ESM 系列模型旨在逐一攻克:

  1. 理解复杂生物规律:蛋白质功能与其序列之间的映射关系极其复杂,传统方法难以捕捉长程结构依赖和进化约束。ESMC 通过训练数十亿条序列,学习了蛋白质生物学的“规则”,解决了从海量数据中提取功能性特征的问题。
  2. 结构预测的效率与精度平衡:现有的结构预测工具(如 AlphaFold2/3)在精度上表现优异,但在计算资源消耗和推理速度上存在瓶颈,且对从头设计(De novo design)的支持有限。ESMFold2 旨在提供比肩 SOTA 精度的同时,显著提升计算效率。
  3. 模型黑盒化与可解释性缺失:大型语言模型内部表示往往难以解读,阻碍了科学家对模型决策逻辑的信任和理解。ESM Atlas 结合稀疏自编码器(SAEs),解决了如何从黑盒模型中提取可解释、具生物学意义的功能单元的问题。

核心功能

1. ESMC:蛋白质语言模型

  • 功能:作为基础底座,ESMC 从数十亿蛋白质序列中学习表示。
  • 特性
    • 定义了相对于 ESM2 的新扩展前沿(Scaling Frontier)。
    • 随着模型规模增加,展现出更强的涌现性长程结构理解能力。
    • 提供从 600M 到 6B 等不同规模的模型变体。

2. ESMFold2:结构预测与设计

  • 功能:结合 ESMC 的 6B 参数语言模型嵌入与基于扩散(Diffusion)的结构预测架构。
  • 特性
    • 高精度预测:直接从氨基酸序列预测高分辨率、全原子 3D 蛋白质结构,支持可选的多序列比对(MSA)输入以增强挑战性目标的准确性。
    • 设计验证:在五个治疗靶点上进行了实验室验证。
    • 逆向设计:通过 ESMFold2 的逆向操作,能够生成具有高命中率、纳摩尔级亲和力、靶点特异性和功能活性的从头迷你结合蛋白(minibinders)和抗体衍生的 scFvs。
    • 高效推理:支持单序列模式,折叠速度比传统方法快一个数量级。

3. ESM Atlas:可解释的世界地图

  • 功能:一张覆盖生命多样性的 68 亿蛋白质地图,其中超过 10 亿个结构由 ESMFold2 预测生成。
  • 可解释性技术
    • 利用**稀疏自编码器(SAEs)**将 ESMC 的内部表示分解为约 16,000 个可解释的特征。
    • 通过代理管道(Agentic Pipeline)将每个特征映射到蛋白质数据库中的已知生物学知识,并用自然语言总结。
    • 提供不同模型规模、层数和粒度级别的 SAEs 集合,揭示蛋白质间 ESMC 学到的功能关系。

亮点 / 与同类相比

  • SOTA 性能与效率兼得:ESMFold2 在 Foldbench 的 DockQ 通过率上超越了其他模型(包括 AlphaFold3),特别是在蛋白质-蛋白质相互作用和抗体-抗原复合物方面。同时,其优化的扩散采样架构使其在单序列模式下速度提升显著。
  • 端到端的闭环设计:不同于仅做预测的工具,ESM 提供了从目标序列到排名结合候选者的完整设计循环(Design Loop)。实验室验证表明其生成的结合蛋白具有高亲和力和功能性。
  • 前所未有的可解释性:通过 ESM Atlas 和 SAEs,项目不仅提供预测结果,还揭示了模型内部的“世界观”。这是目前大多数黑盒 AI 生物模型所缺乏的深度洞察能力。
  • 多模态访问方式
    • 本地部署:通过 Hugging Face 获取代码和权重,支持自定义和微调。
    • 云端平台:通过 Biohub Platform 使用 API,无需复杂设置即可运行推理(API 已从 forge.evolutionaryscale.ai 迁移至 biohub.ai)。

适合谁用 / 上手

适合人群

  • 计算生物学家:需要大规模蛋白质结构预测和进化关系分析的研究人员。
  • 药物发现科学家:致力于从头设计抗体、迷你结合蛋白(minibinders)或优化蛋白质相互作用的治疗研发人员。
  • AI for Science 开发者:希望利用 SOTA 蛋白质语言模型进行下游任务微调或特征提取的工程师。

上手指南

1. 环境安装

目前推荐从 GitHub 安装(PyPI 版本即将发布):

pip install esm@git+https://github.com/Biohub/esm.git@c94ed8d

2. 本地运行 (Hugging Face)

适用于需要自定义模型或微调的用户。

  • 需拥有 Hugging Face 账号并登录。
  • 模型权重位于 Biohub/ESMC-6B 等仓库。

代码示例 (ESMC 推理):

import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer
from huggingface_hub import login

login() # 使用 Hugging Face 凭证登录

sequences = ["MSKGEELFTGVVPILVELDGDVNGHKFSVSGEGEGDATYGKLTLKFICTTGKLPVPWPTLVTTFSYGVQCFSRYPDHMKQHDFFKSAMPEGYVQERTIFFKDDGNYKTRAEVKFEGDTLVNRIELKGIDFKEDGNILGHKLEYNYNSHNVYIMADKQKNGIKVNFKIRHNIEDGSVQLADHYQQNTPIGDGPVLLPDNHYLSTQSALSKDPNEKRDHMVLLEFVTAAGITHGMDELYK"]

model = AutoModelForMaskedLM.from_pretrained(
    "Biohub/ESMC-6B",
    device_map="auto",
).eval()
tokenizer = AutoTokenizer.from_pretrained("Biohub/ESMC-6B")

inputs = tokenizer(sequences, return_tensors="pt", padding=True)
inputs = {k: v.to(model.device) for k, v in inputs.items()}

with torch.inference_mode():
    output = model(**inputs)
    # 如需所有层的隐藏状态,设置 output_hidden_states=True

3. 云端 API 运行 (Biohub Platform)

适用于快速推理和集成,无需管理 GPU 资源。

  • 需在开发者控制台创建 API Token。
  • 注意:API 端点已迁移至 https://biohub.ai

代码示例 (ESMC API):

from esm.sdk import esmc_client
from esm.sdk.api import ESMProtein, LogitsConfig

# 定义蛋白质序列 (例如 Human carbonic anhydrase II)
protein = ESMProtein(
    sequence=(
        "MSHHWGYGKHNGPEHWHKDFPIAKGERQSPVDIDTHTAKYDPSLKPLSVSYDQATSLRILNNGHAFNVEFDD"
        "SQDKAVLKGGPLDGTYRLIQFHFHW
查看原文 →github.com