[Bioperl-l] Barry's challenge

Jay Hannah jay at jays.net
Fri Nov 11 13:10:32 EST 2005

On Nov 11, 2005, at 7:01 AM, Aaron J. Mackey wrote:
> barry.txt is not in FASTA format, it's in raw format


On to the next challenge... My program is now:

$ cat j.pl
use Bio::Tools::Run::StandAloneBlast;
$ENV{BLASTDIR} = '/Users/jhannah/src/blast-2.2.12/bin/';
@params = ('database' => 'nr.00','outfile' => 'j.out');
$factory = Bio::Tools::Run::StandAloneBlast->new(@params);
$str = Bio::SeqIO->new(-file=>'barry.txt', -format => 'raw' );
$input = $str->next_seq();
$input2 = $str->next_seq();
$blast_report = $factory->blastall($input);

When I run it it outputs:

$ perl j.pl

-------------------- WARNING ---------------------
MSG: cannot find path to blastall

But I think that's a red herring because when I run around in the  
debugger I see

[NULL_Caption] ERROR: Program Name was not given an argument

------------- EXCEPTION  -------------
MSG: blastall call crashed: 256  
/Users/jhannah/src/blast-2.2.12/bin/blastall -d  "/nr.00"  -i   
/tmp/KvbADjsmeq  -o  j.out

STACK Bio::Tools::Run::StandAloneBlast::_runblast  
STACK Bio::Tools::Run::StandAloneBlast::_generic_local_blast  
STACK Bio::Tools::Run::StandAloneBlast::blastall  
STACK toplevel j.pl:8

StandAloneBlast=HASH(0xb7cc34)','blastall call crashed: 256  
/Users/jhannah/src/blast-2.2.12/bi...') called at  
/Library/Perl/5.8.1/Bio/Tools/Run/StandAloneBlast.pm line 759
StandAloneBlast=HASH(0xb7cc34)','blastall',' -d  "/nr.00"  -i   
/tmp/KvbADjsmeq  -o  j.out ') called at  
/Library/Perl/5.8.1/Bio/Tools/Run/StandAloneBlast.pm line 706
Seq=HASH(0xb81924)','undef') called at  
/Library/Perl/5.8.1/Bio/Tools/Run/StandAloneBlast.pm line 557
StandAloneBlast=HASH(0xb7cc34)','Bio::Seq=HASH(0xb81924)') called at  
j.pl line 8
scalar context return from CODE(0x96981c): ''

So I've hit my first bioperl bug, right? The output is the wrong error,  
yes? Should I submit a patch? To where? This mailing list?

I see that Bio/Tools/Run/StandAloneBlast.pm is calling

    $self->throw("$executable call crashed: $? $commandstring\n")

which lives down in Bio/Root/Root.pm. Is there a primer (from a user's  
perspective) on how I'm supposed to activate debugging/tracing? If not,  
should I try to figure it out and write one? Into  
Bio::Tools::Run::StandAloneBlast or somewhere more general purpose?

Thanks all,


More information about the Bioperl-l mailing list