[Bioperl-l] StandAloneBlast->blastall array of Bio::Seq objects
jason at bioperl.org
Thu Dec 14 11:59:20 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
before calling the blastall.
On Dec 14, 2006, at 11: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/
> STACK: Bio::Tools::Run::StandAloneBlast::_generic_local_blast /sw/lib/
> STACK: Bio::Tools::Run::StandAloneBlast::blastall /sw/lib/perl5/5.8.6/
> 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
> 757 my $status = system($commandstring);
> 759 $self->throw("$executable call crashed: $? $commandstring
> 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?
> On Dec 14, 2006, at 9:10 AM, Sendu Bala wrote:
>> Andrew Stewart wrote:
>>> I am trying to StandAloneBlast->blastall an array or Bio::Seq
>>> objects. The documentation claims that blastall can be passed a
>>> file name,
>> You're referring to 'In addition, sequence input may be in the form
>> of either a Bio::Seq object or or an array of Bio::Seq objects'? I
>> agree its not clear, but supplying a reference to an array is still
>> supplying an array. Anyway, I'll clarify it.
>> In any case, the usage for the method is what you should pay
>> attention to:
>>> $seq_array_ref = \@seq_array; # where @seq_array is an array of
>>> Bio::Seq objects
>>> $blast_report = $factory->blastall(\@seq_array);
>>> Should this be...
>>> $report = $factory->blastall(@seq_array);
>>> $report = $factory->blastall(\@seq_array);
>> It should be exactly what it says. A reference to the array.
>>> And if you are blastall'ing an array of Seq objects, then does
>>> blastall just return one big blast report or should I be expecting
>>> an array of blast reports?
>> Returns : Reference to a Blast object or BPlite object
>> containing the blast report.
>> That means, just one big object, not an array.
> 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
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
More information about the Bioperl-l