Reputation: 2189
i know this is pretty easy but i can't get it to work. I am trying to rename the header using sed and evnethough the reg experssion works but i can't rename the fasta header. Here is an small example. I have a multi sequence fasta file something like below
>Bra000001
CTTATTTTCTCCTTCACCACCGTACCACAGAAAAAAACTGTGATTTTAAA
AGCCACATTTACTTCTTTTTTTGTTGGGTCTAAATGTTAAAATAACATGT
>Bra000002
TTTATGTAGTACTGGACTAATCGGGTAGGGAAACAATCTTGATTTAGCAA
TACAGTGTAATAACTAATAATCATATTCATATTCCATAAATCCAAATGTT
Now i just want to add "Brassica rapa" at the end of fasta header like this
>Bra000001 Brassica rapa
CTTATTTTCTCCTTCACCACCGTACCACAGAAAAAAACTGTGATTTTAAA
AGCCACATTTACTTCTTTTTTTGTTGGGTCTAAATGTTAAAATAACATGT
>Bra000002 Brassica rapa
TTTATGTAGTACTGGACTAATCGGGTAGGGAAACAATCTTGATTTAGCAA
TACAGTGTAATAACTAATAATCATATTCATATTCCATAAATCCAAATGTT
I am doing this for making it work
grep ">" in.fa | sed 's/$/ Brassica rapa/' > out.fa
However by doing this i can only change the headers but no sequence info here. Ideally i want to both change the header and keep the sequence as it is.
Upvotes: 2
Views: 12699
Reputation: 10039
sed '/^>/ s/$/ Brassica rapa/' YourFile
or
sed 's/^>.*/& Brassica rapa/' YourFile
Upvotes: 2
Reputation: 41456
awk
does this nice and simple.
awk '/^>/ {$0=$0 " Brassica rapa"}1' in.fa >out.fa
>Bra000001 Brassica rapa
CTTATTTTCTCCTTCACCACCGTACCACAGAAAAAAACTGTGATTTTAAA
AGCCACATTTACTTCTTTTTTTGTTGGGTCTAAATGTTAAAATAACATGT
>Bra000002 Brassica rapa
TTTATGTAGTACTGGACTAATCGGGTAGGGAAACAATCTTGATTTAGCAA
TACAGTGTAATAACTAATAATCATATTCATATTCCATAAATCCAAATGTT
Upvotes: 4
Reputation: 36262
You can use only sed with its substitute command, checking if the line begins with >
character, group the whole line and append your string at the end, like:
sed 's/^\(>.*\)$/\1 Brassica rapa/' infile
It yields:
>Bra000001 Brassica rapa
CTTATTTTCTCCTTCACCACCGTACCACAGAAAAAAACTGTGATTTTAAA
AGCCACATTTACTTCTTTTTTTGTTGGGTCTAAATGTTAAAATAACATGT
>Bra000002 Brassica rapa
TTTATGTAGTACTGGACTAATCGGGTAGGGAAACAATCTTGATTTAGCAA
TACAGTGTAATAACTAATAATCATATTCATATTCCATAAATCCAAATGTT
Upvotes: 5