Bonjour,
J'aimerais trouver la fonction perl permettant de vérifier si j'obtiens quelque chose lors d'une requête Genbank.
Le problème est que si j'introduits un accession number erroné, mon programme plante. J'aimerais qu'il m'affiche un message d'erreur et passe à l'acc suivant au lieu de s'arrêter.
J'aimerais aussi connaitre la fonction permettant de vérifier quand je me connecte à un site si celui ci est disponible ou non. Car quand Genbank est en dérangement cela fait également planter mon programme.
Quand mon programme arrive à un Acc incorrect, il m'écrit ce message à l'écran avant de stopper.
------------- EXCEPTION -------------
MSG: acc does not exist
STACK Bio:B::WebDBSeqI::get_Seq_by_acc C:/Perl/site/lib/Bio/DB/WebDBSeqI.pm:177
STACK Bio:B::GenBank::get_Seq_by_acc C:/Perl/site/lib/Bio/DB/GenBank.pm:216
STACK toplevel P:\Perl\scripts\INTERR~1\RECHER~1\CONTRO~1.PL:20
--------------------------------------
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 #!/usr/local/bin/perl #----------------------- ControleGenBank.pl -----------------------# #----------------------- ControleGenBank.pl -----------------------# use strict; use warnings; use Bio::DB::GenBank; my @Liste_acc = ("plantage", "AB305017", "EF560796"); # Recherche dans Genbank #-------------------------- my $gb = new Bio::DB::GenBank; foreach my $Acc (@Liste_acc) { if (not exists $gb->get_Seq_by_acc($Acc)){next;} my $Info = $gb->get_Seq_by_acc($Acc); my $Gi = $Info->primary_id(); print $Acc." => ".$Gi."\n"; } close;
Merci beaucoup,
Jasmine,
Partager