ome / omero-guide-orbit

BSD 2-Clause "Simplified" License
1 stars 3 forks source link

Binder #1

Closed jburel closed 4 years ago

jburel commented 4 years ago

Allow to run orbit headless in binder

cc @pwalczysko @dominikl

dominikl commented 4 years ago

When I run the last cell of the notebook I get

java.lang.UnsupportedClassVersionError: com/actelion/research/orbit/imageprovider/ImageProviderOmero has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
jburel commented 4 years ago

ok so the Java version needs to be reviewed

dominikl commented 4 years ago

I think it's good to merge. There's no orbit model on workshop server, so I get

java.lang.NullPointerException: Cannot invoke method getRawAnnotationId() on null object
    at this cell line 45

Unfortunately I can't create one, because can't log in with Orbit desktop. But I assume it'll work with a model attached to the image.

pwalczysko commented 4 years ago

@dominikl https://outreach.openmicroscopy.org/webclient/?show=image-10004 has an Orbit model now. Interestingly, we were always told that the model is not really pertaining to the image - although it was created on it. The philosophy here is that it kind of belongs to all similar images, or images which are going to be analyzed using that model in future. That is why it was an Annotation on the server only (not attached to an image)

dominikl commented 4 years ago

Thanks Petr. Unfortunately with this model I get:

Connected 
Found 1 files

java.lang.IllegalArgumentException: wrong number of arguments
    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 com.actelion.research.orbit.imageAnalysis.dal.DALConfig.<clinit>(DALConfig.java:79)
    at com.actelion.research.orbit.imageAnalysis.models.OrbitModel.LoadFromOrbit(OrbitModel.java:272)
    at com.actelion.research.orbit.imageAnalysis.models.OrbitModel$LoadFromOrbit.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
    at script1591110640067.run(script1591110640067:46)
    at com.twosigma.beakerx.groovy.evaluator.GroovyCodeRunner.runScript(GroovyCodeRunner.java:94)
    at com.twosigma.beakerx.groovy.evaluator.GroovyCodeRunner.call(GroovyCodeRunner.java:59)
    at com.twosigma.beakerx.groovy.evaluator.GroovyCodeRunner.call(GroovyCodeRunner.java:32)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.lang.Thread.run(Thread.java:834)

java.lang.NullPointerException
    at com.actelion.research.orbit.imageAnalysis.models.OrbitModel.LoadFromOrbit(OrbitModel.java:273)
    at com.actelion.research.orbit.imageAnalysis.models.OrbitModel$LoadFromOrbit.call(Unknown Source)
    at this cell line 46
    at com.twosigma.beakerx.groovy.evaluator.GroovyCodeRunner.runScript(GroovyCodeRunner.java:94)
    at com.twosigma.beakerx.groovy.evaluator.GroovyCodeRunner.call(GroovyCodeRunner.java:59)
    at com.twosigma.beakerx.groovy.evaluator.GroovyCodeRunner.call(GroovyCodeRunner.java:32)

Could it be the case that it was created with a different version of Orbit?

pwalczysko commented 4 years ago

Could it be the case that it was created with a different version of Orbit?

It was almost certainly created with a different version of Orbit (it was created in 2019, probably summer-late autumn). What version of Orbit is used here ? So the older models not work in newer Orbit versions ?

jburel commented 4 years ago

The latest version of orbit is installed i.e. 3.63

pwalczysko commented 4 years ago

The latest version of orbit is installed i.e. 3.63

This is certainly not one for which a model is available, but still, is there a compatibility discontinuation in models from one version to another ? This can be verified by downloading that Orbit 3.63 locally and opening that model I guess (after downloading the model from outreach)

dominikl commented 4 years ago

Running Orbit deskop inside a VM I was able to connect and create a new model for latest version 3.63. See image 10001 , file annotation 137088 . But I still get:

