前言
上期我们分享了CryoSPARC和Relion之间格式转换的小技巧;除此之外,使用Relion时,还有哪些小妙招或者是小方法和小技巧,能让我们快速提高工作效率?今天就给大家带来几个小妙招,建议点赞收藏。
一. 假定以下任务环境
1)/data/rawdata:用户放置原始数据的目录,该目录下的每一个子目录为一套数据,例如:/data/rawdata/dataset20220606为2022年6月6号采集的数据。
2)/data/relion:Relion项目目录,该目录下的每一个子目录为一个Relion项目,例如:/data/relion/project20220606
为2022年6月6号创建的项目目录。
3)/ssd:用于Relion加速的缓存盘
二. 超实用小技巧
1)原始数据位置
Relion建议用户将原始数据放置在Relion启动目录的子目录中,例如/data/relion/project20220606/Movies
。而大部分用户为了方便管理数据,是将原始数据放置在/data/rawdata/dataset20220606
中。此时,需要使用软连接将原始数据目录链接到Relion启动目录中。虽然在Relion的最新版本中,可以将数据放置在Relion启动目录之外,在使用大部分任务时,也不会出现报错。但是对于某些任务,例如JoinStar,有可能star文件会出现奇怪的错误,导致无法进行下一步。因此,建议还是将原始数据软链接到Relion启动目录。
方法如下(注:以下命令中的$符号代表每行命令的开头,在实际输入命令时,无需输入$符号)
$ ln -s /data/rawdata/dataset20220606 /data/relion/project20220606/Movies
2) Overwrite功能
在Relion任务运行中,有可能会出现任务报错导致任务停止,或者用户主动停止任务。此时,如果重新运行任务,并不会覆盖上一次运行的任务,而是创建了一个新任务。这就导致了任务列表中出现了很多无用的任务。为了解决这一问题,Relion提供了Overwrite功能,将报错的任务覆盖掉。
方法如下:
a) 在任务列表中点击需要覆盖的任务
b) 点击Overwrite按钮(Relion3在GUI左上角的File->Overwrite continue,Relion4在GUI中间的Job actions->Overwrite)
c) 修改任务参数,点击Overwrite(原来的Run按钮会变成Overwrite按钮)
3)清理临时数据
Relion在运行过程中,会产生大量的临时数据。在数据处理完成后,可以将这些数据清理掉,从而节省存储空间。
Relion提供了两种清理方式, Gently clean all jobs和Harshly clean all jobs(在GUI左上角Jobs列表中)。
- 使用第一种方式清理后,Relion会保留核心文件,用于任务运行,从而保证用户可以继续往下运行任务。
- 使用第二种方式清理后,不会保留核心文件,用户无法继续往下运行任务。
因此,建议用户在完成所有数据处理后,再使用第二种方式对数据进行清理。清理完成后,需要点击GUI左上角的File->Empty trash来清空回收站。
三. 科学提速方法
在进行数据处理时,可以采用一些方法来提升数据处理效率,从而有效提升工作站的利用率。
1)ssd加速
在Relion的2D和3D任务中,我们可以采用ssd对颗粒数据进行缓存,从而避免产生数据读写速率的瓶颈。开启该功能的方法是:在Compute标签,Copy particles to scratch directory参数中填入/ssd,然后正常提交任务即可。(如图1所示)
2)Rescale particles
在前期颗粒清理任务中(如2D分类和3D分类),我们可以通过rescale particles的方法来减小box size,从而加快计算速度。在清理完成后,可以重新提取颗粒(Re-extract particles),将颗粒恢复成原始尺寸,从而获取最优三维重构结果。(参数详见图2,图3)
Rescale particles:
Re-extract particles:
3)Particle subset
对于2D和3D分类任务来说,颗粒数量和运行时间的关系是非线性的。根据我们的测试结果,10万颗粒的2D分类时间为80min, 50万颗粒的2D分类时间为680min。因此,使用particle subset功能将50万颗粒分割成5份,分别进行2D分类,清理完之后再使用JoinStar功能合并,这样消耗的时间只有400min。(如图4所示)
4)Schedule功能
对于上述particle subset方法,如果需要用户等待上一个2D分类任务完成后,再手动运行下一个2D分类任务,最终消耗的时间可能大于680min,并且用户需要时刻关注上一个任务是否完成。而采用Schedule功能,就可以让任务自动地依次运行。
方法如下:
a) 在设置完任务参数后,不要点击Run按钮,而是点击Schedule按钮
b) 再设置下一个任务参数,设置完成后,依然点击Schedule按钮
c) 重复第二步操作,直至所有需要批量运行的任务都已经显示在Scheduled jobs窗口(如图5所示)
d) 点击GUI左上方的Jobs->Run scheduled jobs,在对话框里选择需要批量运行的任务,并点击Execute按钮。(如图6所示)