Next generation file format IO — a Python library for OME-Zarr bioimage analysis.
ngio is built for OME-Zarr, a cloud-optimised format that stores large, multi-dimensional microscopy images and their metadata in an efficient, scalable way. It provides an object-based API for opening, exploring and manipulating OME-Zarr images and high-content screening (HCS) plates, along with labels, tables and regions of interest (ROIs) for extracting and analysing specific regions of your data.
To install ngio, use whichever package manager you already work with — it is published on both PyPI and conda-forge.
pip install ngio # pip
uv add ngio # uv project (or: uv pip install ngio)
pixi add ngio # pixi, from conda-forge (--pypi for PyPI)
mamba install -c conda-forge ngio # mamba/condaThen work through the quickstart.
- Object-based API — open, explore and manipulate OME-Zarr images and HCS plates; derive new images and labels with minimal boilerplate.
- Tables and ROIs — tight integration with tabular data, extensible table schemas, and measurements stored alongside the image.
- Scalable processing — five iterators (image processing, segmentation, masked segmentation, feature extraction, object detection) that scale a per-region function from one ROI to a full plate: serial, threaded, multi-process, batched for neural networks, or split across cluster jobs — with halos for seamless tiles and stitching for objects split across tile boundaries.
- Remote stores — stream from S3 and other fsspec-backed sources, with a configurable IO retry policy.
- Supported OME-Zarr versions — ngio supports OME-Zarr v0.4 and v0.5, backed by either Zarr v2 or v3 storage. Support for v0.6 and later is planned.
ngio follows semantic versioning: from 1.0 onwards the public API
is stable, and breaking changes are reserved for major releases. The one carve-out is
the structural protocols — MapperProtocol, TransformProtocol, and MergePolicy:
implementing them pins you to the documented contract, which minor releases may extend
with optional members.
Full documentation, including guides, tutorials and the API reference, is at biovisioncenter.github.io/ngio. The tutorials' worked examples are executed when the site is built, so the code and the output you read are what actually ran.
If ngio contributes to work you publish, please cite it. See
CITATION.cff for the
current citation metadata.
ngio is developed at the BioVisionCenter, University of Zurich, by @lorenzocerrone and @jluethi. It is released under the BSD-3-Clause licence, and developed in the open on GitHub — issues and contributions welcome.