GithubHelp home page GithubHelp logo

ebispot / efo Goto Github PK

View Code? Open in Web Editor NEW
54.0 14.0 14.0 1.36 GB

Github repo for the Experimental Factor Ontology (EFO)

Home Page: https://www.ebi.ac.uk/efo/

Makefile 48.80% Python 23.42% Shell 13.39% Dockerfile 2.58% Ruby 11.81%

efo's Introduction

Build Status

EFO

alt text

The Experimental Factor Ontology (EFO) provides a systematic description of many experimental variables available in EBI databases, and for projects such as the NHGRI-EBI GWAS catalog. It combines parts of several biological ontologies, such as UBERON anatomy, ChEBI chemical compounds, Cell Ontology and, most recently, the Monarch Disease Ontology (MONDO). The scope of EFO is to support the annotation, analysis and visualization of data handled by many groups at the EBI and as the core ontology for Open Targets. EFO is developed by the EMBL-EBI Samples, Phenotypes and Ontologies Team (SPOT). We also add terms for external users when requested. If you are new to ontologies, there is a short introduction on the subject available and a blog post by James Malone on what ontologies are for.

Browse EFO

You can explore EFO 3 in the EMBL-EBI Ontology Lookup Service

Versions

Changes to EFO in version 3

The disease branch of EFO has undergone major restructuring in order to improve classification based on current medical understanding and in alignment with existing domain ontologies. This has been achieved through mapping the EFO disease and disease staging branches to the Monarch Disease Ontology (MONDO) - using the Ontology X-ref Service (OxO) - and importing these mapped MONDO terms into EFO. All existing EFO terms have retained the EFO ID. The MONDO ID for each mapped term is available within the annotations as a cross reference. Any new terms imported from MONDO have retained their MONDO IDs.

All mapped terms (EFO terms and their MONDO mapped term) can be found in the mondo_efo_mappings.tsv file situated in the imports folder. This file contains on each line: the URI of the MONDO term, the URI of the EFO term, the MONDO label and the EFO label for each mapped pair. All terms that are mapped must be added to this file in order for the MONDO term to be extracted and merged into EFO. Additionally, all MONDO terms to be extracted that are listed in the mappings file are contained in the mondo_terms.txt file.

Consequently, this will now allow us to import MONDO terms and receive requests to import terms that exist in MONDO. This will be done through adding these terms to the mondo_terms.txt file, which, in turn, extracts all terms listed in this file from MONDO in an import file which is then merged with EFO.

Any terms that are imported and are not under the desired parent class can be manipulated through the subclass.csv file. This automatically corrects the term classification during the editing pipeline to the desired classification.

Changes in annotation properties are:

Stable release versions

The latest version of the ontology can always be found attached to each EFO 3 release, found here:

https://github.com/EBISPOT/efo/releases

This is the asserted ontology and requires an OWL-DL reasoner to view the inferred classification.

Editors' version

Editors of this ontology should use the edit version, efo2 src/ontology/efo-edit.owl

Term requests and contact

Submit new terms or report bugs using our issue tracker, or join EFO mailing list for announcement and monthly update.

Acknowledgements

This ontology repository was created using the ontology starter kit

efo's People

Contributors

ar-ibrahim avatar bgyori avatar cthoyt avatar daniwelter avatar dhimmel avatar dosumis avatar kallia-p avatar matentzn avatar paolaroncaglia avatar rays22 avatar siiraa avatar simonjupp avatar twhetzel avatar warrenread avatar zoependlington avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

efo's Issues

Review 'measurement' hierarchy

Currently there are several dozen factors all listed under the node "measurement".
As the EFO is used to annotate GWAS, and we consider the terms "pQTLs" (for protein level associations) and "mQTLs" (for metabolite associations) it would be useful to have specific nodes for "protein level measurement", "metabolite level measurement".
There seems to be another set of specific physiological measurements, for example "aortic root size". These may benefit from the MPO precedent of "organ morphology" and "organ physiology" terms.

Review 'mental or behavioural disorder measurement' hierarchy
The hierarchy is currently a little flat and could do with more structure and axiomatisation

restructure mouse strain classes in EFO

a substrain of a parent strain is not a 'is_a' relationship. Fix the classification, use related_to (or some loose property) to infer grouping.

check BFO related_to definition for domian-range restriction if using related_to

