Skip to content
This repository has been archived by the owner on Apr 28, 2023. It is now read-only.

New Chemical Ontology Classyfire #152

Open
lfnothias opened this issue Sep 1, 2017 · 11 comments
Open

New Chemical Ontology Classyfire #152

lfnothias opened this issue Sep 1, 2017 · 11 comments

Comments

@lfnothias
Copy link

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

@simonjupp
Copy link
Contributor

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

@lfnothias
Copy link
Author

That's awesome ! Thank you very much

@djoy82
Copy link

djoy82 commented Feb 1, 2018

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.

@jonquet
Copy link

jonquet commented Feb 1, 2018

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

@sneumann
Copy link

sneumann commented Mar 12, 2020

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 #250 (comment) (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

This was referenced Apr 14, 2020
@sneumann
Copy link

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

@henrietteharmse
Copy link
Contributor

@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.

@djoy82
Copy link

djoy82 commented Apr 14, 2020

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
Copy link

djoy82 commented Apr 14, 2020

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

@henrietteharmse
Copy link
Contributor

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

@andrecastro0o
Copy link

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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants