[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
> Bio::SeqFeature::Annotated,
> which precipitated their deprecation and mapping to
> Bio::AnnotationCollectionI.
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.
Thanks,
-Aaron
--
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
mailing list