Hi Eliya,
following all your directions i corrected the script code (with the help of 'warnings' and 'strict'), now i have no much error messages coming out. Further, i was able to integreate inside the script of %statistics without problems (thanks to you surely)! Do you know if it's possible to print the result in a window ? (messagebox, or a little scrolled window, etc..). For now the result is printed out in the terminal and i would like to see it in a GUI window.
#all global variable set well !
........
$mw-> Button (-text =>'Open', -command =>\&open_file)->place(-x=>240,
+-y=>35);
$mw-> Button (-text =>'Get Statistics', -command =>\&get_statistics)->
+place(-x=>320, -y=>35);
sub open_file {$open = $mw->getOpenFile(
-filetypes => $types_OPEN,
-defaultextension => '.sff');
$te->Load( "$open");}
sub get_statistics {
my $fastafile= $open;
open (FASTA, "<$fastafile");
$/ = ">";
my $junkFirstOne = <FASTA>;
while (<FASTA>) {
chomp;
my ($def,@seqlines) = split /\n/, $_;
my $seq = join '', @seqlines;
$stat->add_data(length($seq));
}
%distrib = $stat->frequency_distribution(\@bins);
print "Total reads:\t" . $stat->count() . "\n";
print "Total nt:\t" . $stat->sum() . "\n";
print "Mean length:\t" . $stat->mean() . "\n";
print "Median length:\t" . $stat->median() . "\n";
print "Mode length:\t" . $stat->mode() . "\n";
print "Max length:\t" . $stat->max() . "\n";
print "Min length:\t" . $stat->min() . "\n";
print "Length\t# Seqs\n";
foreach (sort {$a <=> $b} keys %distrib) {
print "$_\t$distrib{$_}\n";}};
#This is the result in the terminal for an example $open file:
Total reads: 4981
Total nt: 104724
Mean length: 21.024693836579
Median length: 21
Mode length: 21
Max length: 27
Min length: 18
Length # Seqs
18 290
19 456
20 874
21 1974
22 626
23 281
24 373
25 69
26 32
27 6
28 0
It works fine and correctly. Do you know how to print this result in a GUI windows and not only in the terminal?
Thanks you !!!