Define replacement patterns for use of is_about in measurements

I made a start on some of these (patterns here https://github.com/simonjupp/efo3-creator/tree/master/designpatterns). The patterns were rejected but this could still be a good starting point.

For the replacement strategy, I would start with programmatically replacing any subclasses of "measurement and is_about some chemical compound", then working my way through all the others. This should replace a large number of is_about cases. The remaining ones need to be dealt with on a case-by-case basis.

Happy to discuss details with whoever ends up doing this.

Need a modelling decision for susceptibility to x.

ORDO uses predisposition to not susceptibility to. Investigate whether this term is used synonymously with susceptibility to in ORDO e.g. susceptibility to viral disease, and externally e/g/ in OMIM. This would allow us to map to OMIM perhaps for these loci. A set of syns for this (if correct) is useful

http://www.orpha.net/ORDO/Orphanet_140162 - Inherited cancer-predisposing syndrome due to biallelic BRCA2 mutations

Should Inherited cancer-predisposing syndrome - be classified under neoplastic disease?

Import axioms that share entities in EFO 3

If a subclass or equivalent axiom in the external ontology contains terms in the list of terms to be imported, we can safely import that axioms. E.g. if A subClassOf p some B and both A and B are on the slims list, then this axiom will be imported. If A subClassOf p some C and C is not in the slims, we will ignore this axiom.

Review axiomatisation of 'autoimmune disease'

many common disease loci have an autoimmune disease annotation.
Create an axiom e.g.

'autoimmune disease' subClassOf realized_in some ('disease course' and 'has part' some ('immune system process’ and 'bearer of' some abnormal))

and
has_disease_location some immune system or part_of

example ORDO classes to include - Immunodeficiency syndrome with autoimmunity

turn on define class definition import from HP

Phenotypic abnormality subclasses in EFO2 uses the old definitions of the define classes from HP. HP has updated these axioms, the new axioms need to be cleanly imported in EFO3.

E.g. has component -> has modifier

Abnormality of metabolism/homeostasis in EFO2 uses
'has part' some
(quality and ('has component' some abnormal) and ('inheres in part of' some 'metabolic process'))

HP has updated this to be
has part some (
quality and
inheres in part of some metabolic process and
has modifier some abnormal)

Generate disease-prevalence statement

Hi SIra

I'm interested in having this data available but it may be of EBI-wide interest particularly for EVA.

The use case is as follows:

Given a mutation that is reported for a disease, what are the odds that this is not a chance observation. If you know the incidence of the disease, and the occurrence of the mutation in a randomly sampled set of exon sequence e.g. the EXAC database, you can calculate a probability of the observation occurring by chance. We could use thisin our scoring in Open targets, but would also be of general interest I think.

Cheers

Ian

Cleaning up EFO object properties

Simon says:
how are we doing with cleaning up the EFO object properties? I’d like to move as many as possible to the RO/BFO URI
this is only important for ones we actually use in EFO, I see a lot of object properties in EFO, but not all of them are actually used anywhere
e.g. http://purl.org/obo/owl/OBO_REL#bearer_of -> http://purl.obolibrary.org/obo/RO_0000053

Sira replies:
most obj properties that we use are more or less RO/BFO, but we've been using them in a way that we ignored the restricted domain and range. So the clean up is to find the suitable replacement that works with the domain-range that we've used in EFO

Simon concludes:
Paola might be nice ticket for you to review which URIs we are using and refactor to RO URIs, keep an eye on the domain and ranges, if they look dodgy in EFO, or do not conform with RO, then I suggest we remove them from EFO

Bug in EFO lang tags

Hi Guys,

You've had a couple of language tag issues for a while so thought I'd submit a ticket rather than keep stripping them out.

E.g.

<obo:IAO_0000115 xml:lang="mail.nih.gov) in the surgery branch of the nci.">This cell line was from a melanoma metastasis tumor taken from the subcutaneous shoulder of an individual. Cell line was derived by Dr. Yardena Samuels (samuelsy</obo:IAO_0000115>

on class
http://www.ebi.ac.uk/efo/EFO_0005706

also
http://www.ebi.ac.uk/efo/EFO_0005722

JM

import FBBI terms for CORBEL

(https://www.ebi.ac.uk/panda/jira/browse/FGPTO-1433)

Hi,

To follow up on this, you'll find in attachment a list of terms we'd like to use as part of EFO. Some terms are in FBBI but not all as far as I could tell. I am happy to help in getting them into the ontology, just let me know what you'd like me to do.
Do you have a timeline for when the FBBI would be included into EFO ?
Also, EFO has a biological process term. Does it come from GO ? If so can more/all of GO be included ? At the moment, we're using GO separately in our system because the terms we need are not in EFO.

Thanks

Cheers

J-K

https://www.ebi.ac.uk/panda/jira/secure/attachment/22893/microscopy_method_terms.txt

Update URIGEN to it is compatible with Protege 5

The urigen plugin seemingly works with Protege 5 in that you can install it and set up the servers, but when trying to add a term, it comes up with the following exception:

Level: ERROR Time: 1502886185360 Message: Uncaught Exception in thread 'AWT-EventQueue-0' java.lang.NoSuchMethodError StackTrace: uk.ac.ebi.fgpt.urigen.entity.UrigenEntityFactory.generateName(UrigenEntityFactory.java:58) org.protege.editor.owl.model.entity.CustomOWLEntityFactory.createOWLEntity(CustomOWLEntityFactory.java:105) org.protege.editor.owl.ui.OWLEntityCreationPanel.getOWLEntityCreationSet(OWLEntityCreationPanel.java:235) org.protege.editor.owl.ui.OWLEntityCreationPanel.getOWLEntityCreationSet(OWLEntityCreationPanel.java:219) org.protege.editor.owl.ui.OWLEntityCreationPanel.showDialog(OWLEntityCreationPanel.java:265) org.protege.editor.owl.model.OWLWorkspace.createOWLClass(OWLWorkspace.java:935) org.protege.editor.owl.ui.view.cls.ToldOWLClassHierarchyViewComponent.createNewChild(ToldOWLClassHierarchyViewComponent.java:183) org.protege.editor.owl.ui.view.cls.ToldOWLClassHierarchyViewComponent$1.actionPerformed(ToldOWLClassHierarchyViewComponent.java:52) org.protege.editor.core.ui.view.ViewActionAdapter.actionPerformed(ViewActionAdapter.java:46) javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346) javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) java.awt.Component.processMouseEvent(Component.java:6525) javax.swing.JComponent.processMouseEvent(JComponent.java:3324) java.awt.Component.processEvent(Component.java:6290) java.awt.Container.processEvent(Container.java:2234) java.awt.Component.dispatchEventImpl(Component.java:4881) java.awt.Container.dispatchEventImpl(Container.java:2292) java.awt.Component.dispatchEvent(Component.java:4703) java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898) java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533) java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462) java.awt.Container.dispatchEventImpl(Container.java:2278) java.awt.Window.dispatchEventImpl(Window.java:2750) java.awt.Component.dispatchEvent(Component.java:4703) java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751) java.awt.EventQueue.access$500(EventQueue.java:97) java.awt.EventQueue$3.run(EventQueue.java:702) java.awt.EventQueue$3.run(EventQueue.java:696) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) java.awt.EventQueue$4.run(EventQueue.java:724) java.awt.EventQueue$4.run(EventQueue.java:722) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) java.awt.EventQueue.dispatchEvent(EventQueue.java:721) java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Review response to drug hierarchy for GO vs EFO terms

