Skip to content

Zarr Export Dependency Error #38

@AdvancedImagingUTSW

Description

@AdvancedImagingUTSW

In some ways, ran into some similar problems at this one before.

TLDR, N5Exception$N5NoSuchKeyException is missing from the n5 library and libblosc has to be imported from Fiji.


Cloned the most recent version and installed it with maven-3.9.9. Installed perfectly fine.

Attempted to run the software as follows:

#!/bin/bash
module load java/oracle/jdk1.8.0_231
module load hadoop/2.7.7
module load spark/2.2.2

export _JAVA_OPTIONS="$_JAVA_OPTIONS -Xms250G -Xmx450G -XX:PermSize=32m"


# Also requires libblosc for compression. Extracted from Fiji and placed here:
# /archive/bioinformatics/Danuser_lab/Dean/dean/applications/libblosc
export LD_LIBRARY_PATH="/archive/bioinformatics/Danuser_lab/Dean/dean/applications/Fiji/lib/linux64:$LD_LIBRARY_PATH"

# Move to the folder with the appropriate BigStitcher shell scripts. 
cd /archive/bioinformatics/Danuser_lab/Dean/dean/git/external/BigStitcher-Spark

XML_PATH="/.../2024-10-18-yuanyuan/38_100umrange_0.2umstep_Cell_005/CH00_000000.xml"

FUSED_PATH="/.../2024-10-18-yuanyuan/fused.zarr"

./affine-fusion -x "$XML_PATH" -o "$FUSED_PATH" -d /ch0/s0 -s N5 --multiRes --preserveAnisotropy --UINT16 --minIntensity 0 --maxIntensity 65535 --channelId 0

First had a libblosc error:

Compression 'org.janelia.saalfeldlab.n5.blosc.BloscCompression' could not be registered because:
java.lang.UnsatisfiedLinkError: Unable to load library 'blosc':
libblosc.so: cannot open shared object file: No such file or directory
libblosc.so: cannot open shared object file: No such file or directory

To get past this, I had to add Fiji's version to my LD_LIBRARY_PATH:

export LD_LIBRARY_PATH="/archive/bioinformatics/.../applications/Fiji/lib/linux64:$LD_LIBRARY_PATH"

Then, I get the following error:

Exception in thread "main" java.lang.NoClassDefFoundError: org/janelia/saalfeldlab/n5/N5Exception$N5NoSuchKeyException
	at net.preibisch.bigstitcher.spark.util.N5Util.createWriter(N5Util.java:45)
	at net.preibisch.bigstitcher.spark.SparkAffineFusion.call(SparkAffineFusion.java:275)
	at net.preibisch.bigstitcher.spark.SparkAffineFusion.call(SparkAffineFusion.java:63)
	at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
	at picocli.CommandLine.access$1500(CommandLine.java:148)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
	at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
	at picocli.CommandLine.execute(CommandLine.java:2170)
	at net.preibisch.bigstitcher.spark.SparkAffineFusion.main(SparkAffineFusion.java:420)
Caused by: java.lang.ClassNotFoundException: org.janelia.saalfeldlab.n5.N5Exception$N5NoSuchKeyException
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	... 12 more

After checking the pom.xml file, I see that n5 is indeed a dependency. I also checked the contents of the jar to see if this class existed...

jar tf ~/.m2/repository/org/janelia/saalfeldlab/n5/3.1.3/n5-3.1.3.jar | grep N5Exception

org/janelia/saalfeldlab/n5/N5Exception$N5ClassCastException.class
org/janelia/saalfeldlab/n5/N5Exception.class
org/janelia/saalfeldlab/n5/N5Exception$N5IOException.class

It seems as if the N5Exception$N5NoSuchKeyException is missing.

...

After all this, if I export to an n5 file, instead of a Zarr file, it works....

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions