跳转至

43. 生信基础模型:scGPT / DNABERT 及更多

一句话说明:生物基础模型(Biological Foundation Model)是在海量生物序列上预训练的大模型,用 Transformer "读懂"DNA/蛋白质/单细胞这三种"生物语言",下游只需少量微调即可完成分类、注释、预测等多种任务。


一、什么是生物基础模型(白话版)

1.1 核心思想:用 Transformer 学习"生物语言"

白话类比:ChatGPT 先读几万亿字的人类文本学会了"说人话",然后可以做翻译、写代码、聊天等各种事。生物基础模型做的事完全一样——只不过它读的"文本"不是中文或英文,而是:

生物语言"字母表"一句"话"的长度类比
DNAA, T, C, G(4个碱基)几百 ~ 几十万 bp一本书的一章
蛋白质20种氨基酸(单字母编码)几十 ~ 几千 aa一篇短文
单细胞~20000个基因的表达量一个细胞 = 一个"句子"一句话里2万个词各出现0-N次

训练过程白话版: 1. 遮住一部分(Masked Language Modeling, MLM):把 DNA 序列中 15% 的碱基遮住,让模型猜被遮住的是什么 → 模型被迫学会"上下文" 2. 自回归生成(Autoregressive):给前面的序列,预测下一个碱基/氨基酸 → 模型学会序列的"语法规则" 3. 学完之后:模型的中间层(hidden states)就是"生物含义向量"(embedding),可以用来做各种下游任务

1.2 和传统方法有什么区别?

对比维度传统方法(如 BLAST/HMMER)基础模型方法
核心逻辑基于序列相似性比对学习序列的"语义"表示
特征工程手工提取(k-mer、GC含量等)自动学习特征
迁移能力一个工具只能做一件事预训练一次,微调做多种任务
处理长距离依赖较弱(靠局部比对)Transformer 的 attention 天然擅长
计算资源CPU 即可预训练需 GPU 集群,推理可用单张 GPU

与知识库 20 的区分:知识库 20《AI与生信交叉应用》是 AI+生信的全局概览(AlphaFold、DeepVariant、随机森林等)。本篇只聚焦"生物序列基础模型"这一个方向,深入讲各模型的架构差异、参数规模、预训练策略和实操代码。


二、DNA 语言模型

2.1 DNABERT(2021)

  • 论文:Ji et al. "DNABERT: pre-trained Bidirectional Encoder Representations from Transformers model for DNA-language in genome." Bioinformatics (2021)
  • 思路:把 DNA 序列按 k-mer(如 6-mer)分词,然后用 BERT 架构做 MLM 预训练
  • 参数量:~110M(和 BERT-base 一样)
  • 预训练数据:人类参考基因组(GRCh38)
  • 局限:k-mer 分词有信息丢失;只在人类基因组上训练,跨物种泛化有限

2.2 DNABERT-2(2024,ICLR 2024)

  • 论文:Zhou et al. "DNABERT-2: Efficient Foundation Model and Benchmark for Multi-Species Genome." ICLR 2024
  • GitHub:github.com/MAGICS-LAB/DNABERT_2(Star 481,持续更新中)
  • HuggingFacezhihan1996/DNABERT-2-117M(下载量 93,000+)
  • 关键改进
  • BPE 分词替代固定 k-mer → 不再丢失跨 k-mer 边界的信息
  • 多物种预训练:包含人类、小鼠、植物等多个物种基因组
  • 参数量 117M,推理速度比 DNABERT 快 ~21 倍
  • Genome Understanding Evaluation(GUE) 基准:涵盖 28 个基因组分析任务
  • 下游任务:启动子识别、剪接位点预测、转录因子结合位点预测等

2.3 Nucleotide Transformer(2023)

  • 开发者:InstaDeep / Google DeepMind
  • HuggingFaceInstaDeepAI/nucleotide-transformer-v2-500m-multi-species(下载量 16,700+)
  • 特点
  • 模型规模从 50M 到 2.5B 参数,多个尺寸可选
  • v2 版本在多物种基因组上预训练
  • 在 18 个基因组学下游任务上达到 SOTA
  • 参数量/预训练:最大 2.5B / 多物种基因组(3,202 个物种)

