[Bioperl-l] request for new feature types: Attn. esp. Hilmar and Ewan

Mark Wilkinson mwilkinson@gene.pbi.nrc.ca
Wed, 13 Jun 2001 15:11:13 -0600


Hi group!

I have hit a wall, and I can't find a ladder... so I want to make one
:-)

The problem is one that I know both Hilmar and I are struggling with at
the moment, particularly in light of Hilmar's GeneStructure family of
modules.  The problem is that we have only one type of Seq::Feature, and
that is "generic"... which isn't very informative given that we often
know *exactly* what kind of feature it really should be (exon, promotor,
polyA, etc. etc.).

In Hilmar's GeneStructure modules he allows the creation of arbitrarily
complex gene structures by importing "generic" Seq::Features using
specific methods such as Transcript->addExon, ->addPromotor,
->addPolyA,  and so on.  There are two frustrating limitations to this:

(1) as Hilmar noticed, a bag of generic features is not much more
informative than a bag of generic features, so he put a restriction on
the generic features that are destined to be Exons that they must carry
a primary_tag of 'exon', I assume for sorting purposes (?)

(2) the ->addExon, ->addPromotor, etc. routines are only useful if there
is an "intelligence" constructing the gene.  If I want to take a bunch
of generic features (for example, with a mouse selection a la
SeqCanvas.pm) and ask them to assemble *themselves* into a
GeneStructure::Transcript object, it can not be done in code because the
code has no way of knowing which features were intended to be promotors
and which were exons, etc etc.

Now, I have a strong aversion to making rules about the values of tags
in a generic feature (i.e. I don't want to be *forced* to assign
->primary_tag("promotor") to a promotor feature) so, in the spirit of
inheritance, I propose that we create a set of standard Feature::Type's
which derive from SeqFeature::Generic but are slightly more self-aware.
I would suggest the following types at least for a start:

Promotor
UTR5
Exon
UTR3
Intron
polyA

In essence, they need only inherit all methods from
Seq::Feature::Generic, but answer the ISA question with their actual
feature type.  Of course, they could be extended to do more than that...

How do people feel about this?  As I said, I have hit a wall at this
point and am unable to progress (in any rational way) until I have some
way of sorting this out, but I also don't want to fill the repository
with a bunch of code that is only useful to me (and, I suspect, to
Hilmar), so...

Please let me know what you think.

Cheers all!

M


--
________________________________
If you only have a hammer, you tend to see every problem as a nail.
                -- Maslow
________________________________

Dr. Mark Wilkinson
Bioinformatics Group
National Research Council of Canada
Plant Biotechnology Institute
110 Gymnasium Place
Saskatoon, SK
Canada