news 2026/9/11 14:59:55

从序列到3D结构图:AlphaFold蛋白质结构可视化实操

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从序列到3D结构图:AlphaFold蛋白质结构可视化实操

从序列到3D结构图:AlphaFold蛋白质结构可视化实操

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

AlphaFold 是 DeepMind 开源的蛋白质结构预测项目,除了预测本身,它内置了一套从氨基酸序列到交互式 3D 结构图的最小可视化管线。这篇文章带你走通这条链路:清洗序列、跑预测、把 pLDDT 置信度写进结构、用 py3Dmol 渲染出可旋转缩放的 3D 模型,全程约 30 行有效代码。

什么时候需要看结构

拿到一段氨基酸序列,你通常想知道两件事:它折叠成什么形状,以及模型对每个残基有多确信。手动搭建模、调渲染参数很容易劝退没有结构生物学背景的人。AlphaFold 把这两件事收敛成了两个标准输出:一个 PDB 格式的结构字符串(PDB 是蛋白质数据库通用的原子坐标文本格式),和一个逐残基的置信度分数 pLDDT(0–100,越高代表该位置预测越可靠)。

一分钟看到结果

如果你手上已经有一个预测好的蛋白质对象(Protein实例),渲染只要这几行:

import py3Dmol from alphafold.common import protein pdb = protein.to_pdb(unrelaxed_proteins['model_1']) view = py3Dmol.view(width=800, height=600) view.addModel(pdb, 'pdb') view.setStyle({'cartoon': {'color': 'spectrum'}}) view.show()

浏览器里立刻出现一个可拖拽的卡通棒模型,鼠标滚轮缩放,左键旋转。

可视化背后的三个模块

整条管线只依赖三个文件,各自职责清晰:

  • alphafold/notebooks/notebook_utils.py:输入侧工具。clean_and_validate_single_sequence()负责去掉空白、转大写,并校验序列只含 20 种标准氨基酸且长度在限制内;show_msa_info()则画出多序列比对(MSA)的保守性曲线,帮你判断输入质量是否足够支撑预测。
  • alphafold/common/protein.py:数据格式转换层。from_prediction()把原始预测张量打包成Protein对象,to_pdb()再把它序列化成 PDB 文本,供任意第三方可视化工具读取。
  • notebooks/AlphaFold.ipynb:端到端示例。官方 Colab 版 notebook 演示了从序列输入到 py3Dmol 展示、pLDDT 着色的完整跑法,本文的步骤全部从中提炼。

技术细节to_pdb()在写文件时会把 B-factor 列填入你指定的数值(通常是 pLDDT),这意味着 PDB 文件本身自带置信度信息,py3Dmol 的colorscheme直接按prop: 'b'就能着色,无需额外传图例数据。

序列到结构图的四步

第一步:清洗并校验输入序列

from alphafold.notebooks import notebook_utils seq = notebook_utils.clean_and_validate_single_sequence( 'MVTALELARPAPAPAPAPGAVSASGVPGAVPGGVPAPASGAAAPSGA', min_length=16, max_length=2500)

长度不足 16 或超过 2500 的序列会直接抛异常,比跑完两小时才失败要好得多。

第二步:跑推断模型拿到 prediction

from alphafold.model import config, data, model cfg = config.model_config('model_1') runner = model.RunModel(cfg, data.get_model_haiku_params('model_1', './alphafold/data')) processed = runner.process_features(np_example, random_seed=0) prediction = runner.predict(processed, random_seed=42)

prediction是一个字典,关键条目是逐残基的plddt数组和structure_module里的原子坐标。

第三步:把 pLDDT 写进结构并导出 PDB

b_factors = prediction['plddt'][:, None] * prediction['structure_module']['final_atom_mask'] prot = protein.from_prediction(processed, prediction, b_factors=b_factors) pdb_str = protein.to_pdb(prot)

这里把 pLDDT 乘上原子掩码后作为 B-factor 写入,是后续按置信度着色的前提,官方 notebook 正是这么做的。

