194

ESM:蛋白语言模型工具箱怎么用

ESM 提供 ESM-2 等蛋白语言模型权重与接口,可提取表征用于多种下游任务。这篇给出取嵌入的代码、各档模型的取舍,以及零样本突变效应预测的用法。

ESM(Evolutionary Scale Modeling)是 Meta AI 开源的蛋白语言模型系列。它在数亿条蛋白序列上做掩码语言建模训练,学到的表征可以直接迁移到结构、功能、突变效应等多种任务。对不做结构预测、但需要蛋白特征的项目来说,ESM 嵌入几乎是默认起点。

安装与取嵌入

pip install fair-esm            # 原版接口
# 或用 HuggingFace 版本(生态更方便)
pip install transformers torch
import torch, esm

model, alphabet = esm.pretrained.esm2_t33_650M_UR50D()
batch_converter = alphabet.get_batch_converter()
model.eval()

data = [("protein1", "MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG")]
_, _, tokens = batch_converter(data)

with torch.no_grad():
    out = model(tokens, repr_layers=[33])
emb = out["representations"][33]            # [B, L+2, 1280]
per_residue = emb[0, 1:-1]                  # 去掉首尾特殊 token
per_protein = per_residue.mean(0)           # 池化成蛋白级向量

去掉首尾特殊 token 这一步经常被漏掉,会让残基索引整体错位一位,下游分析全错。

模型档位怎么选

模型 参数量 嵌入维度 适用
esm2_t12_35M 35 M 480 快速原型、大规模筛选
esm2_t30_150M 150 M 640 折中
esm2_t33_650M 650 M 1280 多数任务的性价比最优
esm2_t36_3B 3 B 2560 追精度,显存需求高
esm2_t48_15B 15 B 5120 研究用途,多数场景不划算

经验上从 650M 往上,多数下游任务的收益迅速递减,而显存和推理成本线性上涨。先用 650M 建基线,确认瓶颈真在表示能力上再往上换。

零样本突变效应预测

这是 ESM 一个很实用但常被忽略的能力:不需要任何训练数据,直接用掩码语言模型的对数几率估计突变的影响。

# 掩码目标位点,比较野生型与突变型氨基酸的 log-prob
tokens_masked = tokens.clone()
tokens_masked[0, pos + 1] = alphabet.mask_idx      # +1 因为有起始 token
with torch.no_grad():
    logits = model(tokens_masked)["logits"]
log_probs = torch.log_softmax(logits[0, pos + 1], dim=-1)
score = log_probs[alphabet.get_idx(mut_aa)] - log_probs[alphabet.get_idx(wt_aa)]
# score < 0 提示该突变可能有害

在 ProteinGym 等突变效应基准上,这种零样本打分与实验数据的相关性相当可观,对抗体工程、酶改造做初步排序很有用。

常见用法与边界

  • 当特征提取器:把 per-protein 向量接一个轻量分类/回归头,做溶解度、定位、热稳定性、DTI 等预测——这是最主流的用法。
  • 当结构预测的 MSA 替代:ESMFold(见 195《ESMFold》)、Chai-1 的无 MSA 模式都基于此。
  • 边界一:不理解真正的三维环境。它学的是序列共现统计,对需要精确几何的问题(如口袋形状)不能替代结构方法。
  • 边界二:对人工设计序列外推弱。训练分布是天然蛋白,完全人工的序列落在分布外,打分参考价值下降。
  • 边界三:长序列成本高。注意力复杂度随长度平方增长,超长蛋白需分段处理。

上手提示

  • 默认从 esm2_t33_650M 起步,往上收益递减很快;
  • 取嵌入务必去掉首尾特殊 token,否则残基索引整体错位;
  • 零样本突变打分是被低估的能力,不需训练数据即可排序;
  • 它替代不了结构方法,几何问题仍要交给结构工具。

延伸资源