lenti242 [~/perltest]>more bioperl1.pl #!/opt/local/bin/perl # fastabioperl.pl use Bio::Tools::SeqStats; $filename = "tests.pep"; open (PROTEINFILE,$filename); #initialize variable to hold sequence $seq =""; #while there are sequence lines to be read while () { if (/^>/) { # if on a > line if (length($seq) > 0) { # if there is a prior sequence to proces s $seqobj = Bio::Seq->new('-seq'=>$seq); print $seq,"\n"; $seq_stats = Bio::Tools::SeqStats->new($seqobj); $weight = $seq_stats->get_mol_wt(); @weight_array = @$weight; $monomer_ref = $seq_stats->count_monomers(); %monomer_hash = %$monomer_ref; print "largest MW = @weight_array[0]; smallest MW = @weight_array[1] \n"; foreach $aa (keys (%monomer_hash)) { print "$aa: $monomer_hash{$aa} \n"; } $seq = ""; } # end of prior sequence print $_; } # end of > line else { chomp $_; s/\s//g; $seq = $seq . $_; } } #end of sequence lines to be read #process last sequence $seqobj = Bio::Seq->new('-seq'=>$seq); print $seq,"\n"; $seq_stats = Bio::Tools::SeqStats->new($seqobj); $weight = $seq_stats->get_mol_wt(); @weight_array = @$weight; $monomer_ref = $seq_stats->count_monomers(); %monomer_hash = %$monomer_ref; print "largest MW = @weight_array[0]; smallest MW = @weight_array[1] \n"; foreach $aa (keys (%monomer_hash)) { print "$aa: $monomer_hash{$aa} \n"; } exit; lenti243 [~/perltest]>perl bioperl1.pl >A28086 Length: 104 VKQIESKSAFQEVLDSAGDKLVVVDFSATWCGPCKMIKPFFHALSEKFNNVVFIEVDVDDCKDIAAECEVKCMPTFQFFK KGQKVGEFSGANKEKLEATINELL largest MW = 11629; smallest MW = 11629 A: 8 C: 5 D: 7 E: 10 F: 10 G: 5 H: 1 I: 5 K: 13 L: 6 M: 2 N: 4 P: 3 Q: 4 R: S: 6 T: 3 V: 11 W: 1 Y: >gi|79882|pir||B29504 hypothetical 18K protein (mer operon) - Staphylococcus aur eus plasmid pI258 MKKRISFTAIMTVLLIGLTACGAESDTANESKVQDIQGNPVSLPNEKPTLIYFMATWCPSCIYNEEIFKEMHQLNPNDVQ LITVSLDPNTDTKESLAKFKQDYGGDWPHVLKNGKEIADTYGVKQLEEIVLVNSENEVFYRSVRPSFDDLKEALTQIGVE L largest MW = 18118; smallest MW = 18118 A: 8 C: 3 D: 10 E: 14 F: 6 G: 8 H: 2 I: 11 K: 12 L: 15 M: 4 N: 10 P: 8 Q: 7 R: 3 S: 10 T: 11 V: 12 W: 2 Y: 5 >ORF15 S. aureus pathogenicity island MEDVTNEEVFEMIDSRTGVLNANDWKSQLRRSATTQALKKTTTNAEIILCNDESLKGLVQYDAFEKVTKLKRLPYWRSKG DTNYYWADIDTTHVISHIDKLYNVQFSRDLIDTVIEKEAYQNRFHPIKSMIESKSWDGIKRIETLFIDYLGAEDNHYNRE VTKKWMMGAVARIYQPGIKYDSMIILYGGQGVGKSTAVSKLGGHWYNQSIKTFKGDEVYKKLQGSWICEIEELSAFQKST IEDIKGFISAIVDIYRASYGKRTERHPRQCVFVGTTNNYEFLKDQTGNRRFFPITTDKNKATKSPFDDLTPDVVQQMFAE AKVYFDEDPTDKALLLDKEASEMALKVQEAHSEKDALVGEIEEFLERPIPSDYWYRTLEEKRVSAHDVIDQDYIKLYGDG KLIELPNTKPGAYVWRDKVCSMEIWKVMMKRDDQPQQHHLRKIDKALRNTNYCDTVKKQTRYGEGIGKQYGFSVDLASYY KNLKV largest MW = 56365; smallest MW = 56365 A: 26 C: 5 D: 39 E: 35 F: 17 G: 27 H: 10 I: 34 K: 48 L: 32 M: 11 N: 19 P: 13 Q: 21 R: 24 S: 27 T: 31 V: 29 W: 10 Y: 27 lenti244 [~/perltest]>