Changing fasta headers in multifasta file
1
0
Entering edit mode
3.8 years ago
James ▴ 20

Hi, Please can anyone help me with this. I have a multifasta file that I want to make a blast database but the header of each sequence is not quite in the correct format. The multifasta has several 100000 sequences in it so really dont want to start again.

correct format should be

>unique-id|my sequence name|etc|etc


I currently have

>notunique___|unique-id|my sequence name|etc|etc


Im pretty sure this should be doable with the sed command but no clue how to do this myself. I want too either just delete 'notunique___|' or replace '>notunique___|' with a new >

notunique is a mix of letters and numbers that are not always the same length of characters.

Any help would be much appreciated

Thank you James

sed • 2.6k views
0
Entering edit mode
0
Entering edit mode

Dear James, you may also be interested in SEDA (http://www.sing-group.org/seda/), a desktop software that incorporates a lot of functions for processing FASTA files. One of that functions is the "Rename header", which allows you changing headers in different ways. Regards.

3
Entering edit mode
3.8 years ago

you can use this perl oneliner:

cat <yourFile> | perl -pi -e 's/>.+?\|/>/g'


on the other hand there should be many other solutions already posted on biostars ;-)

0
Entering edit mode

Thank you so much lieven.sterck, that worked perfectly.

While there seem to be lots of posts about this stuff I couldn't work out how to change other answers to my exact problem. I really have no experience with these things.

Thanks again James

0
Entering edit mode

@lieven.sterck this served the purpose for me but can you explain this command ? just for understanding ?

0
Entering edit mode

sure.

the cat <yourFile> simply prints the content of your file which is then passed through to (using this | symbol , aka linux pipe ) a perl oneliner perl -pi -e 's/>.+?\|/>/g' which does the substitution itself. it replace all occurrences of a > with any characters following, up to and including the first | in the fasta header with a single > .

0
Entering edit mode

Thank you very much.