BIOP / ijp-operetta-importer

PerkinElmer Operetta Importer using BioFormats!
GNU General Public License v3.0
8 stars 3 forks source link

Error message with java.lang.IndexOutOfBoundsException: Index: 4, Size: 4 #13

Closed diligentgiantsquid closed 2 years ago

diligentgiantsquid commented 2 years ago

Hello,

First, thankyou so much for developing this plugin for processing Operetta data via FIJI, it's been extremely useful to us.

I've recently started seeing these errors coming up, either when using the GUI or running from your example groovy script:

From GUI:

Exception in thread "Thread-15" java.lang.IndexOutOfBoundsException: Index: 4, Size: 4 at java.util.ArrayList.rangeCheck(ArrayList.java:657) at java.util.ArrayList.get(ArrayList.java:433) at ome.xml.model.Pixels.getPlane(Pixels.java:740) at ome.xml.meta.OMEXMLMetadataImpl.getPlaneDeltaT(OMEXMLMetadataImpl.java:3109) at ch.epfl.biop.operetta.OperettaManager.getCalibration(OperettaManager.java:1168) at ch.epfl.biop.operetta.OperettaManager.makeImagePlus(OperettaManager.java:908) at ch.epfl.biop.operetta.OperettaManager.getFieldImage(OperettaManager.java:462) at ch.epfl.biop.operetta.OperettaManager.process(OperettaManager.java:701) at ch.epfl.biop.operetta.commands.OperettaImporterInteractive.lambda$doProcess$5(OperettaImporterInteractive.java:435) at java.lang.Thread.run(Thread.java:748)

From the Groovy script, similar:

java.lang.IndexOutOfBoundsException: Index: 4, Size: 4 at java.util.ArrayList.rangeCheck(ArrayList.java:657) at java.util.ArrayList.get(ArrayList.java:433) at ome.xml.model.Pixels.getPlane(Pixels.java:740) at ome.xml.meta.OMEXMLMetadataImpl.getPlaneDeltaT(OMEXMLMetadataImpl.java:3109) at ch.epfl.biop.operetta.OperettaManager.getCalibration(OperettaManager.java:1168) at ch.epfl.biop.operetta.OperettaManager.makeImagePlus(OperettaManager.java:908) at ch.epfl.biop.operetta.OperettaManager.getFieldImage(OperettaManager.java:462) at ch.epfl.biop.operetta.OperettaManager.process(OperettaManager.java:701) at ch.epfl.biop.operetta.OperettaManager.process(OperettaManager.java:654) at ch.epfl.biop.operetta.OperettaManager$process.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:157) at Script1.run(Script1.groovy:19) at org.scijava.plugins.scripting.groovy.GroovyScriptEngine.eval(GroovyScriptEngine.java:303) at org.scijava.plugins.scripting.groovy.GroovyScriptEngine.eval(GroovyScriptEngine.java:122) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) at org.scijava.script.ScriptModule.run(ScriptModule.java:157) at org.scijava.module.ModuleRunner.run(ModuleRunner.java:163) at org.scijava.module.ModuleRunner.call(ModuleRunner.java:124) at org.scijava.module.ModuleRunner.call(ModuleRunner.java:63) at org.scijava.thread.DefaultThreadService.lambda$wrap$2(DefaultThreadService.java:225) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

This was just running with a super simple minimal dataset - 1 well, 12 fields, 1 Z, 4 channels. Happy to upload that somewhere if it might be our data causing an issue.

I'd be grateful for any help. I recently did a clean reinstallation of FIJI, so should all be up-to-date. Thanks

Operetta Importer Screenshot 2022-03-11

diligentgiantsquid commented 2 years ago

A bug in the channels selection it would seem - I can enter 1:3, 4, or 2:4 in the selected channels box, and it runs fine. But not 1:4!

NicoKiaru commented 2 years ago

Yep, I also have these:

Exception in thread "Thread-6" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
    at java.util.ArrayList.rangeCheck(ArrayList.java:657)
    at java.util.ArrayList.get(ArrayList.java:433)
    at ome.xml.model.Pixels.getPlane(Pixels.java:740)
    at ome.xml.meta.OMEXMLMetadataImpl.getPlaneDeltaT(OMEXMLMetadataImpl.java:3109)
    at ch.epfl.biop.operetta.OperettaManager.getCalibration(OperettaManager.java:1168)
    at ch.epfl.biop.operetta.OperettaManager.makeImagePlus(OperettaManager.java:908)
    at ch.epfl.biop.operetta.OperettaManager.getWellImage(OperettaManager.java:439)
    at ch.epfl.biop.operetta.OperettaManager.process(OperettaManager.java:717)
    at ch.epfl.biop.operetta.commands.OperettaImporterInteractive.lambda$doProcess$5(OperettaImporterInteractive.java:435)
    at java.lang.Thread.run(Thread.java:748)

I will have a look at it