[Bioperl-l] Issues with new Bio::Tools::Run modules for Genemark and Glimmer
cjfields at uiuc.edu
Wed Feb 28 17:10:54 EST 2007
On Feb 28, 2007, at 1:59 PM, Mark Johnson wrote:
> I happen to need something like Bio::Tools::Run::Genemark, so
> I'm coding
> one up. When I started on the tests for it, I realized I have a
> problem. I
> can distribute a fasta file downloaded from GenBank to use as
> input, but I
> can't distribute the model file needed to actually run Genemark (
> Genemark.hmm for prokaryotes, gmhmmp, in my case).
> It took *forever* to get a license, and I'm not thrilled with the
> prospect of talking them out of a redistributable model file. I'd
> love to
> distribute the test, but I don't see how I'm going to be able to.
For bioperl-run tests you have to have the program installed for
tests to work (otherwise they are passed over). Therefore one would
assume if you had the GeneMark program you would have the models as
You could set up your module to require an env. variable be set (like
the HMMER module, for instance) which contains the executables and/or
the models, so that if it isn't set the tests are skipped.
> Also, I've settled on IPC::Run instead of system(). The docs
> the bits of it I'm using should be OK on Windows, except maybe for
> I don't want to clutter up the console, I don't like embedding
> redirection in command strings, and I don't want to have to worry
> signal handling (What if the child catches a ctrl-c halfway through
> parsing? What if the parent does?). Anybody object to that?
I wouldn't worry too much about Win9x. Is IPC::Run in perl core?
Otherwise we'll need to add it to the optional dependencies for
> One final thing. I'm lazy, I don't want to deal with parsing
> to the constructor, so I'm just calling _rearrange() to deal with
> it. The
> Bio::Tools:: parsers all take dash options, but it looks like a
> bunch of the
> stuff in Bio::Tools::Run:: takes dashless args. Objections?
Sendu's suggestion (_set_from_args() ) is the best. As mentioned in
another thread _rearrange() works as well.
More information about the Bioperl-l