AlphaFold 输出文件解析:5 个文件看懂预测结构与置信度
2026/9/11 7:45:25 网站建设 项目流程

AlphaFold 输出文件解析:5 个文件看懂预测结构与置信度

【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold

跑完一次预测,输出目录里会落下一串文件:unrelaxed_model_1.pdb、relaxed_model_1.pdb、ranked_0.pdb、confidence_model_1.json……先打开哪个?哪个最可信?这份 AlphaFold 输出文件解析指南带你按顺序过 5 个核心文件:从原子坐标,到逐残基置信度,再到挑出最好的模型,一次讲清。

扫一遍核心文件:谁管坐标,谁管置信度

先给一张总表,每个文件只回答一个问题,看完你就知道该翻哪个。

文件(格式)用途关键字段生成位置
relaxed_model_N.pdb / ranked_N.pdb(PDB)蛋白三维结构,B 因子列存 pLDDTx/y/z 坐标、B 因子alphafold/common/protein.py
confidence_model_N.json逐残基 pLDDT 评分residueNumber、confidenceScore、confidenceCategoryalphafold/common/confidence.py
pae_model_N.json残基对之间的预期距离误差predicted_aligned_error、max_predicted_aligned_erroralphafold/common/confidence.py
ranking_debug.json多个模型的排序与依据order、plddts(多聚体为 iptm+ptm)run_alphafold.py
result_model_N.pkl / features.pkl模型原始输出与输入特征plddt、predicted_aligned_error 等run_alphafold.py

三类信息分得很清楚:PDB 管"结构长什么样",两个 JSON 管"可信度有多高",ranking 文件管"选哪个模型"。读结果时按这个顺序走,就不会来回翻。

一句话总结:先分清"结构、置信度、选型"三层文件,再看细节,效率最高。

读懂 PDB 里的 B 因子列

PDB 是最通用的结构格式。标准 PDB 里 B 因子(温度因子)记录原子"抖动"程度,AlphaFold 借这个位置写了 pLDDT——模型对每个残基位置有多大把握。这个赋值发生在 run_alphafold.py 里,就这几行:

# Add the predicted LDDT in the b-factor column. plddt_b_factors = np.repeat( plddt[:, None], residue_constants.atom_type_num, axis=-1) unrelaxed_protein = protein.from_prediction( features=..., result=prediction_result, b_factors=plddt_b_factors)

也就是说,同一个残基的所有原子共享同一个 pLDDT 值。一行 ATOM 记录长这样:

ATOM 1 N MET A 1 8.500 2.300 1.100 1.00 92.50 N

逐项说:原子名 N、残基 MET、链 A、残基序号 1,后面三组是 x/y/z 坐标(单位 Å),1.00 是占有率,92.50 就是 B 因子,即 pLDDT,末尾 N 是元素。

怎么用于决策?把 relaxed_model_1.pdb 拖进 PyMOL 或 ChimeraX,按 B 因子着色:把握大的区域一个颜色,拿不准的区域另一个,一眼扫完。目录里还有 unrelaxed 版本,那是松弛前的原始结构,只用来对比。Amber 松弛过程在 alphafold/relax/relax.py 中记录优化前后的 RMSD,数值小说明原始预测已经很稳。

一句话总结:PDB 的 B 因子列就是逐残基 pLDDT,按它着色即可快速定位低置信区域。

看懂 pLDDT 评分的四个档位

pLDDT 是模型给每个残基打的"把握分",范围 0–100。它的来源是 alphafold/common/confidence.py 里的compute_plddt:先把网络输出做 softmax 变成概率分布,再乘各档位中心值取期望,最后乘 100 换算成分数。

分数会落进四个档,由_confidence_category函数负责分档:

if 0 <= score < 50: return 'D' if 50 <= score < 70: return 'L' elif 70 <= score < 90: return 'M'
档位分值区间常见含义
H90–100结构明确,可放心使用
M70–89中等置信,局部可能略有摆动
L50–69较低置信,多为柔性或波动区域
D0–49极低置信,常对应天然无序区

逐残基的分数保存在 confidence_model_1.json,内容很直白:

{"residueNumber":[1,2,3,4,5], "confidenceScore":[92.5,88.3,76.2,61.5,45.3], "confidenceCategory":["H","H","M","L","D"]}

三个数组一一对应:残基序号从 1 开始,分数保留两位小数,档位就是上表的字母。

💡 判断建议:D 档不一定代表预测失败,天然无序区域本来就"摆不平"。如果目标残基落在 L 或 D 档,先别下结论,接着看下一节的 PAE。

一句话总结:pLDDT 分四档,H/M 档放心用,L/D 档先查原因再用。

用 PAE 矩阵判断相对位置可靠性

