Bonjour à tous,

J'ai un problème avec remote_blast.

Voici mon script, qui vient du CPAN
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
#!/usr/local/bin/perl
 
use Bio::Tools::Run::RemoteBlast;
use strict;
use FileHandle;
my $prog = 'blastn';
my $db   = 'nr/nt';
my $e_val= '1e-10';
 
my @params = (
    '-prog' => $prog,
    '-data' => $db,
    '-expect' => $e_val,
    '-readmethod' => 'SearchIO' );
 
my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
my $v = 1;
my $str = Bio::SeqIO->new(-file=>'P:/Perl/scripts2/Files/BLAST/NM_001701.fa' , '-format' => 'fasta' );
 
 
#Blast a sequence against a database:
my $rep = 'P:/Perl/scripts2/Files/BLAST/';
my $r = $factory->submit_blast($rep.'NM_001701.fa');
while ( my @rids = $factory->each_rid ) {
  foreach my $rid ( @rids ) {
    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();
 
 
      #save the output
      my $filename = FileHandle->new(">".$rep.$result->query_name()."\.out");
      $factory->save_output($filename);
      $factory->remove_rid($rid);
      print "\nQuery Name: ", $result->query_name(), "\n";
      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";
        }
      }
    }
  }
}
la requête s'effectue bien mais :
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
print Dumper $result;
$VAR1 = bless( {
                 '_iteration_count' => 0,
                 '_algorithm_version' => '2.2.18+',
                 '_iterations' => [],
                 '_statistics' => bless( {}, 'Bio::Search::GenericStatistics' ),
                 '_algorithm' => 'BLASTN',
                 '_parameters' => bless( {}, 'Bio::Tools::Run::GenericParameters' ),
                 '_queryname' => 'NM_001701',
                 '_queryacc' => 'NM_001701',
                 '_inclusion_threshold' => '0.001',
                 '_iteration_index' => 0,
                 '_hits' => [],
                 '_hitindex' => 0,
                 '_querydesc' => '',
                 '_querylength' => '261',
                 '_hit_factory' => bless( {
                                            'interface' => 'Bio::Search::Hit::HitI',
                                            'type' => 'Bio::Search::Hit::BlastHit',
                                            '_loaded_types' => {
                                                                 'Bio::Search::Hit::BlastHit' => 1
                                                               },
                                            '_root_verbose' => 0
                                          }, 'Bio::Factory::ObjectFactory' ),
                 '_root_verbose' => 0
               }, 'Bio::Search::Result::BlastResult' );
Je ne trouve aucune séquence apparentée. Quand je fais un Blast en ligne, la même séquence montre plusieurs résultats. J'ai testé plusieurs séquences via ce script et c'est toujours un résultat vide. Il doit probablement y avoir une erreur dans mes paramètres mais je ne vois pas laquelle. Utiliser l'algorithme 'blastn', la DB 'nr/nt' et mettre '1e-10' comme seuil à mon expected value me parait correct. Auriez-vous une idée du problème?

Merci beaucoup,