Bonjour,
Je me présente, je suis étudiante en DUT bioinformatique et, dans le cadre de cette formation, je réalise un projet tuteuré portant sur l'identification de bactéries par autre chose que l'ARN 16s.
Pour cela, je dois blaster des séquences au format fasta contenues dans un fichier.
J'ai donc écrit ce script (en fait simplement adapté d'un script trouvé sur internet), mais le problème est qu'il ne produit aucun fichier sortie...
Voila le code :
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
 
#!/usr/local/bin/perl
use strict;
use Bio::Tools::Run::RemoteBlast;
 
my $prog = 'blastn';
my $db = 'nr';
my $e_val= '1e-10';
my $readmethod = 'SearchIO';
my @params = (
'-prog' => $prog,
'-data' => $db,
'-expect' => $e_val,
'-readmethod' => $readmethod );
my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
my $r = $factory->submit_blast("bacteries.fasta");
my $v = 1;
print STDERR "waiting..." if( $v > 0 );
 
while ( my @rids = $factory->each_rid ) {
	foreach my $rid ( @rids ) {
	# Tente de récupérer un rapport blast de la file d'attendre
		my $rc = $factory->retrieve_blast($rid);
		if( !ref($rc) ) {
			if( $rc < 0) {
				$factory->remove_rid($rid);
			}
			print STDERR "." if ( $v > 0 );
			sleep 5;
		}
		else {
			my $result = $rc->next_result();
			# création du fichier de sortie ayant comme nom l'identifiant de la séquence cible
			my $filename = 'G:'.$result->query_name()."\.blastn";
			$factory->save_output($filename);
			$factory->remove_rid($rid);
			while ( my $hit = $result->next_hit ) {
				next unless ( $v > 0);
				print "\thit name is ", $hit->name, "\n";
				while( my $hsp = $hit->next_hsp ) {
					print "\t\tscore is ", $hsp->score, "\n";
				}
			}
		}
	}
}
Au niveau du terminal, beacoup de choses sont affichées (en html, visiblement...)

Avez-vous une idée pour que je comprenne pourquoi aucun fichier n'est produit?
Comme je débute en bioperl, ce n'est pas évident...

Merci par avance pour votre aide!