数据处理:CTF 与剂量加权

对齐与重构之间的预处理 —— 估计并校正 CTF、按剂量加权、反卷积提升低频对比

直觉

倾转序列对齐告诉你每张图是从哪个角度、对准哪个位置拍的;重构把这些图叠成三维体。但在这两步之间,还有一层经常被忽略却决定成像质量的预处理:每张投影本身就是被显微镜的成像物理”扭曲”过的,要先把这层扭曲尽量还原,叠加出来的频率才能相干地对齐、而不是互相抵消。两件事最关键:CTF 校正剂量加权

这一页讲清楚这层预处理:CTF 是什么、为什么不校正就会糊、怎么估、怎么校;剂量加权回顾;反卷积为什么有用又为什么”不增信息”;元数据怎么不丢;以及一条新手最容易踩的实操规则。先说输入输出

CTF:显微镜把频率拧过一道

电镜不是理想成像系统。为了让低对比的生物样品可见,要让物镜欠焦 (defocus) 一点——而欠焦的代价是,不同空间频率被乘上了一个随频率振荡的传递函数,这就是对比传递函数 (CTF, contrast transfer function)。它最要命的特点是会翻转符号:某些频率区间的对比是正的,相邻区间却是负的,在频谱上表现为一圈圈明暗交替的环(Thon 环)。

为什么这件事必须在重构之前修好?因为重构本质是把各张图在频域里叠加。如果不管 CTF,符号被翻转的那些频率会和没翻转的互相抵消,本该相干叠加变成相互抹平,细节就糊掉了。所以要做两步:先估、后校

估计:从 Thon 环反推欠焦

逐张图去拟合频谱里那圈环的间距,就能反推欠焦值——欠焦越深,环越密。常用工具:

为什么倾转序列要特别处理?因为样品是有厚度的一片,倾转后沿倾转轴方向不同位置离焦平面的距离不同,欠焦会随样品高度沿倾转轴变化。所以不能只估一个全局值,要逐条带 (per-strip) 或逐角度地估。

校正:相位翻转 vs Wiener / 反卷积

知道了每张图的 CTF,就能把它的影响除掉。两种常见做法:

深入

写成频域的乘法,观测谱 I^(k)\hat{I}(\mathbf{k}) 大致是真实信号谱 O^(k)\hat{O}(\mathbf{k}) 被 CTF 调制的结果:

I^(k)=CTF(k)O^(k)+N^(k)\hat{I}(\mathbf{k}) = \mathrm{CTF}(\mathbf{k})\,\hat{O}(\mathbf{k}) + \hat{N}(\mathbf{k})

其中 CTF(k)sin ⁣(π(12Csλ3k4Δzλk2))\mathrm{CTF}(\mathbf{k}) \approx -\sin\!\big(\pi(\,\tfrac{1}{2}C_s\lambda^3 k^4 - \Delta z\,\lambda k^2)\big)Δz\Delta z 是欠焦量、λ\lambda 是电子波长、CsC_s 是球差。sin\sin 过零点的地方对比为零、过零之后符号翻转,这正是 Thon 环和符号翻转的来源。相位翻转就是乘 sgn(CTF)\operatorname{sgn}(\mathrm{CTF});Wiener 反卷积则乘 CTF/(CTF2+1/SNR)\mathrm{CTF}/(\mathrm{CTF}^2 + 1/\mathrm{SNR}),在过零点附近自动收手、不放大噪声。CTF 的傅里叶背景见信号处理基础

剂量加权:先坏的频率,权重就低

这一步在 运动校正与剂量加权里已经详细讲过,这里只回顾它和 CTF 的关系。电子束在记录信号的同时也在破坏样品。高分辨率(高频)信息对累积剂量最敏感,往往在序列拍到一半时就已经被打没了;低频信息则耐受得多。

