Has part

From GO Wiki
Revision as of 14:59, 22 April 2008 by Cjm (talk | contribs) (New page: All relations in GO follow an ALL-SOME pattern; e.g. * X part_of Y : all instances of X are part_of some instance of Y We call the term on the left (X) the subject and the term on the r...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

All relations in GO follow an ALL-SOME pattern; e.g.

  • X part_of Y : all instances of X are part_of some instance of Y

We call the term on the left (X) the subject and the term on the right (Y) the target. The link is always a statement about instances of subject in general rather than instances of the target.

All relations are transitive over is_a

 X part_of Y, Y is_a Z => X part_of Z

and

 X is_a Y, Y part_of Z => X part_of Z

This also holds for has_part:

 X has_part Y, Y is_a Z => X has_part Z
 X is_a Y, Y has_part Z => X has_part Z

Annotations

What does this mean for annotations. Previously we have been used to propagating gene products up the graph. With the addition of has_part this is no longer so simple.

First we have to have some notion of what an annotation means.

For BP annotations (GP,BP), what we are saying (closely enough) is that GP actively participates_in BP. The participates_in is transitive over the part_of relation (as well as over is_a of course). This is the reason why we can propagate gene products up the graph; e.g.

 GP participates_in X
 X part_of Y
 Y is_a Z
 =>
 GP participates_in Z

For CC annotations the relations is (roughly) localizes_to. This is also transitive over part_of. This is why we can propagate CC annotations up the DAG.

However, these relations are not transitive over has_part. For example, if a protein participates in a process, it is not necessarily participating in the subparts of that process.