
我见过不少刚接触AlphaFold的同行第一次跑完拿到结构就特别兴奋打开PyMOL把pLDDT值往模型上一映射看到大片大片蓝色和青色立刻觉得“成了”然后直接把这模型拿去做对接、做突变解释甚至写进文章里。直到后面实验数据回来才发现两个结构域之间的相对朝向完全反了这时候才有人回过头来翻AlphaFold的输出文件结果发现PAE矩阵里对应的区域早就显示着一片黄绿色。这就是我写这篇指南的初衷在AlphaFold预测结果里pLDDT只是最基础的一个指标它只告诉你每个残基自己位置预测得有多可信而结构域之间的相对位置靠不靠谱、整条链的折叠模型能不能采信、多聚体的结合界面有多大概率是对的这些分别要看PAE、pTM和ipTM。把这几个指标一起读懂了你才算真正会用AlphaFold的结果。这篇文章不绕弯子直接把这四个指标讲透它们各自在说什么、怎么从输出文件里提取、阈值怎么定、怎么综合起来判断一个预测结构能不能用。无论你是刚跑完ColabFold的新手还是准备把预测结果往文章里放的科研人员这篇都值得花十分钟看完。1. 先把丑话说在前面为什么pLDDT高分不等于模型可信1.1 我见过最典型的翻车现场去年有个朋友做某个含有两个结构域的酶AlphaFold给出的是两个结构域分开折叠、靠一段柔性linker连着的构象。每个结构域的pLDDT都超过了90整条链看起来也非常漂亮他拿这个结构去解释底物特异性差一点就投出去了。后来他们用SAXS做了个验证发现溶液中两个结构域的夹角和预测结构差了将近90度。问题出在哪回看PAE矩阵两个结构域之间那两块区域几乎是黄色和浅绿色的也就是说AlphaFold虽然对每个结构域内部的折叠很有信心但对这两个刚性结构域之间的相对朝向完全拿不准。pLDDT再高也只能说明“这一段自己折叠得好”完全不代表“它和旁边的那一段之间摆对了位置”。这不是个例。很多做结构生物学或者蛋白质工程的人把AlphaFold当成上帝视角跑出来就默认是对的。实际上AlphaFold自己已经用PAE给你标了“这里我不确定”只是太多人没去看。1.2 AlphaFold到底输出了什么要理解这四个指标先得知道AlphaFold跑完会给你哪些东西。以标准AlphaFold2为例工作目录里常见的有ranked_0.pdb到ranked_4.pdb5个预测模型按置信度排序后的PDB文件ranked_0.pdb通常是最好的那个。unrelaxed_model_*.pdb没有做能量优化的原始模型。ranking_debug.json包含pLDDT平均值、pTM、ipTM等汇总信息的JSON文件。result_model_*.pklPython pickle格式的原始结果里面有每个残基的pLDDT、完整的PAE矩阵、pTM和ipTM。msas/跑模型用的多序列比对文件调试的时候会用到。如果你用的是ColabFold或者本地的localcolabfold输出文件大同小异通常还有一张现成的PAE热图PNG和scores JSON。指标全称层级回答的问题pLDDTpredicted Local Distance Difference Test残基级每个残基自身的预测置信度PAEPredicted Aligned Error残基对级任意两个残基之间相对位置的预测误差pTMpredicted Template Modeling score单链全局整条链的折叠拓扑是否可信ipTMinterface pTM多聚体界面亚基之间相对位置的置信度这四个指标不是替代关系而是互补关系。pLDDT告诉你哪里能信PAE告诉你结构域之间怎么摆pTM和ipTM给你一个整体的量化判断。下面一个一个说。2. 一张图看懂pLDDT残基置信度的正确打开方式2.1 pLDDT到底在说什么pLDDT全称是predicted Local Distance Difference Test它是AlphaFold对每个残基预测坐标准确性的一个自我评估。简单理解AlphaFold在预测某个残基的位置时同时也给出一个“我有多大把握”的分数0到100分分数越高越有把握。这个分数在PDB文件里就存在B-factor列里。所以当你用PyMOL或者其他分子可视化软件按照B-factor给模型上色的时候看到的颜色分布就是pLDDT的分布。pLDDT是残基级别的指标每个残基只有一个分数。它不提供任何关于“残基A和残基B相对位置”的信息。两段残基各自都有一个很高的pLDDT但它们之间的角度、距离是不是预测对了pLDDT无法回答这个问题要交给PAE。2.2 分档阈值和实际使用建议AlphaFold论文里给过一个粗略的参考分档实际用下来也是比较靠谱的pLDDT 90置信度很高。通常对应蛋白质核心、稳定二级结构、结构域内部。这类区域的骨架坐标误差估计在1埃左右。70 pLDDT ≤ 90置信度还不错。常见于次级结构、环区边缘、溶剂暴露区域误差估计在1到3埃之间。50 pLDDT ≤ 70较低置信度。通常是loop、linker、柔性区域误差可能到3到5埃。这个区域不宜用来做精细的结构分析。pLDDT ≤ 50很低置信度往往对应天然无序区域或者预测完全失败的区域。这个区域的存在本身可能具有生物学意义但不能当作确定结构使用。我自己的习惯是做模型质量报告的时候不只看平均pLDDT还会画一个pLDDT随残基位置的曲线配合二级结构注释看。如果一条链中间有一整段低于50后面又说这是底物结合位点那就得警惕了。注意pLDDT低并不一定代表AlphaFold“算错了”。对天然无序蛋白来说低pLDDT恰恰是正确预测。所以判断一个区域是不是“坏”之前先查查它是不是 intrinsically disordered region。2.3 在PyMOL里如何看pLDDT打开ranked_0.pdb在PyMOL命令行里执行spectrum b, blue_white_red, minimum0, maximum100这样就能用蓝色到红色显示pLDDT蓝色可信、红色不可信。如果觉得蓝白红不够直观可以改成彩虹色spectrum b, rainbow, minimum0, maximum100这一步基本是拿到预测结构后必做的第一个可视化操作。但我要强调做完这一步只是看见了pLDDT不等于完成了置信度评估。真正的评估得继续往下看PAE。3. PAE才是结构域相对位置的“测谎仪”3.1 PAE矩阵怎么读PAE的全称是Predicted Aligned Error它输出的是一个L乘L的矩阵L是残基总数。矩阵中第i行第j列的元素表示如果把残基j当作参考点进行结构对齐残基i的预测位置误差的期望值单位是埃Å。这个定义听起来有点绕但理解起来不难。你可以把PAE矩阵想象成一张“信任度地图”深蓝色0到5埃两个残基之间的相对位置预测得很准。浅蓝色到绿色5到10埃相对位置有一定可信度但存在几埃的偏差。黄绿色到红色15到30埃以上两个残基之间的相对位置基本不可信。注意PAE矩阵不一定对称。PAE[i][j]和PAE[j][i]代表的是以不同残基为参考时的误差不过实际使用中大家更关心的是矩阵里的分块模式而不是单个元素。3.2 两种典型的PAE模式我把实际预测常见的PAE图分成两大类帮你快速判断一个预测结构靠不靠谱第一种清晰的深蓝色分块块间界限分明。如果PAE图出现几个深蓝色的方形区域说明每个区域内的残基构成了一个刚性单元通常对应结构域。如果两个蓝色块之间也是深蓝或者浅蓝说明这两个结构域之间的相对位置AlphaFold也很有把握这种预测整体可靠性很高可以直接拿去做后续分析。第二种深蓝色分块但块与块之间是高PAE区域。这是最常见的翻车配置。每个结构域自己折叠得很好pLDDT高PAE对角块内蓝但两个结构域之间的区域是黄绿色甚至橙色意味着AlphaFold压根不确定这两个结构域在空间中怎么摆放。这种模型如果整体去看样子会很吓人地合理但你要是拿去做分子对接或者动力学模拟结果基本是自欺欺人。还有一种情况出现在多聚体里链与链之间的PAE区块如果是杂乱的黄色、红色说明两个亚基的相对位置不可靠。这个问题在下一节结合ipTM一起讲。3.3 从pkl文件里提取PAEPAE矩阵不在PDB文件里它在pickle结果文件里。可以用Python读取import pickle import numpy as np with open(result_model_0.pkl, rb) as f: data pickle.load(f) pae data[predicted_aligned_error] # 形状 (L, L) plddt data[plddt] # 形状 (L,) ptm data[ptm] # 标量 print(pae.shape)假设你想判断第1到120号残基和第121到280号残基之间的PAEdom1 slice(0, 120) # 0-based dom2 slice(120, 280) block_pae pae[dom1, dom2] print(block_pae.mean()) # 平均PAE提示结果模型文件通常是result_model_0.pkl到result_model_4.pkl分别对应5个预测模型。不同AlphaFold版本的键名可能略有差异读之前先print(data.keys())确认一下。4. pTM和ipTM全局和界面的“定海神针”4.1 pTM整条链折叠的信心指数pTM的全称是predicted Template Modeling score它是一个0到1之间的分数衡量的是预测模型与真实结构之间整体的相似程度。数值越接近1越好。这个概念的来源是TM-score。TM-score是结构生物学里比较两个蛋白质结构相似度的经典指标0.5以上通常被认为两个共享相同的折叠拓扑。AlphaFold将其改造成了一个预测指标不是拿真实结构比较而是让模型自己估一个“我和真实结构相比能拿多少TM-score”。pTM的阈值建议如下pTM 0.8整体折叠拓扑几乎可以肯定是对的模型质量很高。0.5 pTM ≤ 0.8整体折叠方向可能正确局部结构可能需要谨慎解读。pTM ≤ 0.5整体拓扑不可信建议不要直接把模型整条当结论。跑过AlphaFold2人都知道ranking_debug.json里排第一的模型就是用pTM单体或者组合分数多聚体来排序的。4.2 ipTM复合物界面的专属指标ipTM全称是interface predicted Template Modeling score只看“界面”。当预测对象是蛋白质复合物二聚体、三聚体等时界面残基之间的相对位置是否可信pLDDT和pTM都回答不了要靠ipTM。ipTM的计算方式与pTM类似但只对界面上的残基对进行评估。所谓界面一般指不同链之间距离较近、有相互接触的区域。ipTM越高说明AlphaFold对亚基之间怎么结合越有把握。参考阈值ipTM 0.8界面预测非常可靠复合物组装方式大概率是对的。0.6 ipTM ≤ 0.8界面预测有一定可信度建议结合交联质谱、突变实验或者其它实验数据辅助判断。ipTM ≤ 0.6界面预测不可靠。这并不意味着该蛋白一定不形成复合物很可能AlphaFold只是找不到确定的组装模式。在多聚体预测中AlphaFold用来排序模型的分数是0.8 * ipTM 0.2 * pTM。这个权重本身就说明了ipTM对复合物预测的重要性。4.3 从JSON和pkl里直接拿分数如果你跑的是标准AlphaFold2ranking_debug.json里就有这些分数{ iptm: 0.86, plddt: 0.92, ptm: 0.91 }如果是单体预测一般只输出pTM没有ipTM。result_model_*.pkl里也能拿iptm data.get(iptm, None) print(iptm)注意不同版本的AlphaFold、ColabFold、本地封装脚本输出的字段名可能略有不同有的在ranking_debug.json里叫iptm有的叫chain_iptm还有的提供chain_pTM。读取前用json.load()打印一下所有键名最稳妥。5. 多指标综合判读别拆开看要合起来用5.1 单体预测判读流程只预测一条链时我的判断顺序是这样第一步看pTM。如果pTM低于0.5先别急着用这个模型考虑是不是多序列比对太浅、或者蛋白本身很多无序区域。 第二步看pLDDT分布。不是只看平均分要看低pLDDT区域落在哪里是不是重要功能区。 第三步最关键的一步看PAE矩阵分块。如果结构域之间PAE高即使pLDDT和pTM都不错这个模型的“整体三维摆放”也不能轻信。简单总结成一句话pLDDT决定局部能不能用PAE决定结构域之间怎么摆能不能信pTM决定整条链折叠拓扑有没有方向性错误。5.2 多聚体预测判读流程多聚体在单链步骤基础上再多看两个东西。链内指标正常看pLDDT和链内PAE。链间层面先看ipTM如果ipTM大于0.8基本可以默认复合物组装方式是可信的。然后打开PAE矩阵看对应链间的那几个区块是否为深蓝色。如果ipTM高但链间PAE东一块西一块乱糟糟建议还是留个心眼结合实验手段验证。另外多聚体预测还要特别注意对称性问题。很多天然复合物是对称的比如同源二聚体。如果预测结果里两条链的构象不对称或者链间接触面跟你已知的突变数据对不上AI的“信心”再高也要服从实验事实。5.3 实例解读看着像成功其实不可靠的情况我拿一个典型例子来演示综合判读。假设预测一个双结构域蛋白结果如下平均pLDDT89.5pTM0.82N端结构域1-140pLDDT平均91C端结构域141-300pLDDT平均88结构域间PAE平均17埃只看前两行你会觉得这次预测质量很高。但结构域间PAE平均17埃这个数字已经明确告诉你AlphaFold自己都没把握这两个结构域的相对方位。这个模型局部结构每个结构域内部可以用但整体形态不能拿出来说事。同样预测一个同源二聚体时单体pLDDT90pTM0.89ipTM0.52链间PAE平均约12埃且矩阵中界面区域呈黄绿色这种情况单体内部结构可信但二聚体界面走向基本没法确定。如果你非要研究二聚化的关键残基没有任何实验数据直接基于这个模型下结论风险很大。6. 实操拿到结果后快速跑通全套指标分析6.1 梳理输出文件先把标准AlphaFold2的所有输出文件理清楚避免对着终端发呆。一个典型的工作目录可能是output/ ├── ranked_0.pdb ├── ranked_1.pdb ├── ranked_2.pdb ├── ranked_3.pdb ├── ranked_4.pdb ├── ranking_debug.json ├── result_model_0.pkl ├── result_model_1.pkl ├── result_model_2.pkl ├── result_model_3.pkl ├── result_model_4.pkl ├── timings.json ├── unrelaxed_model_0.pdb └── msas/先打开ranking_debug.json看分数汇总再决定用哪个模型。通常用ranked_0.pdb就没错但如果你发现ranked_0和ranked_1两个模型在某些关键区域差异很大那就应该把两个都打开看看PAE。6.2 用Python读取pkl和json快速汇总关键指标我平时会写一个很小的脚本把5个模型的关键指标一次输出import pickle import json with open(ranking_debug.json) as f: ranking json.load(f) print(ranking.keys()) for rank in range(5): with open(fresult_model_{rank}.pkl, rb) as f: data pickle.load(f) plddt_mean data[plddt].mean() ptm data.get(ptm, None) iptm data.get(iptm, None) print(franked_{rank}: mean_pLDDT{plddt_mean:.1f}, pTM{ptm:.3f}, ipTM{iptm})如果ranking_debug.json里已有这些字段直接用里面的值也行。不同脚本命名字段可能不同打印ranking.keys()和data.keys()永远是第一步。6.3 快速给结构域间PAE做定量除了肉眼读热图我建议把关键区域的平均PAE算出来。比如有一个预测模型残基1到100是一个结构域101到200是另一个结构域则import numpy as np with open(result_model_0.pkl, rb) as f: data pickle.load(f) pae data[predicted_aligned_error] block_mean pae[0:100, 101:201].mean() print(block_mean)如果这个平均PAE超过10甚至超过15我对这个模型整体构象的信任度就会大幅下降。7. 常见问题排查与避坑实录7.1 常见问题速查表现象可能原因建议pLDDT整体很高但PAE结构域间很高AlphaFold对结构域相对位置不确定不要使用整体构象局部功能域可用ipTM很低但单体pLDDT很高界面组装方式不可信结合交联质谱、共沉淀等实验数据判断pLDDT在一片区域内特别低天然无序区域或预测失败查UniProt注释看是否标注了disorder5个模型的关键区域差异巨大该区域本身构象自由度大不要挑最好看的模型当唯一结论JSON/PKL里找不到ipTM你跑的是单体预测单体本来就没有ipTM正常链间PAE矩阵不对称多聚体组装预测可能不可靠结合对称性假设检查预测模型7.2 三个容易忽略的细节第一个细节ranked_0.pdb是按分数排序后的结果不一定是运行顺序里的model_0。这看起来是小事但很多人直接打开unrelaxed_model_2.pdb跟别人讨论问题结果用的不是最好的模型。第二个细节多聚体建模时输入的序列顺序会影响预测结果。AlphaFold对亚基复制顺序、linker长度都比较敏感。如果你预测的是一个异源三聚体A链、B链、C链的顺序最好按照实验中的组装关系来排别为了省事把一个复合物序列全拼成一条链那样会把界面信息弄丢。很多时候建议每个亚基单独一行输入而不是拼成一个长序列。第三个细节AlphaFold预测的是蛋白质的某个稳定状态不一定是生理状态。别把AlphaFold当成“唯一真实结构”尤其是那些构象变化显著的蛋白。预测结果更多时候是“一个可能的稳定构象”不是全套构象集合。如果蛋白存在开放和闭合两种状态AlphaFold往往只会给出其中一种。7.3 关于AlphaFold3和云平台的提醒AlphaFold3发布后不少平台也开始提供类似的置信度输出大体上还是pLDDT、PAE这些概念但字段和阈值可能不一样。在切换工具的时候务必先看工具文档确认输出的指标定义与你之前理解的是否一致。不要拿着AlphaFold2的阈值直接套用到别的工具输出上。同时很多在线云平台会直接帮你画好PAE图生成颜色漂亮的报告。图形是方便但自己做一遍上述的数值提取能对模型质量有一个更踏实的判断也能在审稿人问起细节时有理有据。结尾我个人实际操作中最大的体会是AlphaFold的结果其实已经自带了很多“我在这里没把握”的信号只是这些信号藏在PAE矩阵和pTM/ipTM里不会像pLDDT那样直接被染在模型上。养成“pLDDT打底、PAE看构象、pTM/ipTM定全局”的习惯之后我几乎没再被预测结构的漂亮外观坑过。最后再分享一个小技巧每次分析完一个蛋白把pLDDT分布图、PAE热图、pTM/ipTM数值整理成一页PDF存起来。等实验数据回来之后回头对照你会对这些指标的可靠性建立非常直观的感觉。这比背一百遍阈值都有用。