剂量加权 (dose weighting) 就是按”这个频率在这个累积剂量下还剩多少信号”去给它分配权重:剂量小、频率低的成分权重高,已经被剂量打坏的高频成分权重压低,避免把纯噪声当信号叠进重构里。它和 CTF 校正是互补的两件事——CTF 修的是符号被成像系统拧反,剂量加权压的是被电子束打坏的频段——通常都在运动校正阶段(如 MotionCor2)或重构前完成,都需要知道每帧的累积电子剂量。所以从拍摄起就记录剂量元数据很重要。

反卷积:不增信息,但让人和算法都看得清

CTF 校正和剂量加权之后,断层图的低频对比往往还是偏弱,看起来发灰、发糊。反卷积 (deconvolution) ——Warp、IsoNet 这类工具里都有——再额外提一道低频对比,让膜、细胞器这些大尺度结构跳出来。

要点是:反卷积不增加新信息,它只是把已有频率重新加权、让肉眼和算法更容易抓住结构。但这恰恰对可视化颗粒挑选很有用——人和挑选算法都更依赖低频轮廓。换句话说,反卷积过的体适合用来”看”和”挑”,但要做定量分析、子断层平均时,更稳妥的是回到只做了相位翻转的体上。

深入:训练与预测要喂同一种数据

由此引出一条新手最容易踩的坑:训练和预测要喂同一种数据类型。如果一个模型(去噪、缺失楔形补全、分割……)是在反卷积过的断层图上训练的,那预测时也必须喂反卷积过的图;在原始(未反卷积)体上训练,就只能在原始体上预测。反卷积、剂量加权、滤波都改变了数据的频谱分布,模型学到的是那个分布下的统计规律——换一种预处理就等于换了输入域,结果会悄悄变差却不报错。像 CryoGEN / CryoWGEN 这类学先验的方法尤其要守住这条:从准备训练数据到推理,保证预处理链一字不差地一致。

元数据:别让信息散落

上面每一步都依赖一组贯穿全程的参数:像素尺寸(决定频率到分辨率的换算)、倾转角(重构要用)、逐图欠焦量(CTF 校正要用)、每帧累积剂量(剂量加权要用)。这些通常集中存在 star 文件里——一种纯文本表格,每行一个对象、每列一个参数——作为对齐、CTF 估计、重构各环节之间传递的契约。

元数据错位——比如像素尺寸填错、欠焦的正负号约定搞反、倾转角顺序和栈里的图对不上——往往比算法本身更常成为重构失败的原因,而且通常不报错,只是结果莫名其妙地差。养成习惯:每换一个工具,先核对它对像素尺寸单位(Å/px)、欠焦正负号、角度顺序的约定。

一条可照做的清单

新手按顺序走一遍,这层预处理就齐了:

  1. 核对元数据:像素尺寸(Å/px)、每帧累积剂量(e⁻/Ų)、显微镜电压与 CsC_s、每张图的倾转角,是否都和原始数据对得上。
  2. 估计 CTF:对每张倾转图跑 CTFFIND4 或 IMOD ctfplotter,得到逐图欠焦量;倾转序列要让工具处理沿倾转轴的欠焦梯度。
  3. 检查拟合:看一眼 Thon 环拟合好不好——拟合的环和实测的环要对齐。倾角越大、信号越弱,拟合越不稳,必要时手动调。
  4. 剂量加权:确认运动校正阶段已经按每帧累积剂量做过加权(见帧处理一节)。
  5. CTF 校正:选相位翻转(保守、稳妥,适合定量与子断层平均)或 Wiener/反卷积(对比更足,适合看与挑)。
  6. (可选)反卷积:若主要为了可视化或颗粒挑选,再生成一份反卷积体——但单独存放、标好,别和未反卷积体混用。
  7. 锁定数据类型:决定下游(重构、训练、分析)用哪一种体,并从此一以贯之——训练和预测必须同型。

CTF 和频域调制的傅里叶基础见信号处理基础傅里叶变换;预处理完成后如何叠成三维体,见从倾转序列到断层图


上一步:运动校正与剂量加权 · 下一步:基准点对齐

← 软件与数据处理