[Bioperl-l] StandAloneBlast->blastall array of Bio::Seq objects

Andrew Stewart stewarta at nmrc.navy.mil
Thu Dec 14 12:49:45 EST 2006


> So can you look at the tempfile that is created and see if it is sane?
>
> Set -save_tempfiles => 1 whene you initialize the factory object or do
> $factory->save_tempfiles(1)
> before calling the blastall.
>
> -jason
>

Jason,
I was actually wondering how to do that.  Thanks.  Odd though, it  
still doesn't seem to be saving the tempfiles.  Might not matter  
though, because...

> The error pops up when the executable returns a bad status, so  
> maybe it's choking on too many input sequences (i.e. Bioperl is  
> doing everything correctly, but you are attempting to BLAST too  
> many sequences in one go).  How many sequences are you attempting  
> to use as input?  What happens when you use fewer input sequences?
>
> chris
>

I was processing 738 sequences for input.  I cut that down to 20  
sequences and I'm getting some other exception thrown further  
downstream, so it appears you may be correct.  You don't happen to  
know what the max number of sequences that blastall allows for input,  
would ya? ;)  I suppose I'll have to break @query down into smaller  
doses or something.

Thanks,
Andrew


On Dec 14, 2006, at 12:03 PM, Chris Fields wrote:

>
> On Dec 14, 2006, at 10:34 AM, Andrew Stewart wrote:
>
>> Thanks for the reply, Sendu.
>>
>> So I've tried passing a reference to an array of Seq objects with the
>> following code...
>> 	
>> 	push @blast_run, $factory->blastall(\@query);  # where @query is an
>> array of Bio::Seq objects
>>
>> (In case you're wondering, I'm pushing the report into an array of
>> reports because I'm running several instances of blastall with
>> different parameters each time.)
>>
>> ....and it throws me the following exception...
>>
>> ------------- EXCEPTION: Bio::Root::Exception -------------
>> MSG: blastall call crashed: 11 /common/bin/blastall -p  blastp  - 
>> d  "/
>> common/data/BACILLUS.pep"  -i  /tmp/Z69hzaqEbR  -o  /tmp/02Zja7AF3E
>>
>> STACK: Error::throw
>> STACK: Bio::Root::Root::throw /sw/lib/perl5/5.8.6/Bio/Root/Root.pm: 
>> 328
>> STACK: Bio::Tools::Run::StandAloneBlast::_runblast /sw/lib/
>> perl5/5.8.6/Bio/Tools/Run/StandAloneBlast.pm:759
>> STACK: Bio::Tools::Run::StandAloneBlast::_generic_local_blast /sw/ 
>> lib/
>> perl5/5.8.6/Bio/Tools/Run/StandAloneBlast.pm:706
>> STACK: Bio::Tools::Run::StandAloneBlast::blastall /sw/lib/ 
>> perl5/5.8.6/
>> Bio/Tools/Run/StandAloneBlast.pm:557
>> STACK: main::run_blastall ./new_blast_script.pl:215
>> STACK: ./new_blast_script.pl:115
>> -----------------------------------------------------------
>>
>> And % more -Nl 759 /path/to/Bio/Tools/Run/StandAloneBlast.pm  
>> returns...
>> 757         my $status = system($commandstring);
>> 758
>> 759         $self->throw("$executable call crashed: $? $commandstring
>> \n")
>> 760           unless ($status==0) ;
>>
>> So it looks like the system call isn't returning a happy $status.  At
>> this point I'm pretty much stuck, though.  Blastall works just fine
>> if I only send it a single Seq object.  Looking at _setinput, it
>> appears a reference to an array of Seq objects should end up creating
>> a multi-fasta file.  The only possibilities I can think of to explain
>> this is...
>>
>> - The -i file isn't be created for some reason when an (ref to) array
>> of Seqs is passed
>> - There is something wrong with the -i file that is created and sent
>> to blastall.
>> - Something else is wrong with the $commandstring being sent to the
>> system call.
>>
>> Does anyone see something here that I don't?
>
> The error pops up when the executable returns a bad status, so  
> maybe it's choking on too many input sequences (i.e. Bioperl is  
> doing everything correctly, but you are attempting to BLAST too  
> many sequences in one go).  How many sequences are you attempting  
> to use as input?  What happens when you use fewer input sequences?
>
> chris
>



--
Andrew Stewart
Research Assistant, Genomics Team
Navy Medical Research Center (NMRC)
Biological Defense Research Directorate (BDRD)
BDRD Annex
12300 Washington Avenue, 2nd Floor
Rockville, MD 20852

email: stewarta at nmrc.navy.mil
phone: 301-231-6700 Ext 270




More information about the Bioperl-l mailing list