ontology-development-kit

Ontology lifecycle management

https://github.com/incatools/ontology-development-kit

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    11 of 39 committers (28.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.0%) to scientific vocabulary

Keywords

continuous-integration monarchinitiative obo obofoundry ontology owl protege robot travis

Keywords from Contributors

semantic-web biocuration bioinformatics annotation life-sciences ontology-registry open-science linkml standards tsv
Last synced: 6 months ago · JSON representation ·

Repository

Ontology lifecycle management

Basic Info
Statistics
  • Stars: 267
  • Watchers: 20
  • Forks: 56
  • Open Issues: 83
  • Releases: 0
Topics
continuous-integration monarchinitiative obo obofoundry ontology owl protege robot travis
Created about 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

Build the ODK images and run the tests DOI DOI

https://www.wikidata.org/wiki/Q112336713

The Ontology Development Kit (ODK)

Manage your ontology's life cycle with the Ontology Development Kit (ODK)! The ODK is - a toolbox of various ontology related tools such as ROBOT, owltools, dosdp-tools and many more, bundled as a docker image - a set of executable workflows for managing your ontology's continuous integration, quality control, releases and dynamic imports

For more details, see

Where to get help

Steering Committee

  • @gouttegd Damien Goutte-Gattat (ODK Lead, FlyBase)
  • @matentzn Nicolas Matentzoglu (ODK Deputy, Semanticly)
  • @cmungall Chris Mungall (ODK Founder, LBNL)

Core team

  • @anitacaron Anita Caron (Novo Nordisk)
  • @balhoff Jim Balhoff (RENCI)
  • @dosumis David Osumi-Sutherland (Sanger)
  • @ehartley Emily Hartley (Critical Path Institute)
  • @hkir-dev Huseyin Kir (EMBL-EBI)
  • @shawntanzk Shawn Tan (Novo Nordisk)
  • @ubyndr Ismail Ugur Bayindir (EMBL-EBI)

Full list of contributors: https://github.com/INCATools/ontology-development-kit/graphs/contributors

Cite

https://doi.org/10.1093/database/baac087

Outstanding contributions

Outstanding contributors are groups and institutions that have helped with organising the ODK development, providing funding, advice and infrastructure. We are very grateful for all your contributions - the project would not exist without you!

Monarch Initiative

The Monarch Initiative is a consortium of medical, biological and computational experts that provide major ontology services such as the Human Phenotype Ontology, Mondo and an integrative data and analytic platform connecting phenotypes to genotypes across species, bridging basic and applied research with semantics-based analysis.

https://monarchinitiative.org/

European Bioinformatics Institute

The Samples, Phenotypes and Ontologies (SPOT) team, led by Helen Parkinson, is concerned with high throughput mammalian phenotyping, Semantics as a Service and human genetics resources. Members of the SPOT team including David Osumi-Sutherland have made major contributions to ODK, and provided advice, use cases and funding.

https://www.ebi.ac.uk/spot/

University of Florida Biomedical Informatics Program

https://hobi.med.ufl.edu/research-2/biomedical-informatics-3/

Knocean Inc.

Knocean Inc. offers consulting and development services for science informatics, in particular in the area of biomedical ontologies and ontology tooling.

http://knocean.com/

Critical Path Institute

The Critical Path For Alzheimer’s Disease (CPAD) is a public-private partnership aimed at creating new tools and methods that can be applied to increase the efficiency of the development process of new treatments for Alzheimer disease (AD) and related neurodegenerative disorders with impaired cognition and function.

https://c-path.org/

Requirements

Docker

Using the ODK docker image requires Docker Engine version 20.10.8 or greater for v1.3.1.

Tips and Tricks

Customizing your ODK installation

You will likely want to customize the build process, and of course to edit the ontology.

We recommend that you do not edit the main Makefile, but instead the supplemental one (e.g. myont.Makefile) is src/ontology

An example of how you can customise your imports for example is documented here

Migrating an existing ontology repo to the ODK

The ODK is designed for creating a new repo for a new ontology. It can also be used to help figure out how to migrate an existing git repository to the ODK structure. There are different ways to do this.

  • Manually compare your ontology against the template folder and make necessary adjustments
  • Run the seed script as if creating a new repo. Manually compare this with your existing repo and use git mv to rearrange, and adding any missing files by copying them across and doing a git add
  • Create a new repo de novo and abandon your existing one, using, for example, github issue mover to move tickets across.

Obviously the second method is not ideal as you lose your git history. Note even with git mv history tracking becomes harder.

