ChimeraX 与 IMOD:看 3D 与分割

实际做 Cryo-ET 绕不开的两个工具 —— 用 IMOD 对齐与重构,再跟着教程用 ChimeraX 把你的 MRC 体看出来、出成图,最后把里面的结构一根根描出来。

讲完原理,真正动手时绕不开两个软件:IMOD(把倾转序列对齐、重构成三维体)和 ChimeraX(把重构出的三维体看清楚、做成图、把里面的结构描出来)。这一页给出它们各自怎么装、怎么用 —— 既包括把体「看出来」,也包括把感兴趣的结构从体里「分割」出来。

安装与配置

两个都免费、跨平台(Windows / macOS / Linux)。

装好后,IMOD 负责「倾转序列 → .mrc / .rec 体」,ChimeraX 负责「把体看出来、分割开」—— 下面分别说怎么用。

IMOD:对齐与重构

IMOD 由科罗拉多大学 Boulder 实验室(David Mastronarde 等)开发,是 Cryo-ET 事实上的标准包。它覆盖从原始倾转序列到三维体的整条流程:

最小流程

导入倾转序列 → 粗对齐 → 精对齐(fiducial / patch)→ tilt 重构 → 在 3dmod 里查看。每一步 etomo 都有对应面板,命令也可脚本化批量跑。

把 MRC 可视化:ChimeraX 上手教程

重构跑完,你拿到的是一个三维体文件(.mrc.rec)—— 一堆密度数值,肉眼看不了。UCSF ChimeraX(免费)能把它渲染成能看、能转、能出图的三维结构。跟着这条最小流程走一遍:

  1. 安装并打开。官网下载 ChimeraX(Windows / macOS / Linux 均可)。启动后,把你的体数据直接拖进窗口,或在底部命令行输入 open 路径/到/你的.mrc,ChimeraX 会自动识别为体数据。
  2. 调等值面阈值。 打开后会弹出 Volume Viewer 面板。拖动里面的阈值(level)滑块:调低,显示更多(也更多噪声);调高,只留下最强的密度。来回拖,找到结构刚好清晰、噪声又不太多的那个值 —— 这一步最关键。
  3. 选显示样式。 命令 volume #1 style surface 用实心等值面(看整体形状最常用);style mesh 网格;style image 体渲染。
  4. 打光与描边。 lighting soft 柔和,或 lighting full 带阴影、更立体;再加 graphics silhouettes true 给结构描个边,截图更清楚。
  5. 配色。 color #1 cornflowerblue 这类单色;或按数值/高度上色,让深浅有层次。
  6. 转、切、看。 鼠标拖动旋转,view 复位视角;想看内部,就用剖切面(Side View 里的 clip,或 clip 命令)切开。
  7. 出图。 save 图名.png supersample 3 导出高分辨率截图;要旋转动画就 movie record … 转一圈 … movie encode 动画.mp4
提示

本站结果页里那些三维重构图(apoferritin、Vipp1),正是这样在 ChimeraX 里渲染出来的。先把一个阈值和视角调好,之后每次截图都很专业。

把结构分割出来

「看见」只是第一步。等值面让你看到整团密度,但里面常有好几样东西混在一起 —— 一段膜、一个核糖体、一个囊泡。**分割(segmentation)**就是把体里一块块结构圈出来、各自当成独立对象去上色、隐藏、测量、单独导出。下面给出两条最常见的入门路径:在 ChimeraX 里对密度图分区,或在 IMOD 的 3dmod 里手工描轮廓建模型。

直觉

分割回答的是「这块密度是什么、在哪、有多大」。原始的体只是一锅密度值;分割给每一勺密度贴上标签,于是你能把膜从背景里抠出来、单独量它的面积或体积、或者把一个细胞器拎出来转着看。无论自动还是手画,本质都是在体里画边界、给区域命名。

在 ChimeraX 里分割密度图

ChimeraX 自带 Segment Map 工具(菜单 Tools → Volume Data → Segment Map),它把一张密度图自动切成许多区域(region):算法在密度里找一个个局部极大值,再把周围相连的体素归到最近的极大值名下,于是整个体被划成一片片小块,每块是一个候选结构单元。

