Friday, February 16, 2018

Brief Bioinformatics Bash

Multi FASTA to one Sequence per FASTA

Write each Sequence of a multisequence FASTA to a separate FASTA file.


multifasta2Singlefastas.sh
#/bin/bash
while read line
do
    if [[ ${line:0:1} == '>' ]]
    then
        outfile=${line#>}.fa
        echo $line > $outfile
    else
        echo $line >> $outfile
    fi
done < $1


 Don't forget to chmod +x multifasta2Singlefastas.sh

Usage:
 ./multifasta2Singlefastas.sh input.fasta

Brief Bioinformatics Bash

FASTA to single line FASTA

Write the wrapped sequences of a FASTA file to a single line; example:

Before:
>Seq1
ACGTACGTACGT
ACGTACGTACGT
ACGTACGTACGT
>Seq2
GCAGTGCAGTGCAGTGCAGT
GCAGTGCAGTGCAGTGCAGT

After:
>Seq1
ACGTACGTACGTACGTACGTACGTACGTACGTACGT
>Seq2
GCAGTGCAGTGCAGTGCAGTGCAGTGCAGTGCAGTGCAGT


multifasta2Singleline.sh
#/bin/bash
awk '/^>/ {printf("\n%s\n",$0);next; } { printf("%s",$0);}  END {printf("\n");}' < $1 | grep -v '^$'


 Don't forget to chmod +x multifasta2Singleline.sh

Usage:
 ./multifasta2Singleline.sh input.fasta > output.fasta