upendra
upendra

Reputation: 2189

how to rename fasta file headers using sed

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

Answers (3)

NeronLeVelu
NeronLeVelu

Reputation: 10039

sed '/^>/ s/$/ Brassica rapa/' YourFile

or

sed 's/^>.*/& Brassica rapa/' YourFile

Upvotes: 2

Jotne
Jotne

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

Birei
Birei

Reputation: 36262

You can use only 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

Related Questions