napari-aicsimageio

AICSImageIO for napari. Multiple file format reading directly into napari using pure Python.


    Features

    • Supports reading metadata and imaging data for:
      • OME-TIFF
      • TIFF
      • CZI (Zeiss)
      • LIF (Leica)
      • ND2 (Nikon)
      • DV (DeltaVision)
      • Any formats supported by aicsimageio
      • Any formats supported by bioformats
      • Any additional format supported by imageio

    While upstream aicsimageio is released under BSD-3 license, this plugin is released under GPLv3 license because it installs all format reader dependencies.

    Reading Mode Threshold

    This image reading plugin will load the provided image directly into memory if it meets the following two conditions:

    1. The filesize is less than 4GB.
    2. The filesize is less than 30% of machine memory available.

    If either of these conditions isn't met, the image is loaded in chunks only as needed.

    Examples of Features

    General Image Reading

    All image file formats supported by aicsimageio will be read and all raw data will be available in the napari viewer.

    In addition, when reading an OME-TIFF, you can view all OME metadata directly in the napari viewer thanks to ome-types.

    screenshot of an OME-TIFF image view, multi-channel, z-stack, with metadata viewer

    Multi-Scene Selection

    When reading a multi-scene file, a widget will be added to the napari viewer to manage scene selection (clearing the viewer each time you change scene or adding the scene content to the viewer) and a list of all scenes in the file.

    gif of drag and drop file to scene selection and management

    Access to the AICSImage Object and Metadata

    napari viewer with console open showing viewer.layers[0].metadata

    You can access the AICSImage object used to load the image pixel data and image metadata using the built-in napari console:

    img = viewer.layers[0].metadata["aicsimage"]
    img.dims.order  # TCZYX
    img.channel_names  # ["Bright", "Struct", "Nuc", "Memb"]
    img.get_image_dask_data("ZYX")  # dask.array.Array

    The napari layer metadata dictionary also stores a shorthand for the raw image metadata:

    viewer.layers[0].metadata["raw_image_metadata"]

    The metadata is returned in whichever format is used by the underlying file format reader, i.e. for CZI the raw metadata is returned as an xml.etree.ElementTree.Element, for OME-TIFF the raw metadata is returned as an OME object from ome-types.

    Lastly, if the underlying file format reader has an OME metadata conversion function, you may additionally see a key in the napari layer metadata dictionary called "ome_types". For example, because the AICSImageIO CZIReader and BioformatsReader both support converting raw image metadata to OME metadata, you will see an "ome_types" key that stores the metadata transformed into the OME metadata model.

    viewer.layers[0].metadata["ome_types"]  # OME object from ome-types

    Mosaic Reading

    When reading CZI or LIF images, if the image is a mosaic tiled image, napari-aicsimageio will return the reconstructed image:

    screenshot of a reconstructed / restitched mosaic tile LIF

    Citation

    If you find aicsimageio (or napari-aicsimageio) useful, please cite as:

    AICSImageIO Contributors (2021). AICSImageIO: Image Reading, Metadata Conversion, and Image Writing for Microscopy Images in Pure Python [Computer software]. GitHub. https://github.com/AllenCellModeling/aicsimageio

    Free software: GPLv3

    Version:

    • 0.7.0

    Release date:

    • 21 July 2022

    First released:

    • 26 March 2020

    License:

    • GPL-3.0

    Supported data:

    • Information not submitted

    GitHub activity:

    • Stars: 20
    • Forks: 6
    • Issues + PRs: 8

    Python versions supported:

    Operating system:

    Requirements:

    • aicsimageio[all] (>=4.6.3)
    • fsspec[http]
    • napari (>=0.4.11)
    • psutil (>=5.7.0)
    • aicspylibczi (>=3.0.5)
    • bioformats-jar
    • readlif (>=0.6.4)

    Sign up to receive updates