[Bioperl-l] Bio:Tools::Primer3, Bio::Seq::PrimedSeq, and Bio::SeqFeature::Primer

Heikki Lehvaslaiho heikki at ebi.ac.uk
Wed Mar 26 12:34:18 EST 2003


On Wed, 2003-03-26 at 00:02, Rob Edwards wrote:
> Elia and others,
> 
> I like the idea of splitting up running from parsing. At the moment
>  Bio::Tools seems to contain a lot of parsers, and then some other
>  things that don't really go together (notably Bio::Tools::CodonTable,
>  Bio::Tools::SeqStats, Bio::Tools::SeqWords, Bio::Tools::Sigcleave,
>  Bio::Tools::OddCodes, Bio::Tools::IUPAC, Bio::Tools::Gel,
>  Bio::Tools::WWW, Bio::Tools::pSW, Bio::Tools::Alignment::Trim).
>  Perhaps a Bio::Tools::Parse would complement a Bio::Tools::Run?
> 
> I took a look at Bio::Tools::Run::WrapperBase, and as far as I can see
>  at the moment a lot of this is not implemented (e.g. run(),
>  program_name(), and program_dir(). Is someone working on this, or
>  should I spend a little time messing around with it.

Rob,

Have look what Martin Senger has been posting lately. He is has
commited  Bio::AnalysisI  and there will be Bio::SimpleAnalysisI which
will have a subset of simplified Bio::AnalysisI methods.
See http://industry.ebi.ac.uk/soaplab/Perl_Client.html

I've trying to get my head around this stuff for a while. In the long
run, I'd like to see a clear hierarchy of interfaces and super classes
for both running an analysis and parsing the results. The following
principles should apply:

* One should be able to quickly write one module to run an analysis and
then  save the raw output in a named file and/or parse the output into
objects (e.g. SeqFeatures).

* The analysis should work identically, or at least using alternative -
more or less complex, interfaces to accomplish the same thing regardless
of where the program is. Possible alternatives for location: local,
rest/cgi, soap, novella, corba. Marting uses attribute name / method
name access() for this. 

The ways to use alternative access locations could be either by adding
code to an existing class or by subclassing.



Ideally, I'd like to see something like:


             Bio::SimpleAnalysisI
               /             \                          Bio::WebAgent
              /               \                               |
   Bio::AnalysisI             Bio::ToolsRun::WrapperBase      |
                                        (local)      \        |
                                                      \       |
                                                        (cgi)




Bio::WebAgent is a not yet committed and tested wrapper of mine around
LWP::UserAgent which is a Bio::Root::Root subclass.  Subclasses could
equally well use WWW::Mechanize module which makes dealing with forms a
breeze.

	-Heikki


> How do you see this handling different input requirements? Presumably
>  Bio::Tools::Run::WrapperBase would just pass whatever it is fed
>  without thinking about it. Most programs require stdin to be in their
>  own format, and few seem to be consistent (consider clustalw input
>  versus phylip packages input versus primer3 input). I don't think that
>  WrapperBase should handle these, rather the individual run modules
>  should check the sanity of the input.
> 
> Rob
> 
> 
> 
> On Fri, Mar 21, 2003 at 03:21:26PM +0800, Elia Stupka wrote:
> > Hi Robert,
> > 
> > Good to see Primer3 coming along, some comments:
> > 
> > you might want to have a look at bioperl-run. We have decided to split 
> > the actual "running" of programs from their parsing, so in theory you 
> > should have a Bio::Tools::Run::Primer3 that inherits from 
> > Bio::Tools::Run::WrapperBase and has some standard methods such as run 
> > (I notice you call the method exc, but the doc title is run...). Also 
> > all the arguments can then be simply put in a begin block as arrays of 
> > keyowrds which get "authorized" to be used by the OK_FIELD hash (see 
> > any of the run modules in bioperl-run for more specs).
> > 
> > Then the parser would go into Bio::Tools::Primer3 only for the parsing 
> > methods, which would be at least the basic next_result method shared by 
> > other Tool parsing modules (though admittedly we haven't yet come up 
> > with a proper interface module or base class)
> > 
> > Elia
> > 
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at bioperl.org
> http://bioperl.org/mailman/listinfo/bioperl-l
-- 
______ _/      _/_____________________________________________________
      _/      _/                      http://www.ebi.ac.uk/mutations/
     _/  _/  _/  Heikki Lehvaslaiho          heikki at ebi.ac.uk
    _/_/_/_/_/  EMBL Outstation, European Bioinformatics Institute
   _/  _/  _/  Wellcome Trust Genome Campus, Hinxton
  _/  _/  _/  Cambs. CB10 1SD, United Kingdom
     _/      Phone: +44 (0)1223 494 644   FAX: +44 (0)1223 494 468
___ _/_/_/_/_/________________________________________________________



More information about the Bioperl-l mailing list