2.4 Evo(2024)

  • 开发者:Arc Institute / Together AI
  • 论文:"Sequence modeling and design from molecular to genome scale with Evo." Science (2024)
  • GitHub:github.com/evo-design/evo(Star 1,504)
  • HuggingFacetogethercomputer/evo-1-131k-base(下载量 5,500+)
  • 革命性特点
  • 单碱基分辨率:不做 k-mer/BPE 分词,直接处理单个碱基
  • 超长上下文:支持 131K tokens(~131,000 bp),可建模基因级别的长距离依赖
  • 架构:StripedHyena(非标准 Transformer),结合状态空间模型(SSM)实现超长序列建模
  • 参数量 7B,是目前最大的 DNA 基础模型之一
  • 生成能力:可以从头生成功能性 DNA 序列(如 CRISPR 系统)

三、蛋白质语言模型

3.1 ESM-2(2022,Meta AI)

  • 论文:Lin et al. "Evolutionary-scale prediction of atomic-level protein structure with a language model." Science (2023)
  • HuggingFace 系列(下载量加总超过 300 万):
  • facebook/esm2_t6_8M_UR50D(8M 参数,87.6 万次下载)
  • facebook/esm2_t33_650M_UR50D(650M 参数,173.6 万次下载)
  • facebook/esm2_t36_3B_UR50D(3B 参数,63.1 万次下载)
  • facebook/esm2_t48_15B_UR50D(15B 参数,最大版本)
  • 预训练数据:UniRef50(约 6500 万条蛋白质序列)
  • 架构:标准 Transformer Encoder + MLM
  • 核心能力
  • 蛋白质 embedding(向量化表示)
  • 变异效应预测(通过 log-likelihood ratio)
  • 蛋白质结构预测(ESMFold,速度比 AlphaFold 快 60 倍)
  • 蛋白质功能注释

3.2 ProtTrans / ProtT5(2021,TUM Rostlab)

  • 论文:Elnaggar et al. "ProtTrans: Toward Understanding the Language of Life Through Self-Supervised Learning." IEEE TPAMI (2022)
  • HuggingFaceRostlab/prot_t5_xl_uniref50(下载量 18.3 万)
  • 特点
  • 基于 T5 架构(Encoder-Decoder),支持序列到序列任务
  • 预训练在 UniRef50 和 BFD(Big Fantastic Database,~2.1 亿条序列)
  • ProtT5-XL 参数量 ~3B
  • 在亚细胞定位、二级结构预测等任务上表现优秀

3.3 ProGen2(2023,Salesforce)

  • 论文:Nijkamp et al. "ProGen2: Exploring the Boundaries of Protein Language Models." Cell Systems (2023)
  • HuggingFacehugohrban/progen2-small(下载量 2.1 万)
  • 特点
  • 自回归模型(GPT 风格),不是 BERT 风格的 MLM
  • 参数量从 151M 到 6.4B
  • 可以生成蛋白质序列(不只是理解,还能"写"新蛋白质)
  • 预训练在 UniRef90 + BFD 等多个数据库

四、单细胞基础模型

4.1 scGPT(2024,Bo Wang Lab)

  • 论文:Cui et al. "scGPT: toward building a foundation model for single-cell multi-omics using generative AI." Nature Methods (2024)
  • GitHub:github.com/bowang-lab/scGPT(Star 1,551,当前版本 v0.2.4)
  • HuggingFacetdc/scGPT(下载量 603)
  • 核心设计
  • 输入格式:每个细胞 = 一个"句子",每个基因 = 一个"词",表达量 = "词的属性"
  • 架构:修改版 Transformer,支持 gene token + expression value 的联合编码
  • 预训练任务
    • 基因表达预测(遮住部分基因的表达量让模型猜)
    • 细胞生成任务
  • 预训练数据:约 3300 万个人类单细胞
  • 下游任务:细胞类型注释、基因扰动预测、多组学整合、基因调控网络推断
  • 最新版本 v0.2.4:改进了训练稳定性和下游微调效率

4.2 Geneformer(2023,NIH / Hugging Face)

  • 论文:Theodoris et al. "Transfer learning enables predictions in network biology." Nature (2023)
  • HuggingFacectheodoris/Geneformer(下载量 8,640,Likes 294)
  • V2 版本nvidia/geneformer_V2_104M(NVIDIA 合作发布)
  • 核心设计
  • 基因排序编码:不直接用表达量数值,而是把基因按表达量从高到低排序,序列 = 排名列表
  • 预训练在 ~3000 万个人类单细胞(Genecorpus-30M)
  • 参数量 ~10M(原版)/ ~104M(V2)
  • 零样本迁移能力强:在未见过的组织/疾病上也能工作
  • 下游任务:疾病状态分类、基因剂量敏感性预测、染色质动态预测

