Problème avec le module RemoteBlast
Bonjour à tous,
J'ai un problème avec remote_blast.
Voici mon script, qui vient du CPAN
Code:
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:
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,