java.lang.NullPointerException
    at com.actelion.research.orbit.imageAnalysis.models.OrbitModel.LoadFromOrbit(OrbitModel.java:273)
    at com.actelion.research.orbit.imageAnalysis.models.OrbitModel$LoadFromOrbit.call(Unknown Source)
    at this cell line 47
    at com.twosigma.beakerx.groovy.evaluator.GroovyCodeRunner.runScript(GroovyCodeRunner.java:94)
    at com.twosigma.beakerx.groovy.evaluator.GroovyCodeRunner.call(GroovyCodeRunner.java:59)
    at com.twosigma.beakerx.groovy.evaluator.GroovyCodeRunner.call(GroovyCodeRunner.java:32)

Can you give it a go too @pwalczysko ? Maybe I'm just doing something wrong...

jburel commented 4 years ago

@dominikl which server?

jburel commented 4 years ago

I have found a solution after reading the orbit code

jburel commented 4 years ago

The PR removing the stack trace and fixing a bug has now been merged see https://github.com/mstritt/orbit-image-analysis/pull/13. This error will not show up when a new version of orbit is released.

dominikl commented 4 years ago

With both groovy scripts I get

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 61: unable to resolve class OrbitImageAnalysis 
 @ line 61, column 26.
   final OrbitImageAnalysis OIA = OrbitImageAnalysis.getInstance()

I just edited login credentials and pasted the script into the script editor in Orbit (with the image to be analysed open).

jburel commented 4 years ago
Screenshot 2020-06-08 at 14 39 22
dominikl commented 4 years ago

Jupyter notebooks works fine now 👍

When I run the orbit_roi_annotation_to_omero.groovy script in Orbit I get:

selected image: com.actelion.research.orbit.imageAnalysis.components.ImageFrame[,30,30,500x500,layout=javax.swing.plaf.basic.BasicInternalFrameUI$Handler,...]
ID:10001
Found 0 files
Close...

What is it actually looking for?

segmentation.groovy throws an NPE in line 88:

Found 2 files
java.lang.NullPointerException
    at com.actelion.research.orbit.imageAnalysis.models.OrbitModel.LoadFromOrbit(OrbitModel.java:273)
    at com.actelion.research.orbit.imageAnalysis.models.OrbitModel$LoadFromOrbit.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
    at Script1.run(Script1.groovy:88)
dominikl commented 4 years ago

Ah sorry orbit_roi_annotation_to_omero.groovy kind of works with the right image (10004). But it doesn't save the ROIs, but no error message either:

selected image: com.actelion.research.orbit.imageAnalysis.components.ImageFrame[,30,30,500x500,layout...]
ID:10004
Found 1 files
30039,29755; 30040,29754; 30042,29752; 30044,29752; 30047,29751; 30049,29750; 30050,29750; 30052,29749; 30056,29749; 30058,29747; 30061,29747; 30064,29746; ...
Close...
jburel commented 4 years ago

@dominikl the last commit should fix the NPE Also a new release of orbit is coming (PRs have been merged), that should allow us to use web socket and avoid the error being printed out during the init phase

mstritt commented 4 years ago

Dear all, thanks a lot for all your efforts and providing these nice Orbit-Omero scripts! Orbit 3.64 is out now and supports websockets. Also the "wrong number of parameters" startup crash should be fixed (thanks to @jburel !). Manuel

jburel commented 4 years ago

great @mstritt. Thank you very much. I will update this PR

dominikl commented 4 years ago

Looks good 👍 . Jupyter notebooks works, no error/warning messages any longer. The two groovy scripts work as well. Thanks @jburel and @mstritt !

dominikl commented 4 years ago

Oh no, sorry @jburel , the hostName vs hostname error in the two groovy scripts slipped in again somehow.

dominikl commented 4 years ago

But then it's fine 👍

jburel commented 4 years ago

@dominikl sorry It was me when i copied the command from the notebook.

jburel commented 4 years ago

@mtbc happy with the ordering of the import?

mtbc commented 4 years ago

I'd probably put Shape after Polygon but much improved, thank you, fine as-is too!

jburel commented 4 years ago

@mtbc done

mtbc commented 4 years ago

Looking good, ta.