拿到 AlphaFold 预测结果后,PDB / MMCIF 文件到底怎么打开和用?(完整入门教程)
拿到 AlphaFold 预测结果后PDB / MMCIF 文件到底怎么打开和用完整入门教程【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold跑完run_alphafold.py之后输出目录里堆着 PDB、CIF、JSON、pkl 一堆文件不知从哪个下手这套 AlphaFold 结果分析的起点其实只有四样东西ranked_0.pdb最佳结构、对应的.cifmmCIF 版本、pae_*.json链间误差以及藏在 PDB 里的那根置信度颜色条pLDDT。本文带你完成三件事10 秒看懂目录里哪些文件值得打开、用 PyMOL 和 Biopython 把结构可视化出来、再跑一遍自动质量报告。全文只做蛋白质结构预测结果的判读与加工不涉及重跑模型。你的输出目录里到底有什么不用被文件数量吓到真正日常会打开的就这几个以单机版model_ranked_0为例网络版命名略有不同文件干什么用打开频率unrelaxed_*.pdb/relaxed_*.pdb原始预测 / 经 Amber 弛豫后的坐标ranked_0即置信度第一的模型最高unrelaxed_*.cif同一结构的 mmCIF 版本带完整元数据偶尔pae_*.jsonPAE 矩阵判多链相对方位是否靠谱多聚体必查confidence_*.json单链 pLDDT / ipLDDT / ptm 数值汇总出报告时其余features.pkl、result_*.pkl、timings.json是输入特征和中间结果判读阶段用不上先无视。记住一句口诀看置信度找 pLDDT看结构找 ranked_0看多链关系找 PAE。pLDDT结构上的那根颜色条 AlphaFold 把每个残基的置信度分数直接写进了 PDB 的 B 因子温度因子列——不是热运动参数别按传统 X 射线结构去理解它。PyMOL 里一句spectrum b就能把它渲染成蓝→白→红的渐变色条一眼看出哪段可信。低分区域通常意味着 MSA 证据不足或序列保守性弱不能直接当结论扔掉但必须标注该区域未经验证。按 pLDDT 分数着色的 AlphaFold 结构pLDDT 三档快速判读分数区间含义怎么用90–100高置信可放心做功能分析直接用作对接/设计输入70–90可用但谨慎结论里注明置信度50–70结构可能出错单独验证后再下结论 50基本不可靠只当序列信息用PDB 还是 MMCIF30 秒决策维度PDBMMCIF可读性肉眼可扫定宽列好编辑表状长行不适合手改扩展性弱塞不下新元数据强支持任意新增项目下游工具对接/MD 软件几乎只认它数据库提交、新版可视化工具首选体积偏大更紧凑推荐给人看和跑对接用 PDB要提交数据库或留元数据用 mmCIF。两者信息等价Biopython 几行就能互转from Bio.PDB import PDBParser, MMCIFParser, PDBIO from Bio.PDB.mmcifio import MMCIFIO def pdb_to_cif(pdb, cif): s PDBParser(QUIETTrue).get_structure(x, pdb) MMCIFIO().set_structure(s) and MMCIFIO().save(cif) def cif_to_pdb(cif, pdb): s MMCIFParser(QUIETTrue).get_structure(x, cif) io PDBIO(); io.set_structure(s); io.save(pdb)最小可运行示例用 Biopython 打开结构下面这段直接敲就能跑覆盖解析→数链→取 CA 坐标→算 pLDDT 均值from Bio.PDB import PDBParser import numpy as np st PDBParser(QUIETTrue).get_structure(af, ranked_0.pdb) for ch in st[0]: ca [a for r in ch for a in r if a.get_name() CA] print(fchain {ch.get_id()}: {len(ca)} residues, fpLDDT mean {np.mean([a.get_bfactor() for a in ca]):.1f}) xyz np.array([a.get_coord() for a in ca]) print(CA shape:, xyz.shape)常见报错先自查PDBParser报no atoms或坐标缺失确认文件路径没指错、文件确实是ATOM记录head看一眼别把.cif塞给 PDBParser。IndexError或链 ID 变成A/B/C…的乱序多聚体输出里链 ID 由输入顺序决定用ch.get_id()按名字取链别假设第一条就是 query。Biopython 版本过老读不了新版 mmCIF先pip install -U biopython再试。三条最常用的下游工作流a) PyMOL 快速可视化把这段粘进 PyMOL 命令行旋转、缩放、png out.png导出即可进报告load ranked_0.pdb show cartoon spectrum b, blue_white_red, minimum0, maximum100 bg white小技巧spectrum b的上下限就对应 pLDDT 0–100所以颜色条天然就是置信度图想看骨架干净版把show sticks换掉即可。b) 多模型叠加看 RMSD想确认预测稳不稳把 ranked_0 和 ranked_1 叠起来算 RMSD。这一步很多人会卡住Superimposer要求两边原子数一致所以先都只取 CA。from Bio.PDB import PDBParser, Superimposer import numpy as np p PDBParser(QUIETTrue) a p.get_structure(a, ranked_0.pdb).get_atoms() b p.get_structure(b, ranked_1.pdb).get_atoms() ca_a [x for x in a if x.get_name() CA] ca_b [x for x in b if x.get_name() CA] si Superimposer(); si.set_atoms(ca_a, ca_b) print(RMSD , round(si.rms, 2), A)RMSD 小于 1.5 Å 基本可认为结构收敛若只有 C 端飘走回头查那段的 pLDDT多半是低置信区在摆。c) 批量质量报告pLDDT PAE 出图写进脚本套在for model in ranked_0..3循环里一次产出全套图import json import matplotlib.pyplot as plt pae json.load(open(pae_ranked_0.json))[pae] plt.figure(figsize(8, 6)) plt.imshow(pae, cmapviridis, vmin0, vmax30) plt.colorbar(labelPAE (A)) plt.title(PAE of ranked_0) plt.savefig(pae_ranked_0.png, dpi150)pLDDT 那条线直接用前面 Biopython 拿到的 B 因子列表绑在第二个子图里即可两张图加一句平均 pLDDT / ipLDDT就是一份能贴进 group meeting 的蛋白质结构可视化报告。容易踩的 4 个坑relaxed vs unrelaxed 混用relaxed 是 Amber 弛豫后的美化版坐标更光滑unrelaxed 才是模型原始输出。发表和对接用 relaxed做方法学对比时别拿 relaxed 去比 unrelaxed解法文件名前缀锁死一个分析里只用一种。多 MODEL 记录解析报错个别输出里带MODEL/ENDMDLBiopython 默认会把多模型全读进来、残基数直接翻倍。解法get_structure(x, path, model0)只取第一个或先删掉 MODEL 行。链 ID 缺失/乱序老版本或单链手动编辑的 PDB 链 ID 列是空格get_id()拿到导致字典 key 撞车。解法ch.get_id() or ?兜底或解析前用sed补上链列。pLDDT 阈值误读把全链均值 85当每个残基都可靠。解法阈值判断永远在逐残基 B 因子上做均值只写进摘要。下一步想改 B 因子写入逻辑或 PDB 生成细节翻 protein.py 的from_prediction和to_pdb。想知道每个输出文件是谁写出来的看 run_alphafold.py 里_save_*系列函数。Biopython 解析细节查官方文档的 PDB 模块页提交数据库前对照 PDB 官网的 mmCIF 数据字典自查一遍。先把你目录里的ranked_0.pdb拖进 PyMOL敲spectrum b——看到颜色条的那一刻这篇就算白读了。【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考