我知道这很容易,但我无法让它发挥作用。我试图使用sed重命名标头,虽然reg experssion工作,但我不能重命名fasta标头。这是一个小例子。我有一个多序列fasta文件,如下所示
>Bra000001
CTTATTTTCTCCTTCACCACCGTACCACAGAAAAAAACTGTGATTTTAAA
AGCCACATTTACTTCTTTTTTTGTTGGGTCTAAATGTTAAAATAACATGT
>Bra000002
TTTATGTAGTACTGGACTAATCGGGTAGGGAAACAATCTTGATTTAGCAA
TACAGTGTAATAACTAATAATCATATTCATATTCCATAAATCCAAATGTT
现在我只想在这个
的fasta标题末尾添加“Brassica rapa”>Bra000001 Brassica rapa
CTTATTTTCTCCTTCACCACCGTACCACAGAAAAAAACTGTGATTTTAAA
AGCCACATTTACTTCTTTTTTTGTTGGGTCTAAATGTTAAAATAACATGT
>Bra000002 Brassica rapa
TTTATGTAGTACTGGACTAATCGGGTAGGGAAACAATCTTGATTTAGCAA
TACAGTGTAATAACTAATAATCATATTCATATTCCATAAATCCAAATGTT
我这样做是为了让它发挥作用
grep ">" in.fa | sed 's/$/ Brassica rapa/' > out.fa
但是通过这样做,我只能更改标题,但这里没有序列信息。理想情况下,我想改变标题并保持序列不变。
答案 0 :(得分:4)
您只能使用sed替换命令,检查行是否以>
字符开头,将整行分组并在末尾追加您的字符串,如:
sed 's/^\(>.*\)$/\1 Brassica rapa/' infile
它产生:
>Bra000001 Brassica rapa
CTTATTTTCTCCTTCACCACCGTACCACAGAAAAAAACTGTGATTTTAAA
AGCCACATTTACTTCTTTTTTTGTTGGGTCTAAATGTTAAAATAACATGT
>Bra000002 Brassica rapa
TTTATGTAGTACTGGACTAATCGGGTAGGGAAACAATCTTGATTTAGCAA
TACAGTGTAATAACTAATAATCATATTCATATTCCATAAATCCAAATGTT
答案 1 :(得分:3)
awk
这样做很简单。
awk '/^>/ {$0=$0 " Brassica rapa"}1' in.fa >out.fa
>Bra000001 Brassica rapa
CTTATTTTCTCCTTCACCACCGTACCACAGAAAAAAACTGTGATTTTAAA
AGCCACATTTACTTCTTTTTTTGTTGGGTCTAAATGTTAAAATAACATGT
>Bra000002 Brassica rapa
TTTATGTAGTACTGGACTAATCGGGTAGGGAAACAATCTTGATTTAGCAA
TACAGTGTAATAACTAATAATCATATTCATATTCCATAAATCCAAATGTT
答案 2 :(得分:1)
sed '/^>/ s/$/ Brassica rapa/' YourFile
或
sed 's/^>.*/& Brassica rapa/' YourFile