INCATools / table-editor

Lightweight CSV/TSV editor that supports autocomplete and is guided by a DOSDP-aware YAML configuration.
4 stars 2 forks source link
monarchinitiative

INCA table-editor: Ontology development for mere mortals

NOTE: This project is no longer supported. Consider using http://genepio.org/DataHarmonizer/main.html instead

Purpose

The INCA table editor enables biomedical curators to create new ontology term requests compositionally from a configurable set of existing ontologies and terminologies and within a familiar spreadsheet-like interface. Because directly editing ontology owl files requires considerable training (not to mention patience and QC), spreadsheet-based methods for term requests are not new; however, what INCA Table Editor provides a combination of three key innovations: configurable autocomplete, design-pattern driven logic, and (planned) GitHub integration. This democratizes and accelerates the term request process while also avoiding errors of logic right at the source. Each new term request is complete and logically valid, and is issued a generic IRI until such a time as it can be given an actual namespace and ID in an appropriate ontology.

example

The formal pattern-based approach we use is the Dead Simple Ontology Design Patterns (DOSDP) published here (PMC5460348). The patterns are written in YAML. An example is here.

Using a different INCA configuration, the DOSDP can also be leveraged for instance-level annotations, such as between diseases and phenotypes, or genes and phenotypes, or a patient and phenotypes. This kind of annotation use case is sometimes called "A-box"; where as the terminology use case above is sometimes called "T-box".

Live demo site

A live demo of the site can be seen at https://incatools.github.io/table-editor/; try out the beer example yourself (for other design patterns you will need to deploy it per instructions below). We welcome feedback at https://github.com/INCATools/table-editor/issues.

Alt Text

Deployment

This lightweight web application is intended to be deployed as a static single-page website, where the site can then be used to view and edit spreadsheet-formatted data while supporting autocomplete and selection from semantically associated ontologies and dictionaries.

Supported file types

Both TSV and CSV are supported, and are collectively referred to as "XSV" in the software and documentation.

The initial specification for this table-editor is drawn from https://github.com/INCATools/intelligent-concept-assistant/issues/2

Current Limitations

Usage

Examples

The app has a few preloaded examples of YAML and CSV.

Load File or Drag-and-Drop

A local XSV file can be viewed through the app by using the 'Load File' button or by dragging and dropping a file onto the dropzone

Load URL

A remote XSV file can be loaded via URL.

Note that if the remote file is hosted on a website that does not support CORS, then the request will be rejected. Such files can be copied locally and then viewed that way, however.

The url parameter

The table-editor app is designed so that the URL pointing to the app can be amended with an optional url parameter that points to a XSV file, subject to the same restrictions as Load URL above. For example, suppose this app is hosted on https://github.com/INCATools/table-editor and a desired Table file is hosted on http://www.example.com/MyTableFile.gv. Then the following URL will launch the table-editor app and cause it to load and render the specified file:

https://github.com/INCATools/table-editor?url=http://www.example.com/MyTableFile.gv

Planned improvements

Integrate with GitHub

Improve documentation

Save changes automatically

Improve support for annotation mode

Requirements to build

This is what I use, you may get lucky with slightly older/newer versions. Don't even bother trying Node 0.1x.

Requirements to run

Tested on MacOSX Safari, Chrome and FireFox. Requires some form of http-server. npm run dev will invoke the WebPack server for auto-bundling during development, and this is sufficient for demo purposes.

Building

cd table-editor/ # If you aren't alread there
npm install
npm run build    # 'npm run fastbuild' to avoid minification

Running

npm run dev
open http://localhost:8085/webpack-dev-server/table-editor # On MacOSX
# Alternatively, point your browser to:
#   http://localhost:8085/webpack-dev-server/table-editor
#

Sources

Primary use cases and evaluation

- Planteome's Plant Experimental Conditions Ontology: https://github.com/Planteome/plant-experimental-conditions-ontology
- Planteome's Plant Trait Ontology: https://github.com/Planteome/plant-trait-ontology
- Planteome's Ontology of Plant Stress: https://github.com/Planteome/ontology-of-plant-stress
- Environment Ontology, Exposures: https://github.com/EnvironmentOntology/environmental-exposure-ontology

Dependencies, Licenses, Credits

Funding