[Bioperl-l] SeqAnal.pm, Prediction parsers

Hilmar Lapp hlapp@gmx.net
Wed, 06 Sep 2000 13:42:49 +0200

I'm finding myself duplicating some basic functionality across the
prediction parsers GenScan, MZEF, and (under development) ESTScan.
Creating a base class like PredictionParser (which also maps
next_feature() to next_prediction() and could readily provide the
SeqAnalysisParserI [watch out for Jason's coming announcement]
implementation) seems to be intuitive.

Now there is already SeqAnal.pm, which doesn't seem to used anywhere else
than Blast.pm and its dependencies. Looking at the code, I find that
1) it is partially complete overkill for my purpose (i.e., half of the
functionality is not only not needed but not applicable), 
2) some methods are not optimally designed, like length() (first, it
forces you to put CORE::length() in every inheriting module, i.e., is a
potential bugger, second, in those cases where it makes sense there are
two sequences and not one for which you want the length, namely query and
subject seq),
3) some functionality like program(), version(), date() is certainly
useful in a basic PredictionParser, too,
4) parse() clashes with parse() in SeqAnalysisParserI

So, I'm not sure how to go best. Should I create a separate base module,
or merge it right away with SeqAnal.pm? The latter won't be without some
consequences for the Blast parser, because it relies on it (I guess), and
to be honest I don't really want to mess with this monster, I'm sure I'd
break something.

Any comments, suggestions? Steve? Ewan?


Hilmar Lapp                                email: hlapp@gmx.net
NFI Vienna, IFD/Bioinformatics             phone: +43 1 86634 631
A-1235 Vienna                                fax: +43 1 86634 727