蛋白质结构可视化完全指南:用 AlphaFold 把氨基酸序列快速变成可发表的 3D 结构图 蛋白质结构可视化完全指南用 AlphaFold 把氨基酸序列快速变成可发表的 3D 结构图【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold论文插图要一张蛋白质 3D 结构图、组会汇报想现场转一个结构、手里的突变体预测结果和野生型摆在一起对比——这些场景里你需要把 AlphaFold 的输出从一堆坐标数字变成一张图。AlphaFold 的开源仓库内置了完整的蛋白质结构可视化链路notebook_utils负责序列处理与 MSA 保守性检查py3Dmol负责最终的 3D 渲染你不需要安装任何专门的可视化工具一个 Jupyter 环境就能跑通。从一段字符串到一张能转的图整条链路只有四步把可视化当成 API 调用列表去看容易迷失按数据流去看就很简单输入是氨基酸序列中间经过两次数值化MSA 保守性 → 逐残基置信度 pLDDT输出是给渲染器消费的 PDB 字符串。第一步先把序列洗干净再往下走脏序列小写字母、空格、换行、非标准氨基酸会在后续数据库检索时直接报错所以官方 notebook 的第一步就是校验。from alphafold.notebooks import notebook_utils sequence notebook_utils.clean_and_validate_single_sequence( input_sequenceMKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ..., min_length16, max_length2500)这一步做了什么去掉空白、统一转大写、确认每个字符都属于 20 种标准氨基酸、检查长度在 16–2500 之间。为什么要先做把非法输入挡在最前面比预测跑完再失败省得多。实现就在alphafold/notebooks/notebook_utils.py的clean_and_validate_single_sequence()逻辑一目了然。第二步MSA 保守性——看一眼这条序列有没有证据AlphaFold 预测结构前会用 HMM 工具在 UniRef90、BFD、MGnify 等数据库里检索相似序列拼成 MSAMultiple Sequence Alignment多序列比对。show_msa_info()会画出每个残基位置上非缺口氨基酸计数曲线notebook_utils.show_msa_info(single_chain_msasmsas, sequence_index0)曲线高的位置说明该残基在大量同源蛋白里都有人预测时信息充足曲线一路贴近零的位置新蛋白、极端截短序列则意味着模型基本靠物理先验在猜。读这张图的目的不是画图而是给后面那张 3D 图打一个心理预期。第三步模型给出结构同时给每个残基一个可信度分数官方 notebook 里5 个集成模型各跑一次按 pLDDT 均值排序选出最优。pLDDTpredicted LDDT0–100是逐残基的置信度大于 90 表示结构非常可信50 以下的区域可能连二级结构都没定型。关键细节在 notebook 源码里预测完成后pLDDT 被写进 PDB 文件的 B-factor 字段再按四档色带归一化——橙50、黄50–70、浅蓝70–90、深蓝90这正是你常见到的 AlphaFold 官方配色PLDDT_BANDS [(0, 50, #FF7D45), (50, 70, #FFDB13), (70, 90, #65CBF3), (90, 100, #0053D6)]所以后面 py3Dmol 的着色不是随便上色而是直接读这个 B-factor——结构图和置信度图实际上是同一份数据。第四步交给 py3Dmol渲染出可交互的 3D 模型预测结果先转成 Python 对象再序列化回 PDB 文本py3Dmol 只吃文本from alphafold.common import protein import py3Dmol prot protein.from_prediction(features, prediction) pdb_str protein.to_pdb(prot) view py3Dmol.view(width800, height600) view.addModel(pdb_str, pdb) view.setStyle({cartoon: {color: spectrum}}, spec{model: -1}) view.zoomTo() view.show()每一步的作用from_prediction()把模型输出的原子坐标、残基索引、链号组装成Protein对象to_pdb()输出标准 PDB 文本cartoon模式把骨架画成面条cartoon 即卡通模式隐藏大部分原子、突出整体折叠拓扑。在 notebook 里这个视图可以直接拖动旋转截图或导出都能用。把图画到能放进论文四个发表级操作按 pLDDT 分档着色并配一条图例论文图里最常见的做法就是四档色带。因为 B-factor 已经是分档后的 0/1/2/3 数值colorscheme用map显式指定每个档位颜色即可color_map {0: #FF7D45, 1: #FFDB13, 2: #65CBF3, 3: #0053D6} view.setStyle({cartoon: {colorscheme: {prop: b, map: color_map}}}, spec{model: -1})这样读者一眼能看出深蓝主干可信橙色尾段存疑。官方 notebook 还会在旁边用 matplotlib 画一条四色图例论文排版时可以直接复用这张小图。活性位点用 stick 高亮再补一个文字标签cartoon 好看但看不清侧链。只把关注区域切成 stick棍棒模型其余保持 cartoon信息密度最高view.setStyle({cartoon: {colorscheme: {prop: b, map: color_map}}}, spec{model: -1}) view.addStyle({resi: list(range(148, 163))}, {stick: {color: red}}) view.addLabel(Binding site, {fontSize: 14, fontColor: black}, {position: {resi: 155}})resi指定残基序号范围标签锚定到具体残基上。论文图里高亮 标注是标配比整条链都画棍棒清晰得多。需要交代整体形状时加一层半透明表面卡通图看不出结合口袋。addSurface叠一层 VDW 表面透明度压低既能看形状又不挡骨架view.addSurface(py3Dmol.VDW, {opacity: 0.4, color: lightblue})野生型 vs 突变体并排子图对比突变研究里对比是最常见需求。py3Dmol 支持网格布局两个模型放两个格子同一视角下差异一目了然view py3Dmol.view(width800, height800, grid(2, 1)) view.addModel(wt_pdb, pdb, viewer(0, 0)) view.addModel(mut_pdb, pdb, viewer(0, 1)) view.setStyle({cartoon: {color: spectrum}}, viewer(0, 0)) view.setStyle({cartoon: {color: red}}, viewer(0, 1)) view.zoomTo() view.show()导出时注意view.png()得到的是静态 PNGview._make_html()可以把整个交互视图存成 HTML 文件发给同事在浏览器里直接转——论文正文放 PNG补充材料放交互 HTML是常见的组合。避坑与误区这些图先读置信度再决定怎么用低置信区别当结构用。pLDDT 低于 50 的区域橙色带可能是无序区画出来是模型猜的构象而不是结构。论文里引用这类区域的任何几何关系距离、接触面都要谨慎必要时在图注里说明。B-factor 不是温度因子。PDB 文件里的 B-factor 本意是原子位移参数AlphaFold 挪用来存 pLDDT。如果你把预测 PDB 交给其他工具做热运动分析会拿到误导性结果。HTML 交互图和静态图不是一回事。view.png()在 notebook 里渲染质量有限追求高分辨率出版图时建议用导出坐标后重渲染或直接在论文工具里调 dpi别指望 HTML 截图直接进版面。show_msa_info()的曲线要对着残基位置看而不是只看整体高低。全局覆盖率高但某一段塌陷往往正好对应柔性 loop 或截短产物。序列长度限制别忽略单链超过 2500 残基、或总长超 3000 时官方流程会给出精度未充分验证的警告出图前最好先确认这条序列在验证范围内。延伸资源notebook、技术说明与源码入口官方 notebooknotebooks/AlphaFold.ipynb——从序列输入、MSA 检索到 py3Dmol 渲染的完整可运行流程上文的片段都出自它。技术说明docs/technical_note_v2.3.0.md——pLDDT、PAE 等指标的定义与解读口径写论文方法部分时值得对照。可视化辅助函数源码alphafold/notebooks/notebook_utils.py——clean_and_validate_single_sequence()、show_msa_info()都在这个不到 200 行的文件里想改配色或长度上限可以直接读改。结构对象与 PDB 转换from_prediction()/to_pdb()位于 alphafold/common/protein.py。整条链路回顾序列经notebook_utils校验与 MSA 保守性检查 → 模型输出结构加逐残基 pLDDT → 置信度写入 B-factor → py3Dmol 按色带渲染成可交互 3D 图。理解了图上的颜色就是置信度这一点蛋白质结构图怎么画、画出来的图怎么读就都有了依据。【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考