Unix 如何向fasta标识符添加字符串

Unix 如何向fasta标识符添加字符串,unix,awk,sed,fasta,Unix,Awk,Sed,Fasta,我有一个包含多个序列的fasta文件: grep -e ">" seq.fasta >mmu_miR_8109 >mmu_miR_8110 >mmu_miR_8111 >mmu_miR_8112 >mmu_miR_8113 >mmu_miR_8114 >LQNS02136402.1_14821_5p >LQNS02278094.1_35771_5p >Dpu-Mir-22-P2_LQNS0227648

我有一个包含多个序列的fasta文件:

grep -e ">" seq.fasta
>mmu_miR_8109 
>mmu_miR_8110 
>mmu_miR_8111 
>mmu_miR_8112 
>mmu_miR_8113 
>mmu_miR_8114 
>LQNS02136402.1_14821_5p 
>LQNS02278094.1_35771_5p 
>Dpu-Mir-22-P2_LQNS02276481.1_18963_3p 
我想在序列标识符中添加另一部分,使其看起来像这样:

grep -e ">" results.fasta"
>mmu_miR_8109 MOUSE Mus musculus miR_8109
>mmu_miR_8110 MOUSE Mus musculus miR_8110
>mmu_miR_8111 MOUSE Mus musculus miR_8111
>mmu_miR_8112 MOUSE Mus musculus miR_8112
>mmu_miR_8113 MOUSE Mus musculus miR_8113
>mmu_miR_8114 MOUSE Mus musculus miR_8114
>LQNS02136402.1_14821_5p MOUSE Mus musculus 14821_5p
>LQNS02278094.1_35771_5p MOUSE Mus musculus 35771_5p
>Dpu-Mir-22-P2_LQNS02276481.1_18963_3p  MOUSE Mus musculus 18963_3p
请注意,小鼠肌肉始终是相同的,每个标识符的最后一部分等于第1列的最后一部分

到目前为止,我已经做到了:

 grep -e ">" seq.fasta | sed 's/>.*/& MOUSE/' | sed 's/>.*/& Mus musculus/' 
但是,我缺少最后一部分,即保留最后的值,以及如何应用它在fasta文件中进行更改。
希望有人能帮忙。谢谢

这里有一个使用awk的简单方法,将FS设置为下划线似乎很方便。当一行是标题时,我们通过添加固定字符串和现有字符串的最后两部分对其进行修改,并使用1打印所有行

awk-F_'/>/{$0=$0小鼠肌肉$NF-1 FS$NF}1'文件 输出:

>mmu_miR_8109小鼠小家鼠miR_8109 >mmu_miR_8110小鼠小家鼠miR_8110 >mmu_miR_8111小鼠小家鼠miR_8111 >mmu_miR_8112小鼠小家鼠miR_8112 >mmu_miR_8113小鼠小家鼠miR_8113 >mmu_miR_8114小鼠小家鼠miR_8114 >LQNS02136402.1_14821_5p小鼠小肌肉14821_5p >LQNS02278094.1_35771_5p小鼠小肌肉35771_5p >Dpu-Mir-22-P2_LQNS02276481.1_18963_3p小鼠小肌肉18963_3p 确认输出正常后,可以修改现有文件,如下所示:

grep -e ">" results.fasta"
>mmu_miR_8109 MOUSE Mus musculus miR_8109
>mmu_miR_8110 MOUSE Mus musculus miR_8110
>mmu_miR_8111 MOUSE Mus musculus miR_8111
>mmu_miR_8112 MOUSE Mus musculus miR_8112
>mmu_miR_8113 MOUSE Mus musculus miR_8113
>mmu_miR_8114 MOUSE Mus musculus miR_8114
>LQNS02136402.1_14821_5p MOUSE Mus musculus 14821_5p
>LQNS02278094.1_35771_5p MOUSE Mus musculus 35771_5p
>Dpu-Mir-22-P2_LQNS02276481.1_18963_3p  MOUSE Mus musculus 18963_3p
awk-F_'/>/{$0=$0小鼠肌肉$NF-1 FS$NF}1'文件>file.tmp&&mv file.tmp文件
在继续之前,请始终备份数据。

这里有一个使用awk的简单方法,将FS设置为下划线似乎很方便。当一行是标题时,我们通过添加固定字符串和现有字符串的最后两部分对其进行修改,并使用1打印所有行

awk-F_'/>/{$0=$0小鼠肌肉$NF-1 FS$NF}1'文件 输出:

>mmu_miR_8109小鼠小家鼠miR_8109 >mmu_miR_8110小鼠小家鼠miR_8110 >mmu_miR_8111小鼠小家鼠miR_8111 >mmu_miR_8112小鼠小家鼠miR_8112 >mmu_miR_8113小鼠小家鼠miR_8113 >mmu_miR_8114小鼠小家鼠miR_8114 >LQNS02136402.1_14821_5p小鼠小肌肉14821_5p >LQNS02278094.1_35771_5p小鼠小肌肉35771_5p >Dpu-Mir-22-P2_LQNS02276481.1_18963_3p小鼠小肌肉18963_3p 确认输出正常后,可以修改现有文件,如下所示:

grep -e ">" results.fasta"
>mmu_miR_8109 MOUSE Mus musculus miR_8109
>mmu_miR_8110 MOUSE Mus musculus miR_8110
>mmu_miR_8111 MOUSE Mus musculus miR_8111
>mmu_miR_8112 MOUSE Mus musculus miR_8112
>mmu_miR_8113 MOUSE Mus musculus miR_8113
>mmu_miR_8114 MOUSE Mus musculus miR_8114
>LQNS02136402.1_14821_5p MOUSE Mus musculus 14821_5p
>LQNS02278094.1_35771_5p MOUSE Mus musculus 35771_5p
>Dpu-Mir-22-P2_LQNS02276481.1_18963_3p  MOUSE Mus musculus 18963_3p
awk-F_'/>/{$0=$0小鼠肌肉$NF-1 FS$NF}1'文件>file.tmp&&mv file.tmp文件
继续之前,请始终备份数据。

这可能适用于您的GNU-sed:

sed -Ei 's/(.*_(.*_\S*)).*/\1 MOUSE Mus musculus \2/' file

这可能适用于GNU sed:

sed -Ei 's/(.*_(.*_\S*)).*/\1 MOUSE Mus musculus \2/' file