Some common awk bash commands to modify multi-FASTA files

Dr. Muniba Faiza
2 Min Read

Some basic operations on multi-FASTA sequence files is a tedious task without using bioinformatics programming. It helps in modifying FASTA sequences or their headers such as removal, addition, or substitution of certain characters in the header, or manipulating the sequence format, and so on. In such cases, shell bash commands provide an easy way to perform such tasks on FASTA sequences.

Here are some simple ‘awk’ commands to manipulate FASTA headers in multi-fasta files.

1. Convert all lowercase residues to uppercase in a FASTA sequence file

$ awk 'BEGIN{FS=" "}{if(!/>/){print toupper($0)}else{print $1}}' input.fasta > output.fasta

2. Rearrange FASTA sequences according to their length

$ awk '/^>/ {printf("%s%s\t",(N>0?"\n":""), $0);N++;next;} {printf("%s",$0);} END {printf("\n");}' input.fasta |\
>awk -F '\t' '{printf("%d\t%s\n",length($2),$0;)}' |\
>sort -k1,1n | cut -f 2- |tr "\t" "\n" > output.fasta

3. Add ‘>’ at the beginning of headers in a FASTA file

$ awk '{if ($0 ~/_/) {printf ">";} print $0; }' input.fasta > output.fasta

4. Match FASTA headers in two different multi-FASTA files

$ awk 'NR=FNR{a[$0];next}$0 in a{print $0}' input1.fasta input2.fasta

5. Merge all FASTA files in a directory into a single FASTA file

$ awk '1' *.fasta > all .fasta

OR

$ awk'1' *.fa > all.fa

These are some common operations that are performed on multi-FASTA files using awk. Visit the following articles for other operations on multi-FASTA files using bash commands:

Share This Article
Dr. Muniba is a Bioinformatician based in New Delhi, India. She has completed her PhD in Bioinformatics from South China University of Technology, Guangzhou, China. She has cutting edge knowledge of bioinformatics tools, algorithms, and drug designing. When she is not reading she is found enjoying with the family. Know more about Muniba
Leave a Comment

Leave a Reply