This repository contains common files ontologies and workflows shared between multiple phenotype ontologies.
See the wiki for additional documentation
See mappings/README.md for explanation of fields
Many databases use their own ontology geared towards their species of interest or an area of interest. The purpose of this repository is to provide a mechanism for integrating these together into a unified phenotype ontology. We do this primarily through OWL Axiomatization and OWL Reasoning.
This approach takes advantages of the fact that phenotype ontologies typically follow a compositional structure. If each contributing ontology makes the semantics of this composition transparent through OWL Axioms then a reasoner can piece the ontologies together and find the overarching classification.
For example, if a phenotype ontology A
contains a class for limb size
,
and also provides an OWL axiom that maps onto a decomposed form, for
example:
A:limb size
equivalentTopato:size
andinheres in
somelimb
And if phenotype ontology B
has a class short forelimb
, with axiom:
B:short forelimb
equivalentTopato:short
andinheres in
someforelimb
Then a reasoner can infer that B:short forelimb
is a subclass of A:limb size
The OWL Axioms we use follow a design pattern called EQ
or Entity-Quality
descriptions.
Furthermore, if a database C
provides a row for a genotype described
compositionally, the placement of these phenotypes can also be
inferred.
For background on the original formulation, see:
C J Mungall, Georgios Gkoutos, Cynthia Smith, Melissa Haendel, Suzanna Lewis, Michael Ashburner (2010) Integrating phenotype ontologies across multiple species Genome Biology 11 (1)
The Monarch website uses uPheno to group data from multiple species. See for example: https://monarchinitiative.org/phenotype/MP:0003631
You can also query this using Monarch SciGraph services: https://scigraph-ontology.monarchinitiative.org/scigraph/docs/
To understand the mechanics of how uPheno works, we recommend opening the OWL in Protege and exploring with a fast reasoner such as Elk running
The remainder of these docs assumes some familiarity with Protege/OWL
We provide various modules:
- mammal.owl
- vertebrate.owl
- metazoa.owl
- mp* - mouse // mammal.owl
- hp* - human // mammal.owl
- zp - zebrafish** // vertebrate.owl
- wbphenotype - C elegans // metazoa.owl
- dpo* - Drosophila // metazoa.owl
- fypo* - Fission Yeast // eukaryote.owl
*
-- this ontology provides their own OWL axiomatization
**
-- separately generated ontology
The OWL axiomatization depends on a number of external ontologies, including
- pato
- uberon
- cl
- species-specific AOs
- go
- chebi
Many of these are large, so we create import modules in the upheno ontology purl space
See the imports directory
This ontology has the OBO PURL upheno
A redirect at obolibrary.org maps
- http://purl.obolibrary.org/obo/upheno/ ==> this repository on github
Previously we had various things on:
This was split across multiple github repos
- {data,server} ==> https://github.com/monarch-initiative/monarch-owlsim-data
- src/ontology
- mp ==> https://github.com/obophenotype/mammalian-phenotype-ontology/
- hp ==> https://github.com/obophenotype/human-phenotype-ontology/ (may change)
- imports/ ==> https://github.com/obophenotype/upheno
- monarch.owl ==> https://github.com/monarch-initiative/monarch-ontology
- zp.owl ==> http://compbio.charite.de/jenkins/job/zp-owl/
- wiki ==> https://github.com/obophenotype/upheno (docs/ directory)