Skip to content

Ontology design patterns

Marta Costa edited this page Jun 12, 2015 · 5 revisions

##Table of contents

Background

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.

Minimal design pattern for ontology terms

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.

When to make EquivalentClass assertions

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

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.

Assertion of function

To make an assertion about the function of members of a class of anatomical structure, please use

OR

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.

Assertion of sensory modality

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

By using this pattern, the resulting classes get classified according to sensory modality. e.g. The presence of the axiom

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

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:

Assertions about secretion of hormones/neurotransmitters

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:

neurotransmitter release

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

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:

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.

Embryonic/larval musculature

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')

Embryonic/larval motor neurons

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

Embryonic/larval tracheal system

TBA

ODP for the nervous system

ODP for antennal lobe projection neurons

Uniglomerular antennal lobe projection neuron classes are defined by a combination of lineage and target neuroblast and stage: