拓冰建站拓冰建站
首页 / 资讯中心 / 正文

3行代码上手AlphaFold蛋白质3D可视化:从序列到可发表图片

3行代码上手AlphaFold蛋白质3D可视化从序列到可发表图片【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold组会前夜你手里只有一条氨基酸序列而导师要看的是一张能旋转、能缩放、按置信度着色的3D构象图。AlphaFold 开源仓库把这条链路拆成了几个现成函数序列校验在alphafold/notebooks/notebook_utils.py结构对象与 PDB 转换在alphafold/common/protein.py最后的蛋白质结构交互查看交给 py3Dmol。本文按跑通→自定义→导出→避坑的顺序带你走完这条 AlphaFold 可视化流程。 快速上手环境与最小示例完整预测需要模型参数和数据库但从 PDB 到 3D 视图这一段在任意装了py3Dmol的 Python 环境里就能跑。如果你要从零复现整个流程先拉取仓库git clone https://gitcode.com/GitHub_Trending/al/alphafold下面这段是最小可运行的蛋白质结构交互查看代码读入一段 PDB塞进 py3Dmol 视图加个卡通着色就出图。import py3Dmol from alphafold.common import protein # 从 PDB 字符串还原 Protein 对象 pdb_str open(alphafold/common/testdata/5nmu.pdb).read() prot protein.Protein.from_pdb_string(pdb_str) pdb_out protein.to_pdb(prot) # 创建 800x600 的交互视图并渲染 view py3Dmol.view(width800, height600) view.addModel(pdb_out, pdb) view.setStyle({cartoon: {color: spectrum}}) # 沿链彩虹着色 view.zoomTo() view.show()运行后你会得到一个可拖拽旋转的模型。想理解每一步背后的细节可以继续往下看。 关键模块速览在动手之前先搞清楚每个函数什么时候用。核心工具都集中在两处函数 / 模块位置什么时候用它clean_and_validate_single_sequencealphafold/notebooks/notebook_utils.py喂给模型前清洗序列去空白、转大写、校验长度与氨基酸合法性show_msa_infoalphafold/notebooks/notebook_utils.py画出各残基位置的非间隙氨基酸计数快速判断 MSA 信息量Protein.from_predictionalphafold/common/protein.py把预测输出ModelOutput转成带坐标的Protein对象protein.to_pdbalphafold/common/protein.py序列化回 PDB 文本作为 py3Dmol 的输入py3Dmol.view第三方库创建可交互 3D 视图负责所有渲染与样式提示show_msa_info(single_chain_msas, sequence_index)内部用 numpy 把 MSA 转成矩阵再用 matplotlib 画出一条每个位置有多少条序列非间隙的曲线源码见 alphafold/notebooks/notebook_utils.py。 从零跑通预测结果变 3D 模型完整流程分三步先备好序列拿到features和预测结果prediction再转成 3D。校验序列——AlphaFold 只接受 20 种标准氨基酸且长度需落在min_length与max_length之间否则会抛ValueErrorfrom alphafold.notebooks import notebook_utils clean_sequence notebook_utils.clean_and_validate_single_sequence( input_sequenceMSTEEPQDPSVTVWKRRRPPA...你的序列, min_length16, max_length2500 )从预测结果构建 Protein——from_prediction接收特征字典features与模型输出prediction第二个参数b_factors可以顺手传入逐残基 pLDDT后面着色会用到from alphafold.common import protein b_factors prediction[plddt][:, None] # 逐残基 pLDDT 写入 B 因子 prot protein.from_prediction(features, prediction, b_factorsb_factors) pdb_str protein.to_pdb(prot)提示跑完整预测需要 Haiku/One 等模型参数与 JackHMMER、HHblits 等数据库工具链仓库 scripts/ 下提供了一组数据下载脚本官方示例在 notebooks/AlphaFold.ipynb 里可以直接按单元格顺序执行。交给 py3Dmol 渲染——addModel负责解析 PDBsetStyle决定渲染风格zoomTo让分子自动居中view py3Dmol.view(width800, height600) view.addModel(pdb_str, pdb) view.setStyle({cartoon: {color: spectrum}}) view.zoomTo() view.show() 进阶让结构图说话默认彩虹卡通已经够用但发论文时你通常想表达更多信息。按 pLDDT 给结构着色pLDDT 是逐残基的置信度指标0~100。因为前面已把它写进 B 因子py3Dmol 可以直接按b属性取色# 按 B 因子pLDDT做连续渐变着色 view.setStyle({ cartoon: {colorscheme: {prop: b, gradient: roygb, min: 50, max: 90}} })提示仓库自带的 notebook 用的也是同一套路——{cartoon: {colorscheme: {prop: b, map: color_map}}}见 notebooks/AlphaFold.ipynb。官方把 pLDDT 分成四档≥90 为 High70~90 为 Medium50~70 为 Low50 为 Disordered判定逻辑在 alphafold/common/confidence.py 的_confidence_category中。高亮活性位点并加标签想突出某段残基就用addStyle指定选择器再叠一层addLabelview.addStyle({resi: range(10, 20)}, {stick: {color: red, radius: 0.3}}) view.addLabel(Active Site, {fontSize: 12, fontColor: black}, {resi: 15})多结构并排对比比较野生型与突变体时用grid参数一次开四个子视图对每个(行, 列)位置分别建模view py3Dmol.view(width800, height800, grid(2, 2)) view.addModel(pdb_wt, pdb, viewer(0, 0)) view.setStyle({cartoon: {color: blue}}, viewer(0, 0)) view.addModel(pdb_mut, pdb, viewer(0, 1)) view.setStyle({cartoon: {color: red}}, viewer(0, 1)) view.show() 导出与分享格式怎么选目标做法适用场景静态高清图view.png()截图直接贴进幻灯片可交互 HTML写出view._make_html()的返回值网页嵌入、发给合作者在线旋转论文级图片固定视角后用 matplotlibsavefig重绘期刊投稿可精确控制分辨率HTML 导出的完整写法with open(protein_visualization.html, w) as f: f.write(view._make_html())提示投稿用的图建议统一配色与背景导出前先view.setBackgroundColor(white)并固定相机角度避免审稿人截图后角度不一致。⚠️ 避坑与解读要点ValueError: non-amino acid letters序列里混入了小写字母、空格或未知字符如X。先在clean_and_validate_single_sequence里过滤长度低于 16 或超过 2500 也会在这一步被拦下。show_msa_info画不出来该函数用 matplotlib 绘图需要交互环境Jupyter/Colab才能显示纯脚本里会只打印序列数量不出图。pLDDT 不是结构对错证明pLDDT 90 的区域结构更可靠pLDDT 50 的低置信度区段多对应无序区图中看起来软塌塌的部分不要过度解读必要时用实验手段交叉验证。着色范围要手动截断gradient的min/max若照抄 0~100多数残基会挤在一端颜色里按你数据的实际分布比如 50~90截断对比度更好。写在最后AlphaFold 可视化本质上是一条数据清洗 → 结构对象 → 渲染引擎的流水线notebook_utils管输入质量protein.py管结构表示py3Dmol 管怎么呈现。把这条流水线跑熟之后从一条序列到一张可发表的结构图中间不再需要任何手工建模。校验序列是第一步min_length16, max_length2500是仓库内置的硬性边界。把 pLDDT 写入 B 因子再用colorscheme: {prop: b}着色是置信度可视化最省事的路径。高置信区≥90可放心解读低置信区50保持怀疑并留待实验验证。【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门