最小流程:

  1. 先调好阈值。 和上面看体一样,先在 Volume Viewer 里把等值面阈值定到结构清晰、噪声可控 —— 分割是在这个阈值之上的密度里做的,阈值太低会把噪声也切成区域。
  2. 跑 Segment Map。 打开工具、选中你的体、点 Segment。它会算出一堆区域,每块自动上不同颜色。
  3. 挑出你要的结构。 区域往往偏碎。用工具里的合并/分组把同属一个结构(比如一段膜、一个颗粒)的相邻区域并到一起;不需要的区域可以隐藏或删掉,只留下感兴趣的那一块。
  4. 上色、隐藏、单独看。 给保留下来的区域单独配色,把其余密度藏掉,就得到一张「只剩目标结构」的干净图。
  5. 测量与导出。 选中某个区域可以读它的体素数(换算成体积)、看它的位置与范围;也能把这块区域单独存成一个新的体或表面网格(surface mesh),供后续分析或出图。
深入

Segment Map 这种「按局部极大值分水岭」的自动分割,对形状紧凑、密度突出的东西(独立颗粒、清晰的囊泡)很好用,但对又长又细、对比度又低的容易切碎或切断。实际中常把它当起点:先自动分出大块,再用上色/合并/隐藏手工收拾边界。需要更准的表面,还可以单独导出区域的 surface,再用 ChimeraX 的表面显示选项(实心 / 网格 / 透明度、平滑)去调,让膜或细胞器的轮廓干净可读。

在 IMOD 3dmod 里手画分割

当结构太细、对比度太低、自动工具不靠谱时,最稳的办法是手工描轮廓。IMOD 的 3dmod 就是干这个的:你逐层翻过断层图,沿着膜或细胞器的边界一圈圈画线,这些线攒起来就构成一个三维模型对象,再从轮廓生成表面 —— 这就是一份人工分割。

最小流程:

  1. 打开断层图。 3dmod 你的.rec(或在 etomo 里点开)。会出现一个 ZaP 切片窗口,可以滚轮逐层(沿 Z)翻看;同时另开一个 Model 状态,准备画线。
  2. 进建模式。 在窗口里切到 Model 模式(不是 Movie 模式)。此时鼠标点击会落下模型点。
  3. 沿边界描轮廓(contour)。 翻到能看清目标的某一层,沿着膜 / 细胞器的边缘点一圈点,连成一条闭合的轮廓线。翻到下一层,再描一条。一层层描下来,这一摞轮廓就勾出了结构在三维里的形状。
  4. 分对象(object)。 一个对象对应一种结构。要分割多样东西(比如外膜、内膜、一个囊泡),就新建多个对象,每个对象给不同颜色,各自描各自的轮廓。
  5. 从轮廓生成表面网格。 描完后,让 3dmod 把一摞轮廓「蒙皮」成三角面(mesh),就得到一个连续的三维表面 —— 膜或细胞器的实体形状。
  6. 存模型、当分割用。 把模型存成 IMOD 的 .mod 文件。这份模型本身就是一份分割:每个对象 = 一个被标注的结构,可以用来测面积 / 体积、统计、或导出表面供 ChimeraX 渲染。
提示

手画很费时但最可控 —— 弱信号、复杂膜结构常常只能这么来。诀窍是不必每层都画:隔几层画一条轮廓,让插值补中间,再回头修关键层,能省下大量点击。

自动分割工具(了解即可)

逐层手画细胞里几十段膜显然吃不消,所以有一批自动 / 半自动工具去学着分割膜与细胞器,常见的有 MemBrain(专攻膜分割)、EMAN2(带基于卷积网络的断层图分割工作流),以及商业软件 Dragonfly。它们大多需要你先手标一小批样本作训练,再让模型推广到整套数据;产物同样是膜 / 细胞器的标签或表面。这里只点名,具体用法与效果随数据而定,按各自文档来。

一条线串起来:重构越干净,分割越省力

不管走 ChimeraX 还是 3dmod,分割的难易直接取决于体本身有多干净。噪声大、缺失楔形把结构沿 z 拉糊的体,膜的边界忽隐忽现,自动工具切碎、手画也找不准边。反过来,一个去噪到位、缺失楔形被补偿过的体,膜清晰连续、颗粒边界利落,分割会轻松得多。

这正是训练去噪 / 复原那一步的意义所在:自监督模型(CryoCARE、DeepDeWedge,乃至本站的重构方法)先把体清理干净、把缺失楔形交给学到的先验去补,进 ChimeraX / 3dmod 分割 —— 一个好的重构,是一份好分割的前提。

两者如何衔接

一句话:IMOD 负责「从投影到三维体」,ChimeraX 负责「把三维体看明白、分割开、讲出来」。 中间还能接上结构分析里的子断层平均、颗粒挑选与分割,进一步提升信噪比、定位与解读结构。而本站讲的重构方法,正是想替换或增强 IMOD 这一步里对缺失楔形的处理。


上一步:训练去噪 / 复原模型 —— 把体清理干净,再回到这里把结构看出来、分割开。这是软件流水线的最后一站。

← 软件与数据处理