As a general rule, if a drug is available in Chebi, the corresponding 'response to' term should be created in GO and imported into EFO. Review all subclasses of response to drug that currently have an EFO ID to see if an appropriate GO term could be generated to replace them.

Extra trailing space in Deprecated class definitions

See the trailing space in IAO_0100001 property.

<!-- http://www.ebi.ac.uk/efo/EFO_0004122 -->

    <owl:Class rdf:about="http://www.ebi.ac.uk/efo/EFO_0004122">
        <rdfs:subClassOf rdf:resource="http://www.geneontology.org/formats/oboInOwl#ObsoleteClass"/>
        <obo:IAO_0100001 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://www.orpha.net/ORDO/Orphanet_637 </obo:IAO_0100001>
        <efo:MSH_definition_citation rdf:datatype="http://www.w3.org/2001/XMLSchema#string">MSH:DO16518</efo:MSH_definition_citation>
        <efo:OMIM_definition_citation rdf:datatype="http://www.w3.org/2001/XMLSchema#string">OMIM:101000</efo:OMIM_definition_citation>
        <efo:alternative_term>neurofibromatosis type 2</efo:alternative_term>
        <efo:obsoleted_in_version>2.32</efo:obsoleted_in_version>
        <efo:organizational_class>true</efo:organizational_class>
        <efo:reason_for_obsolescence>use  &apos;http://www.orpha.net/ORDO/Orphanet_637&apos; instead. 
