x-atlas-consortia / hs-ontology-api

Ontology API built on top of the UBKG API and shared by HuBMAP and SenNet projects
1 stars 0 forks source link

Enhance organs endpoint to support polyhierarchical organization of organs #130

Open AlanSimmons opened 2 months ago

AlanSimmons commented 2 months ago

Statement of problem

Data are often associated with organs at a high level of specificity--e.g., with the left lung. It should be possible to organize data by organ hierarchically. In addition, the hierarchy will vary based on use case.

Known use cases

HuBMAP:

Background

The UBKG encodes organs using codes from HuBMAP and SenNet. The HuBMAP and SenNet codes are cross-referenced to codes from UBERON and FMA. For example, "Lung (Left)" has code HUBMAP:C030066, which is cross-referenced to UBERON:0002168.

Because the UBKG contains codes and relationships from both UBERON and FMA, it is possible to use existing anatomical hierarchies to categorize organs. For example, in UBERON, "Left Lung" (UBERON:0002168) is a "Lung" (UBERON:0002048).

Solution Architecture

It is already possible to exploit existing UBERON and FMA relationships to organize organs, at least with respect to laterality. At a minimum, the existing organs endpoint can be enhanced to show the immediate "parent" for each designated organ--e.g., the "parent" for Left Lung is Lung.

It may be necessary to curate one or more hierarchies with explicit relationships between anatomical concepts. This would be possible by means of custom ETLs of essentially mini-ontologies. If this is the case, then the organs endpoint could be parameterized to select a specific hierarchy.

AlanSimmons commented 2 months ago

Update: changes to UBKG

The UBKG now has:

The full set of Organ Categories includes:

Each Organ Category has a cross-reference to an UBERON code. The UBERON codes for all Organ Categories except for Tonsil come from the HuBMAP Organs page.

Example

Lung (organ with laterality)

AlanSimmons commented 2 months ago

Update: change to organs endpoint

The endpoint now returns two new values:

e.g. Image

AlanSimmons commented 2 months ago

Waiting for Oct 10 thaw of environment freeze related to HuBMAP Hackathon.