Very cool.

I started going through your instructions.  Everything seemed to be working 
except for the GraphFunction Junit test fails on the first assertion.  I'm 
using 2015AA and it doesn't appear that the isa relationship holds true, unless 
I messed something up.  What UMLS version did you test with?

Thanks,
Brandon

-----Original Message-----
From: Miller, Timothy [mailto:[email protected]] 
Sent: Tuesday, January 26, 2016 2:59 PM
To: [email protected]
Subject: umls graph api

I've been working on some code for easy querying of the UMLS relation graph 
that I think might be useful in ctakes. The repo is here:
https://github.com/tmills/umls-graph-api

If you point it at your umls download you can build the db in about 5 minutes 
(45 MB). Then the API has a class GraphFunctions with the following methods:

  public static List<String> getHypernyms(String cui);
  public static List<String> getHyponyms(String cui);
  public static boolean isa(String cui1, String cui2);

These make use of just the "isa" relation in the MRREL file, and could tell 
you, for example, that

isa("C0007102",  "C3662248") is true (colon cancer is a finding) but that 
isa("C3662248", "C0007102") is not true.

If people find it useful enough we may wish to add it to ctakes and perhaps we 
could redistribute this view of the UMLS subject to the same username checking 
we do now for the dictionary. We may wish to include other relations and 
ontologies as well -- right now just SNOMED. But this is the skeleton and I 
think with this starting point adding new capabilities will be pretty easy.

Tim



IMPORTANT WARNING: The information in this message (and the documents attached 
to it, if any) is confidential and may be legally privileged. It is intended 
solely for the addressee. Access to this message by anyone else is 
unauthorized. If you are not the intended recipient, any disclosure, copying, 
distribution or any action taken, or omitted to be taken, in reliance on it is 
prohibited and may be unlawful. If you have received this message in error, 
please delete all electronic copies of this message (and the documents attached 
to it, if any), destroy any hard copies you may have created and notify me 
immediately by replying to this email. Thank you.

Geisinger Health System utilizes an encryption process to safeguard Protected 
Health Information and other confidential data contained in external e-mail 
messages. If email is encrypted, the recipient will receive an e-mail 
instructing them to sign on to the Geisinger Health System Secure E-mail 
Message Center to retrieve the encrypted e-mail.

Reply via email to