1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| #!/usr/bin/perl
use strict;
use warnings;
use Carp qw(confess);
use Getopt::Long;
use Tk;
use Bio::SeqIO;
my $fasta_file;
GetOptions("fasta=s" => \$fasta_file);
my $in = Bio::SeqIO->new( -file => $fasta_file, '-format' => 'Fasta' );
# récupération de la séquence
while ( my $seq = $in->next_seq()){
my $sequence = $seq->seq ;
my $fenetre_principale = MainWindow->new( -title => 'Text' );
$fenetre_principale->resizable( 0, 0 );
$fenetre_principale->fontCreate( 'FontSequence',
-family =>'helvetica',
-size =>'14',
-weight =>'bold'
);
my $widget_texte = $fenetre_principale->Text( -padx=>70, -pady=>70 )->pack( );
$widget_texte->tagConfigure('ROUGE',
-foreground => 'red',
-font => 'arial',
);
$widget_texte->tagConfigure('YELLOW',
-foreground => 'YELLOW',
-font => 'arial',
-underline => 1,
);
$widget_texte->insert('end', $sequence);
# Mutation à mettre en rouge dans la séquence
my @PositionsMutation = (10,25,30);
my @PositionPi =(55,56,57,58,59,60,61,62,63,64,65,66,1001,1002,1003,1004,1005,1006,1007);
foreach my $position ( @PositionsMutation ) {
$widget_texte->tagAdd('ROUGE',"1.$position");
}
foreach my $value(@PositionPi){
$widget_texte->tagAdd('YELLOW',"1.$value");
}
my $postscript = $fenetre_principale->postscript();
$fenetre_principale->postscript(-file => "tmp.ps",-width => "1000" , -height => "500");
#MainLoop;
} |
Partager