4.3 scFoundation(2024)

  • 论文:Hao et al. "Large-scale cell representation learning via divide-and-conquer contrastive learning." Nature Methods (2024)
  • HuggingFaceperturblab/scfoundation-cell
  • 核心设计
  • 超大规模:预训练在约 5000 万个人类单细胞上
  • 支持全部 ~20000 个基因作为输入(不做基因筛选)
  • 使用 MAE(Masked Autoencoder)+ AutoBin 离散化策略
  • 参数量约 100M
  • 特点:对罕见细胞类型和未见过的组织有更好的泛化能力

五、主流模型对比表

模型领域参数量架构预训练数据核心下游任务许可证
DNABERT-2DNA117MBERT + BPE多物种基因组启动子/剪接位点/TF结合位点MIT
Nucleotide Transformer v2DNA50M-2.5BBERT3,202物种基因组18个基因组学任务CC-BY-NC-SA
EvoDNA7BStripedHyena (SSM)多物种基因组序列生成/功能预测Apache-2.0
ESM-2蛋白质8M-15BTransformer EncoderUniRef50 (6500万序列)embedding/结构/变异MIT
ProtT5蛋白质~3BT5 (Enc-Dec)UniRef50 + BFD亚细胞定位/二级结构MIT
ProGen2蛋白质151M-6.4BGPT (自回归)UniRef90 + BFD蛋白质序列生成BSD-3
scGPT单细胞~50M修改版 Transformer3300万单细胞细胞注释/扰动预测MIT
Geneformer单细胞10M-104MBERT3000万单细胞疾病分类/基因网络Apache-2.0
scFoundation单细胞~100MMAE + AutoBin5000万单细胞全基因组细胞表示Apache-2.0

白话总结选型建议: - 想做 DNA 调控元件分析(启动子、增强子)→ 首选 DNABERT-2 - 想做 蛋白质功能/结构/变异 → 首选 ESM-2(生态最好,HuggingFace 直接用) - 想做 单细胞注释/整合 → scGPT 或 Geneformer(看你数据量和组织类型) - 想做 DNA 序列生成(合成生物学方向)→ Evo - 想做 蛋白质设计/生成 → ProGen2


六、实操教程:用 HuggingFace 加载 ESM-2 提取蛋白质 Embedding

为什么选 ESM-2 做教程?因为它是目前生态最完善、最容易上手的生物基础模型,HuggingFace 原生支持,代码最简洁。

6.1 环境安装

# 建议在 conda 环境中操作
conda create -n bio_fm python=3.10 -y  # 创建新环境
conda activate bio_fm                   # 激活环境

# 安装核心依赖
pip install torch transformers          # PyTorch + HuggingFace
pip install scipy scikit-learn          # 后续分析用

6.2 加载模型并提取 Embedding

"""
ESM-2 蛋白质 Embedding 提取教程
功能:把蛋白质氨基酸序列变成固定长度的数值向量(embedding)
用途:相当于把蛋白质"翻译"成计算机能理解的数字,后续可以做分类/聚类/相似性搜索
"""

from transformers import AutoTokenizer, AutoModel  # HuggingFace 的自动加载工具
import torch  # PyTorch 深度学习框架

# ========== 第 1 步:加载预训练模型和分词器 ==========
# 这里用 ESM-2 的 650M 参数版本(约 2.5 GB 显存)
# 如果显存不够,可以换成更小的版本:
#   - facebook/esm2_t6_8M_UR50D    (8M 参数,最小,CPU 就能跑)
#   - facebook/esm2_t12_35M_UR50D  (35M 参数)
#   - facebook/esm2_t30_150M_UR50D (150M 参数)
model_name = "facebook/esm2_t33_650M_UR50D"

# AutoTokenizer:把氨基酸字母转成模型能读的数字 ID
tokenizer = AutoTokenizer.from_pretrained(model_name)
# AutoModel:加载预训练好的 Transformer 模型权重
model = AutoModel.from_pretrained(model_name)
model.eval()  # 切换到推理模式(关闭 dropout 等训练专用操作)

print(f"模型加载成功!参数量: {sum(p.numel() for p in model.parameters()):,}")

# ========== 第 2 步:准备蛋白质序列 ==========
# 示例:人类胰岛素 B 链的氨基酸序列
# 每个字母代表一种氨基酸(F=苯丙氨酸, V=缬氨酸, N=天冬酰胺...)
sequences = [
    "FVNQHLCGSHLVEALYLVCGERGFFYTPKT",   # 人类胰岛素 B 链
    "GIVEQCCTSICSLYQLENYCN",              # 人类胰岛素 A 链
    "MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH",  # 人血红蛋白 α 链(前50aa)
]
seq_names = ["Insulin_B", "Insulin_A", "Hemoglobin_alpha"]

