[Biophp-dev] The humunguous IO class etc

S Clark biophp-dev@bioinformatics.org
Mon, 28 Apr 2003 11:06:46 -0600


On Monday 28 April 2003 12:37 am, Serge Gregorio wrote:
> Nico,
>
> Wonderful to hear you're making good progress!  I've been
> doing a lot of thinking about the design and organization
> of Gene/BioPHP and here's what I've come up with:
>
>    http://genephp.sourceforge.net/genephp_design.html
[...]
> I've also attached a code snippet from GenePHP 2.0's IO
> class, in which the "parser class" you were mentioning
> earlier are its methods.  The general idea here is that
> people only use ONE AND ONLY ONE class to read/write
> data from WHATEVER SOURCE (console, variable, file, SQL
> DB, etc.) to WHATEVER DESTINATION.
>
> Also, with this, I'd like to push your idea of auto-
> detection of file format one step further.  Not only
> will the IO class (thru its autodetect_IO() function)
> detect the format used (e.g. GenBank, Swissprot), but
> it will also detect WHAT KIND OF DATA (e.g. genephp
> class) it contains or represents.
[...]
> What you guys think?  =)

That seems like a very monolithic approach (which of course has
both benefits and drawbacks).  

To me this does suggest a natural place to delineate between GenePHP
and BioPHP - with GenePHP you appear to be moving towards almost a pre-written
application for handling gene and protein sequences, while I've been focussed
more on individual components that can be assembled in different ways almost
completely independent of each other (I have also been planning to go beyond
sequences at some point to include, e.g. phylogenetic trees [indepedent of 
sequences, i.e. pre-calculated "newick" format trees], potentially HPLC 
Chromatograms and Mass Spectra, and so on).

This suggests to me then that BioPHP serve as a "component repository", while
GenePHP remains the "implementation repository" where assembled collections
of components and components that are incorporated directly into the GenePHP
framework would go there.  Someone who wants to build a "custom"
application or focussed "mini program" (i.e. for a public web page) would
do so with BioPHP components.  Someone looking for a "drop-in" framework
for a sequence-handling application would instead just use GenePHP.

Does that make any sense?...