ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

AlphaFold预测结果文件怎么读:PDB/MMCIF十分钟上手指南

AlphaFold预测结果文件怎么读:PDB/MMCIF十分钟上手指南 AlphaFold预测结果文件怎么读PDB/MMCIF十分钟上手指南【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafoldAlphaFold 是蛋白质结构预测里用得最多的工具之一但跑完之后输出目录里会落下一堆文件存原子坐标的 PDB 文件、同名的 MMCIF 文件、若干置信度 JSON 和几个二进制 pickle。这里先给你一个习惯下游建模和可视化基本都从ranked_0.pdb开始而用它之前先确认里面的置信度分数。下面按挑文件 → 读置信度 → 读坐标 → 转格式四步走完整个流程。一、run_alphafold.py 跑完后该用哪个文件先给结论日常只碰三类文件——ranked_0.pdb/ranked_0.cif最佳模型、confidence_model_0.json逐残基置信度、pae_model_0.jsonPAE 矩阵。run_alphafold.py默认用多个随机种子各预测一次每次产生model_0、model_1等一组中间产物unrelaxed_model_name.pdb是模型原始输出result_model_name.pkl存完整预测张量confidence_model_name.json存该模型的 pLDDT 数组。随后所有模型按ranking_confidence从高到低排序写出的ranked_0.pdb、ranked_1.pdb……就是排序后的最终结果ranking_debug.json里能查到每个模型的打分和排序依据。默认--models_to_relax best时只有排名第一的模型会经过 Amber 能量最小化对应的relaxed_model_0.pdb就是ranked_0.pdb的内容改成all则每个模型都松弛none则全部保留原始输出。所以判断一个ranked_*文件是松弛版还是原始版看它是否来自to_relax列表即可。二、三分钟看懂pLDDT逐残基的置信度打分类比一下pLDDT 就像手机信号格数告诉你这个残基的位置我有多有把握。严格说它是预测局部距离差异测试pLDDT分数逐残基取值 0~100越高越可信。关键是它存在哪。PDB 规范里第 61~66 列本来放 B 因子温度因子表征原子热运动AlphaFold 把这个字段借来装置信度——每个残基的 N、CA、C、O 原子填同一个值源码里能看到np.repeat把每残基的 pLDDT 复制到它的每个原子上。因此你用可视化工具读 B 因子看到的就是置信度spectrum b之类按温度因子染色的操作实际是在按 pLDDT 着色。经验阈值pLDDT 90 的区段可以放心用于后续建模70~90 大多可靠环区要多看一眼 50 基本只当拓扑参考。整条序列的平均分不必自己算ranking_debug.json里有。用 Biopython 提取逐残基 pLDDT 只需几行from Bio.PDB import PDBParser import numpy as np parser PDBParser(QUIETTrue) structure parser.get_structure(af, ranked_0.pdb) plddt, res_ids [], [] for model in structure: for chain in model: for res in chain: if CA in res: plddt.append(res[CA].get_bfactor()) res_ids.append(res.get_id()[1]) score np.array(plddt) print(fmean pLDDT {score.mean():.1f}) print(fresidues with pLDDT 90: {np.mean(score 90):.0%})三、什么时候要看PAE分清绝对置信和相对置信pLDDT 回答这个残基自己准不准局部、绝对PAE 回答残基 i 和残基 j 之间的相对位置差多少相对。预测对齐误差PAE是一个 L×L 矩阵元素单位是 Å直接存在pae_model_0.json里用json.load取出即可不用解析结构文件。单体蛋白看 pLDDT 基本够了多聚体--model_preset multimer一定要看 PAE对角块低说明各链自身可信而链与链之间的非对角块低才说明两条链的相对取向可靠。接口预测对不对看非对角块不看链内均值。四、PDB关键列速查只看6个位置PDB 是固定 80 列的列式文本看着吓人但 AlphaFold 输出里你只需盯住这几处第 1~6 列记录名。ATOM是常规原子HETATM是非标准残基TER是链边界MODEL/ENDMDL圈定一个模型第 13~16 列原子名如N、CA、C、O第 18~20 列残基三字母码 第 22 列链 ID 第 23~26 列残基序号这三处合起来定位哪条链的哪个残基第 31~54 列x/y/z 坐标单位 Å第 61~66 列B 因子在 AlphaFold 文件里即 pLDDT占有率、交替位置指示符这些列对预测结构来说没有信息量可以跳过。取坐标时直接过滤CA原子最省事from Bio.PDB import PDBParser import numpy as np structure PDBParser(QUIETTrue).get_structure(af, ranked_0.pdb) ca np.array([a.get_coord() for a in structure.get_atoms() if a.get_name() CA and a.get_chain_id() A]) print(ca.shape) # (残基数, 3)单位Å print(ca[:3])五、PDB和MMCIF一分钟互转两种格式的关系可以这样理解PDB 是老式表格每列位置写死工具兼容性极好但字段固定MMCIF 是键值对清单字段可随意扩展是当前结构数据库的存储标准。维度PDBMMCIF结构固定 80 列文本键值对 loop 表扩展性弱列位固定强可加任意字段元数据有限丰富实体、序列等解析难度需按列位切分逐行读取即可选型一句话对接、分子动力学、可视化工具吃 PDB 最省心要归档、提交数据库或保留序列元数据用 MMCIF。AlphaFold 每次都会成对生成两种文件.cif由 alphafold/common/protein.py 中的to_mmcif写出多数情况你拿现成的就行只有对接的下游流程挑剔输入时才需要转from Bio.PDB import PDBParser, MMCIFParser from Bio.PDB.PDBIO import PDBIO from Bio.PDB.mmcifio import MMCIFIO def pdb_to_cif(pdb_path, cif_path): struct PDBParser(QUIETTrue).get_structure(af, pdb_path) io MMCIFIO(); io.set_structure(struct); io.save(cif_path) def cif_to_pdb(cif_path, pdb_path): struct MMCIFParser(QUIETTrue).get_structure(af, cif_path) io PDBIO(); io.set_structure(struct); io.save(pdb_path)六、从ranked_0.pdb到对接输入一个完整工作流把前面的步骤串起来就是拿到结果后的标准动作先验置信度再动手。用第二节的代码跑一遍ranked_0.pdb重点看你关心的功能区比如 50~120 位残基的 pLDDT 均值。低于 80 就考虑加种子重跑或在 run_alphafold.py 的参数里调整输入而不是硬用。给分子动力学/对接用松弛版。relaxed_*文件经过 Amber 最小化消除了原始输出里不合理的接触unrelaxed_*则保留模型原样适合做模型到底输出了什么的对照。多模型一致性是个免费的质量信号。把ranked_0.pdb与ranked_1.pdb的 CA 轨迹叠一下RMSD 很小说明预测稳健差异大的区段恰好就是 pLDDT 偏低的地方两者可以互相印证。可视化时按 B 因子着色PyMOL 里一句spectrum b就得到置信度云图比肉眼看坐标直观得多。下次拿到 AlphaFold 的输出目录先打开confidence_model_0.json和ranking_debug.json五分钟判断这个结构能不能用——这一步省下的是后面整个建模流程的返工成本。【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表