[Bioperl-l] e-value from RemoteBlast differs from hand made blast
Carsten Daub
daub@mpimp-golm.mpg.de
Wed, 22 May 2002 12:56:55 +0200
Hi,
I blasted with RemoteBlast and the score/e-values I obtain differ from
the ones
I get by a hand made blast at NCBI.
Is there a way to get the the same score/e-value by RemoteBlast as by
hand-made blast?
Carsten
Here the program text I used:
use Bio::Tools::Run::RemoteBlast;
use strict;
my $v = 1;
my $prog = 'blastp';
my $db = 'nr';
my $e_val= '50';
my @params = ( '-prog' => $prog,
'-data' => $db,
'-expect' => $e_val );
my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
$v = 1;
my $str = Bio::SeqIO->new(-file=>$ARGV[0] , '-format' => 'fasta' );
my $input = $str->next_seq();
my $readmethod = $factory->readmethod;
print STDERR "readmethod: $readmethod\n";
# Blast a sequence against a database:
my $r = $factory->submit_blast($input);
print STDERR "waiting..." if( $v > 0 );
print "#name\tdescription\traw_score\tevalue\n";
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 {
$factory->remove_rid($rid);
my $result = $rc->next_result;
#print "db is ", $result->database_name(), "\n";
my $count = 0;
while( my $hit = $result->next_hit ) {
$count++;
next unless ( $v > 0);
print $hit->name, "\t", $hit->description(), "\t",
$hit->raw_score(), "\t", $hit->significance(), "\n";
#print "hit name : ", $hit->name, "\n";
#print "description : ", $hit->description(), "\n";
#print "length : ", $hit->length, "\n";
#print "algorithm : ", $hit->algorithm(), "\n";
#print "raw score : ", $hit->raw_score(), "\n";
#print "significance: ", $hit->significance(), "\n";
#while( my $hsp = $hit->next_hsp ) {
# print "score : ", $hsp->score, "\n";
# print "evalue : ", $hsp->evalue(), "\n";
#}
}
}
}
}
--
Carsten Daub
MPI of Molecular Plant Physiology