[Bioperl-l] AnnotationCollectionI and SeqFeatureI changes
Allen Day
allenday at ucla.edu
Tue Nov 23 22:48:40 EST 2004
On Tue, 23 Nov 2004, Chris Mungall wrote:
>
> So let's see:
>
> AnnotatableI->annotation returns AnnotationCollectionI
> (*not* an AnnotationI)
>
> AnnotationCollectionI->get_Annotations returns list-of AnnotationI
>
> why can't accessor methods be named after the class of objects they
> return, rather than a different class? It makes things a lot easier for
> the easily confused like myself.
I agree, but this is how it was when I found it.
> More seriously: is the plan to move everyone across from
> SeqFeatureI->get_tag_values to SeqFeatureI->annotation?
Yes.
> Have you considered the impact on the memory footprint and speed?
> Especially for large genbank files.
Yes. For heavy lifting I think we'll need to have alternate
AnnotationI/AnnotationCollectionI lightweight implementations that are
stripped down and optimized for memory and speed. I imagine they'll be
array-based and the AnnotationCollectionI will use a flyweight pattern.
whatever is generating the SeqFeatureIs will need to be responsible for
which type of AnnotationCollection is used.
-Allen
> Cheers
> Chris
>
>
> On Tue, 23 Nov 2004, Allen Day wrote:
>
> > Fixed. Here is a summary of what I did to make this happen. I went ahead
> > and did the work necessary to make Bio::SeqFeatureI AnnotatableI instead
> > of being itself an AnnotationCollectionI.
> >
> > . Bio::SeqFeatureI inherits Bio::AnnotatableI NOT
> > Bio::AnnotationCollectionI
> > . *_tag_* methods are in Bio::AnnotatableI, and internally defer to
> > Bio::AnnotatableI->annotation->some_analagous_mapped_function()
> > . method behavior is now more similar to original *_tag_* method
> > behavior ; tag "values" are now instantiated as
> > Bio::Annotation::SimpleValue objects by default, unless their name
> > indicates they should be otherwise (e.g. tag name "comment" or
> > "dblink")
> > . deprecation warnings commented until 1.6
> > . Bio::AnnotatableI now keeps a tag->annotation_type registry to allow
> > new tags to be created (see Bio::SeqFeature::AnnotationAdaptor).
> > . Bio::SeqFeature::AnnotationAdaptor is now not very useful, as *_tag_*
> > methods map directly onto Bio::AnnotationI's
> > Bio::AnnotationCollectionI instance.
> > . Unflattener and Unflattener2 tests pass with no changes.
> > . All tests pass.
> >
> > -Allen
> >
> >
> > On Tue, 23 Nov 2004, Chris Mungall wrote:
> >
> > >
> > > Unflattener.t is failing because someone has messed up get_tagset_values()
> > > - this is a convenience method I originally added to SeqFeatureI. I'm not
> > > familiar enough with the new changes and AnnotationCollections to fix
> > > this.
> > >
> > > Surely the onus has always been on the person making changes to make sure
> > > the test suite passes before committing their changes? In which case, how
> > > did these changes make it in in the first place?
> > >
> > > On Tue, 23 Nov 2004, Jason Stajich wrote:
> > >
> > > >
> > > > On Nov 23, 2004, at 4:47 PM, Allen Day wrote:
> > > >
> > > > > On Tue, 23 Nov 2004, Jason Stajich wrote:
> > > > >
> > > > >> I think if we just don't issue deprecation warnings it will be fine by
> > > > >> me -- even if we are just calling the new subroutine under the hood.
> > > > >> Tests seem to pass although Unflattner.t is falling over today not
> > > > >> sure
> > > > >> what is problem.
> > > > >
> > > > > that fails for me too, in addition to spewing out lots of
> > > > > diagnotistics.
> > > > > however, if you run 'make test_Unflattener2', it passes. strange.
> > > > >
> > > > no it is Unflattner not Unflattner2
> > > >
> > > > % make test_Unflattener
> > > > [SNIP OUT SOME STUFF]
> > > >
> > > > -------------------- WARNING ---------------------
> > > > MSG: get_tagset_values() is deprecated. use get_Annotations()
> > > > ---------------------------------------------------
> > > >
> > > > ------------- EXCEPTION: Bio::Root::Exception -------------
> > > > MSG: Abstract method "Bio::AnnotationCollectionI::get_Annotations" is
> > > > not implemented by package Bio::SeqFeature::Generic.
> > > >
> > > >
> > > > > -allen
> > > > >
> > > > >>
> > > > >> -jason
> > > > >> On Nov 23, 2004, at 2:28 PM, Aaron J. Mackey wrote:
> > > > >>
> > > > >>>
> > > > >>>> On Friday, November 19, 2004, at 02:50 PM, Allen Day wrote:
> > > > >>>>
> > > > >>>>> * Bio::SeqFeatureI now ISA Bio::AnnotationCollectionI
> > > > >>>>> * All Bio::SeqFeatureI *_tag_* methods have been moved to
> > > > >>>>> Bio::AnnotationCollectionI, marked as deprecated, and mapped to
> > > > >>>>> their
> > > > >>>>> analogous and mostly pre-existing Bio::AnnotationCollectionI
> > > > >>>>> methods.
> > > > >>>>>
> > > > >>>>> Methods which were not in Bio::AnnotationCollectionI, but were i
> > > > >>>>> Bio::Annotation::Collection and were necessary for *_tag_* method
> > > > >>>>> remapping were created in Bio::AnnotationCollecitonI.
> > > > >>>
> > > > >>> I've been paying some attention to this, but thought that the changes
> > > > >>> were only those required to get Bio::FeatureIO working (i.e.
> > > > >>> recapitulate GFF3 logic) without hampering object usage; do our tests
> > > > >>> pass with these changes in place?
> > > > >>>
> > > > >>> On Nov 23, 2004, at 2:12 PM, Jason Stajich wrote:
> > > > >>>
> > > > >>>> it has not been tagged yet. I think Aaron is just really busy on
> > > > >>>> this front.
> > > > >>>
> > > > >>> I did tag the HEAD at RC1, so we could branch from there if we needed
> > > > >>> to; if this is really the big bug-bear that Hilmar and Jason are
> > > > >>> claiming, then I'd ask Allen to retract his patches that alter
> > > > >>> interface definitions, and branch.
> > > > >>>
> > > > >>> And I was so hoping to get RC2 packaged up later today ...
> > > > >>>
> > > > >>> -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
> > > > >>>
> > > > >>>
> > > > >> --
> > > > >> Jason Stajich
> > > > >> jason.stajich at duke.edu
> > > > >> http://www.duke.edu/~jes12/
> > > > >>
> > > > >> _______________________________________________
> > > > >> Bioperl-l mailing list
> > > > >> Bioperl-l at portal.open-bio.org
> > > > >> http://portal.open-bio.org/mailman/listinfo/bioperl-l
> > > > >>
> > > > > _______________________________________________
> > > > > Bioperl-l mailing list
> > > > > Bioperl-l at portal.open-bio.org
> > > > > http://portal.open-bio.org/mailman/listinfo/bioperl-l
> > > > >
> > > > >
> > > > --
> > > > Jason Stajich
> > > > jason.stajich at duke.edu
> > > > http://www.duke.edu/~jes12/
> > > >
> > > > _______________________________________________
> > > > Bioperl-l mailing list
> > > > Bioperl-l at portal.open-bio.org
> > > > http://portal.open-bio.org/mailman/listinfo/bioperl-l
> > > >
> > >
> >
>
More information about the Bioperl-l
mailing list