Find Nuclei
All posts

10 May 2026 · Find Nuclei

How to Convert Any Microscopy File to OME-Zarr

bioformats2raw converts over 160 microscopy formats to OME-Zarr in one command. CZI, LIF, ND2, NDPI, SVS, TIFF: all covered. Here is how to get your data into the format your pipeline actually wants.

You read the previous post. You are convinced. OME-Zarr is the future, your CZI files are the past, and you would like to get from here to there without a PhD in file format archaeology.

Good news: you don’t need one.

The one tool that handles almost everything

bioformats2raw is a Java command-line tool from Glencoe Software that converts any format supported by Bio-Formats to OME-Zarr. [1] Bio-Formats supports over 160 formats. That means CZI, LIF, ND2, VSI, NDPI, SVS, MRXS, OME-TIFF, plain TIFF, and a hundred and fifty more all go in, and spec-compliant OME-Zarr comes out.

The basic command is two arguments:

bioformats2raw input.czi output.zarr

That is it. The tool reads metadata from the source file, writes the chunked Zarr pyramid, and produces a valid OME-NGFF 0.4 directory. Channel names, physical pixel sizes, Z-step, acquisition metadata: all preserved.

Download: github.com/glencoesoftware/bioformats2raw. Requires Java 11 or later. [1]

Prefer a GUI? NGFF-Converter

Glencoe also ships NGFF-Converter: a desktop application built on the same bioformats2raw engine. Same conversion power, point-and-click interface. Drop files in, choose your output format (OME-Zarr or OME-TIFF), and run. [2]

Version 2.0 (May 2024) was a complete rebuild: modular Jobs/Workflows/Tasks architecture, modernized UI, and direct integration with bioformats2raw. If you’re running conversions for a lab or core facility and don’t want to manage a Java CLI, NGFF-Converter is the practical choice.

Product page: glencoesoftware.com/products/ngff-converter [2] GitHub: github.com/glencoesoftware/NGFF-Converter

bioformats2raw options worth knowing

Downsampling algorithm: By default, bioformats2raw generates a multi-resolution pyramid using simple averaging. You can control the algorithm:

bioformats2raw --downsample-type GAUSSIAN input.czi output.zarr

Options: SIMPLE (default), GAUSSIAN, AREA, LINEAR, CUBIC, LANCZOS. For fluorescence data, GAUSSIAN is usually cleaner. For pathology slides or brightfield, AREA averaging preserves staining better.

Chunk size: The default is 1024x1024 pixels. For streaming and web viewing, 512x512 chunks typically perform better:

bioformats2raw --tile_width 512 --tile_height 512 input.lif output.zarr

Multi-series files: LIF files from Leica commonly contain dozens of acquisitions. To convert only specific series:

bioformats2raw --series 0,1,4 input.lif output.zarr

The Python route

If you’re already in Python and want to write OME-Zarr directly from arrays (NumPy, Dask, simulation output), use the ome-zarr package:

pip install ome-zarr

It’s the reference Python implementation of OME-NGFF: read, write, and validate. Useful for pipelines that generate data programmatically rather than converting existing acquisitions.

For napari users, the napari-ome-zarr plugin reads and writes OME-Zarr directly from napari’s layer system.

Batch conversion for large archives

If you have hundreds of files to convert, BatchConvert from Euro-BioImaging wraps bioformats2raw in a Nextflow pipeline for parallelized batch processing. [3]

github.com/Euro-BioImaging/BatchConvert

Runs locally or on HPC and cloud infrastructure. Useful for core facilities converting legacy archives without converting one file at a time.

What to do with the output

The .zarr directory that bioformats2raw produces is a normal folder: a root directory with JSON metadata files and subdirectories of compressed chunks. You can:

  • Keep it local and open it in Find Nuclei Viewer by dragging the folder into the browser. Your data never leaves the machine.
  • Put it on S3 (or any S3-compatible store like MinIO) and stream it by URL.
  • Serve it with Find Nuclei Data Server: a single Docker container that serves a directory of OME-Zarr files over HTTP, with optional token authentication. One command, your whole converted archive accessible on your network.

The storage post covers what to expect from each option and how to choose.

A note on OME-TIFF

bioformats2raw can also produce OME-TIFF via the companion raw2ometiff tool. Useful if your downstream software doesn’t support Zarr yet. But OME-TIFF is still monolithic: you lose the chunked streaming benefits. Use it as a bridge, not a final destination.

TL;DR

  • bioformats2raw input.czi output.zarr handles 160+ formats in one command
  • NGFF-Converter is the GUI version: same engine, no CLI required
  • Python pipeline? Use ome-zarr to write directly from arrays
  • Large archive? BatchConvert wraps it all in a parallel Nextflow pipeline
  • Put the output behind HTTP and Find Nuclei Viewer streams it from anywhere

References

[1] bioformats2raw. Glencoe Software / OME. https://github.com/glencoesoftware/bioformats2raw

[2] NGFF-Converter. Glencoe Software. https://www.glencoesoftware.com/products/ngff-converter/https://github.com/glencoesoftware/NGFF-Converter

[3] BatchConvert. Euro-BioImaging. https://github.com/Euro-BioImaging/BatchConvert