# ========== 第 3 步:分词(Tokenization) ==========
# ESM-2 的分词很简单:每个氨基酸 = 1 个 token
# padding=True:短序列补齐到最长序列的长度
# truncation=True:超过模型最大长度(1024)的序列会被截断
# return_tensors="pt":返回 PyTorch 张量格式
inputs = tokenizer(
    sequences,
    padding=True,        # 短序列用 <pad> 补齐
    truncation=True,     # 超长序列截断
    return_tensors="pt"  # 返回 PyTorch tensor
)
print(f"Token IDs 形状: {inputs['input_ids'].shape}")
# 输出类似: Token IDs 形状: torch.Size([3, 52])
# 含义: 3 条序列,最长 52 个 token(含 <cls> 和 <eos> 特殊标记)

# ========== 第 4 步:模型推理,获取 Embedding ==========
with torch.no_grad():  # 推理时不需要计算梯度,节省显存
    outputs = model(**inputs)

# outputs.last_hidden_state 的形状: [batch_size, seq_len, hidden_dim]
# 每个 token 都有一个 hidden_dim 维的向量(ESM-2 650M 的 hidden_dim = 1280)
last_hidden = outputs.last_hidden_state
print(f"隐藏层输出形状: {last_hidden.shape}")

# ========== 第 5 步:获取序列级别的 Embedding ==========
# 方法:对所有非 padding 位置的 token 向量取平均(Mean Pooling)
# 这样每条蛋白质序列变成一个固定长度(1280维)的向量
attention_mask = inputs["attention_mask"]  # 1=真实token, 0=padding

embeddings = []
for i in range(len(sequences)):
    # 只对非 padding 的 token 取平均
    mask = attention_mask[i].unsqueeze(-1)      # [seq_len, 1]
    masked_hidden = last_hidden[i] * mask        # 把 padding 位置清零
    seq_embedding = masked_hidden.sum(0) / mask.sum(0)  # 平均池化
    embeddings.append(seq_embedding)

embeddings = torch.stack(embeddings)  # [3, 1280]
print(f"最终 Embedding 形状: {embeddings.shape}")

# ========== 第 6 步:用 Embedding 做下游分析(示例:计算序列相似性) ==========
from scipy.spatial.distance import cosine  # 余弦距离

print("\n=== 蛋白质序列相似性(余弦相似度)===")
for i in range(len(sequences)):
    for j in range(i + 1, len(sequences)):
        # cosine() 返回的是距离,1 - distance = 相似度
        similarity = 1 - cosine(
            embeddings[i].numpy(),  # 转成 numpy 数组
            embeddings[j].numpy()
        )
        print(f"{seq_names[i]} vs {seq_names[j]}: {similarity:.4f}")
# 预期输出:胰岛素 A 链和 B 链相似度最高(都是胰岛素),和血红蛋白较低

6.3 进阶:用 ESM-2 做变异效应预测

"""
用 ESM-2 的 Masked Marginal 方法预测单点突变的效应
原理:比较野生型和突变型在该位置的 log-likelihood
"""
import torch
from transformers import AutoTokenizer, AutoModelForMaskedLM  # 注意这里用 MaskedLM 版本

model_name = "facebook/esm2_t33_650M_UR50D"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForMaskedLM.from_pretrained(model_name)  # 带 MLM head 的版本
model.eval()

# 野生型序列(示例)
wt_seq = "FVNQHLCGSHLVEALYLVCGERGFFYTPKT"
position = 5       # 要分析的位置(0-indexed),即第6个氨基酸 L(亮氨酸)
wt_aa = "L"        # 野生型氨基酸
mut_aa = "R"       # 突变型氨基酸(假设突变为精氨酸)

# 在目标位置放 <mask>,让模型预测
masked_seq = list(wt_seq)
masked_seq[position] = tokenizer.mask_token  # 替换为 <mask>
masked_seq_str = " ".join(masked_seq)  # ESM-2 需要氨基酸之间加空格? 不需要,直接用字符串

# 注意:ESM tokenizer 逐字符处理,不需要加空格
inputs = tokenizer("".join(masked_seq), return_tensors="pt")

with torch.no_grad():
    logits = model(**inputs).logits  # [1, seq_len, vocab_size]

