Rephetio: Repurposing drugs on a hetnet [rephetio]

Retrieving the ingredients in RxNorm concepts

We would like to convert from RxNorm medications to their ingredients. RxNorm is an ontology, with terms connected by relationship types, which can be traversed to map ingredients. This is necessary to map RxNorm medications to DrugBank, enabling network inclusion. Additionally, we need to know when medications map to multiple ingredients as we are excluding combination therapies for the time being. Once the mapping is complete, we can proceed with integrating the ehrlink resource. This discussion will follow our attempts to map concepts to ingredients.

RxNorm term types

RxNorm concepts each have a specified term type (TTY). RxNorm documentation is oftentimes difficult to navigate, so we provide definitions for all term types below. The descriptions are from [1], while definitions were found here.

BNbrand name
BPCKbranded pack
DFdose form
DFGdose form group
GPCKgeneric pack
INingredientThe term type (TTY) indicating that this name is that of the substance represented in an RxNorm name responsible for the medicinal activity. Also, the name and the substance.
MINmultiple ingredientsThe TTY indicating that this name is that of the ingredients of a combination product represented in an RxNorm name, where those ingredients are responsible for the medicinal activity. Also, the name and the substances.
PINprecise ingredientThe TTY indicating that this name is that of the substance, expressed more precisely as a salt or ester of the ingredient, represented in an RxNorm name. Also, the name and the substance expressed precisely.
SBDbranded drugThe TTY indicating that this name is the normalized name created for a branded clinical drug. The name consists of ingredient, strength, and dose form, followed by a brand name in square brackets. Also, the name and the product.
SBDCbranded drug component
SBDFbranded dose form
SBDGbranded dose form group
SCDclinical drug
SCDCclinical drug component
SCDFclinical dose form
SCDGclinical dose form group

RxNorm API method

We found a method to retrieve ingredients using the allrelated RxNorm API command. An example query for rxcui 198440 looks like:

Ingredients can be extracted from the returned xml with the following XPath query:


We wrote a python script to perform this operation on the ehrlink [1] RxNorm medications mapped by @alizee. The resulting ingredient map is available for download.

To go further on resolving ambiguities when retrieving concepts, I had to look up abbreviations of the TTY too. I had seen the very useful link you mention above from the RxNav documentation, but I finally used the more general ressource that is the MetaThesaurus of UMLS. This page lists all the abbreviations used in the Rx system.

I extracted from this page the table with all the TTY abbreviations into a reusable csv file. It could be useful down the road to other people.

  • Daniel Himmelstein: Looks like this is all term type definitions across the entire UMLS.

  • Antoine Lizee: Correct - that is why I thought it could be a useful ressource to share.

Status: Completed
  resource   data integration
Referenced by
Cite this as
Daniel Himmelstein, Antoine Lizee (2015) Retrieving the ingredients in RxNorm concepts. Thinklab. doi:10.15363/thinklab.d61

Creative Commons License