pLDDT 管"单个位置准不准",PAE 管"两个位置的相对关系准不准"。Predicted Aligned Error 的单位是 Å,PAE[i][j] 越大,模型对残基 i 和 j 的相对位置越没把握。它由compute_predicted_aligned_error对每对残基的误差分布求期望得到,最终写进 pae_model_1.json:

{"predicted_aligned_error":[[0.3,8.2],[8.2,0.4]], "max_predicted_aligned_error":30.0}

两个字段:predicted_aligned_error是 N×N 矩阵(N 为残基数),max_predicted_aligned_error是误差分箱的上限,画热图时它决定色标范围。

怎么读这张矩阵?三个习惯动作:

  1. 对角线附近整体偏低:局部结构可靠,这是正常形态;
  2. 远离对角线出现高值色块:对应两个结构域的相对取向不确定,别拿跨域距离做定量;
  3. 多聚体里跨链块整体偏高:复合物界面本身就没预测稳,需要实验验证。

💡 判断建议:活性位点、结合界面这类"两点之间"的问题,一定用 PAE 复核,只看 pLDDT 会漏掉相对取向的风险。

一句话总结:pLDDT 看单点,PAE 看两点关系,跨域距离以 PAE 为准。

挑出最优模型:ranked 文件与排序依据

AlphaFold 默认对每条序列跑 5 个模型,输出目录里会有 model_1 到 model_5 共五组结果。光看 pLDDT 均值选模型并不稳,run_alphafold.py 用的是专门的 ranking_confidence,排序后按名次写出 ranked_0.pdb 到 ranked_4.pdb。排序明细在 ranking_debug.json 里:

{ "plddts": {"model_1": 55.2, "model_2": 62.4, "model_3": 49.8}, "order": ["model_2", "model_1", "model_3"] }

order字段就是最终名次,plddts是每个模型的排序依据;用多聚体 preset 时这里会换成 iptm+ptm,即基于 pTM 的指标。

怎么用于决策:

  • 日常分析直接用 ranked_0.pdb,它来自置信度最高的模型;若开启了松弛,写的是松弛后坐标;
  • 若 order 前两名分数接近,说明结果对随机种子不敏感,更可信;分差大就把前两名都过一遍 PAE;
  • 想深挖原始输出,result_model_N.pkl 存了完整预测结果字典,features.pkl 存了模型输入特征,用 Python 的 pickle 模块加载即可。

一句话总结:ranked_0.pdb 是默认答案,排序依据查 ranking_debug.json。

从文件到质量判断的完整流程

把前面的碎片串成一条流水线,五步走:

  1. 选型:打开 ranking_debug.json,确认 order 第一名,锁定 ranked_0.pdb。(依据:排序分数)
  2. 看结构:把 ranked_0.pdb 载入可视化软件,按 B 因子着色,扫一遍整体形态。(依据:PDB B 因子列 = pLDDT)
  3. 定置信:对照 confidence_model_N.json,统计 H/M 档占比,标出 D 档区域。(依据:confidenceCategory)
  4. 验关系:对关键功能位点或结合界面,查 pae_model_N.json 对应残基块的数值。(依据:predicted_aligned_error)
  5. 查松弛:看 relax_metrics.json 的 remaining_violations_count,确认结构没有残留冲突。(依据:松弛残余项)

前四步回答"选哪个、长什么样、哪里可信、哪里要复核",第五步是兜底检查。

一句话总结:选型 → 结构 → 单点置信 → 相对置信 → 松弛兜底,五步出结论。

避坑:几个最常见的误读

⚠️pLDDT 很高,但结构明显别扭。原因:局部打分高不代表全局取向对,两个结构域可能整体错位。 对策:查 PAE 矩阵对角块外的高值区,跨域距离一律存疑。

⚠️一整段 pLDDT 很低,被当成预测失败。原因:天然无序区域本来就没有稳定结构,D 档是模型在"如实报告"。 对策:交叉比对文献或无序区预测,别直接丢弃该区域。

⚠️relaxed 和 unrelaxed 结构对不上。原因:松弛会微调键长键角,小幅度偏移属于正常现象。 对策:看 relax_metrics.json,残余项多或 RMSD 大时再人工复核。

多聚体预测只看了 pLDDT。原因:复合物更关键的是界面,单链分数高不代表结合态可靠。 对策:以 ranking_debug.json 里的 ptm/iptm 为准,并重点看跨链 PAE 块。

一句话总结:高 pLDDT 不等于全局可信,低 pLDDT 不等于失败,都要交叉验证。

核心就三层:PDB 给结构,pLDDT 给单点置信,PAE 给相对位置置信,再用 ranking_debug 选型。想深挖细节,可看 docs/technical_note_v2.3.0.md 的说明。

【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询