New Label : Neurofibromatosis type 2</efo:reason_for_obsolescence>
        <rdfs:label>obsolete_neurofibromatosis type II</rdfs:label>
    </owl:Class>

Overlap syndrome (OS) representation in EFO

Context:

Overlapping connective tissue diseases (with shared autoimmunity)/rheumatic autoimmune disease and Asthma-COPD Overlap Syndrome (ACOS) classification.

Rheumatic autoimmune disease
Rheumatic autoimmune disease patients can been diagnosed with:

  • Rheumatoid Arthritis (RA),
  • Systemic lupus erythematosus (SLE),
  • RA first and then with RA + SLE.

The last case is commonly seen in clinical practice.
So, they have been diagnosed with an overlap autoimmune disease that differs from those with 'pure' RA or 'pure' SLE. There is a controversial term coined in the litterature as 'Rhupus' or 'Rhupus syndrome' to categorise these patients with overlapping phenotypes from both SLE and RA.

Asthma-COPD overlap syndrome
Another example is Asthma and COPD commonly presented in clinical practice ant the challenge to identify whether the patients are ‘purely’ asthmatic or suffer from asthma-COPD overlap syndrome (ACOS). The asthma-COPD overlap syndrome (ACOS) has reemerged in the medical literature.
ACOS is characterized by persistent airflow limitation (FEV1 ≤ 80% predicted; FEV1/FVC ratio ≤70%) with several features shared with both asthma and COPD, including current or past smoking
(see section 4. below)

Disease heterogeneity
There is controversy concerning having overlapping/mixed disease classified as a separate entity due to heterogeneous clinical manifestations (there is no consensus on an ACOS definition, likely due to the heterogeneity of the disease), and especially, because there is an increasing tendency to shift away from fixed disease labels.

However, in terms of disease classification and of finding the relevant biomarkers and genetic information from text-mining, it make sense to acknowledge what disease labels are currently used in the clinical practice, medical reports and literature to characterise a group of related disorders with distinct co-morbidities.

Overlap Connective Tissue Disease Syndromes:

In general, overlap syndromes (OSs) - which I don't particularly like as a term from a patient point of view - is defined as entities satisfying classification criteria of at leas two connective tissue diseases occurring at the same time or at a different time in the same patient.

This include:

systemic lupus erythematosus (SLE),
rheumatoid arthritis (RA),
systemic sclerosis (SSc),
polymyositis/dermatomyositis (PDM), and
Sjögren syndrome (SS).

For reference, please read:
http://www.sciencedirect.com/science/article/pii/S1568997212001218

Scleromyositis is another example that is both 'Systemic sclerosis' and 'polymyositis' and a synonym of 'scleroderma/polymyositis overlap syndrome'.

Current classification in thesaurus and ontologies:

What information is available in EFO?

Mixed connective tissue disease
Currently, there is a concept of 'mixed connective tissue disease' in EFO with a x-ref to DO and to MeSH.

In DO, the same concept is defined as 'A collagen disease that is considered an overlap of three diseases, systemic lupus erythematosus, scleroderma, and polymyositis with very high titers of circulating antinuclear antibody to a ribonucleoprotein antigen.'

In MeSH, it's a subtype of 'connective tissue diseases' and defined as 'A syndrome with overlapping clinical features of systemic lupus erythematosus, scleroderma, polymyositis, and Raynaud's phenomenon.'

In NCIt, it's labeled as Mixed Connective Tissue Disease (Code C84892).

In ORDO, it's defined as 'Mixed connective tissue disease (MCTD) is a rare connective tissue disorder combining clinical features of systemic lupus erythematosus (SLE), systemic sclerosis (SSc), polymyositis (PM) (see these terms) and/or rheumatoid arthritis (RA).'

