Cellular component disjoint classes
The GO CC hierarchy contains many classes that should probably be declared disjoint. For example, nothing is both an intracellular region and an extracellular space. Similarly nothing is both a cell and a cytoplasm (of course cell and cytoplasm spatially overlap. disjoint_from is about set-disjointness, not spatial disjointness). Addng disjoint_from links prevents TPVs (for evidence see below_
But we don't want to add disjoint_from links willy-nilly. We should be methodical to reduce the amount of work that needs don
Working area
We use the scratch/ directory in cvs
Results
Top level disjoint pairs
I found it helped by creating 4 new top level classes:
/ GO:0005575 cellular_component is_a GO:0005576 extracellular region is_a GO:0031975 envelope is_a GO_CJM:0000001 fiat part is_a GO:0044420 extracellular matrix part is_a GO:0044421 extracellular region part is_a GO:0044422 organelle part is_a GO:0044423 virion part is_a GO:0044456 synapse part is_a GO:0044464 cell part is_a GO_CJM:0000002 external is_a GO_CJM:0000003 space is_a GO:0031974 membrane-enclosed lumen is_a GO:0045202 synapse is_a GO_CJM:0000004 whole is_a GO:0005623 cell is_a GO:0019012 virion is_a GO:0031012 extracellular matrix is_a GO:0032991 macromolecular complex is_a GO:0043226 organelle is_a GO:0055044 symplast
These may or may not be meaningful or consistent with the GO - it's a starting point.
See cellular_component_disj.obo.
I declared space disjoint from whole. Really this was just a convenient alternative to making 2 x 6 pairwise DF statements for each is_a child.
I then used the "make is_a children mutually disjoint" menu option in OE2beta on "whole" and "space"
At this point I saw no violations in GO. The declarations so far are fairly conservative.
X part and X
Using the XP:cellular_component_xp_self CC xps I created a disjoint_from statements for all pairs "X" and "X part"
This proved too extreme. I manually removed the disjoint_from statement between organelle and organelle part (whilst nothing can be both an organelle and a proper part of the same organelle, something can be both a whole organelle and part of a larger different kind of organelle).
See cc_part_whole_disjoint.obo.