[Bioperl-l] GO annotatinos in BioPerl. A tentative proposal...
Chris Mungall
cjm@fruitfly.bdgp.berkeley.edu
Thu, 5 Apr 2001 10:01:04 -0700 (PDT)
On Thu, 5 Apr 2001, Hilmar Lapp wrote:
> Mark Wilkinson wrote:
> >
> > What I propose to do is to create a new method of Feature objects,
> > $Feature->GO, which would set/return the GO annotation object associated
> > with that feature. I would also modify the ->to_gff_string call such
> > that it checked for the presence of a GO annotation and dumped that
> > information into the GFF attributes field along with the other tag/value
> > information.
> >
> > Is there anyone out there who would discourage this, or who might have a
> > better idea of how to approach this problem? It seems to me that GO is
> > eventually going to be the standard to which we are all annotating, so I
> > think it is a good time to start making BioPerl features more
> > GO-friendly... or?
> >
>
> It may or may not become a standard. $feature->go() would mean
> putting it into the SeqFeatureI interface, which IMHO is too
> vendor-heavy (if you look at GO at a provider of some service,
> similar to databanks). I'd rather like to see this a little bit
> abstracted, if it is possible without too much pain. We can
yup, agree here
> redesign the whole Annotation scheme. What I can see as for what
> could make sense is
>
> - Bio::AnnotationI as a minimum interface any sort of annotation
> has to implement; this interface should provide for methods at
> least sufficient to dump out the thing to GFF.
> - Bio::Annotation::* to contain various implementations of that
> interface tailored to specific types of annotation, with
> - Bio::Annotation::GO being the one that represents a GO
> annotation
> - Bio::SeqFeatureI gets a method annotation() returning a
> Bio::AnnotationI implementing object.
>
> Right now, there is no AnnotationI interface, and classes in
> Bio::Annotation are additions to an annotation object, not
> specializations.
sounds good, although I am keen to see a seperation of the Annotation and
the link between the feature and the Annotation, although minimal
implementations of AnnotationI may choose to ignore that
foreach $ann ($feature->annotations) {
# minimal implementation
print $ann->description;
# more useful:
printf "%s said that %s is a %s because\n",
$ann->association->person,
$feature->name,
$ann->controlled_vocab_term->description,
$ann->association->evidence_as_text;
# association could be a 'null' object
# with 'unknown' in all the attributes
# for minimal implementations
}
> Hilmar
> --
> -----------------------------------------------------------------
> Hilmar Lapp email: hilmarl@yahoo.com
> GNF, San Diego, Ca. 92122 phone: +1 858 812 1757
> -----------------------------------------------------------------
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l@bioperl.org
> http://bioperl.org/mailman/listinfo/bioperl-l
>