[Bioperl-l] Blast return codes

Matthew Laird lairdm at sfu.ca
Fri Dec 12 18:23:56 EST 2003


I did some more investigating and it's beginning to look a lot more 
bizarre.  I changed the bioperl code to see if the blast command was 
actually run regardless of the -1 return code.  And yes, blast did run and 
the result file is there - it's only that perl is returning a -1 to 
bioperl for some reason.

I was actually just speaking with someone in another lab and he said he 
used to experience this problem too, his solution was to just write his 
own modules. :)

So this certainly seems like some deep down perl/OS voodoo.

I'd still be interested in hearing what envirnoment variables to set to 
run t/StandAloneBlast.t.

Thanks.

On Thu, 11 Dec 2003, Matthew Laird wrote:

> Thanks for your assistance so far, I've been trying to find the difference 
> between the machines that do work and the ones that don't.  The two most 
> similar machines which some do and some don't work are a group of Red Hat 
> 9 machines.
> 
> The machines are running Red Hat 9 and Perl 5.8.0.  I've tried both 
> bioperl 1.2.1 and 1.2.3.  The only other difference I could find was that 
> perl was built from source on one of the machines that worked.  I tried 
> doing that on one of the non-working machines and had no success.
> 
> I've tried running the StandAloneBlast.t, what environment variables do I 
> need set?  I receive:
> [root at ssb7121-5 t]# perl StandAloneBlast.t
> 1..10
> ok 1
> ok 2
> ok 3
> ok 4
> Blast Database ecoli.nt not found at StandAloneBlast.t line 67.
> Blast Database swissprot not found at StandAloneBlast.t line 72.
> Blast databases(s) not found, skipping remaining  tests at 
> StandAloneBlast.t line 76.
> ok 5 # skip Blast or env variables not installed correctly
> ok 6 # skip Blast or env variables not installed correctly
> ok 7 # skip Blast or env variables not installed correctly
> ok 8 # skip Blast or env variables not installed correctly
> ok 9 # skip Blast or env variables not installed correctly
> ok 10 # skip Blast or env variables not installed correctly
> 
> Obviously I need to set some variable so it can find the blast database.
> 
> Thanks again.
> 
> On 11 Dec 2003, Keith James wrote:
> 
> > >>>>> "Matthew" == Matthew Laird <lairdm at sfu.ca> writes:
> > 
> >     Matthew> Well, that's a step in the right direction, I have a
> >     Matthew> little more information now.  I added a $! before the $?
> >     Matthew> and received:
> > 
> >     Matthew> ------------- EXCEPTION ------------- MSG: blastall call
> >     Matthew> crashed: -1 No child processes /usr/local/blast/blastall
> >     Matthew> -p blastp -d
> >     Matthew> /usr/local/psort/conf/analysis/sclblast/sclblast -i
> >     Matthew> /tmp/8Dt6zF1U59 -e 1e-09 -o /tmp/ojP9n04LZh
> > 
> >     Matthew> STACK Bio::Tools::Run::StandAloneBlast::_runblast
> >     Matthew> /usr/lib/perl5/site_perl/5.8.0/Bio/Tools/Run/StandAloneBlast.pm:640
> > 
> >     Matthew> This is where we get into Perl voodoo beyond my league,
> >     Matthew> "No child processes" - does that ring bells for anyone?
> >     Matthew> Thanks again.
> > 
> > That's interesting. I think we need to know your OS platform and Perl
> > version to get any further.
> > 
> > I think that the value left by a system call in $? is the same as if a
> > wait system call were made. No child processes is a Unix error code
> > (ECHILD) which can be caused by a wait, being reported by Perl.
> > 
> > What happens if you run the test for StandAloneBlast? (t/StandAloneBlast.t)
> > 
> > Keith
> > 
> > 
> 
> 

-- 
Matthew Laird
SysAdmin/Web Developer, Brinkman Laboratory, MBB Dept.
Simon Fraser University




More information about the Bioperl-l mailing list