This is a test version of Biostars. For the public version, visit https://www.biostars.org.
split multiple fasta into codons

Hi,

I have a list of gene sequence

 >2619859165 

GCGTATCCGCGGTACGGCTGGCTTGGCGCGAAGGAACGTTCCCGGGACAC
CCTGTCCGGCCTCACCCTGATGGGTGTCCGTCTCTACGACCCCAACCTCG
GTCGCTTCCTCCAGACCGATCCGGTCCCCGGCGGGTCGGACAACGCCTAC

>2619859164

ATGGAGGATCTACTCTTCTCTCTATTTGGCGTGCTGATGATTAGTGCTGG
GCTGATCTCGCTTCTGATTCCCGAGAGAGTATCTCGTTGGAATGACACGG
TAGGGCCGAGGTGGATCCGCGACTTCAGTGTGCGTGGCGAGTTCAAGGCA


>2619859163 

ATGGCCGGGTGTGAGGAACAGGTGGGGATTGGCGGGTCGGGTGACGGCGT
GCCGGTCGGGTCGGTTGTCCGGTGGGGGTTGGCGACGTTCGGCACGGGGC

and I want to split the each sequence into their codons. Like

>2619859165
GCG
TAT
CCG
...
>2619859164
ATG
GAG
GAT
...

how to do this...please suggest..

thanks in advance

sequence

1 answer

linearize the fasta and use sed to insert a carriage return after the codon

cat input.fasta |\
awk '/^>/ {printf("%s%s\n",(N==0?"":"\n"),$0);N++;next;} {printf("%s",$0);}END{printf("\n");}' |\
sed -e $'/^[^>]/s/\([A-Z][A-Z][A-Z]\)/\\1\\\n/g'

Log in to answer this question.