Skip to content
Andrew Su edited this page Sep 13, 2023 · 23 revisions

Back to Home

Description

Node normalization takes a CURIE, and returns:

  • The preferred CURIE for this entity
  • All other known equivalent identifiers for the entity
  • Semantic types for the entity as defined by the Biolink Model

The data currently served by Node Normalization is created by the prototype project Babel, which attempts to find identifier equivalences, and makes sure that CURIE prefixes are BioLink Model compliant. The NodeNormalization service, however, is independent of Babel and as improved identifier equivalence tools are developed, their results can be easily incorporated.

Usage

Basic Usage

The Node Normalizer contains both TRAPI and non-TRAPI interfaces. The simplest usage is to send a curie (or a list of curies to the /get_normalized_nodes endpoint. There are both GET and POST versions of this function (Note the use of the version number in the path. This version will change over time. The current version, as of Sep 2023, is 1.3).

CURL Example:

curl -X 'GET' \
  'https://nodenormalization-sri.renci.org/1.3/get_normalized_nodes?curie=MESH%3AD014867' \                    
  -H 'accept: application/json'

Response:

{"MESH:D014867":
  {"id":
    {"identifier":"PUBCHEM.COMPOUND:22247451","label":"Hydron;hydroxide"},
     "equivalent_identifiers":[
      {"identifier":"PUBCHEM.COMPOUND:22247451","label":"Hydron;hydroxide"},
      {"identifier":"PUBCHEM.COMPOUND:962","label":"Water"},
      {"identifier":"CHEMBL.COMPOUND:CHEMBL1098659","label":"WATER"},
      {"identifier":"UNII:059QF0KO0R"},
      {"identifier":"CHEBI:15377","label":"water"},
      {"identifier":"DRUGBANK:DB09145"},
      {"identifier":"MESH:D014867","label":"Water"},
      {"identifier":"HMDB:HMDB0002111"},
      {"identifier":"KEGG.COMPOUND:C00001","label":"H2O"},
      {"identifier":"INCHIKEY:IKBQPNVYXHKVJS-LVZFUZTISA-N"}],
    "type":["biolink:ChemicalSubstance",
            "biolink:Entity", 
            "biolink:NamedThing",
            "biolink:BiologicalEntity",
            "biolink:MolecularEntity"]
  }
}

Further Usage Documentation

For examples of service usage, see the example notebook.

Deployment

Nodenormalizer runs as a pair of docker containers, one running a redis-server, and one running the webserver. Details for standing up these docker containers, loading them with data, and deploying them is found at the README file on the github repository

Issues

For reporting or reviewing issues related to Node Normalization, visit the Github Issues.

Links

External Documentation

Github README

Clone this wiki locally