# +1 因为有 <cls> token 在序列开头
mask_logits = logits[0, position + 1, :]  # 取 mask 位置的 logits

# 获取野生型和突变型氨基酸的 token ID
wt_id = tokenizer.convert_tokens_to_ids(wt_aa)
mut_id = tokenizer.convert_tokens_to_ids(mut_aa)

# Log-Likelihood Ratio (LLR):正值 = 突变可能有害,负值 = 突变可能中性
log_probs = torch.log_softmax(mask_logits, dim=-1)
llr = log_probs[wt_id] - log_probs[mut_id]

print(f"位置 {position}: {wt_aa}{mut_aa}")
print(f"野生型 log-prob: {log_probs[wt_id]:.4f}")
print(f"突变型 log-prob: {log_probs[mut_id]:.4f}")
print(f"LLR (正值=突变有害): {llr:.4f}")

七、典型应用场景

7.1 变异效应预测(Variant Effect Prediction)

  • 问题:基因组测序发现一个错义突变,它是否致病?
  • 传统方法:SIFT/PolyPhen 基于保守性和物理化学性质打分
  • 基础模型方法
  • ESM-2 的 LLR 打分(上面代码已演示)
  • AlphaMissense(基于 AlphaFold)
  • DNABERT-2 分析调控区变异对转录因子结合的影响
  • 优势:不依赖人工特征,捕捉到进化中复杂的序列上下文

7.2 启动子识别(Promoter Recognition)

  • 问题:给一段 DNA 序列,判断其中是否有启动子(控制基因什么时候开启的"开关")
  • 模型选择:DNABERT-2 → 在 GUE 基准中启动子识别准确率达到 SOTA
  • 流程:预训练 DNABERT-2 + 少量启动子正负样本微调 → 二分类器

7.3 细胞类型注释(Cell Type Annotation)

  • 问题:单细胞测序得到几万个细胞,每个细胞是什么类型?(T细胞?B细胞?巨噬细胞?)
  • 传统方法:手动选 marker gene + 聚类 → 人工判断
  • 基础模型方法
  • scGPT / Geneformer 预训练模型 + 少量标注数据微调
  • 零样本迁移:在 A 组织上训练的模型,直接用于 B 组织
  • 优势:减少人工干预,跨组织泛化能力强

7.4 与该 T2D 项目的关联

虽然该项目用的是随机森林(经典 ML),但面试可以提到基础模型的未来方向: - 用 ESM-2 对肠道菌群的功能蛋白做 embedding,作为新的特征输入 - 用 scGPT 分析 T2D 患者肠道上皮细胞的单细胞转录组 - 微生物基因组的功能注释可以用 DNABERT-2 辅助


八、面试怎么答

Q1:什么是生物基础模型?和传统生信工具有什么区别?

生物基础模型是在海量生物序列(DNA/蛋白质/单细胞数据)上用 Transformer 做预训练的大模型。和传统工具的核心区别在于:传统方法(如 BLAST)依赖序列相似性比对,需要已知的参考信息;基础模型通过自监督学习理解序列的"语义",一次预训练就能迁移到多个下游任务。比如 ESM-2 是蛋白质语言模型,预训练后可以做结构预测、变异效应预测、功能注释等多种任务。

Q2:你知道哪些 DNA 语言模型?它们的核心区别是什么?

主要有 DNABERT 系列、Nucleotide Transformer 和 Evo。DNABERT 初版用 k-mer 分词,DNABERT-2 改用 BPE 分词并在多物种基因组上预训练,参数量 117M,是 ICLR 2024 的论文。Nucleotide Transformer 由 InstaDeep 开发,最大到 2.5B 参数。Evo 是最特别的,它用 StripedHyena 架构(不是标准 Transformer)支持 131K 的超长上下文,7B 参数,能做 DNA 序列生成。核心区别是:DNABERT-2 偏理解和分类,Evo 偏生成和超长序列建模。

Q3:ESM-2 和 AlphaFold 有什么关系和区别?

两者都做蛋白质分析但路线不同。ESM-2 是语言模型路线——只从序列出发,通过 MLM 预训练学习蛋白质的进化信息,输出 embedding 用于各种下游任务。AlphaFold 是专门的结构预测模型,输入序列 + MSA + 结构模板,输出 3D 坐标。ESM-2 衍生的 ESMFold 也能预测结构,速度比 AlphaFold 快 60 倍但精度略低。可以说 ESM-2 更通用(一个模型多种用途),AlphaFold 在结构预测上更精确。

