GithubHelp home page GithubHelp logo

thejacksonlaboratory / loinc2hpoannotation Goto Github PK

View Code? Open in Web Editor NEW
24.0 7.0 11.0 1.4 MB

loinc2hpo Annotation Data

Home Page: https://github.com/monarch-initiative/loinc2hpo

License: Other

Python 100.00%
loinc hpo monarchinitiative loinc2hpo

loinc2hpoannotation's Introduction

loinc2hpoAnnotation

The repository contains the annotation data for the LOINC2HPO project.

Laboratory tests are uniquely identified in electronic healthcare records (EHR) with Laboratory Observation Identifier Names and Codes (LOINC), which is a universal code system that defines various kinds of clinical laboratory tests and other measurements. The outcome of a laboratory test can be represented by a term in the Human Phenotype Ontology (HPO), which is a logically defined vocabulary for describing medically relevant abnormal phenotypes.

LOINC-coded laboratory tests can be grouped broadly into three categories, those with a quantitative outcome (Qn), an ordered categorical outcome (ordinal, or Ord) and an unordered categorical outcome (nominal, or Nom).

Quantitative tests

A quantitative test for an analyte has a normal range, and there are three types of mappings depending on the result of the test: L (lower than normal), N (normal), and H (higher than normal). Take, for instance, a test for the concentration of potassium in the blood (LOINC:6298-4). If the result is high, our procedure infers the corresponding HPO term for Hyperkalemia, HP:0002153. Analogously, a low result is mapped to Hypokalemia, HP:0002900. The HPO is an ontology of abnormal phenotypes, and thus there is no term that specifically represents a normal test result. However, computational analysis can record negated HPO terms, and the normal test result is represented as NOT Abnormal blood potassium concentration, HP:0011042.

Ordinal tests

Ordinal tests can have a series of ordered outcomes. The majority of the ordinal LOINC tests were mapped to two possible outcomes, POS (positive) or NEG (negative). For instance, the result of the test Nitrite in urine by test strip can be positive (present) or negative (absent). If present, then our approach infers the HPO term Nitrituria, HP:0031812; if absent, our approach infers NOT Nitrituria, HP:0031812.

Nominal tests

Nominal tests have a series of outcomes that lack a natural ordering. Yet, some nominal result values are considered abnormal. For instance, LOINC 5778-6, color of urine. Currently, nine abnormal results of this test are mapped to the nine child terms of Abnormal urinary color, HP:0012086, including Red urine, HP:0040318 and Dark urine, HP:0040319.

Annotations

This repository contains the annotation file for the LOINC2HPO resource. It can be used with software such as the loinc2hpo Java library. We have curated the file using a Desktop Java application called loinc2hpoMiner; this app is not needed to use the annotations for applications.

This is the format (version 2, from November 2021 onwards) annotations are contained in a file called loinc2hpo-annotations.tsv. The file has the following fields.

Column Explanation
loincId LOINC ID
loincScale Qn, Ord, or Nom
outcome test outcome
hpoTermId e.g.,HP:0031812
supplementalTermId see above
curation biocuration
comment (optional)

supplementalTermId

We need to have one additional field for the situation where there is a test for bacteremia and the test result can be any bacterium. Here, it would be good to allow software to annotate with an additional field. To guide the software, we want to say what type of entity it could be. For instance

Bacteremia HP:0031864, NCBI Bacteria, NCBI:txid2 https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=2&lvl=3&lin=f&keep=1&srchmode=1&unlock similarly Viruses, NCBI:txid10239 https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=10239&lvl=3&lin=f&keep=1&srchmode=1&unlock

For example, we would put NCBI:txid2 into the supplement column (see below)

loinc2hpoannotation's People

Contributors

callahantiff avatar jpgourdine avatar kingmanzhang avatar lccarmody avatar nicolevasilevsky avatar pnrobinson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

loinc2hpoannotation's Issues

clusters of LOINC tests

