Metadata-Version: 2.4
Name: ngio
Version: 0.4.0a4
Summary: Next Generation file format IO
Project-URL: homepage, https://github.com/BioVisionCenter/ngio
Project-URL: repository, https://github.com/BioVisionCenter/ngio
Author-email: Lorenzo Cerrone <lorenzo.cerrone@uzh.ch>
License: BSD-3-Clause
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: <3.14,>=3.11
Requires-Dist: aiohttp
Requires-Dist: anndata<0.11.4,>=0.8.0
Requires-Dist: dask[array]
Requires-Dist: dask[distributed]
Requires-Dist: filelock
Requires-Dist: numpy
Requires-Dist: ome-zarr-models
Requires-Dist: pandas>=1.2.0
Requires-Dist: polars
Requires-Dist: pooch
Requires-Dist: pyarrow
Requires-Dist: pydantic
Requires-Dist: requests
Requires-Dist: xarray
Requires-Dist: zarr<3
Provides-Extra: dev
Requires-Dist: devtools; extra == 'dev'
Requires-Dist: matplotlib; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: napari; extra == 'dev'
Requires-Dist: notebook; extra == 'dev'
Requires-Dist: pdbpp; extra == 'dev'
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: pympler; extra == 'dev'
Requires-Dist: pyqt5; extra == 'dev'
Requires-Dist: rich; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: scikit-image; extra == 'dev'
Provides-Extra: docs
Requires-Dist: griffe-typingdoc; extra == 'docs'
Requires-Dist: markdown-exec[ansi]; extra == 'docs'
Requires-Dist: matplotlib; extra == 'docs'
Requires-Dist: mike; extra == 'docs'
Requires-Dist: mkdocs; extra == 'docs'
Requires-Dist: mkdocs-autorefs; extra == 'docs'
Requires-Dist: mkdocs-git-committers-plugin-2; extra == 'docs'
Requires-Dist: mkdocs-git-revision-date-localized-plugin; extra == 'docs'
Requires-Dist: mkdocs-include-markdown-plugin; extra == 'docs'
Requires-Dist: mkdocs-jupyter; extra == 'docs'
Requires-Dist: mkdocs-material; extra == 'docs'
Requires-Dist: mkdocstrings[python]; extra == 'docs'
Requires-Dist: rich; extra == 'docs'
Requires-Dist: scikit-image; extra == 'docs'
Requires-Dist: tabulate; extra == 'docs'
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: scikit-image; extra == 'test'
Description-Content-Type: text/markdown

# Ngio - Next Generation file format IO

[![License](https://img.shields.io/pypi/l/ngio.svg?color=green)](https://github.com/BioVisionCenter/ngio/raw/main/LICENSE)
[![PyPI](https://img.shields.io/pypi/v/ngio.svg?color=green)](https://pypi.org/project/ngio)
[![Python Version](https://img.shields.io/pypi/pyversions/ngio.svg?color=green)](https://python.org)
[![CI](https://github.com/BioVisionCenter/ngio/actions/workflows/ci.yml/badge.svg)](https://github.com/BioVisionCenter/ngio/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/BioVisionCenter/ngio/graph/badge.svg?token=FkmF26FZki)](https://codecov.io/gh/BioVisionCenter/ngio)

ngio is a Python library designed to simplify bioimage analysis workflows, offering an intuitive interface for working with OME-Zarr files.

## What is Ngio?

Ngio is built for the [OME-Zarr](https://ngff.openmicroscopy.org/) file format, a modern, cloud-optimized format for biological imaging data. OME-Zarr stores large, multi-dimensional microscopy images and metadata in an efficient and scalable way.

Ngio's mission is to streamline working with OME-Zarr files by providing a simple, object-based API for opening, exploring, and manipulating OME-Zarr images and high-content screening (HCS) plates. It also offers comprehensive support for labels, tables and regions of interest (ROIs), making it easy to extract and analyze specific regions in your data.

## Key Features

### 📊 Simple Object-Based API

- Easily open, explore, and manipulate OME-Zarr images and HCS plates
- Create and derive new images and labels with minimal boilerplate code

### 🔍 Rich Tables and Regions of Interest (ROI) Support

- Extract and analyze specific regions of interest
- Tight integration with [Tabular Data](https://BioVisionCenter.github.io/ngio/stable/table_specs/overview/)

### 🔄 Scalable Data Processing (Coming Soon)

- Powerful iterators for processing data at scale
- Efficient memory management for large datasets

## Installation

You can install ngio via pip:

```bash
pip install ngio
```

To get started check out the [Quickstart Guide](https://BioVisionCenter.github.io/ngio/stable/getting_started/0_quickstart/).

## Supported OME-Zarr versions

Currently, ngio only supports OME-Zarr v0.4. Support for version 0.5 and higher is planned for future releases.

## Development Status

!!! warning
    Ngio is under active development and is not yet stable. The API is subject to change, and bugs and breaking changes are expected.
    We follow [Semantic Versioning](https://semver.org/). Which means for 0.x releases potentially breaking changes can be introduced in minor releases.

### Available Features

- ✅ OME-Zarr metadata handling and validation
- ✅ Image and label access across pyramid levels
- ✅ ROI and table support
- ✅ Streaming from remote sources
- ✅ Documentation and examples

### Upcoming Features

- Advanced image processing iterators
- Parallel processing capabilities
- Support for OME-Zarr v0.5 and Zarr v3

## Contributors

Ngio is developed at the [BioVisionCenter](https://www.biovisioncenter.uzh.ch/en.html), University of Zurich, by [@lorenzocerrone](https://github.com/lorenzocerrone) and [@jluethi](https://github.com/jluethi).

## License

Ngio is released under the BSD-3-Clause License. See [LICENSE](https://github.com/BioVisionCenter/ngio/blob/main/LICENSE) for details.
