# Tools
A list of tools and libraries with OME-Zarr support. These are developed by various members of the NGFF community. If you think your tool/library should be listed here, please [open a pull request](https://github.com/ome/ngff).
## Contents
- [Tools with a graphical interface (ex. a website)](#tools-with-a-graphical-interface)
- [Zarr viewers](#zarr-viewers)
- [Zarr converters](#zarr-converters-with-a-ui)
- [Tools for the programmatically inclined](#tools-for-the-programmatically-inclined)
- [Zarr converters](#zarr-converters)
- [Zarr readers and writers](#zarr-readers--writers)
- [Validating Zarr](#zarr-validation)
- [Other zarr tools and libraries](#other-tools-and-libraries)
## Tools with a graphical interface
### Zarr viewers
Want to view a Zarr? Use one of these.
[Check this out](https://ome.github.io/ome-ngff-tools/) to see viewer compatibility with various OME-Zarr features & versions.
| Name | Link | Description |
| -------- | ------- | ------- |
| AGAVE | [
](https://www.allencell.org/pathtrace-rendering.html) | Desktop application for viewing multichannel volume data powered by your GPU |
| FIJI (MoBIE / BigDataViewer) | [
](https://mobie.github.io/) | [FIJI](https://fiji.sc/) plug-in for exploring and sharing big multi-modal image and associated tabular data |
| FIJI (n5-ij) | [
](https://github.com/saalfeldlab/n5-ij) | [FIJI](https://fiji.sc/) plug-in for loading and saving image data to OME-Zarr and other formats supported by the N5 API |
| ITKWidgets | [
](https://github.com/InsightSoftwareConsortium/itkwidgets) | Python tool for interactively viewing images (ex. in Jupyter) |
| Microscopy Nodes |[](https://github.com/aafkegros/MicroscopyNodes) | [Blender](https://www.blender.org/) add-on for visualizing high-dimensional microscopy data |
| napari | [
](https://github.com/ome/napari-ome-zarr) | [napari](https://napari.org/) plug-in for viewing Zarr |
| Neuroglancer | [
](https://github.com/google/neuroglancer) | A browser-based volume viewer |
| syGlass | [
](https://www.syglass.io/) | A VR desktop application for visualizing and segmenting 3D image data, with OME-Zarr streaming support. |
| Viv (Avivator, Vizarr, Vitessce, ...) | [
](https://github.com/hms-dbmi/viv) | A toolkit for interactive visualization of high-resolution, multiplexed bioimaging datasets. The viv toolkit is used by the [Avivator](https://avivator.gehlenborglab.org), [Vizarr](https://github.com/hms-dbmi/vizarr) and [Vitessce](http://vitessce.io) image viewers, among others |
| Vol-E | [
](https://vole.allencell.org/) | A browser-based volume viewer |
| WEBKNOSSOS | [
](https://home.webknossos.org/) | An open-source tool for annotating and exploring large 3D image datasets |
### Zarr converters (with a UI)
Want to convert your file to Zarr? Use one of these tools that has a user interface.
| Name | Link | Description |
| -------- | ------- | ------- |
| NGFF-Converter | [](https://github.com/glencoesoftware/NGFF-Converter) | A desktop application for conversion of bioimage formats into OME-Zarr or OME-TIFF. |
## Tools for the programmatically inclined
### Zarr converters
Want to convert from a different file format to a Zarr? Use one of these tools.
Check out the [readers and writers below](#zarr-readers--writers) to interact with Zarrs in others ways as well conversion.
| Name | Link | Description |
| -------- | ------- | ------- |
| BatchConvert | [](https://github.com/Euro-BioImaging/BatchConvert) | A Nextflow based command-line tool that wraps bioformats2raw for parallelised conversion of image data collections to OME-Zarr. |
| bioformats2raw | [](https://github.com/glencoesoftware/bioformats2raw) | Java application to convert image file formats, including .mrxs, to an intermediate Zarr structure compatible with the OME-Zarr specification. |
| BioIO Conversion | [
](https://github.com/bioio-devs/bioio-conversion) | CLI & scripting tool for easily converting images to OME-Zarr. Requires [bioio-ome-zarr](https://github.com/bioio-devs/bioio-ome-zarr) |
| EuBI-Bridge | [](https://github.com/Euro-BioImaging/EuBI-Bridge) | A tool for distributed conversion of microscopic image collections into the OME-Zarr format. |
| ITKIOOMEZarrNGFF | [](https://github.com/InsightSoftwareConsortium/ITKIOOMEZarrNGFF) | An ITK external module for IO of images stored in OME-Zarr file format. | Reading & Writing |
| multiscale-spatial-image | [](https://github.com/spatial-image/multiscale-spatial-image) | Generate a multiscale, chunked, multi-dimensional spatial image data structure that can serialized to OME-Zarr. | Reading & Writing |
| nd2 | [](https://github.com/tlambert03/nd2) | A Python library for reading nd2 files with native export to OME-Zarr, supporting multi-well plates and complete metadata preservation. |
| Nextflow (nf-omezarr) | [
](https://github.com/JaneliaSciComp/nf-omezarr) | A Nextflow pipeline for converting directories of images to OME-Zarr using bioformats2raw |
| PyMIF | [](https://github.com/grinic/pymif) | A modular Python package to read, visualize, and convert multiscale microscopy image data from various microscope platforms to OME-Zarr. |
| stack-to-chunk | [](https://stack-to-chunk.readthedocs.io) | A Python library to convert stacks of 2D images to OME-Zarr with minimal memory use and maximum concurrency. |
| stack_to_multiscale_ngff | [](https://github.com/CBI-PITT/stack_to_multiscale_ngff) | A tool for converting multi-terabyte stacks of images into a multiscale OME-Zarr. |
### Zarr readers & writers
Want to read or write a Zarr? Use one of these tools.
[Check this out](https://github.com/jwindhager/ome-ngff-readers-writers/) to see reader/writer compatibility with various OME-Zarr features & versions.
| Name | Link | Description |
| -------- | ------- | ------- |
| bfio | [](https://github.com/PolusAI/bfio) | A Python interface to Bioformats using jpype for direct access to the library. |
| bia-zarr | [](https://github.com/BioImage-Archive/bia-zarr) | A Python library for reading, writing, and manipulating OME-Zarr datasets, including thumbnail generation and OME-Zarr type detection. |
| Bio-Formats | [](https://github.com/ome/bioformats) | A standalone Java library for reading and writing life sciences image file formats. Requires [OMEZarrReader](https://github.com/ome/ZarrReader) |
| BioIO | [
](https://github.com/bioio-devs/bioio) | Image/Metadata Reading Writing for Microscopy Images in pure Python. Requires [bioio-ome-zarr](https://github.com/bioio-devs/bioio-ome-zarr) (formerly [AICSImageIO](https://github.com/AllenCellModeling/aicsimageio)) |
| iohub| [](https://github.com/czbiohub-sf/iohub) | Pythonic and parallelizable I/O for N-dimensional imaging data with OME metadata |
| ngff-zarr | [](https://github.com/thewtex/ngff-zarr) | A lean and kind Open Microscopy Environment (OME) Next Generation File Format (NGFF) Zarr implementation. |
| ngio | [](https://biovisioncenter.github.io/ngio/stable/) | Python package for bject-based API for opening, exploring, and manipulating OME-Zarr images and high-content screening (HCS) plates |
| omero-zarr-pixel-buffer | [](https://github.com/glencoesoftware/omero-zarr-pixel-buffer) | An OMERO server extension for reading OME-Zarr data from local or S3 storage. |
| ome-writers | [](https://github.com/pymmcore-plus/ome-writers) | A Python library for streaming acquisition data to OME-Zarr or OME-TIFF, supporting multiple array backends. |
| ome-zarr-py | [](https://github.com/ome/ome-zarr-py)| A Python library for reading and writing multi-resolution images stored as Zarr filesets, according to the OME-Zarr spec. |
| Zarr.NET | [](https://github.com/BiologyTools/Zarr.NET) | A native .NET library for reading and writing Zarr microscopy data. |
### Zarr validation
Want to validate a Zarr? Use one of these.
| Name | Link | Description |
| -------- | ------- | ------- |
| ome-ngff-validator | [
](https://ome.github.io/ome-ngff-validator/) | Web page for validating OME-Zarr files. |
| ome-zarr-models | [](https://github.com/ome-zarr-models/ome-zarr-models-py) | Python package and command line interface that can validate OME-Zarr files |
| yaozarrs | [](https://github.com/imaging-formats/yaozarrs) | Bottom-up python library with models and CLI for creating & validating OME-Zarr groups and documents with optional extras for array-backend-agnostic I/O |
## Other tools and libraries
Tools that do not explicitly fit into any of the above categories (ex. Zarr computation workflow orchestrators)
| Name | Link | Description |
| -------- | ------- | ------- |
| Fileglancer | [](https://github.com/JaneliaSciComp/fileglancer) | A webapp for browsing, sharing, and viewing OME-Zarr images. |
| Fractal | [](https://fractal-analytics-platform.github.io/) | A framework to process OME-Zarr data at scale with modular processing tasks and to prepare it for interactive visualization. |
| Ilastik | [](https://github.com/ilastik/ilastik) | An interactive learning and segmentation toolkit |
| Mastodon | [](https://mastodon.readthedocs.io/) | A large-scale tracking and track-editing framework for large, multi-view images. |
| mesoSPIM-control | [](https://github.com/mesoSPIM/mesoSPIM-control) | Python/PyQt acquisition software for mesoSPIM light-sheet microscopes with OME-Zarr multi-scale output support. |
| Nyxus | [](https://github.com/PolusAI/nyxus) | A scalable library for calculating features from intensity-label image data. |
| OMEZarrTileSource | [](https://github.com/TissUUmaps/OMEZarrTileSource) | An OpenSeadragon tile source for the OME-Zarr bioimage file format. |
| ome-zarr.js | [](https://github.com/BioNGFF/ome-zarr.js) | A JavaScript library for simple rendering of thumbnnails and images. |
| SpatialData | [](https://github.com/scverse/spatialdata) | An open and universal framework for processing spatial omics data. |
| Zarrcade | [](https://github.com/JaneliaSciComp/zarrcade) | Create searchable web-based OME-Zarr image galleries. |