[relion]Autopick:ERROR: Cannot read file stack_0001_cor_DW.mrc It does not exist解决办法

[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

& 在要增加的字符串后加上&,意为将字符串添加在目标文字的前面

猜你喜欢

转载自blog.csdn.net/LJL_1003/article/details/109547057