[Bioperl-l] e-value from RemoteBlast differs from hand made blast
Peter Kos
kos@rite.or.jp" <kos@rite.or.jp
Thu, 23 May 2002 13:45:24 +0900
Hi Carsten,
I do not really understand some bits of your code, but obviously
"TIMTOWTDI" or what.
Otherwise, according your question, taking in account the responses I
have read,
I suspect that the problem stems from the parameters not defined
explicitly. I do not know what
the default is for Filtering in manual NCBI and in
Bio::Tools::Run::RemoteBlast, but
I know that it is on (T) by default in local blastall. It makes a
whole lot of difference with respect to
scores and e-value if you do the same comparison with and without (or
using different
kinds of) filtering, even if everything else is the same.
I would therefore suggest you to give it a try: set everything
explicitly in both cases
and see what happens.
It may not help, but not difficult to try either.
Regards
Peter
> 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
>
..................................................................
..........
Peter B. Kos, Ph.D.
Molecular Microbiology and Genetics Lab.
Research Institute of Innovative Technology for the Earth (RITE)
9-2 Kizugawadai, Kizu-cho, Soraku-gun,
Kyoto 619-0292 JAPAN
Phone: +81-774-75-2308
Fax: +81-774-75-2321
E-mail: kos@rite.or.jp