[Bioperl-l] AnnotationCollectionI and SeqFeatureI changes
Aaron J. Mackey
amackey at pcbi.upenn.edu
Tue Nov 23 15:30:47 EST 2004
> I didn't want to write the *_tag_* methods into
> which precipitated their deprecation and mapping to
I read and re-read this sentence a few times, and it took awhile to
understand what it means. Now that I've looked at the code, it seems
that Bio::SeqFeature::Annotated implements the Bio::SeqFeatureI
interface; Bio::SeqFeatureI calls for get_tag_values() to be
implemented; so instead of implementing get_tag_values for
Bio::SeqFeature::Annotated objects, you made Bio::SeqFeatureI inherit
from Bio::AnnotationCollectionI, and then reimplemented
get_tag_values() in AnnotationCollectionI to simply call
get_Annotations() (deprecating it in the process)?
While it "works", I don't see why it had to be done this way; I'd
prefer a solution that didn't involve changing the definition of
Bio::SeqFeatureI (at least not yet). Further, your "deprecations" seem
to indicate that you simply want Bio::SeqFeatureI to go away entirely,
and have us treat everything as an annotation collection (which may or
may not have a location on a sequence). Is this the agreed-upon way of
the future? What are you gaining, besides forcing my fingers to learn
get_Annotations($tag) instead of get_tag_values($tag)?
I'm all for sweeping change for consistency and logic, and 1.5 is meant
to be a developer's release on the road to 1.6, so this *might* be the
right time for it, as long as there is general agreement, and it
doesn't (significantly) break existing tools without great reason.
Aaron J. Mackey, Ph.D.
Dept. of Biology, Goddard 212
University of Pennsylvania email: amackey at pcbi.upenn.edu
415 S. University Avenue office: 215-898-1205
Philadelphia, PA 19104-6017 fax: 215-746-6697
More information about the Bioperl-l