Skip to content

OME-Zarr Multichannel#40

Open
pedson wants to merge 5 commits intoJaneliaSciComp:masterfrom
AllenNeuralDynamics:ome-zarr-multichannel-2
Open

OME-Zarr Multichannel#40
pedson wants to merge 5 commits intoJaneliaSciComp:masterfrom
AllenNeuralDynamics:ome-zarr-multichannel-2

Conversation

@pedson
Copy link
Contributor

@pedson pedson commented Nov 6, 2023

Adds basic OME-Zarr multichannel support under the current color channel implementation. Each channel is loaded as an individual child channel actor under the parent OmeZarrVolumeActor. There is a small change to the initial Ome-Zarr load/init call that slightly modifies NeuronTopTracerComponent and ViewLoader, but changes are otherwise limited to the Ome-Zarr implementation and the Volume MIP shader.

A two channel OME-Zarr file is available at /nrs/mouselight/pipeline-testing/tczyx.ome.zarr.

Video of 3 channel AIND data (too large to put on nrs) https://www.dropbox.com/scl/fi/jqayzn33npqqxd34tbrfk/OZMC.mp4?rlkey=au0lpjnr23cg06grngm3u1ta6&dl=0

@porterbot
Copy link
Collaborator

Looks like some kind of initialization exception when the color sliders are not open when the Zarr Sample is loaded. If you open or close the color sliders window after loading the 2-channel demo, it throws the following GLException. This might be related to the change in the order of the initColorModel? This seems to only happen with the 2-channel sample, not regular KTX samples.

javax.media.opengl.GLException: Thread[AWT-EventQueue-0,6,main] glGetError() returned the following error codes after a call to glUseProgram( 0xD): GL_INVALID_VALUE ( 1281 0x501),
at javax.media.opengl.DebugGL4bc.writeGLError(DebugGL4bc.java:29466)
at javax.media.opengl.DebugGL4bc.glUseProgram(DebugGL4bc.java:24136)
at org.janelia.gltools.BasicShaderProgram.load(BasicShaderProgram.java:66)
at org.janelia.gltools.material.BasicMaterial.load(BasicMaterial.java:114)
at org.janelia.horta.volume.VolumeMipMaterial.load(VolumeMipMaterial.java:279)
at org.janelia.gltools.material.BasicMaterial.display(BasicMaterial.java:34)
at org.janelia.gltools.MeshActor.display(MeshActor.java:397)
at org.janelia.horta.actors.OmeZarrVolumeMeshActor.display(OmeZarrVolumeMeshActor.java:76)
at org.janelia.horta.actors.OmeZarrVolumeChannelActor.display(OmeZarrVolumeChannelActor.java:232)
at org.janelia.horta.actors.OmeZarrVolumeActor.display(OmeZarrVolumeActor.java:140)
at org.janelia.gltools.RenderPass.renderScene(RenderPass.java:58)
at org.janelia.horta.render.VolumeRenderPass.renderScene(VolumeRenderPass.java:90)
at org.janelia.gltools.RenderPass.display(RenderPass.java:85)
at org.janelia.gltools.MultipassRenderer.display(MultipassRenderer.java:17)
at org.janelia.horta.render.NeuronMPRenderer.display(NeuronMPRenderer.java:171)
at org.janelia.scenewindow.SceneRenderer.renderScene(SceneRenderer.java:192)
at org.janelia.scenewindow.stereo.MonoscopicRenderer.renderScene(MonoscopicRenderer.java:18)
at org.janelia.scenewindow.SceneRenderer.display(SceneRenderer.java:146)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:690)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:672)
at javax.media.opengl.awt.GLCanvas$10.run(GLCanvas.java:1383)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277)

@porterbot
Copy link
Collaborator

Hi Patrick,
Just revisiting this before I either close it or merge it in. Did you ever get a chance to evaluate the comment I made (I realize it was a pretty long time ago)?

Thanks,
David

@pedson
Copy link
Contributor Author

pedson commented Mar 18, 2026

I had not pursued this further after the plan shifted a bit to possibly reworking multichannel in Horta in general.

As it stands right now, it shouldn't be merged because it is out of date with other changes that happened with the supporting libraries.

If changes to the Horta multichannel are on hold or not going to happen, I could revisit this and update to try to allow for at least two channel OME-Zarr support under the current model. Otherwise, it would make sense to close.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants