[relion]Autopick:ERROR: Cannot read file stack_0001_cor_DW.mrc It does not exist解决方法
错误原因:产生该问题原因不明,但导致该错误的直接原因是Autopick模块找不到.mrc
文件所在的位置
解决方法
解决问题的思路为在头文件中给所有.mrc
文件添加绝对路径
1-打开导入的.star
文件显示信息如下(以前三行开头为例)
loop_
_rlnMicrographName #1
_rlnCtfImage #2
_rlnDefocusU #3
_rlnDefocusV #4
_rlnDefocusAngle #5
_rlnCtfFigureOfMerit #6
_rlnFinalResolution #7
_rlnOpticsGroup #8
stack_0001_cor_DW.mrc
stack_0002_cor_DW.mrc
stack_0003_cor_DW.mrc
2-使用sed
命令改写.star
文件,在每个文件名前加上其绝对路径,使用命令如下
sed -i 's!stack!/###/###/&!' test.star
#在stack前添加绝对路径
3-打开的test.star
文件检查运行结果,显示信息如下
loop_
_rlnMicrographName #1
_rlnCtfImage #2
_rlnDefocusU #3
_rlnDefocusV #4
_rlnDefocusAngle #5
_rlnCtfFigureOfMerit #6
_rlnFinalResolution #7
_rlnOpticsGroup #8
/###/###/stack_0001_cor_DW.mrc
/###/###/stack_0002_cor_DW.mrc
/###/###/stack_0003_cor_DW.mrc
4-导入修改后的.star
文件即可正常运行
补充说明
#代码标准用法示例
sed -i 's/文件中的目标文字/要增加的字符串&/' 文件名
sed Linux sed命令可依照脚本的指令来处理、编辑文本文件
-i 加上该选项后可直接修改文件内容
! 分隔符,原本使用/作为分隔符,但是当要替换的字符串当中包含/时,则使用!或者|作为分隔符。否则会报如下错误
sed: -e expression #1, char 13: unknown option to `s’
注意不要忘记添加结尾的分隔符。否则会报如下错误
sed: -e expression #1, char 7: unterminated `s’ command
& 在要增加的字符串后加上&,意为将字符串添加在目标文字的前面