可以GPU加速的Bayesian polishing!

如果在RELION的广大用户群体中发起一项投票,选出大家最希望改进的功能,相信Bayesian polishing一定榜上有名。从RELION-3.0的发布到RELION-5.0的更新,各位冷冻电镜工作者望眼欲穿,Bayesian polishing却依然没有实现GPU加速。不过现今这个问题有望解决啦!就在CryoSPARC近期发布的v4.4中,开发团队为我们带来了CryoSPARC版本的Bayesian polishing任务:Reference-based Motion Correction。

从CryoSPARC提供的官方教程中我们可以了解到,Reference-based Motion Correction的开发灵感正来自于Bayesian Polishing (Zivanov, Nakane & Scheres, 2019, DOI: 10.1107/S205225251801463X)。更重要的是,Reference-based Motion Correction任务可以调用多个GPU并行运行,因此运行速度将得到大幅提升。另外,这一任务提供了更多可视化的图表信息,方便用户快速了解任务运行情况并据此及时优化输入参数。

Reference-based Motion Correction原理

我们首先来看一下它的原理。Reference-based Motion Correction任务根据每个颗粒的取向信息计算3D map的投影,然后使用投影作为参照物计算每个颗粒在它对应的movie frames里的移动轨迹。由于每个frame中颗粒的信号非常微弱,因此获取的轨迹信息中包含很强的噪音。为了解决这一问题,Reference-based Motion Correction任务会根据一部分颗粒训练出一组满足几个正则化条件的超参数(hyperparameters),从而避免噪音导致的不合理的颗粒移动轨迹。最后,它还可以根据一部分颗粒获取符合该套数据实际情况的empirical dose weights,从而提供更准确的电子剂量进行辐照损伤修复。

超参数概念

为了让用户更加了解如何从图表中获取有用信息并判断运行结果优劣,我们需要简单介绍一下什么是超参数。如前所述,由于每个movie frame里的信噪比太低,在使用3D map投影作为参照物时通常会过度拟合噪音,从而导致最终获得的颗粒移动轨迹不合理。为了避免过拟合,Reference-based Motion Correction采用了两种正则化手段:空间先验(spatial prior)和加速度先验(acceleration prior)。空间先验会对空间相关性较低的候选轨迹进行惩罚(即鼓励邻近颗粒移动轨迹彼此相似的候选方案);加速度先验会对加速度较高的颗粒轨迹(即不够平滑的轨迹)进行惩罚。

空间先验有两个调节参数来调整惩罚行为:

总体强度参数(overall strength parameter),即对非空间相关轨迹的惩罚力度

相关性长度(correlation length),我们期望轨迹在多大长度内拥有相似度

加速度先验有一个调节参数:

总体强度参数(overall strength parameter),即对非平滑轨迹的惩罚力度

上述三个先验调节参数被称为超参数(hyperparameters)。如果先验调节参数的力度太强,那么每个颗粒的轨迹参数都为0。如果先验调节参数的力度太弱,则每个颗粒可能会将噪音对齐到2D reference上,从而导致过度拟合噪音。为了方便计算,空间先验和加速度先验的总体强度参数会合并成两个参数:总先验强度(total prior strength,r)和加速度/空间比例角度(acceleration/spatial balance,Θ)。空间先验的总体强度参数=r*sinΘ,加速度先验的总体强度参数=r*cosΘ。再加上空间先验的相关性长度(z)。Reference-based Motion Correction的第一个步骤就是从数据自身搜寻r、Θ、z这三个超参数(类似于RELION Bayesian polishing的train步骤)。CryoSPARC提供了三种搜寻超参数的选项:Fast、Balanced和Extensive,默认选项Fast基本可以满足大部分数据的要求,其他两个选项则需要更多的计算资源和计算时间。如果用户需要修改默认选项,可以在创建任务时设置hyperparameter search thoroughness参数。

在搜寻参数的过程中,每一轮都会输出两个图表:Hyperparameter search progress和Trajectory activity vs CV score (cumulative)。第一个图表显示每一轮搜寻结果的打分(图1),对于大部分数据来说,这个分数是逐渐降低的,说明搜寻结果在朝着好的方向发展。如果分数不停波动说明数据可能存在问题。第二张图表为颗粒平均移动距离的打分(图2),该分数的最低值对应的横坐标应该非常接近于0。如果该值不接近0,那么需要在创建任务时调大maximum total prior strength参数。

图1
图2

实测对比

为了让各位读者能够更直观地看到Reference-based Motion Correction任务和RELION Bayesian polishing任务的速度对比以及分辨率提升效果,我们使用两套数据来进行实测。测试机器为2*Intel 5320+4卡4090。两套数据分别为EMPIAR-10025数据集以及SP团队采集的一套铁蛋白数据集(800 images)。

我们在CryoSPARC和RELION分别做motion correction和CTF estimation。然后在CryoSPARC中进行图像挑选和颗粒筛选,以及Homogeneous Refinement、Reference-based Motion Correction和Homogeneous Refinement,从而对比Reference-based任务前后的分辨率差别。

随后,我们把CryoSPARC得到的颗粒坐标转换为RELION格式(《CryoSparc转RELION进阶流程2》),然后根据颗粒坐标从RELION的micrographs中提取颗粒,并进行三维重构(包含3D refinement、Mask creation和Postprocess)、Bayesian polishing、三维重构。由于RELION和CryoSPARC的refinement算法存在差异,为了避免这一因素导致最终分辨率的差异,我们把RELION在Bayesian polishing前后获取的颗粒导入CryoSPARC,使用CryoSPARC的Homogeneous Refinement进行计算,从而更加直观地进行对比。

首先来看一下CryoSPARC中分别采用Fast、Balanced和Extensive三种搜寻选项进行Reference-based Motion Correction任务的时间差异和Homogeneous Refinement分辨率差异。当使用10.5万个512 box的颗粒进行Reference-based Motion Correction,Extensive所需的时间是Fast的2倍多,而分辨率却相差无几。使用RELION的Bayesian polishing计算时间则长达24小时。

搜寻选项计算时间分辨率
Fast66 min2.35 Å
Balanced88 min2.34 Å
Extensive143 min2.35 Å
RELION24 hrs

再来看一下两个软件分辨率的对比。分辨率的计算均采用CryoSPARC的Homogeneous Refinement。由下表可以看出,CryoSPARC的Reference-based Motion Correction和RELION的Bayesian polishing对EMPIAR 10025和铁蛋白的分辨率提升能力相近。

Polishing软件数据Polishing前分辨率Polishing后分辨率
CryoSPARCEMPIAR 100252.44 Å2.34 Å
RELION5EMPIAR 100252.40 Å2.30 Å
CryoSPARC铁蛋白1.97 Å1.85 Å
RELION5铁蛋白1.96 Å1.86 Å

结 语

看到这个计算速度大幅提升且效果可以媲美RELION Bayesian polishing的新工具,各位读者是不是已经万分心动?快来更新使用吧!另外,在小蛋白、膜蛋白或者大分子复合物等困难案例上,Reference-based Motion Correction是否还能有这样的出色表现呢?期待您的测试与反馈!

Close Menu