使用 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
我有以下行:
>A_1000
ACTTTCGATCTCTTGTAGATCTGTTCTC...CAC
ACTTTCGATCTCTTGTAGATCTGTTCTC...CAC
我想将第一行转换为:
>Initialword/A_1000/Finalword
ACTTTCGATCTCTTGTAGATCTGTTCTC...CAC
ACTTTCGATCTCTTGTAGATCTGTTCTC...CAC
我发现了一个类似的问题,它确实允许我根据需要附加结尾和开头 (
我运行以下:
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