Q4:scGPT 和 Geneformer 的主要区别是什么?

两者都是单细胞基础模型,但设计哲学不同。scGPT 把基因表达量直接编码为数值输入 Transformer,参数约 50M,在 3300 万个细胞上预训练,支持基因扰动预测等生成式任务。Geneformer 则把基因按表达量排序后用排名作为输入(不用具体数值),参数量更小(原版约 10M),在零样本迁移方面表现突出。简单说:scGPT 更像 GPT(生成式),Geneformer 更像 BERT(理解式)。

Q5:如果让你在 T2D 项目中引入基础模型,你会怎么做?

我会从两个方向考虑。第一,用 ESM-2 对肠道菌群编码的功能蛋白做 embedding,把高维的蛋白质功能信息压缩为数值向量,作为随机森林模型的新特征,可能比单纯用物种丰度包含更多功能信息。第二,如果有条件获取 T2D 患者的肠道单细胞测序数据,可以用 scGPT 做宿主端的细胞状态分析,比如观察肠道上皮细胞和免疫细胞在 T2D 患者中的基因表达变化。不过考虑到目前样本量有限,随机森林仍然是最稳健的选择,基础模型更适合作为未来改进方向。


九、速查表

术语英文白话解释
基础模型Foundation Model在海量数据上预训练的通用大模型
预训练Pre-training先在大量无标注数据上学"通识",再去做具体任务
微调Fine-tuning在预训练基础上,用少量标注数据适配特定任务
自监督学习Self-supervised Learning不需要人工标注,从数据自身构造训练信号(如遮词填空)
MLMMasked Language Modeling遮住部分 token 让模型预测,BERT/ESM-2/DNABERT 用的训练方式
Embedding嵌入向量把文本/序列转成固定长度的数字向量
BPEByte Pair Encoding一种分词算法,DNABERT-2 用来替代固定 k-mer
Attention注意力机制Transformer 核心组件,让模型关注序列中重要的位置
LLRLog-Likelihood Ratio对数似然比,用来评估突变影响,ESM-2 变异预测的核心指标
Zero-shot零样本不做微调直接在新任务上用预训练模型
pLMProtein Language Model蛋白质语言模型,如 ESM-2、ProtT5
SSMState Space Model状态空间模型,Evo 用它处理超长 DNA 序列
MAEMasked Autoencoder遮码自编码器,scFoundation 的预训练架构
GUEGenome Understanding EvaluationDNABERT-2 提出的基因组分析基准测试集

十、延伸资源

核心论文

  1. DNABERT-2: Zhou et al. "DNABERT-2: Efficient Foundation Model and Benchmark for Multi-Species Genome." ICLR 2024. arXiv:2306.15006
  2. ESM-2: Lin et al. "Evolutionary-scale prediction of atomic-level protein structure with a language model." Science 379, 1123-1130 (2023)
  3. scGPT: Cui et al. "scGPT: toward building a foundation model for single-cell multi-omics using generative AI." Nature Methods 21, 1470-1480 (2024)
  4. Geneformer: Theodoris et al. "Transfer learning enables predictions in network biology." Nature 618, 616-624 (2023)
  5. Evo: Nguyen et al. "Sequence modeling and design from molecular to genome scale with Evo." Science 386, eado9336 (2024)
  6. Nucleotide Transformer: Dalla-Torre et al. "The Nucleotide Transformer: Building and Evaluating Genomic Foundation Models." Nature Methods 21, 1105 (2024)
  7. ProtTrans: Elnaggar et al. "ProtTrans: Toward Understanding the Language of Life." IEEE TPAMI 44, 7112-7127 (2022)
  8. ProGen2: Nijkamp et al. "ProGen2: Exploring the Boundaries of Protein Language Models." Cell Systems 14, 968-978 (2023)
  9. scFoundation: Hao et al. "Large-scale cell representation learning via divide-and-conquer contrastive learning." Nature Methods (2024)

HuggingFace 模型链接(可直接 pip install transformers 后使用)

  • ESM-2: facebook/esm2_t33_650M_UR50D
  • DNABERT-2: zhihan1996/DNABERT-2-117M
  • Geneformer: ctheodoris/Geneformer
  • Nucleotide Transformer: InstaDeepAI/nucleotide-transformer-v2-500m-multi-species

综述推荐

  • Rives et al. "Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences." PNAS (2021)(ESM-1 原始论文,奠基性工作)
  • Theodoris. "Foundation models in molecular biology." Nature Reviews Molecular Cell Biology (2025)(最新综述)