Cellular component disjoint classes
NOTE: the disjointness axioms are being moved to the Ontology extensions directory
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 done
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. Note that I am not necessarily recommending this for GO, for hypothesis-testing purposes it makes sense to start with the more extreme case:
/ GO:0005575 cellular_component is_a GO:0005576 extracellular region is_a GO:0031975 envelope is_a GO_CJM:0000001 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.
"part" is somewhat troublesome. I'm not sure how useful the X-part terms are (they were introduced for is_a complete, perhaps something like "portion" and "whole" as an upper level term would have helped). On reflection these should be treated as grouping classes.
The resulting obo file is cellular_component_disj.obo, it can be loaded in conjunction with the GO.
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.
We could go ahead and put these in the GO. We don't need to keep the GO_CJM terms. We can move the space-whole DF down to 2x6 statements on the children.
One consideration here is that people typically have disjoint_from links turned on in graphviz displays in OE. This works fine for the 3 disjoint classes we currently have, but could result in nasty hairballs if we extend this further. Also problems with root detection. Solution: maintain disjoint_from separately
X part and X
Using the 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.
I think many of the remaining DF statements are still valid. I checked 2 and made tracker items (see next section).
I didn't check the rest; here they are, verbatim:
- GO:0000144-cellular bud neck septin ring GO:0005856-cytoskeleton GO:0044430-cytoskeletal part
- GO:0001740-Barr body GO:0005694-chromosome GO:0044427-chromosomal part
- GO:0005637-nuclear inner membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0005637-nuclear inner membrane GO:0031965-nuclear membrane GO:0044453-nuclear membrane part
- GO:0005640-nuclear outer membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0005640-nuclear outer membrane GO:0031965-nuclear membrane GO:0044453-nuclear membrane part
- GO:0005741-mitochondrial outer membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0005778-peroxisomal membrane GO:0042579-microbody GO:0044438-microbody part
- GO:0005789-endoplasmic reticulum membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0009276-Gram-negative-bacterium-type cell wall GO:0030312-external encapsulating structure GO:0044462-external encapsulating structure part
- GO:0009707-chloroplast outer membrane GO:0044425-membrane part GO:0016020-membrane
- GO:0012507-ER to Golgi transport vesicle membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0012507-ER to Golgi transport vesicle membrane GO:0044425-membrane part GO:0016020-membrane
- GO:0012508-Golgi to ER transport vesicle membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0012508-Golgi to ER transport vesicle membrane GO:0044425-membrane part GO:0016020-membrane
- GO:0012509-inter-Golgi transport vesicle membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0012509-inter-Golgi transport vesicle membrane GO:0044425-membrane part GO:0016020-membrane
- GO:0012510-trans-Golgi network transport vesicle membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0012510-trans-Golgi network transport vesicle membrane GO:0044425-membrane part GO:0016020-membrane
- GO:0020006-parasitophorous vacuolar membrane network GO:0016020-membrane GO:0044425-membrane part
- GO:0020017-flagellar membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0030485-smooth muscle contractile fiber GO:0043292-contractile fiber GO:0044449-contractile fiber part
- GO:0030671-clathrin-coated phagocytic vesicle membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0030671-clathrin-coated phagocytic vesicle membrane GO:0044425-membrane part GO:0016020-membrane
- GO:0030673-axolemma GO:0016020-membrane GO:0044425-membrane part
- GO:0030864-cortical actin cytoskeleton GO:0005856-cytoskeleton GO:0044430-cytoskeletal part
- GO:0031676-plasma membrane-derived thylakoid membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0031900-chromoplast outer membrane GO:0044425-membrane part GO:0016020-membrane
- GO:0032159-septin cap GO:0005856-cytoskeleton GO:0044430-cytoskeletal part
- GO:0032160-septin filament array GO:0005856-cytoskeleton GO:0044430-cytoskeletal part
- GO:0032169-prospore septin ring GO:0005856-cytoskeleton GO:0044430-cytoskeletal part
- GO:0032174-cellular bud neck septin collar GO:0044430-cytoskeletal part GO:0005856-cytoskeleton
- GO:0032177-cellular bud neck split septin rings GO:0044430-cytoskeletal part GO:0005856-cytoskeleton
- GO:0046861-glyoxysomal membrane GO:0042579-microbody GO:0044438-microbody part
- GO:0055038-recycling endosome membrane GO:0044440-endosomal part GO:0005768-endosome
- GO:0060201-clathrin sculpted acetylcholine transport vesicle membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0060201-clathrin sculpted acetylcholine transport vesicle membrane GO:0044425-membrane part GO:0016020-membrane
- GO:0060203-clathrin sculpted glutamate transport vesicle membrane GO:0016020-membrane GO:0044425-membrane part
- GO:0060203-clathrin sculpted glutamate transport vesicle membrane GO:0044425-membrane part GO:0016020-membrane
See sf: various organelles and complexes for a discussion of parasitophorous vacuole
Spatial disjointness: Disconnected from
As noted before, X disjoint_from Y means that is no class that is_a X and is_a Y. It does not mean that X and are Y are spatially disconnected. Nothing is both a cell and a cytoplasm - but obviously these spatially overlap.
If we want to asserted spatially nob-overlapping we state disjoint_from between parts.
E.g.
[Term] id: GO:0044428 ! nuclear part disjoint_from: GO:0044444 ! cytoplasmic part
Many "X part" terms are pre-coordinated in GO. Terms can be automatically classified under these terms (many manual assertions are lagging bahind the reasoner, see XP:cellular_component_xp_self#X_part
For spatial disjointness between classes that don't have an "X part" class pre-coordinated we can introduce a shortcut relation non_overlapping_with
Here are some obvious ones, and the reasoner inconsistency reports that follow:
I then added additional constraints such as
Extracellular and cell
- extracellular part disjoint_from cell part
This gave the following violations:
GO:0005607-laminin-2 complex GO:0009549-cellulose microfibril GO:0016010-dystrophin-associated glycoprotein complex GO:0016011-dystroglycan complex GO:0016456-X chromosome located dosage compensation complex, transcription activating GO:0020003-parasitophorous vacuole GO:0020004-parasitophorous vacuolar space GO:0020005-parasitophorous vacuolar membrane GO:0020006-parasitophorous vacuolar membrane network GO:0020006-parasitophorous vacuolar membrane network GO:0020008-rhoptry
See sf item
Cytosol and nucleus
- cytosolic part disjoint_from nuclear part
No violations found
Cytosol and organelle
- cytosolic part disjoint_from organelle part
one violation - cytosolic ribosome - see https://sourceforge.net/tracker/?func=detail&aid=2872739&group_id=36855&atid=440764
Tracker items resulting from this work
See also the discussion of parasitophorous vacuole in this SF tracker item - in particular what this means for disjointness of Host_X terms
Future
Region Connection Calculus
See
http://en.wikipedia.org/wiki/Region_Connection_Calculus
- reasoning about protein localization. If a protein is localized to X, what does it have to pass through on its way?
SAO
The subcellular anatomy ontology (SAO) has lots of overlap with GO. It is developed with OWL as the primary representation language. It makes heavy use of disjointness axioms to keep the ontology consistent.
Many of these would not apply to GO-CC as it is now, since SAO is much more specific in the realm of subcellular anatomy. For example, SAO has:
[Term] id: sao:sao-188049490 name: Node Of Ranvier Axon is_a: sao:sao1791490892 ! Regional Part Of Myelinated Axon relationship: sao:sao152994059 __file:///Users/cjm/cvs/go/scratch/disjointness_constraints/SAO.owl#__Description81 disjoint_from: sao:sao1191319089 ! Juxta Paranode Axon disjoint_from: sao:sao830092290 ! Internode Axon disjoint_from: sao:sao936144858 ! Paranode Axon
Whereas GO has only one subtype of axon, "giant axon" (hmm, single is_a child, not so good!)
However, there may be areas where we can share axioms