First of all, I wanted to say thank you for the amazing work on MAJIQ 3 and Voila 3.
It is a fantastic tool!
I am still quite new to the full range of advanced options and configurations available in this new version, but I’m learining....
I’m writing to you because I’ve hit a technical hurdle while trying to visualize results synced from our HPC cluster to my local workstation. It seems to be a specific metadata parsing issue related to the transition to Zarr V3. (command below, all in V3 done)
The Setup:
Data Generation (HPC): MAJIQ v3.0.13.dev1+g2db64969d (Python 3.11).
Local Visualization: Voila v3.0.17.dev1+g11dc0f550 (Python 3.12).
Storage: Zarr V3 format.
The Issue: When running voila view, the process fails while reading the contigs group from the splicegraph.zarr. The error appears to be a mismatch between the Zarr V3 metadata specification and NumPy's dtype parsing for UTF-32 strings.
Error Message: ValueError: Invalid Zarr format 3 data_type: {'name': 'fixed_length_utf32', 'configuration': {'length_bytes': 44}}
System Details:
OS: Ubuntu 22.04 LTS
Zarr: 3.0.2 (also tested with 3.1.5)
NumPy: 1.26.4
Xarray: 2025.1.0
As I am still getting familiar with the full breadth of MAJIQ's new features, I wanted to ask if there is a recommended dependency stack or a specific configuration I might be missing to handle these Zarr V3 string encodings correctly.
I am happy to provide sample metadata files or more detailed logs if it helps the community!
Thanks again for the support and for such a great tool.
Best regards, maximo
details:
$ voila view -p 5000 -j 8 \
01_majiq_build_output/splicegraph.zarr \
07_majiq_deltapsi_outputFULL_v4/T2_C_vs_T2_P.voila \
08_majiq_sgc_output/
2026-02-20 17:05:45,339 (PID:73162) - INFO - Command: /home/epilab/Majiq3/majiq_native_env/bin/voila view -p 5000 -j 8 01_majiq_build_output/splicegraph.zarr 07_majiq_deltapsi_outputFULL_v4/T2_C_vs_T2_P.voila 08_majiq_sgc_output/
2026-02-20 17:05:45,339 (PID:73162) - INFO - Voila v3.0.17.dev1+g11dc0f550
2026-02-20 17:05:45,341 (PID:73162) - INFO - ╔═══════════════════════════════════════════════════════════════╗
2026-02-20 17:05:45,341 (PID:73162) - INFO - ╠╡ ACADEMIC License applied ║
2026-02-20 17:05:45,341 (PID:73162) - INFO - ║ Name: Official Majiq Academic-only License ║
2026-02-20 17:05:45,341 (PID:73162) - INFO - ║ File: majiq_license_academic_official.lic ║
2026-02-20 17:05:45,341 (PID:73162) - INFO - ║ Expiration Date: Never ║
2026-02-20 17:05:45,341 (PID:73162) - INFO - ║ ║
2026-02-20 17:05:45,341 (PID:73162) - INFO - ╠╡ The academic license is for non-commercial purposes by ║
2026-02-20 17:05:45,341 (PID:73162) - INFO - ╠╡ individuals at an academic or not for profit institution. ║
2026-02-20 17:05:45,341 (PID:73162) - INFO - ╚═══════════════════════════════════════════════════════════════╝
2026-02-20 17:05:45,341 (PID:73162) - INFO - config file: /tmp/voila-config-d79c7e2a579e9ba02a083f219ce8f917
/home/epilab/Majiq3/majiq_native_env/lib/python3.12/site-packages/rna_majiq/core/Contigs.py:123: RuntimeWarning: Failed to open Zarr store with consolidated metadata, but successfully read with non-consolidated metadata. This is typically much slower for opening a dataset. To silence this warning, consider:
1. Consolidating metadata in this existing store with zarr.consolidate_metadata().
2. Explicitly setting consolidated=False, to avoid trying to read consolidate metadata, or
3. Explicitly setting consolidated=True, to raise an error in this case instead of falling back to try reading non-consolidated metadata.
with xr.open_zarr(store, group=group) as df:
2026-02-20 17:05:45,447 (PID:73162) - ERROR - Invalid Zarr format 3 data_type: {'name': 'fixed_length_utf32', 'configuration': {'length_bytes': 44}}
Traceback (most recent call last):
File "/home/epilab/Majiq3/majiq_native_env/lib/python3.12/site-packages/zarr/core/metadata/v3.py", line 717, in parse