-
Notifications
You must be signed in to change notification settings - Fork 6
Ontology design patterns
##Table of contents
- Background
- Minimal design pattern for ontology terms
- When to make EquivalentClass assertions
- Assertion of function
- Representing neuronal lineage
- Embryonic/larval musculature
- ODP for the nervous system
Much of the classification of the Drosophila anatomy ontology is automated. This automation relies in part on consistent use of design patterns for relationships (axioms) used to formally define classes.
This document assumes basic familiarity with OWL formalisms from the EL profile. In particular
SubClassOf, EquivalentTo, SubPropertyOf, DisjointWith, domain, range + PropertyChains
If you are not familiar with these, good places to start learning include the OWL2 Primer and these tutorial slides.
This doc is intended as a repository for patterns of definitions used in auto-classifications. For a straighforward outline of the meaning and use of relations themselves, please see the DAO relations doc.
All terms should have an assertion of classification.
With a few exceptions for very abstract classes, all terms should also have either a direct or indirect assertion of parthood of the form:
part_of some X
We prefer direct assertions - see editors manual for why, but recognise that it may sometimes be more efficient to assert this indirectly.
Care must be take not to use Equivalent Class assertions too liberally. You should be satisfied that all automatic classifications that result would make sense (or at least be justifiable) to a biologist and would cover most cases of usage with as few edge cases as possible (but note that, except in trivially justifiable cases, some edge cases are almost inevitable!).
There are many cases where justifying the use of Equivalent Class assertions is trivial. They should be used in all such cases - even for leaf nodes, as they can be used to roll automated definitions and may also be useful for classifying individuals.
Trivially justifiable equivalent class definitions are typically cases where there is a single, clearly definable characteristic that distinguishes a class from its parent class. This is commonly the case for partonomy, for example
- 'antennal sense organ' EquivalentTo 'sense organ' that part_of some 'antenna'.
The most commonly used Equivalent Class partonomy pattern in FBbt is classification by segment.
To make an assertion about the function of members of a class of anatomical structure, please use
- capable_of some X
OR
- capable_of_part_of some X
In many cases we have general classes in place with Equivalent Class definitions that allow auto-classification of classes with these assertions, leveraging the classification hierarchy of GO.
A property chain relates these two object properties:
- capable_of o part_of -> capable_of_part_of
This allows us to leverage the GO partonomy hierarchy to automate classification - see below of examples.
The gene ontology has a well developed classification of sensory processes under 'detection of stimulus involved in sensory perception' and 'detection of chemical stimulus involved in sensory perception of smell'](http://purl.obolibrary.org/obo/GO_0050911), including classification by the nature of the stimulus. We use this to automate classification of neurons and sense organs by sensory modality and to auto-populate the partonomy of sensory systems.
To assert the sensory modality of a neuron or sense organ , please use
- capable_of some <'detection of stimulus involved in sensory perception' or one of its Subclasses>
By using this pattern, the resulting classes get classified according to sensory modality. e.g. The presence of the axiom
- SubClassOf: capable_of some 'detection of chemical stimulus involved in sensory perception of smell'
results in classification under the 'olfactory receptor neuron', which has the superclass, 'chemosensory neuron', which in turn has the superclass 'sensory neuron'
To assert the role of a neuron in sensory perception downstream of the initial detection of stimulus, please use
- capable_of_part_of some <'sensory perception' or one of its Subclasses>
We define superclasses that
- 'auditory sensory neuron' EquivalentTo neuron that capable_of_part_of some 'sensory perception of sound'
This drives auto-classification such as that shown in the following figure:
This was formerly done using relations between structures and the secreted factor specified using ChEBI (details here). This has now been superseded by relationships to GO terms, which themselves have the relevant relations to ChEBI terms.
Hormone secretion
endocrine hormone secretion
capable_of some <SubClassOf 'endocrine hormone secretion' >
To auto-populate partonomy of the endocrine system we define:
-
Class: 'endocrine system component'
- EquivalentTo capable_of some 'endocrine hormone secretion'](http://purl.obolibrary.org/obo/GO_
- SubClassOf part_of some 'endocrine system'
Note - this is a hidden GCI
neurotransmitter release
- capable_of some <SubClassOf 'neurotransmitter secretion'>
There are many subclasses of this term that are specific to release of some specific neurotransmitter. These are use to define general classes such as
- 'dopaminergic neuron' EquivalentTo capable_of some 'neurotransmitter secretion, dopamine'
Neuronal development in insects is mosaic. Each neuron belongs to a single lineage the development of which is very largely stereotyped an determinate. A single neuroblast gives rise to each lineage. Neuroblasts as stem cells, which bud off ganglion mother cells (GMC) in a particular order. These GMCs typically divide once to give rise to 2 cells each of which may be a neuron, a glial cell or an epithelial cell. Each neuroblast is uniquely identifiable
For neuronal lineages it is important to make terms for both the class of neurons descended from a particular neuroblast and for a clone of neurons consisting of all of the neurons that descend from the neuroblast. The relevant patterns, using the ALad1 lineage as an example, are:
- Class: 'ALad1 lineage neuron'
- EquivalentTo neuron that develops_from some 'ALad1 neuroblast'
- SubClassOf part_of some 'ALad1 lineage clone'
- Class 'ALad1 lineage clone'
- SubClassOf 'neuroblast lineage clone'
- SubClassOf develops_from some 'ALad1 neuroblast'
Unlike neuron lineage classes, we can use clone classes to record localisation (and with the right data, location of pre-vs post-synaptic terminals). This is clearly illustrated by display and querying of these terms on VFB ALad1 lineage neuron adult ALad1 lineage clone)
It is also possible to do something similar for subclusters of complete lineage clones, for example, to make class terms for lineage clones consisting of all of the neurons from some specific lineage that express some key gene, such as fruitless and also for similarly defined neurons.
The problem we face here, is how to avoid bloating the ontology: it seems ridiculous to always make two classes in such cases. We suggest the following rules of thumb to limit bloat:
(i) For highly heterogeneous groups of neurons with a common lineage, make a clone term only. (ii) For largely homogeneous groups of neurons with a common lineage, make a neuronal lineage class term only.
We follow the Bate (1993) nomenclature for the larval somatic (hypodermal) musculature, with some extensions by Campos-Ortega and Hartenstein (1997).
This musculature follows a semi-repetitive pattern for thoracic and abdominal segments with most. A hand maintained, segment neutral classification hierarchy classifies first by the angle of the muscle (acute, oblique, longitudinal, transverse, segment border), then by its position (dorsal, lateral or ventral). The first two classification define a group of muscles. Muscles in a group are numbered and defined by their order dorsal-ventral within the group. This gives a nice clean single inheritance classification. We also tolerate some manually maintained dual inheritance classification for intersegmental muscles (muscles that are not wholly within a single segment). With more expressive OWL this could be automated, but not without stepping outside the computationally tractable EL profile of OWL2.
Various automated classifications are layered over this, the main one being by segment/tagma. The numbering system has an obvious major drawback: As the number of muscles within a group differs between segments (some segments lack some muscles, others have extra), the abstract naming system cannot reflect serial homology. We can, however defined classes that correspond to serially homologous groupings for groups of segments for which a muscle group is invariant. In fact, A2-7 have an invariant muscle pattern and A1 is almost identical to A2-7, so we define a complete set of A1-7 classes. For such groupings, we also record muscle attachment sites where possible using a connected_to relationship.
We also classify muscles automatically according to which nerve innervates them. This follows a slightly roundabout pattern:
-
Class: 'ISN innervated muscle of A1-7'
- EquivalentTo'embryonic/larval hypodermal muscle' that (part_of some 'larval abdominal segment A1-7') and (synapsed_by some 'ISN motor neuron of A1-7')
-
Class 'ISN motor neuron of A1-7'
- EquivalentTo'motor neuron' that (part_of some 'embryonic/larval nervous system') and (part_of some 'larval abdominal segment A1-7') and (fasciculates_with some 'intersegmental nerve of A1-7')
For motor neuron classes, we use the traditional, morphology-based names for 'segment neutral classes' defined at least partly by lineage. So, for example. For A2-7, following Landgraf et al., 1997 we name and classify these motor neurons according to the muscles they synapse to.
We autoclassify motor neurons by segment (according to their soma-location), by their lineage, by the nerves they fasciculate with (see above) and by the types of synapses they form, recorded using a special set of relations:
TBA
TBA
Uniglomerular antennal lobe projection neuron classes are defined by a combination of lineage and target neuroblast and stage:
- EquivalentTo 'uniglomerular antennal lobe projection neuron' that [develops_from] some <'neuroblast' or one of its Subclasses> and has_postsynaptic_terminals_in some <'antennal lobe glomerulus' or one of its Subclasses> and part_of some 'adult brain'