If you have built your ontology using a previous version of ODK, migration of your setup is unfortunately a manual process. In general you do not absolutely need to upgrade your setup, but doing so will bring advantages in terms of aligning with emerging standards ways of doing things. The less customization you do on your repo the easier it should be to migrate.

Consult the CHANGELOG.md file for changes made between releases to assist in upgrading.

More documentation

You will find additional documentation in the src/ontology/README-editors.md file in your repo.

The ODK also comes with built in options to generate your own shiny documentation; see for example the PATO documentation here which is almost entirely autogenerated from the ODK.

Alternative to Docker

You can run the seed script without docker using Python3.6 or higher and Java. See requirements.txt for python requirements.

This is, however, not recommended.

Running OBO dashboard with ODK

Note: this is an highly experimental feature as of ODK version 1.2.24. Note that the display and the scores are under active development and will change considerably in the near future.

Example implementation: - https://github.com/obophenotype/obophenotype.github.io (web) You need two files to run the ODK dashboard generator:

  1. An ODK container wrapper (called odk.sh in the following), similar to the run.sh file in your typical repos src/ontology directory.
  2. A dashboard config YAML file (called dashboard-config.yml in the following)

With both files, you can then create a dashboard using the following command:

sh odk.sh obodash -C dashboard-config.yml

The wrapper (odk.sh) should contain something like the following:

```

!/bin/sh

Wrapper script for ODK docker container.

docker run -e ROBOTJAVAARGS='-Xmx4G' -e JAVA_OPTS='-Xmx4G' \ -v $PWD/dashboard:/tools/OBO-Dashboard/dashboard \ -v $PWD/dashboard-config.yml:/tools/OBO-Dashboard/dashboard-config.yml \ -v $PWD/ontologies:/tools/OBO-Dashboard/build/ontologies \ -v $PWD/sparql:/tools/OBO-Dashboard/sparql \ -w /work --rm -ti obolibrary/odkfull "$@" ```

Note that this essentially binds a few local directories to the running ODK container. The directories serve the following purposes:

  1. dashboard: this is where the dashboard is deposited. Look at index.html in your browser.
  2. ontologies: this is where ontologies are downloaded to and synced up
  3. sparql: an optional directory that allows you to add custom checks on top of the usual OBO profile.

This is a minimal example dashboard config for a potential phenotype dashboard:

title: OBO Phenotype Dashboard description: Quality control for OBO phenotype ontologies. Under construction. ontologies: custom: - id: wbphenotype - id: dpo base_ns: - http://purl.obolibrary.org/obo/FBcv environment: ROBOT_JAR: /tools/robot.jar ROBOT: robot

The ontologies will, if they exist, be retrieved from their OBO purls and evaluated. There are more options potentially of interest:

