loinc / comp-loinc

Computational LOINC in OWL.
MIT License
13 stars 4 forks source link

Grouping: Align CompLOINC with OBA #37

Open matentzn opened 1 year ago

matentzn commented 1 year ago

Objective

Integrating the clinical laboratory data with clinical phenotypes to enable effective data aggregation and search.

Context

@mellybelly requested a strategy on how to integrate comp-loinc with HPO. This is how this could be done. Note that we can probably validate the approach against the manual LOINC2HPO mappings that have been developed in the last years.

Key results

Approach

  1. Match the decomposed terms provided by comp-loinc (anatomical systems, chemical entities) to their respective OBO reference ontologies using OAK lexmatch.
  2. Map LOINC codes to OBA codes through the component mappings. Where an OBA trait does not exist, create one.
  3. Maintain the LOINC - OBA mapping as an SSSOM file in the OBA mapping registry
  4. Develop a python toolkit based on OAK which
    1. Reads OBA and HPO (or alternatively, uPheno 2 or even PHENIO!)
    2. Reads the LOINC to OBA mapping
    3. Implements a o.getRelatedPhenotypeIDs(‘LOINC21’, sources=[‘HP’, ‘uPheno’])

Sub-tasks

cmungall commented 1 year ago

Example of how to do the alignment at the end of the notebook here: https://github.com/INCATools/ontology-access-kit/blob/main/notebooks/Clinical/COMPLoinc-Example.ipynb

matentzn commented 1 year ago

@putmantime: CHEBI - LOINC mapping exists.

Related

matentzn commented 1 year ago

@turbomam

Can you perhaps add your thoughts to this issue, you seem to know a lot about this!

turbomam commented 1 year ago

Chris Stoeckert and I wrote a data-driven OBI-materializer for laboratory records in the University Of Pennsylvania Health Systems EHR. It was written in R and the NLP-like parts were much less sophisticated than @cmungall's OAK illustrations. I'm not sure how well I isolated the access of EHR records from the mapping process.

It put top priority on modeling chemical-in-bodily fluid assays that appeared with some minimal frequency in the EHR. There was no attempt to achieve any particular coverage target.

The output of our pipeline was a ROBOT template.

I think @putmantime is doing a great job with his LinkML and OWL modeling of LOINC content, technically and organizationally. Chris S and I could have gone much further in our efforts. There were a few reasons that we paused the effort, including Regenstrief's discomfort with our equivalence axioms between LOINC terms (not components) and OBI classes.

I see Monarch contributors on HPO/FHIR/LOINC papers like https://pubmed.ncbi.nlm.nih.gov/31119199/, so I assume you have a much better understanding of that work than I do. I have never personally used OBA either.

Your proposal and @cmungall's illustrations look great to me. I would just try to reuse as much existing work as possible and do some due diligence to make sure you're not violating Regenstrief's terms. Glad to talk more if necessary.

joeflack4 commented 3 months ago

Just copy/pasting some analysis from slack, an analysis of the supplementary part model (LoincPartLink_Supplementary.csv).

Is “analyte” in the detailed model always fully decomposed into “analyte-core” and “analyte-suffix”, or are there other combinations on the analyte is decomposed?

Unique combinations of decomposed analyte properties (patterns) Looking at given LOINC terms and their analyte parts.

1
http://loinc.org/property/analyte-core

2
http://loinc.org/property/analyte
http://loinc.org/property/analyte-core

3
http://loinc.org/property/analyte-core
http://loinc.org/property/analyte-suffix

4
http://loinc.org/property/analyte
http://loinc.org/property/analyte-core
http://loinc.org/property/analyte-divisor

5
http://loinc.org/property/analyte
http://loinc.org/property/analyte-core
http://loinc.org/property/analyte-suffix

6
http://loinc.org/property/analyte
http://loinc.org/property/analyte-core
http://loinc.org/property/analyte-gene

7
http://loinc.org/property/analyte
http://loinc.org/property/analyte-core
http://loinc.org/property/analyte-gene
http://loinc.org/property/analyte-suffix

8
http://loinc.org/property/analyte
http://loinc.org/property/analyte-core
http://loinc.org/property/analyte-divisor
http://loinc.org/property/analyte-gene

9
http://loinc.org/property/analyte
http://loinc.org/property/analyte-core
http://loinc.org/property/analyte-divisor
http://loinc.org/property/analyte-divisor-suffix

10
http://loinc.org/property/analyte
http://loinc.org/property/analyte-core
http://loinc.org/property/analyte-divisor
http://loinc.org/property/analyte-numerator
http://loinc.org/property/analyte-suffix

11
http://loinc.org/property/analyte
http://loinc.org/property/analyte-core
http://loinc.org/property/analyte-divisor-suffix
http://loinc.org/property/analyte-numerator
http://loinc.org/property/analyte-suffix

12
http://loinc.org/property/analyte
http://loinc.org/property/analyte-core
http://loinc.org/property/analyte-divisor
http://loinc.org/property/analyte-divisor-suffix
http://loinc.org/property/analyte-numerator
http://loinc.org/property/analyte-suffix

13
http://loinc.org/property/analyte
http://loinc.org/property/analyte-core
http://loinc.org/property/analyte-divisor
http://loinc.org/property/analyte-gene
http://loinc.org/property/analyte-numerator
http://loinc.org/property/analyte-suffix
List of unique Property and their associated LinkTypeName Property LinkTypeName
http://loinc.org/property/METHOD_TYP DetailedModel
http://loinc.org/property/PROPERTY DetailedModel
http://loinc.org/property/SCALE_TYP DetailedModel
http://loinc.org/property/adjustment DetailedModel
http://loinc.org/property/analyte DetailedModel
http://loinc.org/property/challenge DetailedModel
http://loinc.org/property/count DetailedModel
http://loinc.org/property/super-system DetailedModel
http://loinc.org/property/system-core DetailedModel
http://loinc.org/property/time-core DetailedModel
http://loinc.org/property/time-modifier DetailedModel
http://loinc.org/property/CLASS Metadata
http://loinc.org/property/category Metadata
http://loinc.org/property/search Search
http://loinc.org/property/analyte-gene SemanticEnhancement
http://loinc.org/property/analyte-core SyntaxEnhancement
http://loinc.org/property/analyte-divisor SyntaxEnhancement
http://loinc.org/property/analyte-divisor-suffix SyntaxEnhancement
http://loinc.org/property/analyte-numerator SyntaxEnhancement
http://loinc.org/property/analyte-suffix SyntaxEnhancement