43. 生信基础模型:scGPT / DNABERT 及更多¶
一句话说明:生物基础模型(Biological Foundation Model)是在海量生物序列上预训练的大模型,用 Transformer "读懂"DNA/蛋白质/单细胞这三种"生物语言",下游只需少量微调即可完成分类、注释、预测等多种任务。
一、什么是生物基础模型(白话版)¶
1.1 核心思想:用 Transformer 学习"生物语言"¶
白话类比:ChatGPT 先读几万亿字的人类文本学会了"说人话",然后可以做翻译、写代码、聊天等各种事。生物基础模型做的事完全一样——只不过它读的"文本"不是中文或英文,而是:
| 生物语言 | "字母表" | 一句"话"的长度 | 类比 |
|---|---|---|---|
| DNA | A, 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,持续更新中)
- HuggingFace:
zhihan1996/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
- HuggingFace:
InstaDeepAI/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)
- HuggingFace:
togethercomputer/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)
- HuggingFace:
Rostlab/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)
- HuggingFace:
hugohrban/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)
- HuggingFace:
tdc/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)
- HuggingFace:
ctheodoris/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)
- HuggingFace:
perturblab/scfoundation-cell - 核心设计:
- 超大规模:预训练在约 5000 万个人类单细胞上
- 支持全部 ~20000 个基因作为输入(不做基因筛选)
- 使用 MAE(Masked Autoencoder)+ AutoBin 离散化策略
- 参数量约 100M
- 特点:对罕见细胞类型和未见过的组织有更好的泛化能力
五、主流模型对比表¶
| 模型 | 领域 | 参数量 | 架构 | 预训练数据 | 核心下游任务 | 许可证 |
|---|---|---|---|---|---|---|
| DNABERT-2 | DNA | 117M | BERT + BPE | 多物种基因组 | 启动子/剪接位点/TF结合位点 | MIT |
| Nucleotide Transformer v2 | DNA | 50M-2.5B | BERT | 3,202物种基因组 | 18个基因组学任务 | CC-BY-NC-SA |
| Evo | DNA | 7B | StripedHyena (SSM) | 多物种基因组 | 序列生成/功能预测 | Apache-2.0 |
| ESM-2 | 蛋白质 | 8M-15B | Transformer Encoder | UniRef50 (6500万序列) | embedding/结构/变异 | MIT |
| ProtT5 | 蛋白质 | ~3B | T5 (Enc-Dec) | UniRef50 + BFD | 亚细胞定位/二级结构 | MIT |
| ProGen2 | 蛋白质 | 151M-6.4B | GPT (自回归) | UniRef90 + BFD | 蛋白质序列生成 | BSD-3 |
| scGPT | 单细胞 | ~50M | 修改版 Transformer | 3300万单细胞 | 细胞注释/扰动预测 | MIT |
| Geneformer | 单细胞 | 10M-104M | BERT | 3000万单细胞 | 疾病分类/基因网络 | Apache-2.0 |
| scFoundation | 单细胞 | ~100M | MAE + AutoBin | 5000万单细胞 | 全基因组细胞表示 | 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 | 不需要人工标注,从数据自身构造训练信号(如遮词填空) |
| MLM | Masked Language Modeling | 遮住部分 token 让模型预测,BERT/ESM-2/DNABERT 用的训练方式 |
| Embedding | 嵌入向量 | 把文本/序列转成固定长度的数字向量 |
| BPE | Byte Pair Encoding | 一种分词算法,DNABERT-2 用来替代固定 k-mer |
| Attention | 注意力机制 | Transformer 核心组件,让模型关注序列中重要的位置 |
| LLR | Log-Likelihood Ratio | 对数似然比,用来评估突变影响,ESM-2 变异预测的核心指标 |
| Zero-shot | 零样本 | 不做微调直接在新任务上用预训练模型 |
| pLM | Protein Language Model | 蛋白质语言模型,如 ESM-2、ProtT5 |
| SSM | State Space Model | 状态空间模型,Evo 用它处理超长 DNA 序列 |
| MAE | Masked Autoencoder | 遮码自编码器,scFoundation 的预训练架构 |
| GUE | Genome Understanding Evaluation | DNABERT-2 提出的基因组分析基准测试集 |
十、延伸资源¶
核心论文¶
- DNABERT-2: Zhou et al. "DNABERT-2: Efficient Foundation Model and Benchmark for Multi-Species Genome." ICLR 2024. arXiv:2306.15006
- ESM-2: Lin et al. "Evolutionary-scale prediction of atomic-level protein structure with a language model." Science 379, 1123-1130 (2023)
- scGPT: Cui et al. "scGPT: toward building a foundation model for single-cell multi-omics using generative AI." Nature Methods 21, 1470-1480 (2024)
- Geneformer: Theodoris et al. "Transfer learning enables predictions in network biology." Nature 618, 616-624 (2023)
- Evo: Nguyen et al. "Sequence modeling and design from molecular to genome scale with Evo." Science 386, eado9336 (2024)
- Nucleotide Transformer: Dalla-Torre et al. "The Nucleotide Transformer: Building and Evaluating Genomic Foundation Models." Nature Methods 21, 1105 (2024)
- ProtTrans: Elnaggar et al. "ProtTrans: Toward Understanding the Language of Life." IEEE TPAMI 44, 7112-7127 (2022)
- ProGen2: Nijkamp et al. "ProGen2: Exploring the Boundaries of Protein Language Models." Cell Systems 14, 968-978 (2023)
- 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)(最新综述)