title: OBO Phenotype Dashboard description: Quality control for OBO phenotype ontologies. Under construction. ontologies: custom: - id: myont mirror_from: https://raw.githubusercontent.com/obophenotype/c-elegans-phenotype-ontology/master/wbphenotype-base.owl - id: dpo base_ns: - http://purl.obolibrary.org/obo/FBcv prefer_base: True profile: baseprofile: "https://raw.githubusercontent.com/ontodev/robot/master/robot-core/src/main/resources/report_profile.txt" custom: - "WARN\tfile:./sparql/missing_xrefs.sparql" report_truncation_limit: 300 redownload_after_hours: 2 environment: ROBOT_JAR: /tools/robot.jar ROBOT: robot

  • mirror_from allows specifying a download URL other than the default OBO purl
  • base_ns allows specifying the set of namespaces considered to be owned by the ontology (only terms in these namespaces will be evaluated for this ontology. Default is http://purl.obolibrary.org/obo/CAPTIALISEDONTOLOGYID).
  • report_truncation_limit allows truncating long (sometimes HUGE ontology reports) to make them go easier on GITHUB version control.
  • redownload_after_hours: this allows to specify how long to wait before trying to download an ontology (which could be a time consuming process!) again.
  • environment: is currently a necessary parameter but will be made optional in future versions. It allows adding environment variables directly to the config, rather than passing them in as -e parameters to the docker container (both are equivalent though.)
  • profile is an optional parameter that allows specifying your own profile for the quality control (ROBOT) report. By default, this is using the ROBOT report default profile. You can either specify your own profile from scratch, or extend the current default with additional test by using the baseprofile parameter. Find out more about ROBOT profiles here.

A fully working example can be found here.

Owner

  • Name: INCATools
  • Login: INCATools
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite it as below.
authors:
  - family-names: Matentzoglu
    given-names: Nicolas
    orcid: https://orcid.org/0000-0002-7356-1779
    affiliation: "Semanticly Ltd"
    email: nicolas.matentzoglu@gmail.com
  - family-names: Mungall
    given-names: Chris
    orcid: https://orcid.org/0000-0002-6601-2165
    affiliation: "Lawrence Berkeley National Laboratory (LBNL)"
  - family-names: "Goutte-Gattat"
    given-names: Damien
    orcid: https://orcid.org/0000-0002-6095-8718
    affiliation: "FlyBase"
title: Ontology Development Kit
version: 1.2.31
date-released: 2022-06-21
doi: 10.5281/zenodo.4662066
repository-code: https://github.com/INCATools/ontology-development-kit
url: https://hub.docker.com/r/obolibrary/odkfull
license: BSD-3-Clause
preferred-citation:
  authors:
    - family-names: Matentzoglu
      given-names: Nicolas
      affiliation: Semanticly, Ltd
    - family-names: Goutte-Gattat
      given-names: Damien
      orcid: https://orcid.org/0000-0002-6095-8718
      affiliation: Department of Physiology, Development and Neuroscience, University of Cambridge
    - family-names: Tan
      given-names: Shawn Zheng Kai
      orcid: https://orcid.org/0000-0001-7258-9596
      affiliation: European Bioinformatics Institute
    - family-names: Balhoff
      given-names: James P.
      orcid: https://orcid.org/0000-0002-8688-6599
      affiliation: RENCI, University of North Carolina
    - family-names: Carbon
      given-names: Seth
      affiliation: Berkeley Bioinformatics Open-source Projects, Lawrence Berkeley National Laboratory
    - family-names: Caron
      given-names: Anita R.
      affiliation: European Bioinformatics Institute
    - family-names: Duncan
      given-names: William D.
      orcid: https://orcid.org/0000-0001-9625-1899
      affiliation: Berkeley Bioinformatics Open-source Projects, Lawrence Berkeley National Laboratory
    - family-names: Flack
      given-names: Joe E.
      affiliation: School of Medicine, Johns Hopkins University
    - family-names: Haendel
      given-names: Melissa
      orcid: https://orcid.org/0000-0001-9114-8737
      affiliation: University of Colorado
    - family-names: Harris
      given-names: Nomi L.
      orcid: https://orcid.org/0000-0001-6315-3707
      affiliation: RENCI, University of North Carolina
    - family-names: Hogan
      given-names: William R.
      orcid: https://orcid.org/0000-0002-9881-1017
      affiliation: College of Medicine, University of Florida
    - family-names: Hoyt
      given-names: Charles Tapley
      orcid: https://orcid.org/0000-0003-4423-4370
      affiliation: Laboratory of Systems Pharmacology, Harvard Medical School
    - family-names: Jackson
      given-names: Rebecca C.
      orcid: https://orcid.org/0000-0003-4871-5569
      affiliation: Bend Informatics LLC
    - family-names: Kim
      given-names: HyeongSik
      affiliation: Robert Bosch LLC
    - family-names: Kir
      given-names: Huseyin
      affiliation: European Bioinformatics Institute
    - family-names: Pilgrim
      given-names: Clare
      orcid: https://orcid.org/0000-0002-1373-1705
      affiliation: Departement of Physiology, Development and Neuroscience, University of Cambridge
    - family-names: Stefancsik
      given-names: Ray
      affiliation: European Bioinformatics Institute
    - family-names: Robb
      given-names: Sofia MC
      affiliation: Stowers Institute for Medical Research
    - family-names: Toro
      given-names: Sabrina
      affiliation: University of Colorado
    - family-names: Vasilevsky
      given-names: Nicole A.
      affiliation: University of Colorado
    - family-names: Walls
      given-names: Ramona
      affiliation: Critical Path Institute
    - family-names: Mungall
      given-names: Christopher J.
      orcid: https://orcid.org/0000-0002-6601-2165
      affiliation: Berkeley Bioinformatics Open-source Projects, Lawrence Berkeley National Laboratory
    - family-names: Osumi-Sutherland
      given-names: David
      affiliation: European Bioinformatics Institute
  title: "The Ontology Development Kit: a toolkit for building, maintaining and standardizing biomedical ontologies"
  type: article
  journal: Database
  year: 2022
  month: 10
  volume: 2022
  start: baac087
  doi: 10.1093/database/baac087

GitHub Events

Total
  • Create event: 100
  • Release event: 3
  • Issues event: 185
  • Watch event: 38
  • Delete event: 96
  • Member event: 1
  • Issue comment event: 336
  • Push event: 257
  • Pull request review event: 241
  • Pull request review comment event: 175
  • Pull request event: 187
  • Fork event: 4
Last Year
  • Create event: 100
  • Release event: 3
  • Issues event: 185
  • Watch event: 38
  • Delete event: 96
  • Member event: 1
  • Issue comment event: 336
  • Push event: 257
  • Pull request review event: 241
  • Pull request review comment event: 175
  • Pull request event: 187
  • Fork event: 4

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 1,596
  • Total Committers: 39
  • Avg Commits per committer: 40.923
  • Development Distribution Score (DDS): 0.453
Past Year
  • Commits: 218
  • Committers: 5
  • Avg Commits per committer: 43.6
  • Development Distribution Score (DDS): 0.193
Top Committers
Name Email Commits
Nico Matentzoglu n****u@g****m 873
Damien Goutte-Gattat d****4@c****k 361
cmungall c****m@b****g 149
Anita Caron a****c@e****k 34
Shawn Tan 7****k 30
Jim Balhoff j****m@b****g 23
dosumis d****s@g****m 23
Anita Caron a****n 14
Nicole Vasilevsky v****s@o****u 10
Philip Strömert P****t@t****u 8
Unknown Name y****u@o****m 7
Harshad Hegde h****b@g****m 6
Eric Douglass e****s@l****v 5
hkir-dev h****r@y****m 5
obophenotype o****d@e****g 4
Charles Tapley Hoyt c****t@g****m 4
Martin Larralde m****e@e****r 4
Emily Hartley e****y@c****g 3
Pablo Moreno p****2 3
Pier Luigi Buttigieg p****g@g****m 3
Joe Flack j****4@g****m 3
bjonnh b****h 2
github-actions[bot] 4****] 2
Marie-Angélique Laporte m****e@g****m 2
marijane white w****r@o****u 2
Bill Duncan w****n 2
James Stevenson j****n@n****g 2
kltm g****m@g****t 1
Sofia Robb s****1@g****m 1
Nomi Harris n****s 1
and 9 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 174
  • Total pull requests: 187
  • Average time to close issues: over 1 year
  • Average time to close pull requests: 18 days
  • Total issue authors: 30
  • Total pull request authors: 11
  • Average comments per issue: 3.28
  • Average comments per pull request: 0.77
  • Merged pull requests: 143
  • Bot issues: 0
  • Bot pull requests: 38
