Bonjour à tous,
Je suis en train d'essayer de faire une petite interface graphique avec Perl donc vous trouverez le code ci dessous(qui fonctionne mais qui ne fait rien !).
Les 2 fichiers (que je ne passe pas en argument) sont :
gene_trans_max_cx.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
FBgn0002962	FBtr0083732
nanos.fasta
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
>FBgn0002962;FBtr0083732;nos-RA;2349
TTAGTTGGCGCGTAGCTTTACCACAAAATTCCTGGAATTGCCGTACGCTT
CGCAGTTGTTTCAAGTTGTCTAAGGGACATACGATTTTTTTTGCCTCTGC
GTCACGATTTTAACCCAAAAGCGAGTTTAGTTACATGTACATTATTATTA
GATAAAGAAGTATCGCGAATACTTCAGTTGAATAAACTGTGCTTGGTTTT
TGGGTGAGGATTTGTGGAAAGTAGAGTGCGCGATAACCGTAACTTTCGAC
CCGGATTTTCGCCATGTTCCGCAGCAACTTGGAGGGCAGTGGCGCAGCAG
CAGTAGGTGTTGCAAATCCCCCCTCGTTGGCTCAGTCTGGAAAGATTTTC
CAATTGCAGGATAACTTTTCTGCTTTTCACGCCAGAGGAGGGCTCAACAT
TCTGGGCCTGCAGGACATGTATTTGGATACCAGTGGGGCCAACTCGTCGG
CCACTTTGAGTCCGCCCATTACGCCGGTGACCCCTGACCCGTCGACGTCT
GCGCAGTCGACGCACTTCCCTTTTCTGGCCGACAGCGCAGCCACCGCCAA
TTCGCTCCTTATGCAGCGACAGTACCACTACCACTTGCTGCTCCAGCAGC
AGCAGCAACTGGCCATGGCGCAGCACCAATTGGCGCTGGCTGCATCAGCG
GCAGCGGCTAGTGCGAGTCACCAGCAAACGGACGAGATTGCGCGATCCTT
GAAAATCTTTGCGCAGGTGACGACGGGCGCAGCAGAAAATGCGGCTGGCT
CGATGCAGGATGTGATGCAGGAGTTCGCGACCAATGGCTATGCCAGCGAT
GATCTCGGTCGCATGTCCTACGGGAGTGCTCCGCCACAGGTGCAAATGCC
ACCGCAGCAGCAGCATCAGCAACAGCAGGGGCTGCACCTGCCACTGGGCC
GCAATCCTGCCCAGCTGCAGACCAATGGCGGCAACTTAATGCCCATTCCA
CTCGCCACCCACTGGCTGAACAACTACCGGGAGCATCTGAACAACGTGTG
GCGAAACATGTCGTATATACCAGCCGCTCCCAATACAATGGGTTTGCAGG
CCCAAACAGCGGCCACTGTGTCCACCAATCTCGGCGTGGGAATGGGTCTG
GGATTGCCCGTGCAGGGCGAACAGCTGCGCGGAGCTTCCAATTCCAGTAA
CAATAATAACAACAACAACAAGGTGTACAAGCGTTACAACAGCAAGGCCA
AAGAGATCAGCCGCCACTGCGTCTTTTGTGAGAATAACAACGAACCAGAG
GCGGTTATCAATAGCCACTCAGTGCGAGATAACTTTAACCGAGTGCTGTG
CCCCAAACTACGCACCTACGTGTGCCCCATCTGCGGGGCATCTGGGGACT
CGGCGCACACGATTAAGTACTGCCCCAAGAAGCCGATCATCACCATGGAG
GATGCGATCAAGGCGGAATCGTTCCGCCTAGCCAAGAGCAGTTACTACAA
GCAACAGATGAAGGTTTAGAGAGGGCGAATCCAGCTCTGGAGCAGAGGCT
CTGGCAGCTTTTGCAGCGTTTATATAACATGAAATATATATACGCATTCC
GATCAAAGCTGGGTTAACCAGATAGATAGATAGTAACGTTTAAATAGCGC
CTGGCGCGTTCGATTTTAAAGAGATTTAGAGCGTTATCCCGTGCCTATAG
ATCTTATAGTATAGACAACGAACGATCACTCAAATCCAAGTCAATAATTC
AAGAATTTATGTCTGTTTCTGTGAAAGGGAAACTAATTTTGTTAAAGAAG
Je souhaite que quand l'utilisateur entre le nom du gène dans Entry (dans l'exemple FBgn0002962), cela m'affiche la séquence quand j'appuie sur "Sequence". Mais je ne vois pas comment faire .... quelqu'un pourrait m'aider ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
64
65
66
67
68
69
70
71
#!/usr/bin/perl
use strict;
use warnings;
use Tk;
use Tk::EntryCheck;
use Bio::SeqIO;
 
# sequence des transcripts
my $fasta_file ='nanos.fasta';
my $value;
 
my $in = Bio::SeqIO->new( -file => $fasta_file, '-format' => 'Fasta' );
open(my $trans_cx, "<", "gene_trans_max_cx.txt") ;
my $FBgn_entry;
my(%hash_cx,%hash_sequence);
 
# creation d'un hash avec FBgn => FBtr associé de façon a trouver le transcript du gène en entrée
while(<$trans_cx>){
	chomp;
	my($FBgn_cx,$FBtr_cx)=split /\t/,$_;
	$hash_cx{$FBgn_cx}->{'transcript'}=$FBtr_cx;
}
# creation d'un hash avec id transcript > sequence
while ( my $seq = $in->next_seq()){
	my $id = $seq->primary_id ;
	my($FBgn,$FBtr,$name,$length)=split /;/,$id;
 
	my $sequence = $seq->seq ;
	$hash_sequence{$FBtr}->{'sequence'} =$sequence;
 
}
 
my $fenetre_principale = MainWindow->new( -title => 'Tk::EntryCheck' );
$fenetre_principale->Label( -text => 'Gene (FBgn) : ')->pack();
my $entry = $fenetre_principale->Entry( 
	-background => 'white',
	-textvariable => \$FBgn_entry,
)->pack(); 
 
# sequence du transcript
$fenetre_principale->Button( 
	-text => 'Sequence', 
	# que faire quand on appuie sur Afficher
	-command =>  sub { 
    print "$hash_cx{$FBgn_entry}->{'transcript'}\n";
},
)->pack();  
my $mycanvas = $fenetre_principale->Scrolled('Canvas',
	-scrollbars=>'oe',
)->pack();
 
my $widget_texte = $fenetre_principale->Scrolled('Text', 
	-scrollbars => 'oe',
	-setgrid=>'single',
)->pack();
 
$widget_texte->tagConfigure('ROUGE', 
  		-foreground => 'red',
  		-font       => 'arial',
);
$widget_texte->tagConfigure('YELLOW', 
  	-foreground => 'BLACK',
  	-font       => 'FontSequence',
	-underline => 1,
);
$widget_texte->tagConfigure('bold', 
	-font => "helvetica 10 bold"
);
 
 
MainLoop;