OLS icon indicating copy to clipboard operation
OLS copied to clipboard

New Chemical Ontology Classyfire

Open lfnothias opened this issue 6 years ago • 11 comments

This is an excellent ontology for chemical compound. https://jcheminf.springeropen.com/articles/10.1186/s13321-016-0174-y

It can be downloaded as OBO. http://classyfire.wishartlab.com/downloads Can you add it EBI ontology look up service ?

Thanks,

LF

lfnothias avatar Sep 01 '17 22:09 lfnothias

Thanks for the pointer, this should be possible I'll look into it.

simonjupp avatar Sep 15 '17 08:09 simonjupp

That's awesome ! Thank you very much

lfnothias avatar Oct 12 '17 10:10 lfnothias

Hi Simon, What data do you need to add ClassyFire/ChemOnt to the lookup service? Please let me know, and I can provide it to you.

Thanks,

Yannick Djoumbou.

djoy82 avatar Feb 01 '18 18:02 djoy82

Hi. Seems also someone tried to upload the ontology to BioPortal but never actually submitted a file: https://bioportal.bioontology.org/ontologies/CLASSY-FIRE/?p=summary

CC: @graybeal for follow up also on BioPortal side

jonquet avatar Feb 01 '18 22:02 jonquet

Hi, a similar discussion was active as [ols-support #383745] let's push things forward now. What the OLS team needs from us or @djoy82 is a ChemOnt description that can be added to https://github.com/OBOFoundry/OBOFoundry.github.io/blob/master/_config.yml Yours, Steffen

The following table is similar to SRAO.ontology.configuration.xlsx added by @henrietteharmse to https://github.com/EBISPOT/OLS/issues/250#issuecomment-486614749 (Amazing: I could copy&paste from Libreoffice under Linux and magically it was turned into markdown here!)

Field Description List/Value Purpose in OLS
creator The list of creators of the ontology List It is displayed in OLS as part of the summary overview of your ontology.
is_foundary Set to true if this is an OBO ontology, otherwise false Value This sets a bunch of default configuration options, like the synonym and definition properties.
preferredPrefix A short identifier that can be used to refer to your ontology in the OLS frontend. Value  
title The title of your ontology Value This will be overidden if the ontology contains a dc:title ontology annotation
uri This is the canonical ontology URI for identifying the ontology Value  
description A description of your ontology Value This will be overidden if the ontology contains a dc:description ontology annotation
homepage The home page for your ontology where users can read more about your ontology Value In OLS a link is provided to the home page of your ontology.
mailing_list Email address where to users can email questions regarding your ontology Value  
label_property The list of URIs of properties that are used in your ontology to provide labels of terms. If multiple language tags are provided OLS always default to index the english language tags. List This is used to index details regarding the terms of your ontology so that users can search for it using keywords
definition_property The list of URIs of properties that are used in your ontology to provide definitions of terms. List This is used to index details regarding the terms of your ontology so that users can search for it using keywords
synonym_property The list of URIs of properties that are used in your ontology to define that a term is a synonym for another term. List This is used to index related terms and make them searchable
hierarchical_property The list of URIs of properties that can be used to contructuct hierarchical tree views of the ontology. By default OLS will render a tree with subclass-of/is-a relationships. This configuration is typically used to indicidate other properties (such as part-of or develops-from) are also considered hierarchical and should be rendered in the tree view. List  
hidden_property List of properties to that are ignored when rendering the ontology. List  
base_uri The base URI that OLS can use to distinguish terms/properties/individuals that belong to your ontology from those that belong to other ontologies. Value This is used for display and indexing purposes.
reasoner The reasoner your ontology requires to be classified. The options are OWL2 or EL or NONE. If you do not know this we can help you when we have a look at your ontology. Value OWL2 we will use Hermit, EL we will use ELK.
oboSlims Use true to indicate that your ontology make use of OBO slims/subsets annotations, otherwise false    
ontology_purl The stable URL for accessing the ontology. Can be on a network (http, https, ftp) or a local file (file://) Value This is where OLS gets the ontology from and checks for changes

sneumann avatar Mar 12 '20 11:03 sneumann

Hi @djoy82 ,

I had the liberty of creating a stub for the information needed by the OLS team in https://gist.github.com/sneumann/c41454a5ae1ee30de838eac7d3b31702 What is needed most from you now are resources as "Home" for ChemOnt, currently it is very much hidden as part of classyfire. Especially check

     uri: http://classyfire.wishartlab.com/
     homepage: http://classyfire.wishartlab.com/

@henrietteharmse in the Gist I could only guess some of the Ontology technical aspects, especially synonym_property, hierarchical_property and hidden_property. The ChemOnt can be seen in https://raw.githubusercontent.com/stuchalk/cjld/master/ChemOnt_2_1.obo and in there I found the following OBO fields for terms (note that I copied some fields from other terms for illustration of all fields used in ChemOnt terms):

[Term]
id: CHEMONTID:0000000
name: Organic compounds
def: "Compounds that contain at least carbon atom, excluding isocyanide/cyanide and their non-hydrocarbyl derivatives, thiophosgene, carbon diselenide, carbon monosulfide, carbon disulfide, carbon subsulfide, carbon monoxide, carbon trioxide, Carbon suboxide, and dicarbon monoxide." []
synonym: "an organic compound" EXACT CHEMONT_TERM []
synonym: "Organic Chemicals" RELATED MeSH_TERM [MESH:D02]
synonym: "organic molecule" EXACT ChEBI_TERM [CHEBI:72695]
xref: Wikipedia:Category\:Dibenzothiazepines "List of Pages in the category \"Dibenzothiazpines\""
is_a: CHEMONTID:9999999 ! Chemical entities
created_by: yandj
creation_date: 2013-05-03T10:28:01Z

@henrietteharmse can you advise on

   base_uri: http://www.ebi.ac.uk/efo/EFO_          ## The base URI that OLS can use to distinguish terms/properties/individuals that belong to your ontology from those that belong to other ontologies.
   ontology_purl : http://www.ebi.ac.uk/efo/efo.owl ## This is where OLS gets the ontology from and checks for changes

Looking forward to feedback, help and progress, Yours, Steffen

sneumann avatar Apr 14 '20 09:04 sneumann

@sneumann How you use synonyms in the .obo file is fine. There is no need to specify synonym_property as well. hierarchical_property and hidden_property are only for ontologies that need it. base_uri we can pick up from your ontology. These properties will simply not be specified in the config for your ontology.

What is problematic is you need to specify a ontology_purl. This is where the latest version of your ontology can be picked by OLS. For your ontology it looks like https://raw.githubusercontent.com/stuchalk/cjld/master/ChemOnt_2_1.obo is where you want us to pickup the latest version. This is problematic because if you upgrade to say version 3.0 the URI is likely to change. This means OLS will not pick up the new version. If you want to host this on GitHub it is fine, but then it needs to use a URI that will not change easily. Something like https://raw.githubusercontent.com/ChemOnt/master/ChemOnt.obo will be better.

henrietteharmse avatar Apr 14 '20 12:04 henrietteharmse

HI all,

Thank you for helping. We will create a new repo for that. @sneumann I will also provide info required in the table above.

Thanks, Yannick

djoy82 avatar Apr 14 '20 12:04 djoy82

Just for curiosity. Can OLS still pick up the latest version if the URL points to another platform (e.g. BitBucket, or GitLab)?

Thanks, Yannick

djoy82 avatar Apr 14 '20 12:04 djoy82

@ djoy82 Yes, as long as it is a public repo for which we do not need to have username/password.

henrietteharmse avatar Apr 14 '20 15:04 henrietteharmse

@sneumann CC: @henrietteharmse @SArndt-TIB

At TIB we noticed that, unlike the overview table (super useful!) posted by @sneumann the dataype of the label_property key has to be a string. If it is given a list as value, ols-config-importer will trow an error

Hence I suggest editing that field in the table, since many people are using as reference

Here is the example using CORA, first with value of label_property: as list (Error), and after as string (No error) ` obo-config.yaml

name: OBO Foundry
title: The OBO Foundry
markdown: kramdown
highlighter: rouge
baseurl: /
imgurl: /images
repo: https://github.com/OBOFoundry/OBOFoundry.github.io/
repo_src: https://github.com/OBOFoundry/OBOFoundry.github.io/blob/master/
author:
  name: OBO Technical WG
ontologies:
- title: Core Ontology for Robotics and Automation (CORA)
  id: cora
  ontology_purl: https://raw.githubusercontent.com/srfiorini/IEEE1872-owl/master/cora.owl
  label_property: 
    - http://www.w3.org/2000/01/rdf-schema#label

$ docker run --net=host -v $(pwd)/config:/config ebispot/ols-config-importer:stable

Returns Error:

2021-04-28 10:31:33,365 ERROR main YamlLoader$$EnhancerBySpringCGLIB$$7ef97709.updateDocument - Can't read config:problem parsing yaml for cora
2021-04-28 10:31:33,366 INFO main YamlLoader$$EnhancerBySpringCGLIB$$7ef97709.run - Ontologies will be imported using config at 'file:///config/ols-config.yaml'
2021-04-28 10:31:33,444 INFO main YamlLoader.logStarted - Started YamlLoader in 2.172 seconds (JVM running for 2.544)

if I change label_property from a list to string

  label_property: http://www.w3.org/2000/01/rdf-schema#label

No Errors are found:

$ docker run --net=host -v $(pwd)/config:/config ebispot/ols-config-importer:stable

2021-04-28 10:33:52,670 INFO main YamlLoader.logStarting - Starting YamlLoader v3.2.1-SNAPSHOT on hammerhead with PID 1 (/opt/ols-config-importer.jar started by root in /)
2021-04-28 10:33:52,679 DEBUG main YamlLoader.logStarting - Running with Spring Boot v1.3.8.RELEASE, Spring v4.2.8.RELEASE
2021-04-28 10:33:52,680 INFO main YamlLoader.logStartupProfileInfo - No active profile set, falling back to default profiles: default
2021-04-28 10:33:54,179 INFO main YamlLoader$$EnhancerBySpringCGLIB$$4bf32455.run - OBO Ontologies will be imported using config at 'file:///config/obo-config.yaml'
2021-04-28 10:33:54,311 INFO main YamlLoader$$EnhancerBySpringCGLIB$$4bf32455.run - Ontologies will be imported using config at 'file:///config/ols-config.yaml'
2021-04-28 10:33:54,324 INFO main YamlLoader.logStarted - Started YamlLoader in 1.985 seconds (JVM running for 2.339)

andrecastro0o avatar Apr 28 '21 11:04 andrecastro0o