在之前的初级文章中《三分钟学会cryoSPARC转换RELION,干货满满,赶紧收藏!》(单击查看原文),我们介绍了如何将CryoSparc生成的颗粒图像数据转换到Relion进行后续处理。然而,该方法仅适用于特定情况下的数据转换,并且转换后的数据不能在Relion中进行数据的Polishing处理。很多用户反馈这是数据处理中的一个主要问题。
为了解决科研人员在数据处理中面临的困难,我们经过测试和总结,提出了一套更完整的CryoSparc和Relion之间的数据转换流程。这套进阶流程使用户能够更自由和灵活地在这两个软件平台之间转换颗粒数据,充分挖掘数据的价值,让数据在不同软件环境下发挥最大作用。
我们将这套进阶流程分为三篇系列文章,并使用以下三种情境作为示例:
情境1(进阶流程1,本篇文章):在Relion中导入Movie文件,并一直进行到颗粒提取,然后将提取的颗粒导入CryoSparc进行后续处理,最后将处理后的颗粒导出到Relion中,进行Refine3D和后续的Polishing处理。这种情境通常是为了利用CryoSparc的速度优势,快速进行颗粒筛选和获取初始模型,然后再导入Relion进行进一步处理。
情境2(进阶流程2):在CryoSparc中导入Movie文件,并一直进行到颗粒提取,然后将提取的颗粒导入Relion进行后续处理,直至Polishing处理。这种情境通常是利用CryoSparc的速度优势和易用性,快速获取3D密度图,以验证这套数据是否值得进一步处理。如果有价值,再导入Relion进行更精细的处理。
情境3(进阶流程3):在转换CryoSparc和Relion的颗粒文件时,确保颗粒坐标和Micrograph坐标能够正确对应。
本次测试使用的Relion版本为4.0.0,CryoSparc版本为4.2.1,pyem为最新更新的2023年5月22日版本。请注意,由于CryoSparc和pyem的版本升级,本篇文章中提到的方法可能需要进行微调。有关具体的微调方法,后面我们的进阶流程3会进行详细的说明。
如果读者希望更好地理解本篇文章背后的逻辑,请自行搜索和学习vim编辑器、sed命令和正则表达式的相关知识。
情景1
1. Relion job情况说明
a) Relion项目目录为/ssd/relion-convert
b) Movie数据放在/ssd/relion-convert/movies目录
c)颗粒数据放在/ssd/relion-convert/Extract/job005
2. CryoSparc导入颗粒
a) CryoSparc项目目录为/ssd/CS-convert
b) 创建Import Particle Stack任务,J1
i. Particle meta path设为:
/ssd/relion-convert/Extract/job005/particles.star
ii. Particle data path设为:
/ssd/relion-convert
c) 创建2D Classification任务,J2
d) 创建Select 2D任务,J3。备注:此处仅以Select 2D任务作为示例,也可以在CryoSparc里面进行更多的数据处理之后,再进行转换。
e) 将J3中选中的颗粒导出至Relion
i. 进入J3目录,加载pyem环境。对于某些老机器,需要执行最后一步。新机器无需执行最后一步。
cd /ssd/CS-convert/J3
module load conda
module load pyem
conda activate pyem
ii. 将cs文件转换为star文件,并将star文件拷贝到Relion项目目录下面
csparc2star.py particles_selected.cs J3_passthrough_particles_selected.cs from_csparc_J3.star
cp from_csparc_J3.star /ssd/relion-convert
f) 切换到Relion项目目录,对from_csparc_J3.star文件进行后续处理
i. 首选可以观察一下: from_csparc_J3.star和Extract/job005/particles.star的区别。
cd /ssd/relion-convert
head -n 50 from_csparc_J3.star
head -n 50 Extract/job005/particles.star
ii. 此时会发现,from_csparc_J3.star里第一个颗粒的路径为下图黄线所标注的部分。而Extract/job005/particles.star 中第一个颗粒的路径为000001@Extract/job005/Movies/K2_0001.mrcs。并且,from_csparc_J3.star里面没有颗粒对应的颗粒坐标和MotionCorr图像路径,而Extract/job005/particles.star里面颗粒对应的MotionCorr图像路径为MotionCorr/job002/Movies/K2_0001.mrc。另外,from_csparc_J3.star的OpticsGroup为2(蓝线标注),OpticsGroupName为opticsGroup2(绿线标注)。而Extract/job005/particles.star中OpticsGroup为1,OpticsGroupName为opticsGroup1。
iii. 因此,我们需要将from_csparc_J3.star里面的颗粒路径替换为Extract/job005/particles.star的颗粒路径(sed命令),并且给from_csparc_J3.star里面的颗粒添加上对应的MotionCorr图像路径,以及修正OpticsGroup(star.py脚本)。
sed -i 's/J1\/imported\/.\{21\}_/Extract\/job005\/Movies\//g' from_csparc_J3.star
star.py --copy-micrograph-coordinates Extract/job005/particles.star --offset-optics -1 from_csparc_J3.star from_csparc_J3_final.star
iv. 此时观察一下from_csparc_J3_final.star文件,会发现颗粒路径已经转换成Extract/job005/particles.star的颗粒路径(黄线标注),并且也添加了颗粒对应的颗粒坐标和MotionCorr图像路径(红线标注)。另外,OpticsGroup也变为1(蓝线标注)。唯一不同的是OpticsGroupName依然是opticsGroup2(绿线标注),这需要我们采用vim编辑器手动将其修改为opticsGroup1。(注意:非常重要!如果不做,重新提取颗粒会报错!)
head -n 50 from_csparc_J3_final.star
- 3. Relion导入颗粒
此时如果要在Relion里创建3D Classification任务,只需要在I/O标签的Input images STAR file里面填入from_csparc_J3_final.star文件,并设置对应的参数即可。
在接下来的系列文章中,我们会进一步演示情景2和情景3所提及的情况,敬请期待。