AlphaFold 结构预测可信吗?用 4 个指标快速做一轮质量控制体检
【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold
AlphaFold 结构预测跑完后,先别急着盯丝带图,要看质量控制指标。pLDDT、PAE、pTM、ipTM 这四个数,共同决定预测结构可信度,这篇文章带你把它们逐个读明白。
如何判断 AlphaFold 预测可靠:一张质量体检表
拿到预测结果,先看这 4 个数字:全部健康,结构可以放心用;任何一项亮红灯,你都要知道问题出在哪一级。四个指标各管一摊,职责不重叠:
| 指标 | 衡量什么 | 取值范围 | 一眼怎么读 | 什么信号要警惕 |
|---|---|---|---|---|
| pLDDT | 单个残基局部位置的可信程度 | 0–100 | 分数越高该残基越可靠,逐残基画曲线 | 关键功能区落在 50 分以下 |
| PAE | 一对残基相对位置的预测误差 | 单位 Å | 热图越暗越好,看对角线外的块 | 两个结构域之间的块明显偏亮 |
| pTM | 整体折叠的可靠性 | 0–1 | 单一数值,越接近 1 越好 | 低于 0.5,整体折叠存疑 |
| ipTM | 复合物中不同链之间的界面质量 | 0–1 | 越高说明链间结合越可信 | pTM 高但 ipTM 低,结合可能不成立 |
四者的分工可以这么记:pLDDT 是逐残基的"打分卡",PAE 是一张"区域间关系可信度地图",pTM 和 ipTM 则分别给整体和界面各打一个总分。对应实现都在 alphafold/common/confidence.py 里,compute_plddt算 pLDDT,compute_predicted_aligned_error算 PAE,predicted_tm_score算 pTM 和 ipTM。
pLDDT 分数怎么看:D/L/M/H 四档行动指南
pLDDT 的取值不是拍脑袋分的,源码里对每个残基的 logits 做 softmax 后按 bin 中心加权平均,再乘 100 落到 0–100 分:
def compute_plddt(logits: np.ndarray) -> np.ndarray: num_bins = logits.shape[-1] bin_width = 1.0 / num_bins bin_centers = np.arange(start=0.5 * bin_width, stop=1.0, step=bin_width) probs = scipy.special.softmax(logits, axis=-1) predicted_lddt_ca = np.sum(probs * bin_centers[None, :], axis=-1) return predicted_lddt_ca * 100模型输出的不是一串分数,而是一段区间上的概率分布,pLDDT 就是这段分布的期望值。拿到分数后,按下面四档对照源码里的分档逻辑决定动作:
def _confidence_category(score: float) -> str: if 0 <= score < 50: return 'D' if 50 <= score < 70: return 'L' elif 70 <= score < 90: return 'M' elif 90 <= score <= 100: return 'H'- D 档(0–50):大概率是内在无序区,模型自己也在"打赌"。做法:把这段序列从下游任务里剔出去;如果你的课题就是 IDP,可以拿它当无序区证据,但别拿坐标做任何几何计算。
- L 档(50–70):结构可能有较大偏差,尤其常见于 loop 和链端。做法:只把它当整体走向参考,别在这段上做精确的残基级判断;回头核对 PAE 热图里对应位置是否也偏亮。
- M 档(70–90):二级结构层面的走向可信,原子级细节可能偏。做法:可以做功能区域定位、结构域划分这类中等精度任务;涉及结合口袋关键残基时,建议用实验数据或对接打分再交叉验证。
- H 档(90–100):模型最有把握的部分。做法:分子对接、突变位点挑选、结合位点识别优先放在这里;论文里引用的关键残基坐标,尽量都出自 H 档区域。
一个实用习惯:把 pLDDT 曲线和已知的活性位点序列号叠在一起看。关键残基落在哪一档,直接决定了这个预测对下游任务的可用深度。
PAE 热图解读三步走:先看对角线,再看跨区域块
PAE 回答的问题是:把两个残基对所在的局部对齐后,它们之间的距离平均会偏多少(单位 Å)。它不关心单个残基绝对位置,只关心"这两处相对摆对了吗"。热图横轴纵轴都是残基序号,颜色代表每对残基的预测对齐误差,数值越低越可信。按下面三步读:
第一步,扫对角线。沿主对角线的一条暗带,说明局部折叠可靠——相邻和近邻残基的相对位置都没问题。如果对角线上出现某一段突然变亮,那一段的局部结构本身就不可信,先去查它的 pLDDT 是不是也掉档了。
第二步,看对角线外的块。假设残基 10–60 和 120–170 是两个结构域,就看热图上对应行区间 × 列区间交叉出来的那块区域。颜色深(误差小)= 这两个域的相对取向可靠,你画的域间界面和相对位置可以放心用;颜色浅(误差大)= 两个域各自折叠没问题,但它们之间的夹角和距离是模型"猜"的。
第三步,看整图颜色分布。全图整体偏暗,说明这是个高置信目标;整体偏亮,说明大面积区域间关系都不可靠,结论要降级到"单体折叠"层面。还有一类信号值得单独记:整图对称位置的颜色差异——PAE 矩阵本身近似对称,如果某块区域显著偏亮且只在矩阵某一侧出现,多半对应该区域存在构象异质性,比如柔性接头连接的域。
三步走完,你可以对任何一段"域 A 相对域 B 朝向如何"的断言,说出"PAE 上对应块均值是 X Å,可靠/不可靠"这种有据可查的判断,而不是凭丝带图观感。
复合物才需要的两个数:pTM 看全局,ipTM 看界面
单链预测只需要 pLDDT 和 PAE;一旦是多链复合物,pTM 和 ipTM 就成了必须记录的两个总分,两者都在 0–1 之间。
pTM(预测 TM 分数)评估整个预测结构与真实结构在整体拓扑上的一致性,数值越接近 1 越好。它和"平均 pLDDT"的区别在于:平均 pLDDT 只看局部残基各自稳不稳,pTM 会把全局几何误差一起算进去——一条链局部都高置信、但整体摆错形状的复合物,平均 pLDDT 可能很高,pTM 却上不去。所以看复合物整体,优先看 pTM 而不是 pLDDT 均值。
ipTM(界面 pTM)只在"不同链之间的残基对"上计算(源码里用asym_id把跨链残基对 mask 出来),专门回答一个问题:这两条链贴在一起这个界面,可信吗。ipTM 高,说明链间接触界面的相对位置预测靠谱;ipTM 低,即使每条链单体折叠都漂亮,这个复合物构象也不该直接用于界面突变或对接研究。
组合起来读,常见三种情形:pTM 高 + ipTM 高,复合物整体和界面都可信,放心用;pTM 高 + ipTM 低,每条链各自折叠没问题,但结合方式可疑,先查文献确认该复合体是否真实存在;pTM 低,整体折叠都有问题,先怀疑输入(序列、链组成、化学计量比)而不是纠结指标本身。
指标是模型给的,但模型有多可靠取决于你怎么跑
同样一条序列,运行参数不同,输出的置信度指标稳定性可以差很多。跑之前确认三件事:
输入序列质量。序列要完整、准确,截断或缺失的序列会让 MSA 检索质量下降,间接拉低 pLDDT。复合物场景下更要保证链的顺序和化学计量比正确——ipTM 的计算直接依赖asym_id的链划分,链给错了,界面指标无从谈起。
seed 数量。run_alphafold.py默认每个模型 5 个 seed,多 seed 跑出的结果取置信度最高的那个。官方技术笔记明确建议:对非常大或困难的目标,把 seed 提到 20,代价是计算时间成倍增加,普通目标没必要。
recycling 次数。默认回收 3 次,把上一轮的结构信息回喂进模型再预测。技术笔记中 CASP15 基线把上限提到了 20 次并配合早停,对顽固目标同样可以适当加。加 seed 和加 recycling 都只影响"难目标"的收益,别为了保险无脑拉满。
另外一句带过:v2.3.0 换上了新训练截止日(2021-09-30)的 AlphaFold-Multimer 权重,训练数据里大复合物和冷冻电镜结构占比大幅提高(见 docs/technical_note_v2.3.0.md),大型复合物的预测准确性相比旧版权重有明显提升,跑复合物优先用新版。
常见误判场景:4 个容易踩的坑
Q1:pLDDT 大片低于 50,是不是预测失败了?不一定。D 档最常见的对应就是内在无序区,实验结构(X-ray/EM)里这类区域往往同样没有电子密度。先拿序列查一下无序区数据库或文献,确认是"模型没猜对"还是"这个蛋白本来就没结构",两者结论完全不同。
Q2:pLDDT 全线很高,还能信吗?不能只看 pLDDT。它只保证局部残基各自摆得稳,两个域之间的相对取向完全可能不可靠。必须翻 PAE 热图看跨区域块——对角线暗、交叉块亮,是典型的"每个域都对、但域间关系是猜的"结构。
Q3:预测结构和实验结构叠不上,听谁的?先看叠不上区域的 pLDDT:如果落在 H 档却对不上实验,说明这条预测结果确实不能信,考虑加 seed、加 recycling 重跑,或检查输入序列是否与实验品系一致;如果落在 D/L 档,那多半是模型诚实地区分出了低置信区,以实验结构为准即可。
上图是两个 CASP14 目标中预测(蓝)与实验(绿)结构的叠加,下方 GDT 分数就是"预测和实验到底像不像"的直接量尺——它和 pLDDT 的差别在于:GDT 需要实验结构对照,而 pLDDT/PAE 在预测阶段就能给出,这正是做质量控制时你最常依赖它们的原因。
Q4:单链 pTM 很高,复合物 ipTM 却很低,复合物到底有没有?模型在说:每条链的折叠我有把握,但"它们贴在一起"这件事我没把握。这既可能是真实的弱结合或瞬态相互作用,也可能是这个复合体根本不成立。先查文献和数据库里的结合证据,再决定是补实验还是放弃该复合物假设。
收个尾:交付报告前的 5 步自查清单
- 画 pLDDT 逐残基曲线,标出 D/L/M/H 边界,确认你的关键功能残基落在哪一档。
- 打开 PAE 热图,按"对角线 → 跨区域块 → 整图分布"三步过一遍,对每个域间关系断言都能报出对应块的大致误差。
- 复合物额外记录 pTM 和 ipTM,按"pTM 高 ipTM 低 = 界面可疑"的规则做一轮筛查。
- 把预测结果与已知同源结构或实验数据比对一次,不一致区域回查 pLDDT 分档。
- 结论涉及关键位点时,用更多 seed 或更高 recycling 重跑一遍,确认指标稳定再写入报告。
深入源码
- alphafold/common/confidence.py:pLDDT、PAE、pTM/ipTM 四个指标的全部计算实现,
compute_plddt、compute_predicted_aligned_error、predicted_tm_score是核心入口。 - alphafold/model/lddt.py:LDDT 损失与预测头相关的模型侧实现,理解"模型为什么能输出置信度"从这里入手。
- docs/technical_note_v2.3.0.md:v2.3.0 的训练数据更新与推荐推理参数(seed 数、recycling 上限)的官方说明。
【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考