Localised scleroderma and scleroderma:
Note that there is one child of mixed connective tissue disease in EFO: localised scleroderma.
However, it's not a mixed connective tissue disease and will have to be reclassified.
Scleroderma is indeed a connective tissue disease characterized by tissue fibrosis, vasculopathy and immune dysregulation.
Localised scleroderma is a subclass of scleroderma (see DO)

Connective tissue disease:
The concept is missing from EFO but present in DO, MeSH and NCIt (Connective Tissue Disorder (Code C26729)). This should be added.

Overlap syndrome:
The concept is missing from EFO

In ORDO, the concept of 'Overlapping connective tissue disease' is already defined with

  • 'Mixed connective tissue disease' (MCTD), and
  • 'Unclassified overlapping connective tissue disease' as subclasses of it.

Suggested classification changes in EFO:

__ Overlapping connective tissue disease (need synonyms like Overlap connective tissue disease syndrome)

__ Scleromyositis
__ dermatomyositis/systemic lupus erythematosus overlap syndrome (Dermatomyositis Overlap with Systemic Lupus Erythematosus)
__ Rhupus
__ Scleroderma overlap syndrome (PMID:27684895)
__ Mixed connective tissue disease
__Unclassified overlapping connective tissue disease

Reclassify Localised scleroderma has a subclass of scleroderma (to be defined)

Asthma-COPD overlap syndrome (ACOS):
Approximately one in four patients with chronic obstructive pulmonary disease (COPD) have asthmatic features consisting of wheezing, airway hyper-responsiveness or atopy ((PMID:28119742).

This can be classified in EFO under respiratory system disease but needs to be discussed after review.

We will to look exactly at the phenotypes from both Asthma and COPD and understand how the current classification of both diseases make sense in EFO

Look also at the following article for a different opinion:
Postma DS , Rabe KF . The asthma-COPD overlap syndrome. N. Engl. J. Med. 2015; 373: 1241–9.
http://www.nejm.org/doi/full/10.1056/NEJMra1411863

Best wishes,

Gautier

EFO cancer alignment with DO - Review and add new terms

Per Natalie's discussion on improving EFO-Cancer (for PDX integrator)

  • New terms may be needed
  • Classification/axiomatisation might need a fix.

See https://docs.google.com/spreadsheets/d/1rKUYGBETdx2hHkgHtZBFAmjpIHKP2PD5C9gsc1BHtBY/edit#gid=0 and the doc file

align DO-cancer terms with EFO. Identify what DO is missing and what EFO has by:

  • DO xRef in EFO (OxO)
  • for EFO terms not having DO def_cite, use Zooma/OxO to see if there is an equivalent DO terms for each of those EFO terms.

review ontology letter.docx

Review tuberculosis

tuberculosis is classified under respiratory system disease and bacterial disease.

need to

  • remove the respiratory system parent but keep the bacterial disease parent
  • add has_disease_location to all the children of tuberculosis, e.g., cardiovascular tuberculosis has_disease_location cardiovascular system

Add information to H9 cell EFO:0003045

http://discovery.lifemapsc.com/stem-cell-differentiation/in-vitro-cells/inner-cell-mass-human-line-h9-wa09-wicell-research-institute-inc

This human ES cell line expresses cell surface markers specific to undifferentiated nonhuman primate ES and human EC cells: stage-specific embryonic antigen (SSEA)–3, SSEA-4, TRA-l-60, TRA-1- 81, and alkaline phosphatase. It has a normal 46, XX karyotype. Teratomas are formed upon cell injection into SCID mice. These teratomas include cells from all three germ layers.

Isolation & Growth Conditions
This cell line can be cultured using feeder cells or in a feeder-free protocol. When using feeder cells, human ESC culture medium should be compreised of Advanced DMEM/F12 supplemented with knockout serum replacement (20%), non-essential amino acids (1x), L-glutamine (1x), penicillin/streptomycin (1x), β-mercaptoethanol (1x) and FGF-2 (4 ng/ml). Maintain the human ESCs on Matrigel using hESC medium conditioned by mouse embryonic fibroblasts.

Write script to check details in Webulous form

Since not all the checks in Webulous are working, write script to fill-in the missing validation to streamline the review process.

Checks to include:

  • Does value of "Child Of" exist in EFO?
  • Are synonyms separated by double pipes, e.g.||
  • Are values for "aboutX" and "located in X" fields in EFO?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.