This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Linux script for counting the length of a Protein fasta file .

Hello all,

I have a file that has protein fasta sequences, I want to get the length of each protein.

Which linux command can do this work please suggest.

Example fasta:

>Zymomonas_mobilis_peg_0001__lcl|NC_006526.2_prot_WP_011239989.1_1_[locus_tag=ZMO_RS00005]_[db_xref=GeneID:58025911]_[protein=TonB-dependent_receptor]_[protein_id=WP_011239989.1]_[location=147..2516]_[gbkey=CDS]
MKNFIKKGGFLFSFSWFFLQYPVEAATDTVSNTSNNDAIIVTGTRETHKKIRDSLSPIEVLNNRELLETGQTNVTSALAQLVPSITQPAVGQFVAAPTNFVSLRGLNPNQTLVLVNGKRRHNSSFLYIDGFADAATPTDLDLIAPELIDHIEVLKDGAAAQYGSDAIAGVVNIILKSDNHGGSARSQIGQTYAGDGLVGQAGFNKGFKIGHSGFFDVAFDFRHQNHTSRDGIDSRTQRHSLKVVGDPMATRYNLAINAGYDFGNGIEIYTTDSYSHRNSEVNQVYRTADRFPEVYPDGFMPIQKLSENDFSASLGLRGDNALGIHWDVNSTYGGNFIRNDLDKTANLGLYAATGSTPLSVHLNNYSTTQLNNTLDLSKELALPVIYSPLTLAAGFAHRYETYKTGAGDPASYLYGGTQARTGIIPAVAGSHSRNVYSGYLDLSAHLTKRWQVDLAGRYEYYSDFGSTLNGKASTRYDFTDQFALRATFSSGTRAPSLANEYFSTLSVGPDSASGTLGANSAAAKLLGAVPLKPEKATNITAGLVYSPLKNLHFTLDSYQIAIRNRIVSGPGISGEAALAALNAQGVTVASTLEAQNISAWFFTNGASTRTRGLDFTASYHSRFENFGIVDWDIALNINATTIRHVNQLANGMSALNAQTRAYLTSSTPKNRITFGGRWESFSKKWDVSLHEQRFGQTTDEMTWYQGPNAYSMTDFNRIHNHPRWITNLEIGYRPIEKLRVAIGANNLFNAHTTRIPAANGYYGSGKYDGAASQIGVNGGFYYLQTSYQF

Expected output:

>Zymomonas_mobilis_peg_0001__lcl|NC_006526.2_prot_WP_011239989.1_1_[locus_tag=ZMO_RS00005]_[db_xref=GeneID:58025911]_[protein=TonB-dependent_receptor]_[protein_id=WP_011239989.1]_[location=147..2516]_[gbkey=CDS]  790

output should have fasta header and length .

linux

Are you sure this is a fasta file ? In your example it does not have the opening header character ">".

1 answer

$ bioawk -c fastx '{print ">"$name, length($seq)}' input.fa
$ awk -v OFS="\t" '/>/ {getline seq} {print $0, length(seq)}' input.fa

Log in to answer this question.