[Bioperl-l] ATTN: Matthew Laird & Elia----blastall call crashed from StandAloneBlast

Chris Fields cjfields at uiuc.edu
Fri Aug 10 16:17:38 UTC 2007


This should be filed as a bug if possible; could you do that?

http://www.bioperl.org/wiki/Bugs

Suggestions have been made many times previously that  
StandAloneBlast, RemoteBlast, etc be combined to use a common API,  
incorporate other BLAST implementations (i.e. WU-BLAST, NCBI's  
netblast, etc), and maybe utilize other cross-platform compatible  
means of running programs and passing off reports to parsers.  In  
fact, Jason, Roger Hall, Torsten, and I discussed tentative plans for  
plugin-able BLAST wrappers:

http://www.bioperl.org/wiki/Module:Bio::Tools::Run::RemoteBlast

Though they have never been acted upon.  If I get time towards the  
end of fall and manage to finish up some other projects I may try  
taking this on, maybe using the wiki to track progress.

chris

On Aug 10, 2007, at 10:23 AM, Guojun Yang wrote:

> Hi, Chris,
> Interestingly, I found the message in bioperl-l from Matthew Laird  
> 2005 "Blastall & StandAloneBlast". "...the Odd thing is, Blast DOES  
> run.  If one comments out this line in StandAloneBlast.pm, the  
> execution succeeds perfectly fine". It seemed to be mysterious when  
> I uncommented the " $self->throw("$executable call crashed: $? $!  
> $commandstring\n") unless ($status==0) ;" line, the blastall runs.  
> The only difference from what Matthew saw is that, when I did not  
> uncomment the line, blastall DID NOT run.
> Thanks,
> Guojun
>
> From: Guojun Yang [mailto:gyang at plantbio.uga.edu]
> To: Chris Fields [mailto:cjfields at uiuc.edu]
> Cc: bioperl-l at lists.open-bio.org
> Sent: Thu, 09 Aug 2007 15:03:21 -0400
> Subject: standalone blastall call crashed, please help
>
> Hi, Chris,
> Thanks a lot for your efforts. With your help, I am gaining more  
> confidence to fix the cgi code. While the remoteblast problem is  
> fixed now, I am caught in a local blast problem (see the error  
> message and subroutine). The line starting with * is line 593 in  
> the error message. I tried command line blastall, it works fine. I  
> set the permission to all the blast folders and files, it did not  
> help much. The same sequence and database works OK if I use command  
> line blastall. I used the seq object ref $query as query, the error  
> message gives "-i /tmp/...", does this look like an input problem?  
> The subroutine was working before early 2006 (on a different  
> machine), I am wondering whether this is due to changes in the  
> StandAloneBlast.pm?  Best, Guojun
>
> I set the blast env variables:
>
> BEGIN {$ENV{BLASTDIR} = '/usr/blast-2.2.10/bin'; }
> BEGIN {$ENV{BLASTDB}='/usr/blast-2.2.10/data';}
> BEGIN {$ENV{BLASTMAT}='/usr/blast-2.2.10/data';}
> $PROGRAMDIR = $ENV{'BLASTDIR'} || '';
> ......
>
> ------------- EXCEPTION: Bio::Root::Exception -------------
> MSG: blastall call crashed: -1 /usr/blast-2.2.10/bin/blastall -d  "/ 
> usr/blast-2.2.10/data/swissprot"  -e  0.001  -i  /tmp/3cjvQyodxg  - 
> o  /tmp/4qSSO16EZP  -p  blastx
> STACK: Error::throw
> STACK: Bio::Root::Root::throw /usr/lib/perl5/site_perl/5.8.3/Bio/ 
> Root/Root.pm:359
> STACK: Bio::Tools::Run::StandAloneBlast::_runblast /usr/lib/perl5/ 
> site_perl/5.8.3/Bio/Tools/Run/StandAloneBlast.pm:813
> STACK: Bio::Tools::Run::StandAloneBlast::_generic_local_blast /usr/ 
> lib/perl5/site_perl/5.8.3/Bio/Tools/Run/StandAloneBlast.pm:760
> STACK: Bio::Tools::Run::StandAloneBlast::blastall /usr/lib/perl5/ 
> site_perl/5.8.3/Bio/Tools/Run/StandAloneBlast.pm:570
> STACK: main::ancestor makcgi07.txt:593
> STACK: makcgi07.txt:208
> sub ancestor {
>     use Bio::Tools::Run::StandAloneBlast;
>     use Bio::SearchIO::blast;
>
> my $query = Bio::Seq -> new ( -seq=>"$_[0]",
>                               -id=>"test");
> print $query->seq();
> my $len=$query->length();
> my $long_name=$_[1];
> my $long_start=$_[2];
> my $long_end=$_[3];
> @db=('swissprot');
> foreach my $db (@db) {
>     my $factory = Bio::Tools::Run::StandAloneBlast->new(-program =>  
> "blastx",
>                                                         -database  
> => "$db",
>                                                         -e => 1e-3,
>                                                         );
> *    my $blast_report = $factory->blastall($query);
>     while (my $result = $blast_report->next_result) {
>             while( my $hit = $result->next_hit()) {
>                 $hit_name=$hit->name;
>                 $hit_name =~ /\S+[|](\S+)[.]\d+[|].*/;
>                 $name=$1;
>                 $desc = $hit->description();
>                 if ($desc =~ /.*{|\btransposon\b|\btransposase 
> \b|}.*/i){
>                      $AN=0;
>                      $replica=0;
>                      while ($ancestor_name[$AN]) {
>                         $replica=1 if (($ancestor_name[$AN] eq  
> $long_name) && ($hitname[$AN] eq $name));
>                          $AN+=1;
>                      }
>                         if ($replica==0) {
>                         push @ancestor_name, $long_name;
>                         push @ancestor_start, $long_start;
>                         push @ancestor_end, $long_end;
>                         push @desc, $desc;
>                         push @hitname,$name;
>                         }
>                 }
>                }
>               }}
> return @ancestor_name, at ancestor_start, at ancestor_end, at desc;
> }
>
>
>
>
>
>

Christopher Fields
Postdoctoral Researcher
Lab of Dr. Robert Switzer
Dept of Biochemistry
University of Illinois Urbana-Champaign






More information about the Bioperl-l mailing list