[Bioperl-l] standalone blastall call crashed, please help
Guojun Yang
gyang at plantbio.uga.edu
Thu Aug 9 19:03:21 UTC 2007
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;
}
More information about the Bioperl-l
mailing list