Hi, I am tring to load a saved state but I could not open it anymore. I definetely successfully loaded the state before because I resumed registration from the state once. However, now when I want to access again to export registration to qupath, I could not load it. It is very weired to me and have no clue what happened.
Below is the log:
[INFO] Reading available sites from
https://imagej.net/
[WARNING] Ignoring unsupported output: ba [ch.epfl.biop.atlas.mouse.allen.ccfv3.command.AllenBrainAdultMouseAtlasCCF2017Command]
[WARNING] Ignoring unsupported output: atlas [ch.epfl.biop.atlas.mouse.allen.ccfv3.command.AllenBrainAdultMouseAtlasCCF2017Command]
Creating MultiSlicePositioner instance
MultiSlicePositioner instance created
[WARNING] Ignoring unsupported output: mp [ch.epfl.biop.atlas.aligner.MultiSlicePositioner]
Registration plugin RegistrationElastixAffineCommand discovered
Registration plugin RegistrationElastixAffineRemoteCommand discovered
Registration plugin RegistrationBigWarpCommand discovered
Registration plugin RegistrationElastixSplineCommand discovered
Registration plugin RegistrationElastixSplineRemoteCommand discovered
[WARNING] Ignoring unsupported output: view [ch.epfl.biop.atlas.aligner.gui.bdv.BdvMultislicePositionerView]
IRunTimeClassAdapters :
interface bdv.viewer.render.AccumulateProjectorFactory
class bdv.util.projector.alpha.LayerAlphaProjectorFactory
class sc.fiji.bdvpg.bdv.projector.DefaultAccumulatorFactory
interface net.imglib2.realtransform.RealTransform
class bdv.util.BoundedRealTransform
class bdv.util.Elliptical3DTransform
class net.imglib2.realtransform.AffineTransform3D
class net.imglib2.realtransform.InvertibleRealTransformSequence
class net.imglib2.realtransform.RealTransformSequence
class net.imglib2.realtransform.ThinplateSplineTransform
class net.imglib2.realtransform.Wrapped2DTransformAs3D
class net.imglib2.realtransform.inverse.WrappedIterativeInvertibleRealTransform
interface sc.fiji.bdvpg.bdv.supplier.IBdvSupplier
class sc.fiji.bdvpg.bdv.supplier.DefaultBdvSupplier
class sc.fiji.bdvpg.bdv.supplier.alpha.AlphaBdvSupplier
class sc.fiji.bdvpg.bdv.supplier.biop.BiopBdvSupplier
IClassAdapters :
class net.imglib2.realtransform.AffineTransform3D
class net.imglib2.realtransform.InvertibleRealTransformSequence
class net.imglib2.realtransform.RealTransformSequence
class net.imglib2.realtransform.ThinplateSplineTransform
class net.imglib2.realtransform.Wrapped2DTransformAs3D
class net.imglib2.realtransform.inverse.WrappedIterativeInvertibleRealTransform
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Module threw exception
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at ch.epfl.biop.atlas.aligner.gui.bdv.BdvMultislicePositionerView.loadState(BdvMultislicePositionerView.java:739)
at ch.epfl.biop.atlas.aligner.gui.bdv.BdvMultislicePositionerView.lambda$null$23(BdvMultislicePositionerView.java:248)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.RuntimeException: Module threw exception
at org.scijava.module.ModuleRunner.call(ModuleRunner.java:127)
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)
… 1 more
Caused by: java.lang.NullPointerException
at ch.epfl.biop.spimdata.qupath.QuPathImageLoader.getSetupImgLoader(QuPathImageLoader.java:195)
at ch.epfl.biop.spimdata.qupath.QuPathImageLoader.getSetupImgLoader(QuPathImageLoader.java:45)
at sc.fiji.bdvpg.scijava.services.SourceAndConverterService.register(SourceAndConverterService.java:328)
at sc.fiji.bdvpg.spimdata.importer.SpimDataFromXmlImporter.apply(SpimDataFromXmlImporter.java:73)
at sc.fiji.bdvpg.spimdata.importer.SpimDataFromXmlImporter.get(SpimDataFromXmlImporter.java:65)
at sc.fiji.bdvpg.scijava.adapter.AbstractSpimdataAdapter.deserialize(AbstractSpimdataAdapter.java:106)
at sc.fiji.bdvpg.scijava.adapter.AbstractSpimdataAdapter.deserialize(AbstractSpimdataAdapter.java:51)
at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
at com.google.gson.Gson.fromJson(Gson.java:927)
at com.google.gson.Gson.fromJson(Gson.java:994)
at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.deserialize(TreeTypeAdapter.java:162)
at sc.fiji.bdvpg.scijava.adapter.source.SpimSourceAdapter.deserialize(SpimSourceAdapter.java:82)
at sc.fiji.bdvpg.scijava.adapter.SourceAndConverterAdapter.deserialize(SourceAndConverterAdapter.java:149)
at sc.fiji.bdvpg.scijava.adapter.SourceAndConverterAdapter.deserialize(SourceAndConverterAdapter.java:52)
at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:72)
at com.google.gson.Gson.fromJson(Gson.java:927)
at com.google.gson.Gson.fromJson(Gson.java:994)
at com.google.gson.Gson.fromJson(Gson.java:967)
at sc.fiji.bdvpg.services.SourceAndConverterServiceLoader.run(SourceAndConverterServiceLoader.java:90)
at ch.epfl.biop.atlas.aligner.MultiSlicePositioner.loadState(MultiSlicePositioner.java:979)
at ch.epfl.biop.atlas.aligner.command.ABBAStateLoadCommand.run(ABBAStateLoadCommand.java:23)
at org.scijava.command.CommandModule.run(CommandModule.java:196)
at org.scijava.module.ModuleRunner.run(ModuleRunner.java:163)
at org.scijava.module.ModuleRunner.call(ModuleRunner.java:124)
… 6 more
By any chance, did you move your images in a different folder ? Or did you try to open the state on a different computer ? Was the drive letter of an external hard drive changed?
I suspect the problem comes from the path of the files. ABBA like QuPath uses the absolute path internally, but contrary to QuPath, ABBA has no automatic way to falls back on its feet if a file has been moved.
There’s however a manual way, which is to go through the state files to change the path.
I am currently having the same issue. When I try to open the save state, the bottom right of the ABBA GUI loads endlessly as pictured below:
I have tried to manually change the path by moving my files, however this has not solved the issue. Is there anything else that may be causing the issue?
I had an identical error message as the original poster. I did not move image files around in between abba sessions, I made sure to just save my work and exit. I can see the bdvdataset0.xml file and the 3 json files as pictured below:
image1044×622 29.4 KB
Thanks for giving me the files in PM.
I found the issue: you removed some images in your QuPath project AFTER having opened it in ABBA.
Here’s the recipe to crash ABBA saved state:
there are label images and overviews in your qupath project
you open the qupath project in ABBA
you perform some alignement
and save the state
you go back to QuPath
you remove some images (labels, overviews) in your QuPath project ← THAT’S THE PROBLEM
you retry to open the state in ABBA
CRASH: ABBA expect the project unchanged in terms of images present
What you can do:
Remove Labels and Overviews BEFORE using ABBA
OR : do not remove labels and overviews in QuPath, but in ABBA only (and you LET the labels and overviews in QuPath.)
There are some warnings about this in the google slide doc:
image1155×716 26.1 KB
I’ll put a warning in ABBA when somebody opens a project, and I’ll think of ways to improve and remove this limitation.