[Bioperl-l] problem with remote blast

010381P GOH PHUAY CHENG 010381P at nyp.edu.sg
Mon Sep 29 02:16:45 EDT 2003


hi,
i am trying to connect to the remote blast. but i encountered the following
warnings. could u pls help me.

-------------------- WARNING ---------------------
MSG: <p><!--
QBlastInfoBegin
        Status=READY
QBlastInfoEnd
--><p>
<b><FONT color="red">INFO: [blastsrv4.REAL]: Error: Segmentation violation
(or m
emory usage limit was exceeded) SIGSEGV (11).
</FONT></B><p><HR><p>
<PRE>
BLASTN 2.2.6 [Apr-09-2003]

<pre>RID: 1064815996-23369-1254165.BLASTQ3
Query= Test
         (560 letters)

<b>No significant similarity found.</b> For reasons why, <A HREF =
"/blast/blast
_FAQs.html#no hits"><b>click here</A>.</b><br><br>


---------------------------------------------------

my codes:
#!/usr/bin/perl -w
use Bio::SeqIO;
use Bio::Tools::Run::RemoteBlast;
use strict;
  my $prog = 'blastn';
  my $db   = 'ecoli.nt';
  my $e_val= '1e-10';
  my @params = ( '-prog' => $prog,
         '-data' => $db,
          );
  my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
 
  delete $Bio::Tools::Run::RemoteBlast::HEADER{'FILTER'};
  my $v = 1;  
  
  my $str = Bio::SeqIO->new(-file=>'test.txt' , '-format' => 'fasta' );
  while (my $input = $str->next_seq()){
    
    #my $r = $factory->submit_blast($input);
    my $r = $factory->submit_blast('test.txt');
    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 {
          my $result = $rc->next_result();
          #save the output
          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";
            }
          }
        }
      }
    }
  }



More information about the Bioperl-l mailing list