周宏远 · 申请作品集
机器学习 · 蛋白校准研究 01 背景与方法 02 校准发现
第一个校准信号 · M1 ESM2 二硫键测试

ESM2 看得见 7 座二硫桥,
却把第 8 座当成了可改的位置

承接第 1 页的问题,这一页给出 ESM2 在 α-乳白蛋白二硫键上的实测结果:模型正确识别了 8 个半胱氨酸中的 7 个,唯独漏掉 Cys120——也就是 iGEM 改造位点紧邻的那个残基。下面所有数字均核验自 esm_dms_matrix.tsv 的 2337 行实测打分。

7/8二硫键 Cys 被正确召回

在 αLA 的 8 个二硫键半胱氨酸中,ESM2-650M(masked-marginal)对 7 个给出强烈的"不可替换"判断(最佳替换的 LLR 显著为负)。

唯一失手:Cys120 —— 模型认为最佳替换是 C→KLLR = +0.995,即误判该替换为有利,等于没看见这座末端二硫桥。

图 1 · 成熟 αLA 1–123 的二硫键拓扑(成熟编号)
4 座二硫桥 · 8 个 Cys · 蓝=ESM 召回,红=ESM 漏掉
6–120 28–111 61–77 73–91 1 123 6 28 61 73 77 91 111 120 ✕
ESM 召回(C 不可替换,最佳替换 LLR<0)× 7 ESM 漏掉(最佳替换 LLR>0)× 1 → Cys120 二硫桥配对

规律:被漏掉的 Cys120 处于 C 端、属于跨度最大的 6–120 长程二硫桥;模型对近程二硫桥(61–77、73–91)判断稳健。这提示长程 / 末端二硫键是纯序列模型的薄弱区 —— 也正是结构感知模型 M2(ThermoMPNN) 应当补上的地方。

逐残基证据 · 每个二硫键 Cys 的最佳替换打分

8 个位置的最佳替换 LLR

LLR(log-likelihood ratio)越负,表示 ESM 越认为该位置的野生型 Cys 不可替换(召回越强)。Cys120 是唯一为正的位置 —— 模型实际偏好把它换成 Lys。

Cys6 → Y
−6.205
Cys28 → Y
−8.560
Cys61 → Y
−7.774
Cys73 → Y
−7.916
Cys77 → S
−8.981
Cys91 → Y
−8.490
Cys111 → Y
−7.286
Cys120 → K
+0.995
−90+1.5
mature posWTbest substitutionESM LLRjudgement
6CY−6.205recalled
28CY−8.560recalled
61CY−7.774recalled
73CY−7.916recalled
77CS−8.981recalled
91CY−8.490recalled
111CY−7.286recalled
120CK+0.995MISSED
这意味着什么

序列模型 vs 结构约束

M1 · 纯序列视角

ESM 从序列共现里"推断"二硫键

ESM 没有结构输入,只能从进化序列模式推断哪里该是 Cys。对大多数二硫键这套先验成立 —— 但对 C 端长程配对 6–120,序列信号不足,模型甚至偏好 C→K。

这正是项目要测的东西:模型的先验在这个蛋白上哪里可信、哪里不可信。

M2 · 结构视角(待跑)

结构应当抓住 ESM 漏掉的桥

ThermoMPNN 直接看 1B9O 的三维坐标,Cys120–Cys6 的空间邻近与共价约束对它是显式信息。因此 M2 是 M1 的正交验证

若 M2 在 Cys120 上给出强失稳信号,就证明"换一种模态即可补盲";若 M2 也漏,则盲点更深。两种结果都有价值。

这一结果说明了什么

这正是项目所要刻画的那类缺陷:一个可复现、可定位的失效点。它界定了模型在该蛋白上的可信边界——对二硫键,尤其是长程配对,ESM 的判断需要结构信号加以校正,而不宜直接采用。这也回到第 1 页的起点:在依赖模型预测改造位点之前,先确认它是否真的理解了这个蛋白。

同批次 sanity check · 矩阵整体是否健康

WT-recovery 与运行元数据

二硫键测试之外,整张矩阵还做了野生型恢复率检查,确认打分整体可信。

76.4%
WT-recovery(94 / 123 位点野生型即最优,无任何替换得正分)
29 / 123
存在 ESM 偏好替换的位点(含二硫键 Cys120,其余多为表面 / C 端)
2337
打分行数 = 123 位点 × ~19 替换
650M
esm2_t33_650M_UR50D · masked-marginal · device cuda

运行元数据:run_date 2026-06-06 · git 9cff69f · results/m1_esm_zeroshot/run_metadata.json

数据校勘 · 为什么这里写 7/8
⚖ 一处必须讲清的口径更正

本页给出的二硫键召回数是 7/8,直接按项目自身 notebook 的判据("某替换 LLR 为正 = 模型没看见该约束")对 esm_dms_matrix.tsv 的 2337 行实测打分重新核算。项目早期的记忆与摘要里曾记为 4/8 等结论,与实测不一致 —— 本页以实测为准,并且未改动任何原始文件

项目早期摘要 / 记忆所记实测矩阵重算(本页采用)
二硫键 Cys 召回4 / 87 / 8
漏掉的位置C6–C120 整对漏掉仅 Cys120(Cys6 实测 LLR=−6.205,强召回)
二硫键配对写法…C61–C76 / C73–C90C61–C77 / C73–C91(与 known_effects.tsv、源码一致)

三重互证:源码 DISULFIDE_CYS_POSITIONS=(6,28,61,73,77,91,111,120) · notebook 判据 · 2337 行实测 LLR。所有对外数字均以此实测为准。