Many LOINC tests are about the same medical problem. If we each focus on a couple and read relevant literature thoroughly, we will be able to annotate more efficiently. I suggest each (or two) of us pick a couple topics and address all related LOINC tests (using "search" to get all related LOINC tests).

  • transferrin/ion: iron,iron binding capacity, transferrin free, transferrin capacity, transferrin saturation (search with "iron" or "transferrin" to get all LOINC tests to annotate) ...
  • blood cells in urine: leukocytes in urine, erythrocyte in urine, basophil in urine ...
  • immune cell types in blood: search with "CD cell"
  • coagulation assays: PT, PTT, INR, various factors ...
  • blood acidity: lactate, base, bicarbonate, pH, etc.
  • Endocrine gland hormones: T3, T4, cortisol, testosterone, prolactin, insulin/proinsulin/C peptide
  • urinalysis of compounds: bilirubin (all forms) in urine

to continue...

viral infection

There are many tests on viral antigen or presence of anti-viral antibodies. Do we want to create term for each? We could map all such tests to Severe viral infection for now and create HPO terms in future.
e.g.
HSV IgM Ab in serum
HBV core Ag
HBV surface Ag
HSV 1 Ag
...

peptide releasing experiments

For stimulated peptide release experiments, such as C peptide release upon glucose stimulation, @pnrobinson you annotated all of them to "Abnormal C peptide level". Is this really what we want to annotate? I think they are testing beta cell function. There are other similar tests, such as prolactin secretion upon stimulation, Thyroxine release upon stimulation etc that will follow the same logic.

International Normalized Ratio (INR) in platelet poor plasma by coagulation assay (LOINC: 6301-6)

This LOINC code is currently annotated to HP:0003540 (impaired platelet aggregation). This HPO concept is defined as "An impairment in the rate and degree to which platelets aggregate after the addition of an agonist that stimulates platelet clumping. Platelet aggregation is measured using aggregometer to measure the optical density of platelet-rich plasma, whereby platelet aggregation causes the plasma to become more transparent."

If the LOINC term is defined as a test in "platelet poor plasma", but the HPO term is referencing "platelet-rich plasma", perhaps this is an incorrect annotation?

Reverse of presence / absence

Noticed this LOINC test:
27088-4 Folate [Presence] in Blood
Normally folate should be present as it is an essential nutrient. Low folate is called "Folate deficiency" in HPO. So in this case,
positive = Normal
negative = Abnormal
(opposite to most Ord tests)
This might not affect anything we did, but just want to remind you this fact.
@pnrobinson @aeyates

group annotations together

@kingmanzhang would it be possible to create a functionality where you could annotate multiple LOINC codes at once? For example, there are a bunch of glucose measurements in urine (or blood) at various time points. I pasted a screenshot below. It would be nice if we could annotate these in bulk, rather than one at a time.

image

Bacteremia

We can add this Loinc annotation, new HPO term:
HP_0031864

question about LOINC code CD4+CD25+ cells in blood

There are a couple codes:
CD4+CD25+ cells/100 in blood
CD4+CD25+ cells [#volume] in blood

There is the class HP_0030335 'Abnormal CD4-positive, CD25-positive, alpha-beta regulatory T cell count'

but I remember colleagues in graduate school saying that you couldn't call a CD4+CD25+ cell a Treg unless you had also demonstrated it was functionality as well, ie, these markers are not enough.

Should I request a NTR for abnormal CD4+CD25+ T cell count (and that can be a parent class)?

Tomato IgE Ab [Units/volume] in Serum (6266-1)

This LOINC code has been annotated to HP:0410238 (Increased anti-plant product IgE antibody level). This concept is defined as "Increased level of IgE antibody against antigens from plants and products derived from plants, such as wood or pollen."

Should it instead be annotated to HP:0410228 (Increased anti-plant based food allergen IgE antibody level)?

pH in urine by test strip

Hi Aaron @kingmanzhang I am not sure for the term "pH in urine by test strip" (5803-2) if it is equivalent to impaired urinary acidification. I was not able to flag it or to suggest a term anymore. I annotated with impaired urinary acidification.
Also, there is another "pH in the urine by automated test strip" (50560-2). Are they the same or different ones ?
Thanks

2502-3: Iron saturation [Mass Fraction] in Serum or Plasma

This LOINC term is annotated to HP:0040303 (Decreased serum iron). The test is measuring iron saturation, which is different than than a test which measures serum iron (e.g. LOINC 2498-4).

I may be interpreting this incorrectly, but serum iron and iron saturation appear to be two separate types of tests, although they are both used for making certain diagnoses. If you agree, I think a concept related to transferrin saturation may be more fitting?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.