笔记里可以直接嵌一个能拖动旋转的三维蛋白结构:靠 Mol* 的在线查看器(molstar.org),不用装插件,站点和 Obsidian 阅读视图都能看。活例子是 AlphaFold 精度那篇 第四节里的苯丙氨酸羟化酶。

原理一句话:笔记里放一个 iframe,把要看的结构编号写在地址里——换蛋白只需要换那个编号

最短模板

<div style="height:440px">
<iframe src="https://molstar.org/viewer/?afdb=Q818B4&hide-controls=1&collapse-left-panel=1" style="width:100%;height:100%;border:0;border-radius:6px"></iframe>
</div>

三处地方:

  • height:440px 是画面高度,想高就改这个数
  • afdb=Q818B4 里那个编号是唯一要换的部分
  • hide-controls=1&collapse-left-panel=1 必须原样带着。查看器默认会展开左边的结构树和右边的工具面板(各约 290px),而正文栏只有 582px,不带这两个参数,3D 视口会被挤成 0 宽——看起来就是一片空白

换蛋白:改编号就行

要插的东西写法例子
AlphaFold 数据库的预测afdb= + UniProt 号afdb=Q818B4afdb=P00533
实验解出的结构pdb= + 四位 PDB 号pdb=1crnpdb=7vgm
PDB-Dev 整合模型pdb-ihm= + 号pdb-ihm=8zzz
冷冻电镜密度图emdb=EMD- + 号emdb=EMD-30265
自己的 CIF 文件structure-url= + 编码后的地址 + &structure-url-format=mmcif

编号大小写都可以。编号从哪来:AlphaFold 数据库里搜蛋白名,条目页地址最后那段就是它(alphafold.ebi.ac.uk/entry/Q818B4);实验结构用 RCSB 或 PDBe 的四位码。

最后一行是唯一麻烦的:地址里带 & 时必须编码,格式名也只能写 mmcif(写 bcif 它不认)。所以能用现成的编号就别用 URL

怎么知道插对了

失败的样子是画面一片空白,页面上不弹提示;有些错法(比如格式名写错)连控制台都只有一行不起眼的记录。所以插完盯着看一眼有没有结构出来——没有,多半就是编号写错了,回上表对一遍。

两个进阶需求

同时放两条结构做对比:要改用 mvs-data=(把一段 MolViewSpec 的 JSON 编码进地址),写法长得多;而且这个版本只能并排显示、不能叠合,所以原文那种“蓝色模型叠在灰色结构上”的效果复刻不了。

想换配色、或让画布跟随暗色主题:库参数改不了配色,同样得走 mvs-data(可以给每条结构指定统一颜色)。想让画布底色跟着站点明暗变,只有“内联 Mol*”那条路——代价是 Obsidian 里看不到(Obsidian 会剥掉内联脚本),而且要多下载约 1.45 MB 的脚本。

已知限制

  • 查看器是 molstar.org 的在线服务,需要联网;那个页面自带一点第三方统计脚本
  • 暗色模式下画布仍是浅色底(它有自己的一套主题),在深色页面上就是一块亮面板,目前接受这个观感
  • Obsidian 里只有阅读视图能看,编辑视图和实时预览都不渲染 HTML

相关笔记:Quartz · Obsidian · AlphaFold 精度那篇的活例子