资讯详情

资讯详情

RELION 5.0冷冻电镜单颗粒分析全流程实战指南

做冷冻电镜的人迟早要跟 RELION 打交道。这个软件从我第一次接触到现在已经陪着处理了不少数据集从小蛋白到大复合物从只能看个轮廓到勉强能谈原子分辨率版本也从早期一路用到如今的 RELION 5.0。很多人以为 RELION 只是个“框粒子、转结构”的黑盒子实际用过就知道真正的门槛不在软件本身而在于你对每一步参数的理解以及对那些藏在界面背后的判断标准是否清楚。RELION 5.0 的图形界面和参数项比旧版本丰富了不少但核心流程逻辑始终是那条线运动校正、CTF 估计、粒子挑选、2D/3D 分类、三维精修、后处理。这篇文章我就把自己最常用的一套流程和参数选择整理出来按步骤讲透适合刚接触冷冻电镜数据处理的人也适合从旧版本切过来想快速上手的朋友。我不会堆一堆官方文档里已经写清楚的操作截图式教程会更侧重“为什么这么设参数”和“实际跑数据时你会遇到的施工问题”。毕竟冷冻电镜数据处理很多时候不是软件跑不动而是你没有用对姿势。1. RELION 5.0 的核心思路为什么这套流程能跑出高分辨率先花点篇幅讲清楚 RELION 5.0 在整个冷冻电镜单颗粒分析流程里扮演什么角色。冷冻电镜从数据收集到结构解析大致经历这几次跳跃显微镜拍出的是大量带噪声的电影帧每帧里包含成千上万个随机朝向的蛋白颗粒影像但这些影像是二维投影且信噪比极低。你需要把它们从背景里挑出来判断哪些是有效颗粒再把这些二维投影归类、比对最终通过大量不同角度的投影重建出三维结构。RELION 就是承担这个“从二维投影到三维结构”的重建和精修工具。它的核心方法说白了是最大似然估计也就是在给定观测到的粒子图像和当前三维结构模型的情况下不断调整模型参数使所有粒子图像的总体似然概率最大化。这个过程不是一次完成的而是迭代精修先有个粗糙的初始模型然后计算每个粒子在各种投影角度下的匹配程度再把这些粒子按概率加权反馈回去更新三维模型如此反复几十上百轮。RELION 5.0 在算法效率、GPU 加速和内存管理上都比旧版更友好我实际用下来同样的数据集处理时间能缩短不少。理解了这一步你就明白为什么 RELION 对参数这么“敏感”。比如粒子的平移搜索范围、角度采样密度、正则化参数这些表面上是数字实际上都控制着算法在“寻找最优解”时的自由度。参数设大了计算量爆炸容易跑偏设小了又找不到真实的结构状态。后面每一节我都会结合具体环节讲参数取舍先记住这个总原则就行RELION 不是一键出图的软件它的成功建立在每一步都对数据有合理判断。2. 环境配置与数据准备装好软件只是第一步2.1 安装、编译和运行环境避坑点不少RELION 5.0 官方推荐在 Linux 环境下运行发行版最好选 CentOS、Ubuntu 或者 Debian 这一系。我第一次装的时候图省事直接用默认的 gcc 编译结果跑起来偶尔闪退后来才发现是编译器版本和 CUDA 不匹配。现在我的习惯是先确认 NVIDIA 驱动和 CUDA 工具包版本再决定用什么编译器和 MPI 库。具体来说RELION 5.0 对 CUDA 的支持主要依赖 cuFFT 和 cuBLAS建议 CUDA 版本不低于 11.x太老的驱动会让你连 GPU 加速都用不上。编译本身不太复杂但有几个选项一定要手动确认cmake -DCMAKE_INSTALL_PREFIX/path/to/relion5 \ -DCUDAON \ -DMPION \ -DAPPLEOFF .. make -j 16 make install我建议把-DCUDAON必须打开否则整个精修流程会慢得让人怀疑人生。MPI 选项也建议打开因为你迟早要跑多节点并行。还有一个很多人会忽略的点编译前检查一下fftw有没有装好RELION 的傅里叶变换依赖它版本太老或者路径不对编译时不会报错但运行时会出现莫名其妙的对齐问题。为了方便复现我也推荐用 Singularity 或 Apptainer 容器跑把依赖一次性封装好换机器的时候不会一地鸡毛。2.2 数据目录组织别小看这个习惯冷冻电镜数据动辄几个 TB如果目录结构混乱后期找参数、核对中间结果会非常痛苦。我自己的标准布局是.mrc原始电影单独放一个目录后续的 MotionCorr、CTF、Particle extraction 每一级都单独建目录并且在运行每一步之前都把项目工作目录在 RELION 里设置好。RELION 5.0 的图形界面里以“项目 (project)”为单位管理每一个处理步骤都会产生新的子目录和 STAR 文件。STAR 文件你可以理解为就是这个软件的“数据库”里面存储了粒子坐标、各项 CTF 参数、图像路径等所有信息。务必养成一个习惯每次跑完一步立刻在当前目录下写好说明文件记录用的输入 STAR 文件名、关键参数、跑这一轮的日期。不然三个月后回来你看着一堆名为Class3D、Refine3D的目录根本想不起来哪一轮是好结果。3. 预处理流程从原始电影到干净粒子3.1 运动校正与剂量加权显微镜拍摄过程中样品会因电子束照射产生移动哪怕只是漂移几个埃都会让图像模糊。运动校正的目的就是追踪并修正这种移动。RELION 5.0 里用的还是贝叶斯方法基本逻辑是把一叠电影帧分成若干时间片通过互相关计算每个片子相对于参考帧的位移再把帧对齐、合成一张平均图像。操作时主要参数是Bfactor、Patch size和Number of patches。Patch 是个很有意思的概念它把图像切成分块分别估计每个块的运动轨迹而不是只做整个图像的一个刚性平移。这样能处理局部变形比如样品边缘漂移更大、中心稳定。我实测下来对于大多数样品5x5 的 patch 划分是稳妥选择如果样品特别容易漂移我会提到 6x6 甚至 7x7但代价是计算时间增加。Bfactor默认给 150 就行它其实是在给配准结果做平滑太高会过度模糊位移场太低噪声会被当成信号。剂量加权这个功能同样在运动校正环节一并计算。电子束照射时间越长样品损伤越严重所以不同帧的高频信号可信度不一样。RELION 通过给每个 frame 设置一个“剂量权重”让早期低剂量帧贡献更多细节后期高剂量帧只用来对齐。这一步你不一定需要手动改参数但要看一眼输出日志里的帧权重曲线如果曲线掉得太快说明样品辐敏后面抛光步骤可能要加大权重。3.2 CTF 估计与像差校正运动校正好之后接下来要处理的是“点扩散函数”问题。简单类比你把相机镜头弄脏了拍出来的照片就会发蒙CTF 就是描述这个“镜头瑕疵”的数学函数。电子显微镜的 CTF 由离焦量、球差、色差、像散等因素共同决定它会使得不同空间频率的信号在图像上出现涨落有的地方增强有的地方削弱。RELION 5.0 的Ctffind4模块会扫描一组候选离焦参数自动拟合出来最接近实际拍摄条件的 CTF 曲线。这里最重要的输出是MaxResolution、FigureOfMerit和DefocusU/V。我的建议是处理前最好粗略看一眼每个 micrograph 的 CTF 拟合质量凡是 FigureOfMerit 很低或者分辨率极限明显低于整体水平的直接标记为异常在后续流程里过滤掉。如果一套数据里有很多张图的离焦量乱跳那大概率是显微镜本身的问题不要指望数据处理能完全救回来。CTF 估计阶段还会顺手做像散校正。像散就是镜头在两个垂直方向聚焦不一致导致图像在某个方向清晰、垂直方向发糊。RELION 通过拟合两个方向的离焦差来补偿输出DefocusU、DefocusV、AzimuthalAngle三个参数。我自己习惯在参数面板里开启Estimate phase shifts针对相位板数据很重要普通明场数据没有相位板也可以开启多花不了多少时间但能把某些高阶像差一起拟合出来对后续高分辨率精修有益无害。3.3 粒子挑选挑得准比挑得多重要粒子挑选这一步从二维图像里“框”出看起来像蛋白的颗粒。早期版本里用的是 Laplacian-of-GaussianLoG滤波通过找图像里比背景更“圆”的信号来识别蛋白。RELION 5.0 里还支持基于神经网络的方法效果更好尤其是样品背景复杂、有冰污染或者颗粒密度不均时。我自己的策略是先用 LoG 快速扫一遍把参数调得保守一点多挑一些候选交给 2D 分类去筛。LoG 里的关键参数是Diameter这个值要估得比较准取蛋白在图像中的平均直径单位是埃。太大或太小都会导致挑出来的粒子要么不是目标要么只框住蛋白的一部分。你可以先用显微照片的 scale bar 估算一下分子直径。比如一个分子量 300 kDa 的蛋白复合物直径大约在 9 到 12 nm 之间换算成像素就是 120-160 像素对应 1Å/pixel 采样率。这个不需要特别精确但别差一个数量级。自动挑选之后一定要做 Visual inspection把有明显假阳性的区域用 “denoise” 等方式在 GUI 里剔除。挑出来的粒子数量宁多勿少反正后面清洗靠分类但一开始漏挑就会造成不可挽回的损失所以推荐把Threshold调低多留候选粒子。3.4 粒子提取裁剪尺寸、归一下参数选定粒子坐标后RELION 会根据你设定的 box size 把这些区域从显微图里裁剪成小图像。这里Box size的选择很有讲究太大图像里包含过多背景和相邻粒子干扰太小会截断蛋白真实结构导致重构时边界效应。经验原则是 box size 至少要大于蛋白直径的 1.5 到 2 倍并且最终的 box size 最好先设得大一点比如 360 像素左右在分类过程中如果没有分辨率问题再考虑裁剪到 256 或 300 像素来减少内存和计算量。RELION 允许在后期重新提取粒子所以这一步不用太纠结参数上记住一个原则宁大勿小但不要大到背景噪声主导了整个粒子图像。4. 颗粒分类把路走宽再把路走窄4.1 2D 分类先扔掉明显不行的粒子2D 分类是整个流程里最“解压”也最关键的环节。它把所有粒子图像按照投影相似度聚成若干类每一类就是所有粒子在某一种朝向下的平均投影。跑完 2D 分类后界面里会展示各个类别的平均图你要做的是“看图说话”看起来有明显蛋白二级结构、有清晰边界、背景均匀的类是好的看起来一片糊、形状奇怪、像冰晶或者像金颗粒的类就要丢弃。分类数目我一般设在 50 到 100 之间看粒子总量多少。总量在几十万的分 80 类上百万的增加到 150 到 200。分类数太少会让不同状态的粒子被强行平均在一起太多则每一类粒子数太少信噪比上不去。2D 分类里有几个参数要注意Number of iterations默认给 25基本够用Regularization parameterT值默认是 2这个值越大分类越倾向找出更相似、更保守的类越小越容易过度拆分。通常 T2 到 4 之间是一个合理区间数据噪声大就稍微调大一点。丢弃规则上我的经验是如果某一类粒子数量占比低于 5%且平均图模糊直接删掉如果某一个类平均图里出现两个或多个颗粒距离很近的“团聚”保留它但做好标记等 3D 阶段再看。2D 分类的目标不是拿到张张完美的平均图而是把明显不对的粒子大浪淘沙掉同时给你一个对数据质量的整体感觉。4.2 3D 分类区分构象与亚基组成2D 分类之后留下来的粒子等于已经基本确定是形态正确的蛋白但你还不知道蛋白有几种构象、有没有不同复合物组分混在里面。3D 分类的作用是把这些粒子分配到若干个不同的三维结构模型里去。它比 2D 分类更“昂贵”但信息量也大得多。RELION 里做 3D 分类前必须先有一个初始 3D 模型。这个模型可以从已有 PDB 结构转成低通滤波模型来做参考也可以先用relion_reconstruct基于一个混沌初始模型跑出低分辨率结构。如果没有任何先验信息RELION 也能用随机模型的 ab-initio 方法生成初始参考但这需要一定计算资源并且不保证每个类都能收敛。我自己的调试经验是第一阶段先做一轮分类数较少的 3D 分类比如 2 到 4 类主要为了把明显不同构象的粒子分开对每个类再视情况进行第二轮细分。分类原则是观察每个类的分子体积、内部密度分布是否合理。如果某个类分辨率明显高、结构特征清晰就把它作为下一步精修的粒子集合如果某个类像一坨糊就再看看它原本是哪些粒子构成的是不是来自同源多聚体的断裂片段。4.3 怎么判断分类好坏别被一堆“漂亮”数字骗了很多人会只看分类结果里的分辨率数字来判断好坏这其实是个大坑。RELION 在 3D 分类或精修过程中报出的“resolution”是根据 gold-standard FSC 算出来的它反映了两个独立半集之间的一致性。但一致性高不代表结构就是对的如果你的参考模型选错了或者优参淹没在噪声里FSC 曲线也可能“虚高”。我见过不少人把一个错误构象当作高分辨率结果反复迭代最后结构发出来被审稿人指出来。所以分类阶段一定要结合每个类的“平均粒子投影图”和“三维密度图”做人工判断不要只盯表格里的数字。5. 三维重构与高分辨率精修5.1 初始模型与三维精修参数经过 3D 分类之后你手中往往有一个或几个原子分辨率潜力较高的粒子集。下一步就是 3D 精修3D refinement把模型从一个中等分辨率的“粗坯”打磨到尽可能高的分辨率。RELION 5.0 里的三维精修会同时优化每个粒子的角度参数、平移参数以及 CTF 参数不断迭代。精修前需要设定几个核心参数。第一是Symmetry就是蛋白的对称性。这一步一定要准确设错了结构解出来必然错乱。一个 60 聚体衣壳你要是只给了 C1 对称计算量会爆炸且分辨率可能上不去若真是 D7 对称你却给了 C7结构就会看起来平平的少了一半 DNA 壳信息。如何确定对称性可以结合生化实验或者用低分辨率精修结果看密度中的对称轴。第二是Initial low-pass filter一般设为 30-50 Å太高会强迫初始模型主导结果太低则容易陷在噪声里。第三是Angular sampling interval早期精修可以设 7.5 度后期提高分辨率了要减小到 1.8 度甚至 0.9 度。这个值和直方图数量直接挂钩是计算开销的大头。精修是反复迭代的过程。我通常先跑一轮不加密的精修观察收敛情况。如果旋转角度分布已经比较集中就缩小采样间隔再跑一轮直到整体分辨率不再提升。这个阶段你还会看到 RELION 输出每个粒子的rlnParticlePriors和各类评价值这些参数可以用来发现某些“不老实”的粒子例如那些与大部分粒子方向完全不一致的异常点可以把它们删除后再精修一轮。5.2 后处理、mask 与分辨率量度精修完成后还要做后处理这一步通常在relion_postprocess里完成。后处理要解决几个问题一是给你的密度图施加一个“软边”的 mask把溶剂区域排除掉提高分辨率计算的信噪比二是做 B 因子校正把密度图从高通滤波状态校正到看起来更锐利的高分辨率状态三是最终计算 FSC 曲线和分辨率。Mask 是个非常有讲究的操作。太紧的 mask 会把蛋白边缘的一部分真实密度切掉太松的 mask 会把噪声区域包含进来导致 FSC 虚高。我推荐的做法是用relion_mask_create先生成一个 mask然后在后处理里检查一下 map 和 mask 是否吻合。Mask 的lowpass参数一般给 15 Å并加一个 3-5 像素的边缘软化。做完这些之后看 FSC 0.143 标准下的分辨率值同时检查模型的 Fourier shell correlation 是不是各向同性如果某一方向的 FSC 明显低可能是粒子取向分布不均匀需要在后续的 classification 里多收集特定取向的粒子。后处理的另一个重要输出是3DFSC3D Fourier Shell Correlation它可以告诉你各方向的各向异性程度。RELION 5.0 也内置了 3DFSC 计算你可以看看各向异性因子anisotropy是否严重。如果数值偏低就要小心你的结构是不是“披萨”形状也就是在某个方向分辨率特别差这种情况通常需要更多的倾斜收集数据或者特殊的分类策略来弥补取向缺失。6. 贝叶斯抛光与 CTF 精修提分辨率的两张王牌6.1 贝叶斯抛光把剂量损伤也考虑进去到了这一阶段很多人的分辨率就卡在一个平台上推动它继续往下走的关键就是贝叶斯抛光Bayesian polishing。抛光做的事情是对每个粒子单独重新做一次运动校正和辐射损伤权重调整而不是在你做运动校正时那样对整个 movie 做一个统一的校正。原理上就是把每个粒子作为一个独立单元估计它在整个帧序列中的轨迹和损伤程度再做一次更精细的重新平均。实际操作时relion_particle_polisher会输入一个包含所有粒子坐标的 STAR 文件和原始电影数据输出一个新的“抛光后的粒子集”。这一步的参数量不多但计算量很大。比如一个百万粒子级别的数据集抛光通常要跑半天到一天看你有多少 GPU 卡。跑抛光前务必要确认运动校正输出时保留了每帧的图像数据并且 STAR 文件里有完整的光栅位置信息。如果中途报错八成是输入路径出了问题把路径差通顺再跑一遍就能解决。抛光之后你会发现 FSC 曲线在高分辨段有一个明显的抬升特别是对分子量较大的样品效果尤其明显。6.2 CTF 精修把每个粒子的像差修到极致CTF 精修和运动校正是相辅相成的。做完全局 CTF 估计之后每个粒子的离焦量其实并不完全一致因为蛋白可能在冰层里略微倾斜或者在电镜视野的不同位置高度有差异。RELION 5.0 的 CTF refinement 允许你对每一颗粒单独再拟合一次 CTF 参数包括离焦量、像散、像散角度以及高阶像差如三阶像差、彗差等。跑完 CTF 精修后你会得到每个粒子的新 Defocus 值然后回头再做一轮 3D 精修。这一套组合拳贝叶斯抛光 CTF 精修 3D 精修往往是冲破分辨率的捷径。我自己见到过从 4.0 Å 直接冲到 3.2 Å 的案例完全靠这一套组合操作。但是要注意顺序先做 CTF 精修再做贝叶斯抛光还是反过来我习惯先跑一轮 3D 精修基线再做一次 CTF 精修得到新离焦值然后再跑贝叶斯抛光最后再三轮精修。你可以把这几步调换顺序试数据不同最优顺序可能有差别。7. 常见问题排查与避坑记录把我在实际跑数据中遇到的典型问题和排查思路整理成一张速查表方便你平时对照使用。现象可能原因处理建议2D 分类平均图全是糊的运动校正不准 / CTF 估计错误 / 粒子挑选框错了位置回看运动校正日志重跑 CTF检查粒子坐标是否偏中心分辨率卡在 8 Å 不动粒子取向偏好严重 / 冰层太厚 / 参数收敛不够做 3D 分类细分检查取向分布图加密角度采样精修发散分辨率越跑越低初始模型严重错误 / 角度采样太大 / 对称性给错把初始模型低通滤波到 60 Å减小采样间隔检查对称性FSC 曲线在高分辨率端突然拔高mask 太紧或过拟合重新生成 mask加宽 soft edge开启 gold-standard FSC贝叶斯抛光跑得特别慢数据量太大 / CPU 核心数不够 / 磁盘 IO 瓶颈使用更多核把临时文件放 NVMe SSD 上内存爆掉box size 太大 / 粒子数量太多减小 box size分两个独立 half-set 跑GPU 利用率低批处理参数太小 / CPU 和 GPU 间传输瓶颈查看 GUI 日志里的 batch size 设置调大 batch同时保证 CPU 多核参与还有一个特别常见的坑我必须单独拎出来说SAGSample absorption and ghosting效应。当样品里冰很厚、或者蛋白在冰层里分布不均时颗粒图像会带有明显“背景吸收”和“鬼影”。这个效应会在高分辨率阶段严重影响 FSC。RELION 5.0 里可以通过 CTF 精修的高阶像差选项在一定程度上缓解但如果冰层质量实在太差数据处理只是“补锅”最好的办法还是回到电镜上重新制样。不要试图用参数把一份烂数据救成一篇论文这不是 RELION 能解决的问题。关于计算资源我也建议做一次评估。RELION 5.0 对 GPU 的需求不是简单的“越多越好”。以精修步骤为例显存太小会限制粒子 batch 大小导致计算效率下降内存容量至少要有 128 GB粒子提取和后处理阶段对内存的需求尤其大。如果你是用机房共享集群记得和系统管理员确认节点间的 InfiniBand 连接方式MPI 跑在多机之间时网络延迟会显著影响精修速度。就经验而言一个百万粒子数据集从预处理到最终高分辨率结构4 块 V100 或 A100 够用但跑到贝叶斯抛光时还是建议用 A100 级别省下的时间是很可观的。最后分享一个我的个人习惯每完成一轮关键步骤我会把当时的 STAR 文件、参数文件和图像全部打包成一个 tar 存档标上日期和说明。这看似多此一举但当你需要回溯某一轮到底因为什么产生好结果时就知道它有多重要。冷冻电镜数据处理是一场长跑稳定、可复现的工作习惯往往比偶尔一次的爆发更管用。希望这份总结能帮你把 RELION 5.0 这条路走顺早日拿到属于你的漂亮密度图。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →