[Biojava-l] Gene Ontology
Phillip Lord
p.lord@russet.org.uk
02 Dec 2002 19:45:44 +0000
>>>>> "Matthew" == Matthew Pocock <matthew_pocock@yahoo.co.uk> writes:
Matthew> Go terms have an ID and (possibly) a description. By the
Matthew> isa relationship, they have a (single?) parent and
Matthew> (possibly no) children. I'm assuming Go has a part-of
Matthew> relationship (or it's inverse, has-a). What else does a GO
Matthew> term have?
GO allows multiple parents along both is-a, and part-of. In the case
of GO, there are only two relationship types, but some of the GOBO
ontologies define others. It wouldn't really make sense to have an API
supporting GO, but not other DAG ontologies.
It's also worth mentioning that the GO database has transitive closure
information pre-calculated, so you need methods for accessing paths,
if you want to advantage of this. I know from experience that graphing
around GO using the "get_parent" methods is very slow, over the SQL
database. (I won't bore you with the details, but I couldn't use the
path methods). If memory serves the GO perl API has first class Path
objects to allow this sort of access.
Matthew> Then, there are go ontologies, or roots. These have a root
Matthew> GO term.
Matthew> We would need some way to map between a set of database IDs
Matthew> and GO terms - GO -> all IDs with that term, or perhaps
Matthew> (GO,seqDB) -> all features with that term.
Probably methods for saying "all ID's with that term, and any of its
children", which is generally what people are interested in.
Cheers
Phil