#! /usr/bin/perl -w
use strict;
open (S, "$ARGV[0]") || die "cannot open FASTA file to read: $!";
my %s;# a hash of arrays, to hold each line of sequence
my %seq; #a hash to hold the AA sequences.
my $key;
while (<S>){ #Read the FASTA file.
chomp;
if (/>/){
s/>//;
$key= $_;
}else{
push (@{$s{$key}}, $_);
}
}
foreach my $a (keys %s){
my $s= join("", @{$s{$a}});
$seq{$a}=$s;
#print("$a\t$s\n");
}
my @aa= qw(A R N D C Q E G H I L K M F P S T W Y V);
my $aa= join("\t", @aa);
print ("Sequence\t$aa\n");
foreach my $k (keys %seq){
my %count; # a hash to hold the count for each amino acid in the p
+rotein.
my @seq= split(//, $seq{$k});
foreach my $r(@seq){
$count{$r}++;
}
my @row;
push(@row, $k);
foreach my $a (@aa){
$count{$a}||=0;
$count{$a}= sprintf("%0.1f",($count{$a}/length($seq{$k}))*100)
+;
push(@row,$count{$a});
}
my $row= join("\t",@row);
print("\n$row\n");
}
this is the code but it is giving percentage output but i need in decimal |