基于蛋白质语言模型的海洋噬菌体暗物质功能注释¶
概述¶
海洋噬菌体(bacteriophage)是地球上最丰富的生物实体,其蛋白质序列中蕴藏着巨大的功能多样性,但传统序列比对工具(如 BLAST)在面对高度分化的“暗物质”蛋白时往往无能为力。本知识库文章梳理了 Samer Ali Alghamdi 在国际科学与工程大奖赛(Regeneron ISEF 2027)中提出的研究框架:利用 ESM-2 蛋白质语言模型(protein language model, pLM) 对海洋噬菌体的蛋白质暗物质进行 in silico 功能注释。研究核心发现:在红海数据集中,9 个被模型以高于 0.85 的置信度预测为功能性类别的噬菌体蛋白,在 NCBI nr 数据库中 任何 e-value 阈值下均无 BLAST 命中,而模型的 5 折交叉验证宏 F1 达到 0.9086。这项工作证明了蛋白质语言模型能够在序列同源性失效的空间中进行可靠的功能推断,为全球海洋宏基因组中大量“看不到”的噬菌体蛋白提供了新的注释范式。
核心知识点¶
1. 蛋白质暗物质与 BLAST 的极限¶
- 蛋白质暗物质(protein dark matter):指在现有数据库中缺乏显著序列同源性、无法通过传统比对方法(如 BLAST、HMMER)获得功能信息的蛋白质区域或完整蛋白。
- BLAST 失效原因:噬菌体蛋白进化速率极高,同源序列可能在序列空间中漂移出可检测的相似性阈值;一些蛋白可能采用全新的折叠方式或组合,仅保守关键残基的位置或理化性质。
- 本研究的两层级分类:
- 近亲群体(Near-relatives):模型置信度 > 0.99,包含 135,100 个蛋白,BLAST 命中率 95.6%。
- 真正全新群体(Genuinely novel):模型置信度 0.85–0.99,包含 29,188 个蛋白,BLAST 命中率 0%(任何 e-value)。
- 两种群体在主-客体互作(host-interaction)功能上呈现显著差异:近亲群体中 82% 属于宿主互作蛋白,而真正全新群体为 57%。
2. ESM-2 蛋白质语言模型¶
- ESM-2(Evolutionary Scale Modeling)是 Meta AI 开发的大规模蛋白质语言模型,在数百万蛋白质序列上以 masked language modeling 目标进行预训练。其内部表征(embeddings)捕捉了氨基酸共进化、结构倾向和生物物理约束,而不仅仅是序列同一性。
- 本工作将 ESM-2 作为特征提取器,将可变长度的噬菌体蛋白转化为固定长度的向量表示,再输入下游分类器。
- 关键优势:pLM 的嵌入空间能够编码远程同源信号和功能相似性,即使序列比对法无法检出相似性,模型仍可能依据理化特征、模体模式等给出功能分类。
3. 功能分类器设计与性能¶
- 分类器针对噬菌体蛋白的多个功能类别进行训练(如衣壳蛋白、尾丝蛋白、裂解酶、整合酶、宿主识别相关蛋白等)。
- 性能指标(5 折交叉验证,与不同基线对比):
- pLM + 分类器:macro F1 = 0.9086 ± 0.0059
- k-mer 逻辑回归基线:低 0.113 F1 分
- SVM (RBF 核) :低 0.240 F1 分
- 随机森林:低 0.389 F1 分
- 两层级之间 BLAST 命中率的巨大鸿沟(+25 至 +26 个百分点)在置信度阈值 0.95–0.999 范围内保持稳定,表明模型对“全新”类别的判断具有鲁棒性。
- 置换检验:10,000 次随机打乱标签,p = 0.0000,证明模型学习到的功能信号绝非偶然。
4. 海洋宏基因组数据集¶
研究使用了四个不同深度和海域的宏基因组组装噬菌体蛋白数据集,确保结论的环境普适性:
| 数据集 | 海域 | 深度 | 高质量蛋白数目 |
|---|---|---|---|
| Tara Oceans ERR315858 | 印度洋 | 0 m | 2,010 |
| Red Sea SRR2102994 | 红海 | 10 m | 81,359 |
| Malaspina ERR770958 | 大西洋 | 200 m | 5,313 |
| Tara Oceans ERR599370 | 太平洋 | 800 m | 118,208 |
- 深度梯度分析显示:宿主互作功能的富集度随深度变化,但这主要归因于近亲群体;真正全新蛋白的功能组成在四个海洋数据集中呈深度不变性(depth-invariant),暗示这类蛋白可能参与广泛、基础的噬菌体生活方式。
5. 抗菌素耐药性(AMR)相关性¶
- 噬菌体疗法(phage therapy)是应对产 ESBL 和耐碳青霉烯类细菌的重要替代策略,其成功依赖于准确识别介导宿主识别的噬菌体蛋白(如受体结合蛋白、尾丝蛋白)。
- 该研究专门在红海“真正全新”层级中注释出 4,764 个宿主互作蛋白,这些蛋白与任何已知序列无同源性,却第一次被赋予了功能性标签。它们可能成为新型、高特异性的噬菌体治疗靶点库,绕开传统抗生素耐药机制。
6. 可复现性与开放科学¶
- 所有训练好的模型已归档至 Zenodo,可通过 DOI 10.5281/zenodo.20435564 获取,确保结果的可重复验证与下游应用。
代码实操¶
以下示例演示如何利用 fair-esm 和 scikit-learn 构建一个简化的噬菌体蛋白功能分类流水线,并评估其在宏基因组数据上的表现。实际研究使用了更复杂的模型架构和超参数调优。
# 导入必要的库
import torch
import esm # fair-esm 库
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score, StratifiedKFold
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import make_scorer, f1_score
# 1. 加载预训练的 ESM-2 模型 (650M 参数版本,也可选 3B)
model, alphabet = esm.pretrained.esm2_t33_650M_UR50D()
batch_converter = alphabet.get_batch_converter()
model.eval() # 设置为评估模式
# 假设我们有一个蛋白质序列列表和对应的功能标签
# 实际数据:海洋噬菌体蛋白序列(例如从宏基因组组装中预测的 ORF)
sequences = [
("phage1", "MKTVEERIKEVMS..."), # 此处截短
("phage2", "MSNLKGILQFNLV..."),
# ... 更多序列
]
labels = ["host_recognition", "structural", "lysis", "unknown", ...] # 与序列一一对应
# 2. 提取每个蛋白的 token-averaged embedding
def extract_embeddings(sequences, model, alphabet, batch_size=16):
embeddings = []
for i in range(0, len(sequences), batch_size):
batch_seqs = sequences[i:i+batch_size]
# 使用 batch_converter 生成 tokens
batch_labels, batch_strs, batch_tokens = batch_converter(batch_seqs)
batch_tokens = batch_tokens.cuda() # 若有 GPU
with torch.no_grad():
results = model(batch_tokens, repr_layers=[33], return_contacts=False)
# 获取最后一层输出的 token 表示 (排除特殊标记 <cls>, <eos>)
token_repr = results["representations"][33] # shape: (batch, seq_len, 1280)
for j, (label, seq) in enumerate(zip(batch_labels, batch_strs)):
# 取实际序列 token 的平均值作为该蛋白的嵌入向量
# 注意:batch_tokens 中包含特殊标记,需要根据 attention mask 筛选
# 这里简化,直接取索引 1:len(seq)+1
valid_tokens = token_repr[j, 1:len(seq)+1, :].mean(dim=0)
embeddings.append(valid_tokens.cpu().numpy())
return np.array(embeddings)
# 提取嵌入(此步骤计算量较大)
X = extract_embeddings(sequences, model, alphabet)
y = np.array(labels)
# 3. 编码标签并使用逻辑回归进行多分类
le = LabelEncoder()
y_enc = le.fit_transform(y)
# 定义宏 F1 的评分器,以便与论文结果对照
macro_f1_scorer = make_scorer(f1_score, average='macro')
# 5 折分层交叉验证
clf = LogisticRegression(max_iter=10000, C=1.0)
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
scores = cross_val_score(clf, X, y_enc, cv=cv, scoring=macro_f1_scorer)
print(f"5 折交叉验证宏 F1: {np.mean(scores):.4f} +/- {np.std(scores):.4f}")
# 4. 对全新序列进行预测与置信度评估
clf.fit(X, y_enc) # 全量训练
probs = clf.predict_proba(X) # 每个类别的概率
max_probs = np.max(probs, axis=1) # 最高置信度(预测概率)
pred_classes = clf.predict(X)
# 筛选 high-confidence 但 BLAST 无命中的样本(模拟“真正全新”逻辑)
# 实际应用中需要结合 BLAST 输出判断
high_conf_mask = max_probs > 0.85
novel_indices = np.where(high_conf_mask)[0]
print(f"高置信度(>0.85)样本数: {len(novel_indices)}")
# 之后可将这些蛋白序列进行 BLASTp 验证,期望它们无显著匹配。
注释说明: - esm.pretrained.esm2_t33_650M_UR50D() 加载 650M 参数的 ESM-2 模型,输出的 token embedding 维度为 1280。也可选用 3B 版本以获得更强表征。 - extract_embeddings 函数通过对有效序列 token 取平均,得到定长向量。实际研究中通常使用 <eos> token 表示全序列,也可采用注意力加权平均。 - 交叉验证使用宏平均 F1,与原始报告一致,能够公平评估小类别性能。 - 最终在“真正全新”蛋白上的预测可结合 BLAST 结果筛选,确保这些蛋白在 NCBI nr 中无显著匹配,但分类器仍给出高置信度分类。
常见问题¶
Q1:为什么 BLAST 找不到同源的蛋白,语言模型仍能进行功能分类?
蛋白质语言模型在遮蔽语言建模预训练过程中,学会捕获氨基酸之间的共变模式、局部结构倾向和全局上下文依赖,这些特征即使在没有明显序列同源性的情况下仍可能保留功能信号。例如,两个进化上远源的受体结合蛋白可能共享相似的疏水簇排列或氢键网络,pLM 嵌入空间能反映这类物理化学趋势。
Q2:什么阈值决定了“近亲”和“真正全新”?
该研究依据分类器输出的最大预测概率:置信度 > 0.99 的蛋白归为近亲群体(绝大多数可被 BLAST 找到),0.85–0.99 的归为真正全新群体。0.85 的阈值是在精度与召回平衡下选定的,交叉验证中大部分功能类别的预测概率高于此阈值时准确率极高。
Q3:在真正全新蛋白上,0% BLAST 命中率真的意味着它们与所有已知蛋白毫无关系吗?
0% 命中率是指在 NCBI nr 数据库使用 BLASTp(默认参数及各种 e-value 截止值)未发现显著匹配。这并不绝对排除极度远源同源的可能性(例如结构比对可能有微弱相似),但操作上这些蛋白确实属于序列层面的暗物质。语言模型的功能注释为后续结构生物学或实验验证提供了有针对性的候选。
Q4:这项方法是否可以迁移到其他病毒或宏基因组数据集?
完全可以。ESM-2 预训练模型包含来自各生命域的大量序列,其嵌入具有通用性。只需在新的宏基因组 ORF 上提取嵌入并用相应数据微调分类器,即可重复类似的暗物质挖掘流程。论文中使用的四个独立海洋数据集(不同深度、海域)已验证泛化性。
Q5:研究结果中“真正全新蛋白功能组成深度不变”有何意义?
这表明不同海洋深度的全新噬菌体蛋白功能类别分布相似,暗示可能存在一组核心的、序列高度分化但功能保守的蛋白家族,它们在海洋噬菌体生态中独立于环境梯度发挥作用。这对于理解全球海洋病毒组的演化和功能核心组具有重要意义。
Q6:如何避免语言模型的过拟合或误标注?
除了严格的 5 折交叉验证外,研究者使用了 10,000 次置换检验证实模型学习到的类别区分并非由随机噪声引起。此外,对比 k-mer 基线、SVM 和随机森林,大幅领先的性能差距表明嵌入中的功能信号非常强健。
速查表¶
| 指标 / 概念 | 数值 / 描述 |
|---|---|
| 使用的蛋白质语言模型 | ESM-2 (650M/3B 参数) |
| 分类器宏 F1 分数 (5-fold CV) | 0.9086 ± 0.0059 |
| 较 k-mer 基线的提升 | +0.113 F1 分 |
| 较 SVM (RBF) 的提升 | +0.240 F1 分 |
| 较随机森林的提升 | +0.389 F1 分 |
| 近亲群体蛋白数 (conf >0.99) | 135,100 |
| 近亲群体 BLAST 命中率 | 95.6% |
| 真正全新蛋白数 (conf 0.85–0.99) | 29,188 |
| 真正全新蛋白 BLAST 命中率 | 0% (任何 e-value) |
| 红海全新宿主互作蛋白注释数 | 4,764 |
| 两层级功能鸿沟 (gap) | +25 至 +26 个百分点 (稳定) |
| 置换检验 p 值 | 0.0000 (n=10,000) |
| 模型归档 DOI | 10.5281/zenodo.20435564 |
| 海洋数据集覆盖 | 4 个海域,深度 0–800 m,总蛋白数 > 20 万 |
| 宿主互作蛋白在近亲群体中占比 | 82% |
| 宿主互作蛋白在真正全新群体中占比 | 57% |
| 深度不变性 | 真正全新蛋白功能组成在不同深度一致 |
| 潜在应用 | 噬菌体疗法、AMR 靶点发现、海洋生态模型 |
此知识库文章旨在系统展示蛋白质语言模型在海洋噬菌体暗物质功能注释中的突破性应用。通过嵌入空间绕过序列同源性瓶颈,科学界可以解锁大量此前无法被功能注释的病毒蛋白,为微生物生态学和噬菌体治疗打开全新视角。