CryoSPARC是当前冷冻电镜单颗粒重构的主流软件之一,它的界面交互十分友好。本文采用一套铁蛋白apoferritin的数据作为testdata。我们服务器路径在/data/testdata/apoferritin下。有需要的可以通过网盘下载:
提取码:CRYO。百度限速不方便的话去empiar数据库找一套铁蛋白(比如)下载几十张练手也是可以的,网速可能会快一点。
新建
这是CryoSPARC v4.4的主界面,CryoSPARC用户端通过Web网页访问。
点击上方绿色的New Project按钮可以新建Project。
Title输入你想取的名称,然后选择Project保存的路径(在数据盘里创建一个自己的文件夹),它会在选择的文件夹内创建一个”CS-Title”的文件夹,所有的运算结果都在这个文件夹下。点击Create新建。
进入Project之后,创建一个Workspace,取一个名字。不同worksparce之间是可以通过link job来互相访问计算的结果的,所以类似蛋白的不同数据可以放在一个Project里,方便引用模板匹配或者三维模型,分成不同Workspace方便分类和查找自己的任务。
右上角Detail显示Workspace或者Job的信息,锤子形状的按钮是Builder,可以新建所有类型的Job。
导入数据
冷冻电镜收集的原始图片一般是以Mutiframes Movies形式(比如tiff、eer格式)。
如果在收集的时候就做过Motion Corretion,或者在别的软件里比如RELION、MotionCor2等做过Motion Corretion,那么文件就是mrc格式的Micrograph,直接选择Import Micrograph
就行。
这里我们从头开始,点击Builder,在里面选择Import Movies
。
点击Movie data path
右边的文件夹图标,找到自己的原始数据位置,选择其中一张照片,然后在路径里改成*.tiff或者*.eer,回车。当前目录下全部Movies都被选中了。点击Select。
注意:*代表该文件夹下全部文件,为了防止一起导入当前路径下有gain或者其它文件,写*.tiff保证导入的都是以tiff后缀的Movies。
如果文件分布在许多子文件夹内,也可以用*来代替文件夹,比如EPU默认收回来的数据,可以选择类似输入
/path/to/Supervisorxxxx/Image-Disc1/*/Data/*.tiff
然后,点击Gain reference path
右边的文件夹图标,选中gain文件xxx.mrc。
CryoSPARC能用.gain或者.mrc后缀的gain文件。如果收集回来的gain文件是.dm4格式的,用eman2的e2proc2d.py脚本转化格式。
e2proc2d.py gainfile.dm4 gainfile.mrc
然后将电镜收集参数填完(这些参数在收集冷冻电镜数据的时候就要记下来)。
Rotate gain ref?
一般我们收的数据gain flip和rotate都不用管,都是正的。这套tutorial的数据需要旋转90度。输入1代表旋转一次90度。
Raw pixel size (A)
像素大小
Accelerating Voltage (kV)
加速电压
Spherical Aberration (mm)
球差系数
Total exposure dose (e/A^2)
总电子剂量
填好参数后点击点击Queue Job
然后点击Queue
。
可以看到这就是我们的原始图像。点击窗格左上角显示这个Job详细信息。如果正在Build这个Job,右下角点击Stop Building可以退出,再点击Build可以继续调整参数。
漂移校正
点击Builder并选择Patch Motion Correction
。
然后在左边Workspace中点击Import Movies那个Job的左上角,这时显示Import Movies这个Job的详细信息,右边是MotionCorrection Job的Builder信息。
鼠标左键按住Import Movies Job右侧Output Groups中的Import Movies,此时右侧的Input框会变绿,拖住Import Movies并放入Input。
这种拖动操作在CryoSPARC中十分常用,下文不再重复。
在Parameters中将Output F-crop factor
选为1/2。由于数据是以Super-resolution模式收集的,这个是bin2。如果实际收的数据没有用Super-resolution模式,可以不用管这个参数。
CryoSPARC-v4.0之后新增了一个Save results in 16-bit floating point
的功能,将原来的float32结果保存为float16,从而节省50%的存储空间并加快运算速度,同时对结果几乎没有影响,推荐勾选上。
点击Queue Job
然后点击Queue
。
计算CTF
点击Builder并选择Patch CTF Estimation
。
类似于上一步,点开Motion Correction
的结果,将其OutputGroups中的Micrographs作为Input拖入Patch CTF Estimation的Inputs框内。参数默认就行。
Queue Job
。
筛选照片
在数据收集过程中可能会有一些冰污染严重、像散高、位置偏移等问题的照片,可以筛选剔除,保证后续计算质量。
点击Builder选择Manually Curate Exposures
。将CTF estimated的Micrographs作为Input Exposures。Paticles那一栏可以不管,它写着Min:0就是允许没有Input。参数默认。
Queue Job
。
可以注意到在Builder页面中,Manually Curate Exposures
右侧有一个的Interactive标签,Queue后就会显示成”waiting”的粉红色状态。这种Job就是需要交互的手动Job。点击Job左上角打开详细信息。
打开后会显示如下的交互界面。右边有三个选项Thresholds、Micrograph、Diagnostics。
Thresholds可以通过调整阈值来批量选择、丢弃照片。Micrograph会显示单张照片。一般电镜照片都是成千上万张,所以大部分时候会用Thresholds快速筛选明显有问题的照片。比如这里在CTF fit resolution里看到两个明显离群的照片,值异常大。鼠标放到上面显示照片就能看出这张照片明显有问题。一种方法是在左侧选中这张照片的行(Row),然后点击右上角Reject舍弃掉。另一种方法是在Thresholds里选中CTF fit resolution,设置阈值的范围在2Å-6Å然后点击Set Thresholds,这样两张异常的照片就都Excluded了(显示橙色)。
点击右上角Done完成。右侧Output就可以看到25张照片accepted,2张rejected。
颗粒挑选
挑选颗粒是选出颗粒的坐标,然后用Extract From Micrographs
将其从一张大的照片中以一个小框扣出来。一般常用的有Manual Picker
手动挑选,Blob Picker
通过给定颗粒大小自动挑选,Template Picker
以给定的二维模板来挑选颗粒。
颗粒的挑选以及分类往往决定了后续三维重构、分类、细化的质量和结果。CryoSPARC中还有一些别的颗粒挑选的方法,比如通过深度学习训练等新的方法。
Blob Picker非常简单,直接给颗粒大小就自动挑选,它会创建一些直径的圆并作为颗粒模板。点击Builder并选择Blob Picker
。将Manually Curate Exposures
里accepted的Micrographs作为Input。并且在Minimum particle diameter
和Maximum particle diameter
参数里给出颗粒的大小范围(单位是Å)。如果你的颗粒不规则就要考虑到不同方向的投影可能大小不同。
Queue Job
。
Blob Picker的结果有的时候不一定尽如人意,有大量的坐标都是选择了空的位置或者碳膜上。
我们可以在这里用Inspect Particle Picks
这个任务来调整一下。创建Job,然后将Blob Picker的结果输入进去并Queue。
可以看到在左下角有一个可以拖动的条Power Histogram,用来设置阈值。阈值的低值往上拉可以将大量空的位置筛选掉,阈值的高值往下拉可以将信号特别强的冰颗粒去掉。点击Done Picking。
颗粒提取
Pick输出的只是一个XY坐标,要后续进行计算需要颗粒的照片,需要通过这个坐标以及给定一个正方形框Box将颗粒提取成一张张小的照片。
点击Builder并选择Extract From Micrographs
。
前面Inspect Particle Picks
结果里有两个Output Groups:Micrographs和Particles。分别作为Extract From Micrographs
的Input Micrographs和Input Particles。
然后修改Extraction box size。这个参数代表提取颗粒的box大小,至少需要比你的颗粒直径大。比如我这里已知铁蛋白的大小是120 Å左右,pixel size是0.495×2=0.99 Å/pix。那么给个150-180 pix的box大小就足够了。注意单位,用你的pixel size参数来进行pix和Å之间的转化。
将Save results in 16-bit floating point
勾选上。能节省一半的存储空间并提高计算速度。
Queue Job
。
二维分类
点击Builder并选择2D Classification
。将Particle Extraction的Output-Particle Extract作为Input输入。参数Number of 2D classes
是要分的类数目。默认是50。如果颗粒多的话可以增加分类的数目来获得更好的效果,但是也会增加计算时间。
Queue Job
。这步和Extract From Micrographs一样需要较长时间,可以在Extract From Micrographs还没做完的时候就把这个任务创建好并Queue上,它到时候会自动执行下一步。
点击Builder并选择Select 2D Classes
。将刚刚的二维分类2D Classifications的两个Output(All particles和2D class averages)作为Input输入。
Queue Job
。这也是个Interactive Job。
选择自己想要的二维平均,点击Done。
在实际的数据处理过程中,往往一轮二维分类无法达到好的效果。挑选好的二维类,然后用Selected Particles作为输入再进行二维分类。循环直到达到满意的效果。
(可选)用模板挑选颗粒
理论上有了Particle stack,就可以进行三维重构了。这里再展示另一种挑选颗粒坐标的方法。
我们有了刚刚二位分类结果的模板,就可以进行Template Picker
了。点击Builder并选择Template Picker
。
将刚刚Select 2D Classes里Output-Templated Selected作为Template Input。
将Curate Exposure-accepted作为Micrograph Input。
然后输入颗粒大小Particle Diameter
(铁蛋白120Å)。
Queue Job
。
然后和之前步骤类似,用Inspect particle
剔除假阳性颗粒,提取颗粒Extract Particles
,二维分类2D Classification
,选择分类Select 2D Classes
。
除了这种挑选颗粒生成2D template,还有另一种方法生成template。如果你之前已经有了这个蛋白类似的3D map。点击Builder并选择Import Volume
。然后用Create Template
任务可以将3D Volume进行2D投影,从而生成2D Template。
三维重构及分类
Ab-initio
可以从Particle stack从头开始生成初始三维模型,后续再用这个模型可以用来三维分类或者细化。
点击Builder并选择Ab Initio Reconstruction
。
将最后一轮Select 2D Classes作为Particle stacks输入。
Number of Ab-Initio classes
可以填入想要生成几类不同的map,在v4.0版本之前的CryoSPARC中还没有3D Classification,Ab-Initio & Heterogeneous refinement本身也是三维分类的方法之一,可以分出构象差别较大的类,剔除二维分类中没有用的杂颗粒。
铁蛋白是高度对称的球体,我们在Symmetry
给个对称性O。在处理自己的数据的时候,除非特殊情况,最好不要在前面就施加对称性,可以到最后refine再考虑。
Queue Job
。
点击Builder并选择Heterogeneous Refinement
。将Ab-intio结果中每个class的Particle和Volume都拖进Input中,至少需要两个Volume来进行分类。
现在CryoSPARC中有Quick Action的功能,鼠标右键点击Ab-intio的结果,会有一个Build Heterogeneous Refinement的选项,一步到位。其他的任务右键点击也有自己的对应的快捷创建任务,可以都去试试。
Queue Job
。
注意!在Ab-intio从头生成3D map过程中,可能会出现生成的map手性错误的现象,可以用Volume Tools
选Flip hands
可以将Volume的手性翻转。然后用正确手性的map替代掉那个错误的map来做Heterogeneous Refinement
。
Refinement
Heterogeneous Refinement
为了分类而限制最高分辨率以达到良好的分类效果。3D Refinement能够将分辨率进一步提升。
常用的有两个Job,经典的Homogeneous Refinement
和Non-uniform Refinement
。Non-uniform Refinement
是对小蛋白和膜蛋白是可以有更好的优化效果。
这里我们选择Homogeneous Refinement
,一般而言速度会比Non-uniform refinement
快。选择Heterogeneous Refinement
结果中较好的class,Particle stack颗粒集和对应的Volume map作为Input。
同样Symmetry给个O对称性。
由于铁蛋白本身是个标准蛋白,又给了高对称性,所以很容易就到了2.5A的高分辨率。
点击Output里一个云和一个箭头的图标可以下载结果。
map就是获得的密度图。
map_sharp是sharpen后的map,在job的详细信息Guinier Plot里可以看到map sharpen BFactor。
map_half A/B是half map。软件会把颗粒随机分成两部分计算,根据相关系数来判断分辨率,就是详细信息里的GSFSC Golden Standard Fourier Shell Correlation。常见的有用0.143或者0.5作为阈值衡量分辨率。现在上传pdb数据库已经必需上传half map了。
局部CTF优化
Local CTF Refinement会对每一个颗粒的局部CTF做一个校正,有可能进一步提高分辨率。将Refinement的Particle和Volume输入Local CTF Refinement
。然后将Local CTF Refinement输出的校正过的Particle stack和前面Homogeneous Refinement的Volume作为输入重新做一次Homogeneous Refinement
。这里并没有提高分辨率,可能已经到极限了。但是在实际运算过程中这一步往往都能提高不少分辨率。
评估结果
发表文章中可能需要一些数据和图片来对结果进行评估。比如Local resolutiont
,将最终Refinement的结果输入。在结果中选择那个叫做map_locres的下载,在ChimeraX等软件中可以展示。下载后同时打开map_sharp和map_locres。上方工具栏选择Tools-Volume Data-Surface Color。弹出工具栏后Color surface选择map,选择by volume data value,using map选择locres。颜色输入对应分辨率。点击color。具体的ChimeraX软件操作详见ChimeraX的操作指南,这里不细说。
还可能需要3DFSC histogram,4.0以后的新版的CryoSPARC将ThreeDFSC
删除了,但是有Orientation Diagnostics
。将最终Refinement的Volume作为输入就可以。