第四步:py3Dmol 渲染

view = py3Dmol.view(width=800, height=600) view.addModel(pdb_str, 'pdb') view.setStyle({'cartoon': {'colorscheme': {'prop': 'b', 'gradient': 'roygb'}}}) view.zoomTo() view.show()

gradient: 'roygb'表示从红(低值)到蓝(高值)的渐变,红色区域就是低置信度区。

进阶:按 pLDDT 分段上色

比连续渐变更适合放进论文的做法是四段式分色,一眼区分置信区间:

PLDDT_BANDS = [(0, 50, '#FF7D45'), (50, 70, '#FFDB13'), (70, 90, '#65CBF3'), (90, 100, '#0053D6')] for low, high, color in PLDDT_BANDS: view.addStyle({'b': {'>=': low, '<': high}}, {'cartoon': {'color': color}})

这组配色直接来自 notebooks/AlphaFold.ipynb。四段对应的语义是:橙(<50,基本不可靠)、黄(50–70,低)、浅蓝(70–90,可信)、深蓝(>90,很高)。

保存与分享结果

预测产物有三种去向:

  1. PDB 文本protein.to_pdb()的输出可以直接写文件,兼容 PyMOL、Chimera 等几乎所有结构软件,适合交接给同事用各自习惯的工具复核。
  2. 交互 HTMLview._make_html()返回完整网页源码,写进.html文件后双击即可在浏览器里打开,旋转缩放功能全部保留,适合放进组会演示或项目主页。
  3. 打包 zip:官方 notebook 跑完会把 PDB、置信度曲线图等打成压缩包下载,适合归档。

三个容易踩的坑

pLDDT 高不等于整个复合物可靠。单看残基级 pLDDT 只能判断"域内"置信度;多链复合物之间是否稳定要看 PAE(预测对齐误差矩阵),别拿深蓝区域当万能章。

本地跑完整 AlphaFold 门槛不低。完整安装需要约 3 TB 磁盘存放基因数据库加一块较新的 NVIDIA GPU;资源有限时,notebooks/AlphaFold.ipynb 的 Colab 简化版(无模板、部分 BFD 数据库)是更现实的起点,精度对多数靶点接近完整版。

序列里不能有空格、换行和 X。clean_and_validate_single_sequence()对非 20 标准氨基酸字符会直接抛ValueError,粘贴 FASTA 时记得只取序列行。

总结与官方资源

  • 输入侧:clean_and_validate_single_sequence()校验序列,show_msa_info()评估比对质量
  • 格式层:protein.from_prediction()/to_pdb()打通"预测张量 → 通用 PDB"
  • 展示层:py3Dmol 的setStyle+colorscheme实现按 pLDDT 着色
  • 技术说明:docs/technical_note_v2.3.0.md
  • 端到端示例:notebooks/AlphaFold.ipynb
  • 可视化辅助源码:alphafold/notebooks/notebook_utils.py

建议先按四段式 pLDDT 配色出一版图,把橙黄色区域截出来单独标注——审稿人和合作者对"哪里不可信"的关注度往往远高于整体形状。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 14:55:06

ML-KWS-for-MCU静态审计:边缘AI在ARM Cortex-M上的工程落地关键

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 14:52:54

心理咨询师水平评价考试常见问题汇总:30个高频问答一次性解答

心理咨询师水平评价考试常见问题汇总&#xff1a;30个高频问答一次性解答公众号&#xff1a;意心职业技能、意心技能课堂本文汇总了心理咨询师水平评价等级考试中最常见的30个高频问题&#xff0c;涵盖报名条件、考试内容、备考方法、证书价值、培训选择、职业发展等各个方面&a…

作者头像 李华
网站建设 2026/9/11 14:52:01

个人开发者基于WorkBuddy平台从零搭建AI Agent应用全流程实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 14:49:46

期末网页设计大作业实战:HTML+CSS+JS个人博客完整教程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华