
AlphaFold 蛋白质结构可视化指南从序列到可交互 3D 模型的 4 个步骤【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafoldAlphaFold 是 DeepMind 开源的蛋白质结构预测系统输入一条氨基酸序列它输出三维原子坐标并为每个残基打上 pLDDT 置信度评分。本文按序列准备 → 运行预测 → 结构渲染 → 结果解读四步带你把预测结果做成可旋转、可缩放、按置信度着色的交互式 3D 模型读完即可在本地或 Colab 中复现同样的效果。下图是 AlphaFold 对 CASP14 测试集的预测演示骨架颜色就是按 pLDDT 分档渲染的结果也是本文要复现的最终形态先认识 AlphaFold 可视化链路的 4 个模块做可视化之前先搞清楚每个文件负责什么后面写代码时才知道去哪找函数alphafold/notebooks/notebook_utils.py序列清洗校验、MSA多序列比对统计绘图是 Colab 工作流的主要工具层alphafold/model/模型核心config.py提供模型预设data.py加载模型参数alphafold/common/protein.pyfrom_prediction()把预测字典组装成Protein对象to_pdb()转成标准 PDB 文本alphafold/relax/用 AMBER 做能量松弛修复小范围立体化学问题官方 Colab notebook notebooks/AlphaFold.ipynb 把以上模块串成了完整流程。本地安装走 Docker 路线克隆仓库后运行scripts/download_all_data.sh下载遗传数据库再用 run_alphafold.py 执行预测本地版对多聚体精度更高Colab 版用的是简化参数。git clone https://gitcode.com/GitHub_Trending/al/alphafold准备输入序列清洗与 MSA 覆盖度检查AlphaFold 的输入是一条单字母代码序列长度需在 16~2500 之间Colab 版限制。clean_and_validate_single_sequence()会先去掉空白字符、统一转大写再检查是否全部落在 20 种标准氨基酸范围内最后核对长度任何一项不过都会抛出带具体原因的ValueError。from alphafold.notebooks import notebook_utils seq notebook_utils.clean_and_validate_single_sequence( input_sequenceMAAHKGAEHHHKAAEHHEQAAKHHHAAAEHHEKGEHEQAAHHADTAYAHHKHAEEHAAQAAKHDAEHHAPKPH, min_length16, max_length2500)预测质量很大程度取决于 MSA 覆盖度同源序列越多结构证据越强。官方 notebook 用分块 JackHMMER 对 UniRef90、BFD 等数据库做搜索搜完会打印去重后的序列数并用show_msa_info()画出每个位置非空氨基酸计数曲线帮你快速判断哪些区域证据薄弱。merged_msa notebook_utils.merge_chunked_msa( resultsraw_msa_results[seq][uniref90], max_hits10_000) notebook_utils.show_msa_info(single_chain_msas[merged_msa], sequence_index1)曲线在某个位置附近明显下凹说明该区域缺少同源序列支撑最终预测的 pLDDT 往往也偏低。运行预测配置模型、取参数、输出 pLDDT预测这一步涉及三个函数config.model_config()按预设名生成网络配置data.get_model_haiku_params()加载对应参数model.RunModel负责跑前向推理。import random from alphafold.model import config, data, model model_name model_1 # config.MODEL_PRESETS[monomer] 中的预设 cfg config.model_config(model_name) cfg.data.eval.num_ensemble 1 params data.get_model_haiku_params(model_name, ./alphafold/data) runner model.RunModel(cfg, params) feats runner.process_features(np_example, random_seed0) prediction runner.predict(feats, random_seedrandom.randrange(2**31)) print(mean pLDDT: %.1f % prediction[plddt].mean())prediction是一个字典prediction[plddt]逐残基给出 0~100 的置信度评分可视化阶段会直接用它着色。实际流程还会遍历多个预设模型单链取config.MODEL_PRESETS[monomer]多链取multimer按置信度挑出最优的一个。渲染 3D 结构py3Dmol 按 pLDDT 分档着色预测字典本身只是数字要和输入特征一起交给protein.from_prediction()才能得到结构随后to_pdb()把它转成 PDB 文本交给 py3Dmol 渲染from alphafold.common import protein prot protein.from_prediction( feats, prediction, b_factorsprediction[plddt][:, None], remove_leading_feature_dimensionis_monomer) pdb_text protein.to_pdb(prot)b_factors参数把 pLDDT 写进 PDB 的 B-factor 列py3Dmol 就能按这个数值分档上色。官方 notebook 采用四档配色PLDDT_BANDS [(0, 50, #FF7D45), (50, 70, #FFDB13), (70, 90, #65CBF3), (90, 100, #0053D6)] view py3Dmol.view(width800, height600) view.addModelsAsFrames(pdb_text) color_map {i: bands[2] for i, bands in enumerate(PLDDT_BANDS)} view.setStyle({model: -1}, {cartoon: {colorscheme: {prop: b, map: color_map}}}) view.zoomTo() view.show()多链结构的默认视图是按链着色便于分辨不同亚基multichain_view py3Dmol.view(width800, height600) multichain_view.addModelsAsFrames(pdb_text) multichain_view.setStyle({model: -1}, {cartoon: {colorscheme: chain}}) multichain_view.zoomTo() multichain_view.show()想叠加侧链在样式字典里追加stick: {}即可这与官方 notebook 的show_sidechains选项对应。如何解读置信度配色以及 PDB 文件的后续用途读图时记住两条规则就够了pLDDT 90 的残基深蓝结构通常可靠可以直接引用pLDDT 50 的区域橙色多为无序区或建模困难区下结论前建议结合实验数据多链结构中链与链之间的相对位置要看 PAE预测对齐误差矩阵而不是只看单链的 pLDDT这一点 技术说明 中有展开。跑出的 PDB 文件是标准文本除了 notebook 内置的交互视图也能直接加载进 PyMOL 等外部软件或用脚本批量处理。另外官方流程中预测后会接一步 AMBER 松弛来修复小的立体化学违规如果跳过松弛结构可能残留少量违规官方在 notebook 里留了run_relax开关供你选择。【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考