2. 蛋白质结构预测:我们到底在解决什么问题?
聊 EvoFormer 之前,得先把问题本身搞清楚。蛋白质结构预测,说白了就是:给我一条氨基酸序列,你给我算出它折叠成什么样的三维结构。
听起来简单,做起来可不容易。我刚开始接触这个领域时,觉得这不就是个回归问题吗?后来才发现,这背后藏着太多生物学和物理学的坑。
2.1 输入:我们喂给模型什么?
预测的起点是数据。模型需要的输入其实就两大类。一类是序列本身,另一类是进化信息。
2.1.1 序列输入
这个最好理解。一条蛋白质由20种氨基酸组成。我们可以用字母表示,比如“MALWMRLLPLLALL...”这串字符。
但机器认不了字母。需要把它们转成数字。常用的做法是 one-hot 编码。每个氨基酸用一个20维的向量表示。
示例:丙氨酸(Ala) -> [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
精氨酸(Arg) -> [0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
一个人习惯用这种方式。简单直接,不会丢失信息。
AlphaFold 在 EvoFormer 之前,还会做一些特征工程,比如用预训练的语言模型提取序列特征。但 EvoFormer 在这方面做了简化。
2.1.2 进化信息:MSA 和模板
这才是核心。光看一条序列,很难预测结构。但如果有上百条、上千条同源序列呢?
这就是多序列比对(MSA)。把目标序列和它的远亲近邻排在一起。哪些位置保守,哪些位置可以变,一目了然。
我遇到过一些新手,觉得 MSA 就是堆数据。其实不然。MSA 的质量直接决定预测的成败。有次我在一个项目里用了低质量的 MSA,结果跑出来的结构乱成一团。
除了 MSA,还有模板。就是已经解析出来的同源结构。EvoFormer 会利用这些已知结构作为参考。
2.2 输出:模型吐出来什么?
模型输出的形式有很多种。最直接的,就是一个三维坐标。但这里面有讲究。
2.2.1 结构表示
AlphaFold 输出的不是绝对坐标,而是残基之间的距离和角度分布。它预测的是每对残基之间的距离分布。
输出格式示例(简化):
残基对 (i,j) 的距离分布:P(d) = [0.01, 0.02, ..., 0.15]
残基 i 和 j 之间的扭转角分布:P(φ, ψ)
然后通过一个叫做“结构模块”的组件,把这些分布转化为具体的三维坐标。你想想看,直接从分布变成坐标,这个转化过程本身就过滤掉了不少噪音。
2.2.2 置信度指标
模型不是光吐出结果就完了。它还得告诉你哪些地方靠谱,哪些地方存疑。
AlphaFold 输出一个 pLDDT 分数。每个残基都有一个。分数越高,代表这个残基的局部结构越可信。
- pLDDT > 90:高置信度。可以放心使用。
- 70 < pLDDT < 90:可接受,但需要留意。
- pLDDT < 50:低置信度。这个区域可能是一个无序区域。
我记得第一次看 pLDDT 分布图,发现预测结果的末端总是很低。后来才明白,这其实是模型在告诉我们:这段序列可能天生就是无结构的。
2.2.3 多态性表示
蛋白质不是只有一个构象。有些蛋白质在溶液中会有多种状态。AlphaFold 用 PAE(Predicted Aligned Error)矩阵来表示两个残基之间的相对位置不确定性。
PAE 值小,代表这两个残基的相对位置很确定。PAE 值大,说明这两个 domain 之间可能有相对运动。
2.3 评价指标:怎么判断模型好不好?
有了预测结果,怎么评价它好不好?这需要和实验结构做对比。
2.3.1 RMSD(均方根偏差)
这是最经典的指标。把预测结构和实验结构叠起来,算每个对应原子之间的距离平方和,再开根号。
RMSD = sqrt( 1/N * Σ ||x_i - y_i||² )
其中 x_i 是预测坐标,y_i 是实验坐标,N 是原子数
RMSD 越小越好。但要注意,RMSD 对整体刚体位移很敏感。预测结构如果平移了一点,RMSD 就会变大。这在生物学上其实没什么影响。
2.3.2 TM-score(模板建模分数)
TM-score 克服了这个缺点。它对距离进行非线性缩放。
远距离的配对权重低,近距离的配对权重高。这样,即使整体结构有偏移,只要局部拓扑正确,TM-score 依然很高。
- TM-score > 0.5:预测结构很可能正确折叠。
- TM-score < 0.17:预测结构和真实结构没有关系。
这个指标在 CASP 竞赛里用得最多。AlphaFold 当年就是靠这个指标震惊了全世界的。
2.3.3 GDT(全局距离测试)
GDT 算的是在不同距离阈值下,有多少残基的 Cα 原子落在阈值内。
GDT = (N(<1Å) + N(<2Å) + N(<4Å) + N(<8Å)) / (4 * N_total)
这个分数的范围是 0 到 1。分数越高越好。CASI 竞赛就是用 GDT 作为主要指标。
2.3.4 对比汇总
| 指标 | 核心思想 | 优点 | 缺点 |
|---|---|---|---|
| RMSD | 原子坐标差的均方根 | 物理直观,计算简单 | 对全局旋转敏感 |
| TM-score | 距离非线形加权 | 对拓扑敏感,不敏感全局偏移 | 计算稍复杂 |
| GDT | 多阈值下残基匹配比例 | 对片段错误鲁棒 | 阈值选择影响结果 |
| lDDT | 局部距离差异测试 | 对局部结构敏感 | 不反映全局折叠 |
2.3.5 其他指标
除了这些,还有 lDDT(局部距离差异测试)。它关注的是局部原子距离的一致性。AlphaFold 的 pLDDT 就是从 lDDT 演变来的。
还有 clash score(空间冲突分数)、rama score(拉氏图分数)这些。它们用来评估结构的物理合理性。
2.4 整体逻辑图
为了让这些概念更清晰,我画了一张图。从输入到输出,再到评估,整个流程一目了然。
2.5 实际应用中的挑战
理论说完了,聊聊实战。我见过有人拿 RMSD 来比较两个完全不同的结构。这没有意义。一定要先做结构对齐。
还有,pLDDT 低的区域不一定是模型错了。它可能就是一个天然无序区域。我有个项目,预测结果中有一段 pLDDT 低于30的区域。后来实验验证,那真是个无序区。
最后提一句输入质量。MSA 质量不好,再怎么调模型也不行。我曾经花了一周优化一个模型,结果发现是数据库里的同源序列有污染。换了数据库后,效果立马好了。
找到这里,应该对蛋白质结构预测的整体框架清楚了吧?输入、输出、评价,这三个环节扣得死死的。弄明白这个,才敢说真正理解了 EvoFormer 要解决什么问题。