Quickstart¶
Ngio is a Python package that provides a simple and intuitive API for reading and writing data to and from OME-Zarr. This guide will walk you through the basics of using ngio to read and write data.
Installation¶
ngio can be installed from PyPI, conda-forge, or from source.
ngiorequires Python>=3.11
The recommended way to install ngio is from PyPI using pip:
pip install ngio
Alternatively, you can install ngio using mamba:
mamba install -c conda-forge ngio
or conda:
conda install -c conda-forge ngio
-
Clone the repository:
git clone https://github.com/fractal-analytics-platform/ngio.git cd ngio -
Install the package:
pip install .
Troubleshooting¶
Please report installation problems by opening an issue on our GitHub repository.
Setup some test data¶
Let's start by downloading a sample OME-Zarr dataset to work with.
from pathlib import Path
from ngio.utils import download_ome_zarr_dataset
# Download a sample dataset
download_dir = Path("./data")
hcs_path = download_ome_zarr_dataset("CardiomyocyteSmallMip", download_dir=download_dir)
image_path = hcs_path / "B" / "03" / "0"
Open an OME-Zarr image¶
Let's start by opening an OME-Zarr file and inspecting its contents.
>>> from ngio import open_ome_zarr_container
>>> ome_zarr_container = open_ome_zarr_container(image_path)
>>> ome_zarr_container
OmeZarrContainer(levels=5, #labels=4, #tables=7)
What is the OME-Zarr container?¶
The OME-Zarr Container is the core of ngio and the entry point to working with OME-Zarr images. It provides high-level access to the image metadata, images, labels, and tables.
What is the OME-Zarr container not?¶
The OME-Zarr Container object does not allow the user to interact with the image data directly. For that, we need to use the Image, Label, and Table objects.
Next steps¶
To learn how to work with the OME-Zarr Container object, but also with the image, label, and table data, check out the following guides:
- OME-Zarr Container: An overview on how to use the OME-Zarr Container object and how to create new images and labels.
- Images/Labels: To know more on how to work with image data.
- Tables: To know more on how to work with table data, and how you can combine tables with image data.
- Masked Images/Labels: To know more on how to work with masked image data.
- HCS Plates: To know more on how to work with HCS plate data.
Also, checkout our jupyer notebook tutorials for more examples:
- Image Processing: Learn how to perform simple image processing operations.
- Image Segmentation: Learn how to create new labels from images.
- Feature Extraction: Learn how to extract features from images.
- HCS Processing: Learn how to process high-content screening data using ngio.