[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