笔记里可以直接嵌一个能拖动旋转的三维蛋白结构:靠 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=Q818B4、afdb=P00533 |
| 实验解出的结构 | pdb= + 四位 PDB 号 | pdb=1crn、pdb=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 精度那篇的活例子