使用 sed 在 FASTA header 行的同一行的开头和结尾添加单词

Add words at beginning and end of the same line for the FASTA header line with sed

我有以下行:

>A_1000
ACTTTCGATCTCTTGTAGATCTGTTCTC...CAC
ACTTTCGATCTCTTGTAGATCTGTTCTC...CAC

我想将第一行转换为:

>Initialword/A_1000/Finalword
ACTTTCGATCTCTTGTAGATCTGTTCTC...CAC
ACTTTCGATCTCTTGTAGATCTGTTCTC...CAC

我发现了一个类似的问题,它确实允许我根据需要附加结尾和开头 ()。但是,它将 Finalword 添加到下一行。

我运行以下:

 sed 's%^>(.*)%>Initialword//Finalword%' input.fasta > output.fasta

哪个returns:

>Initialword/A_0101M/Finalword 
ACTTTCGATCTCTTGTAGATCTGTTCTC...CACM
ACTTTCGATCTCTTGTAGATCTGTTCTC...CACM

但在 Fasta 文件中它看起来像:

>Initialword/A_0101 
/Finalword 
ACTTTCGATCTCTTGTAGATCTGTTCTC...CAC
ACTTTCGATCTCTTGTAGATCTGTTCTC...CAC

如何解决这个问题,只将文本添加到 header 的开头和结尾?文件中每行末尾的 M 是什么?

谢谢

首先转换你的文件,然后使用 GNU sed:

dos2unix <input.fasta | sed -E 's%^>(.*)%>Initialword//Finalword%' >output.fasta