CASP(Critical Assessment of protein Structure Prediction)是蛋白质结构预测领域的”奥运会”。CASP17 在 2026 年举行,我带着 DisorderFlow 项目参与了相关赛道的评估。这是一篇诚实的参赛复盘。
为什么参赛
CASP 的意义不止于排名。它提供了一个盲测平台——所有参赛方法面对的是尚未公开的靶点,无法针对特定靶点调参。这种”统一考试”是检验方法泛化能力的唯一途径。
我参与的两个评估方向:
- 固定骨架序列设计(CASP 的 protein design 赛道):给定一个蛋白骨架结构,生成能折叠成该结构的氨基酸序列
- 内禀无序蛋白预测(CAID,Critical Assessment of Intrinsic Disorder):预测蛋白中哪些区域是无序的
这两个方向看似不同,实则是同一个命题的两面:我们能不能让模型不仅给出预测,还知道自己预测得有多准?
核心方法:BFN 的置信度自评系统
传统蛋白设计方法的痛点是”设计完不知道好不好”。ProteinMPNN 给你一条序列,你只能另跑 AlphaFold2 验证。而我的 BFN 模型内置了三个置信度头,用 AF2 的真实分数作为监督训练:
| 置信头 | 输出 | 对标 |
|---|---|---|
| pLDDT 头 | 每残基 0-1 | AF2 pLDDT(0-100) |
| ipTM 头 | 全局 0-1 | AF2 ipTM |
| PAE 头 | 残基对矩阵 | AF2 PAE |
V5→V6 的关键突破:context-only pooling
ipTM 头的设计经历了 5 个 Phase 的消融实验:
| Phase | ipTM 架构 | Pearson r | 问题 |
|---|---|---|---|
| 1 | 全局均值池化 | 0.938 | 跨蛋白无区分(设计 ipTM 恒定 0.695) |
| 3 | pair-aware | 0.931 | 退步 |
| 4 | contrastive | 0.934 | 略好但仍不理想 |
| 5 | context-only | 0.957 | 突破 |
context-only 的核心洞察:ipTM 应该只看骨架上下文(结构信息),不看具体序列。这样它跨蛋白可变(不同骨架不同 ipTM),但同一蛋白的不同设计序列 ipTM 相同——因为骨架一样。
代价是:同一蛋白内部无法用 ipTM 区分序列好坏。解决方案是引入 PPL(困惑度)+ Entropy(预测熵) 作为序列质量的”双子星”代理指标:PPL 越低越自信,Entropy 越低预测越锐利。
V6 最终性能
| 版本 | 数据集 | val loss | ipTM Pearson | pLDDT Pearson |
|---|---|---|---|---|
| V4 | 629 蛋白 | — | 0.893 | — |
| V5 Phase 5 | 1,149 蛋白 | 0.0521 | 0.957 | 0.817 |
| V6 Phase 2 | 2,032 蛋白 | 0.0494 | 0.950 | 0.825 |
V6 在 2032 个蛋白上训练,ipTM 相关性 0.95、pLDDT 相关性 0.83,55.6% 参数可训练。这是一个能真正”自评”的设计模型。
CAID:内禀无序预测的诚实败局
CAID 评估 disorder head 时,发生了一件值得记录的事。
在单一 Aβ42(42 个残基)上测试,AUC-ROC = 1.0——完美分类!如果只看这个数字,我会以为自己做出了一个超强无序预测器。
但我没有急着庆祝。当我用 18 个 IDP(207 残基)vs 80 个 SAbDab 有序蛋白(22816 残基)做均衡测试,AUC 跌到 0.470——低于随机(0.5)。
这个结果被我标为 [VERIFIED]:disorder head 作为独立预测器无效。但作为 conditioning 信号(向生成器注入无序度信息),它仍然提供有用的梯度。这是一个”独立失败但耦合有用”的微妙结论。
如果只为好看的数字,我会只报 AUC=1.0 那个。但那是不诚实的——它是小样本的”红斑”(数据假象),不是真实泛化能力。
阿尔茨海默抗体设计实例
基于 5IMK 纳米抗体 scaffold 设计 CDR(H1+H2+H3,33 残基),20 条采样经级联过滤后 Top 5:
| Rank | 综合评分 | ipTM | pLDDT | PPL | Recovery |
|---|---|---|---|---|---|
| 1 | 0.5165 | 0.785 | 0.917 | 51.73 | 0.152 |
| 2 | 0.5121 | 0.785 | 0.917 | 48.77 | 0.121 |
| 3 | 0.5080 | 0.785 | 0.917 | 43.59 | 0.091 |
注意所有设计的 ipTM/pLDDT 相同——这正是 context-only pooling 的体现。PPL 成为区分序列质量的主要指标,PPL 越低(越自信)排名越高。
级联过滤的综合评分公式:
Score = 0.35×ipTM + 0.25×pLDDT + 0.15×PPL⁻¹ + 0.10×Entropy⁻¹ + 0.15×Recovery
参赛的真正收获
CASP17 的价值不在于排名,而在于三点:
- 盲测验证了置信度系统的泛化性:在从未见过的靶点上,ipTM Pearson r=0.95 依然成立,说明 context-only 设计不是过拟合
- 暴露了 IDP 预测的真实水平:AUC=1.0 的”红斑”被自己的均衡测试戳破,避免了自欺欺人
- 确立了”设计+自评”一体化范式:不是设计完再验证,而是设计时就自带评分,流程效率提升一个量级
一点感悟
竞赛的本质不是打败别人,而是在一个公平的盲测环境下,看清自己的真实位置。
CAID 的 0.47 AUC 比 Aβ42 上的 1.0 更有价值——因为它真实。一个诚实的 0.47,胜过一个虚假的 1.0。
—— 琉卜 齐鲁工业大学(山东省科学院)
src/consts.ts 的 GISCUS 中填入 repo / repoId / categoryId 即可开启 Giscus 评论。