[Bioperl-l] Remote Blast Execution

Prabu R prabubio at gmail.com
Mon Jul 24 15:39:43 UTC 2006


Dear All!

I am trying to run Remote Blast using Bio::Tools::Run::RemoteBlast.

I am not able to get the blast result.
Upto my knowledge, the Bio::SearchIO::blast hash object does not returns any
result.


Secondly, I tried 'remote_blast.pl ' a program from CPAN bioperl 1.5release.

Command:
 perl bp_remote_blast.pl -p blastn -d est_mouse -e 1e-5 -i
/home/prabucn/Blast/mm_test1.fa

Error Message:

retrieving blasts..

-------------------- WARNING ---------------------
MSG: Possible error (1) while parsing BLAST report!
---------------------------------------------------

Please help.

Thanks,
R. Prabu.


Please look into my test program.
----------------------------------------------------------------------------------------------
use Bio::Tools::Run::RemoteBlast;
  use strict;
  use Bio::SeqIO;
  use Bio::SearchIO;

 my $prog = 'blastn';
  my $db   = 'est';
  my $e_val= '1e-10';

  my @params = ( '-prog' => $prog,
         '-data' => $db,
         '-expect' => $e_val,
         '-readmethod' => 'SearchIO' );

  my $factory = Bio::Tools::Run::RemoteBlast->new(@params) || die "Cant do";

   my $v = 1;

  my $str = Bio::SeqIO->new(-file=>'mm_test2.txt' , '-format' => 'fasta' );

  while (my $input = $str->next_seq()){
     my $r = $factory->submit_blast($input);

    print STDERR "waiting..." if( $v > 0 );
    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 {
          print "$rc\n";
          my $result = $rc->next_result();
           my $filename = $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";
            }
          }
        }
      }
    }
  }
----------------------------------------------------------------------------------------------

-- 
"Every noble work is at first impossible."
- Thomas Carlyle



More information about the Bioperl-l mailing list