bioperl / bioperl-run

BioPerl wrappers
http://bioperl.org
Other
35 stars 17 forks source link

Bio::Tools::Run::Genewise doesn't accept parameters as described in its documentation #21

Open cjfields opened 9 years ago

cjfields commented 9 years ago

Author Name: Dave Messina (@DaveMessina) Original Redmine Issue: 3072, https://redmine.open-bio.org/issues/3072 Original Date: 2010-05-02 Original Assignee: Bioperl Guts


I’m pasting my email pretty much verbatim below, but here’s a link to the thread: http://groups.google.com/group/bioperl-l/t/2820ca0eeef24613

The syntax needed to pass the ‘quiet’ flag to Genewise is:

  1. Build a Genewise alignment factory my $factory = Bio::Tools::Run::Genewise->new();
  1. turn on the quiet switch $factory->QUIET (1);
  1. genes is an array of Bio::SeqFeature::Gene::GeneStructure objects mygenes = $factory->run($protein_seq, $genomic_seq);

This turns out be incorrectly documented on the man page, at least in part: Available Params:

NB: These should be passed without the ‘-’ or they will be ignored, except switches such as ‘hmmer’ (which have no corresponding value) which should be set on the factory object using the AUTOLOADed methods of the same name.

Model [-codon,-gene,-cfreq,-splice,-subs,-indel,-intron,-null] Alg [-kbyte,-alg] HMM [-hmmer] Output [-gff,-gener,-alb,-pal,-block,-divide] Standard [-help,-version,-silent,-quiet,-errorlog]

That is, these don’t work as expected:

$factory->quiet; $factory->quiet(1);

due to a conflict with the quiet() method inherited from Bio::Tools::Run::WrapperBase.

And passing a true value such as 1 is in fact necessary or the switch-type parameters won’t be set.

So it looks like the parameter passing system in B::T::R::Genewise might benefit from some revision.

Suggested solutions are (in increasing order of expected effort): 1) make a minimal fix so that switch-type parameters automatically get a TRUE value and the WrapperBase::quiet() collision is eliminated.

2) Rewrite the parameter setup to use an internal _params array instead of AUTOLOAD

3) Move B::T::R::Genewise over to the WrapperBase system entirely.