No problem, glad you got it working and glad to hear someone is trying it out. Tim
On 01/29/2016 01:35 PM, Geise, Brandon D. wrote: > Sorry for the trouble. I rebuilt the graph database and it seems to pass the > Junit test now. > > -----Original Message----- > From: Miller, Timothy [mailto:[email protected]] > Sent: Friday, January 29, 2016 1:16 PM > To: [email protected] > Subject: Re: umls graph api > > I don't have 2015AA downloaded but I'll try to get it and see if I can > reproduce. Before the test fails, do you see output from the other tests > like: > > Ancestor (hypernym) is: C1304819 > Ancestor (hypernym) is: C0346629 > Ancestor (hypernym) is: C0009375 > Ancestor (hypernym) is: C0009373 > Ancestor (hypernym) is: C0006826 > ... (many more lines like this) > > If so, it could be that it is indexing correctly but my test is 2015AB > specific somehow. > > Tim > > > On 01/29/2016 01:12 PM, Geise, Brandon D. wrote: >> java.lang.AssertionError >> at org.junit.Assert.fail(Assert.java:92) >> at org.junit.Assert.assertTrue(Assert.java:43) >> at org.junit.Assert.assertTrue(Assert.java:54) >> at TestGraphFunctions.testHypernyms(TestGraphFunctions.java:38) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >> at java.lang.reflect.Method.invoke(Unknown Source) >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) >> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:300) >> at >> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) >> at >> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) >> at >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTest >> Runner.java:192) >> >> -----Original Message----- >> From: Miller, Timothy [mailto:[email protected]] >> Sent: Friday, January 29, 2016 1:09 PM >> To: [email protected] >> Subject: Re: umls graph api >> >> I was using 2015AB. Can you copy/paste the error trace that junit gives you? >> Thanks >> Tim >> >> >> On 01/29/2016 01:04 PM, Geise, Brandon D. wrote: >>> 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://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_tmill >>> s_umls-2Dgraph-2Dapi&d=BQIFAg&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCo >>> ppxeFU&r=Heup-IbsIg9Q1TPOylpP9FE4GTK-OqdTDRRNQXipowRLRjx0ibQrHEo8uYx6 >>> 674h&m=VF6tEMHRXUuomFk3Rma04eOozJC4amQHvm7PfAsXqvw&s=J_kg_cPwEhOWJIDI >>> 06-lORddJf83jmbb_I-MwkC_3Zg&e= >>> >>> 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. >>> >> > >
