[Bioperl-l] GO annotatinos in BioPerl. A tentative proposal...

Chris Mungall cjm@fruitfly.bdgp.berkeley.edu
Thu, 5 Apr 2001 09:50:28 -0700 (PDT)

Hi Mark

Sounds like a great idea. A few minor points about your objects; it seems
you have no way of attributing anything to the association between the
feature and the GO term - evidence, experimental technique, analysis
details if it was an automatic annotation.

In GadFly we use something like this:

SeqFeature --->[n] Association --->[1] OntologyTerm

where you can hang all kinds of useful things off of association: scores,
dates, negation, etc

I'd also be wary of hardcoding a project name such as GO in bioperl
methods; groovy as GO is, a GO term is really just a specialised kind of
controlled vocabulary term; I would make any scheme extendable to people
who want to annotate features with their own hown grown CVs. The above
scheme could even be extended to allow AI nuts to make complex statements
about features.

not sure how the above would fit into the bioperl world view

In GO we go the other way:

OntologyTerm -->[n] Association -->[1] GeneProduct
bidirectional links are nasty in perl so we rely on ids to go in the other

On Thu, 5 Apr 2001, Mark Wilkinson wrote:

> Hi All,
> You have probably noticed that my fingers have been merrily playing with
> various GO annotation modules as I wrap my mind around how best to deal
> with this wonderful tool!  One of the walls that I am hitting is that
> the things we would want to annotate - Features & Genes - are not really
> "set up" to be annotated using GO.  I have racked my brain trying to
> find a way to use tag/value to sensibly represent GO annotations, but
> there was no obvious solution there (neither at the database level, nor
> the Feature/Gene object level).  The Bio::Annotation object looked
> promising for a moment, but it appears that Bio::Annotation objects are
> not directly associatable with the Gene or Feature objects they are
> describing.  i.e. there is a place in the Annotation object to include
> one or several gene names, but the annotation is not a property of the
> gene/feature object it is describing.  It seems to me that it should be.
> This morning I committed a new version of GO_Browser, and a new object
> type called GO_Annotation.  GO_Browser creates partially filled
> GO_Annotation objects containing only the GO Accession number, term, and
> definition.  This annotation can then be beefed up with evidence and
> references as you see fit for the gene you are annotating.
> 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?
> All opinions welcome!
> Cheers all!
> Mark
> --
> ---
> Dr. Mark Wilkinson
> Bioinformatics Group
> National Research Council of Canada
> Plant Biotechnology Institute
> 110 Gymnasium Place
> Saskatoon, SK
> Canada
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l@bioperl.org
> http://bioperl.org/mailman/listinfo/bioperl-l