reality / klarigi

Klarigi produces characteristic explanations for semantic data.
6 stars 0 forks source link

Unable to execute klarigi #1

Open NuriaQueralt opened 2 years ago

NuriaQueralt commented 2 years ago

Hi!

I read your preprint and I was trying to play with klarigi, but I cannot run it due to some errors that arise. I tried two different ways:

1 GitHub

I cloned your repo, and executed:

groovy klarigi/src/main/groovy/klarigi/Klarigi.groovy --data data/eg_data.tsv --ontology ontology/hp.owl  --group OMIM:604271

and got the error:

WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/usr/share/groovy/lib/groovy-2.4.17.jar) to method java.lang.Object.finalize() WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: /home/nur/workspace/klarigi/klarigi/src/main/groovy/klarigi/Klarigi.groovy: 17: unable to resolve class org.apache.log4j.Level @ line 17, column 1. import org.apache.log4j.Level; ^

/home/nur/workspace/klarigi/klarigi/src/main/groovy/klarigi/Klarigi.groovy: 18: unable to resolve class org.apache.log4j.Logger @ line 18, column 1. import org.apache.log4j.Logger; ^

/home/nur/workspace/klarigi/klarigi/src/main/groovy/klarigi/Klarigi.groovy: 19: unable to resolve class org.apache.log4j.LogManager @ line 19, column 1. import org.apache.log4j.LogManager; ^

/home/nur/workspace/klarigi/klarigi/src/main/groovy/klarigi/Klarigi.groovy: 50: unable to resolve class Scorer @ line 50, column 19. this.scorer = new Scorer(ontoHelper, coefficients, data, excludeClasses, threads) ^ and continues to 11 errors in total.

2 Tutorial on colab

I downloaded and executed klarigi like:

mkdir tutorial | cd tutorial
!wget https://lokero.xyz/klarigi-0.0.12-SNAPSHOT.tar
!tar -xvf klarigi-0.0.12-SNAPSHOT.tar
!mv klarigi-0.0.12-SNAPSHOT klarigi

./klarigi/bin/klarigi --data ../data/eg_data.tsv --ontolohy ../ontology/hp.owl --group OMIM:604271

and got the error:

Exception in thread "main" groovy.lang.GroovyRuntimeException: Could not find matching constructor for: java.io.File(Boolean) at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1845) at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1615) at org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite.callConstructor(MetaClassConstructorSite.java:46) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:263) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277) at klarigi.Klarigi.loadOntology(Klarigi.groovy:129) at klarigi.Klarigi$loadOntology$0.callCurrent(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185) at klarigi.Klarigi.(Klarigi.groovy:36) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:72) at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:263) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:277) at klarigi.App.main(App.groovy:82)

I presume that I am missing some Groovy configuration since I usually don't code/execute scripts in Groovy. Could you shed light on this?

Thank you very much! Kind regards, Núria

reality commented 2 years ago

Hi,

Sorry you had trouble running the program. Currently, the error reporting is not very good at all - I am working to improve that.

Issue 1:

Klarigi requires a compiled version to use. The easiest way to do that is to download the latest release here: https://github.com/reality/klarigi/releases/tag/0.0.12 and run that (in a similar way to that described in your part two, and in the colab notebooks)

(( there is also this release https://github.com/reality/klarigi/releases/tag/0.0.13-SNAPSHOT-2 , which has improved metrics/permutation testing etc, but is less stable, and new features aren't all yet documented. I plan on finishing the 0.0.13 full release very soon to co-incide with final submission of the paper/update of preprint/documentation ))

Issue 2:

It looks like you mistyped the '--ontology' argument, so the command should be

./klarigi/bin/klarigi --data ../data/eg_data.tsv --ontology ../ontology/hp.owl --group OMIM:604271

It complains about a 'false' value being passed to java File because there is no '--ontology' argument, which it needs to execute the program. It should check the necessary arguments and give a helpful message, not just try to run with no value... I will keep this issue open so that I remember to fix the parameter checking before the release of the next version

Hope that helps!