Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^10: Perl tk - How to integrate external scripts

by Giorgio C (Novice)
on Feb 01, 2012 at 11:35 UTC ( [id://951189]=note: print w/replies, xml ) Need Help??


in reply to Re^9: Perl tk - How to integrate external scripts
in thread Perl tk - How to integrate external scripts

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 !!!

Replies are listed 'Best First'.
Re^11: Perl tk - How to integrate external scripts
by Anonymous Monk on Feb 01, 2012 at 11:38 UTC
      Yes i see it it was a post started by me. I'v tried to set at the end :
      my $te2= tkinit->Scrolled( q/TextUndo/,-scrollbars => 'osw', -background => 'white', -font =>'normal', -wrap => 'none',)->pack; $te2>Load( "$distrib" ); MainLoop;
      But in this case there is a multiple print line to see on screen and however i am unable to see even one of them. Any suggestions?

        Tk::TextUndo inherits the methods from the Tk::Text widget, so you can use ->insert() to add text to the widget:

        ... $te2->insert('end', "Mean length:\t" . $stat->mean() . "\n"); +# append line ... ... # $te2->see('end'); # optionally scroll to the end

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://951189]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (7)
As of 2024-04-18 03:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found