Past Year
  • Issues: 52
  • Pull requests: 86
  • Average time to close issues: 16 days
  • Average time to close pull requests: 4 days
  • Issue authors: 12
  • Pull request authors: 5
  • Average comments per issue: 1.79
  • Average comments per pull request: 0.41
  • Merged pull requests: 62
  • Bot issues: 0
  • Bot pull requests: 3
Top Authors
Issue Authors
  • matentzn (73)
  • gouttegd (52)
  • cmungall (18)
  • anitacaron (7)
  • joeflack4 (4)
  • StroemPhi (4)
  • fathoni (3)
  • jseager7 (2)
  • jamesaoverton (2)
  • ptgolden (2)
  • ddooley (2)
  • LilyAndres (2)
  • flckv (1)
  • dvklopfenstein (1)
  • wdduncan (1)
Pull Request Authors
  • gouttegd (146)
  • github-actions[bot] (72)
  • matentzn (66)
  • anitacaron (12)
  • joeflack4 (2)
  • jsstevenson (2)
  • shawntanzk (2)
  • balhoff (2)
  • cthoyt (1)
  • cmungall (1)
  • turbomam (1)
Top Labels
Issue Labels
enhancement (27) bug (21) documentation (11) needs discussion (5) wishlist (4) priority (4) minor (2) needs-volunteer (2) needs volunteer (1) help wanted (1) random musing (1) question (1) community (1) icebox (1) potential 1.6 (1)
Pull Request Labels
hotfix (6) dev (2) bug (2) documentation (2) enhancement (2) cpath (1)

Dependencies

.github/workflows/build-and-test.yml actions
  • actions/checkout v3 composite
.github/workflows/build-multiarch.yml actions
  • actions/checkout v3 composite
  • docker/login-action v1 composite
  • docker/setup-qemu-action v1 composite
.github/workflows/constraints.yml actions
  • actions/checkout v3 composite
  • peter-evans/create-pull-request v3 composite
.github/workflows/docs.yml actions
  • actions/checkout v3 composite
  • mhausenblas/mkdocs-deploy-gh-pages master composite
Dockerfile docker
  • obolibrary/odklite ${ODKLITE_TAG} build
docker/builder/Dockerfile docker
  • ubuntu 22.04 build
docker/odklite/Dockerfile docker
  • ubuntu 22.04 build
docker/robot/Dockerfile docker
  • ubuntu 22.04 build