Skip to main content

Tools to simplify reading CZI (Carl Zeiss Image) meta and pixel data

Project description

czitools

PyPI PyPI - Downloads License Python Version Development Status

This repository provides a collection of tools to simplify reading CZI (Carl Zeiss Image) pixel and metadata in Python. In addition it also contains other useful utilities to visualize CZI images inside Napari (needs to be installed). It is also available as a Python Package on PyPi

Installation

To install the basic functionality (will not install Napari und plotting functionality) use:

pip install czitools"

To install the package with all optional dependencies use:

pip install czitools[all]

Reading the metadata

Please check use_metadata_tools.py for some examples.

from czitools.metadata_tools.czi_metadata import CziMetadata, writexml
from czitools.metadata_tools.dimension import CziDimensions
from czitools.metadata_tools.boundingbox import CziBoundingBox
from czitools.metadata_tools.channel import CziChannelInfo
from czitools.metadata_tools.scaling import CziScaling
from czitools.metadata_tools.sample import CziSampleInfo
from czitools.metadata_tools.objective import CziObjectives
from czitools.metadata_tools.microscope import CziMicroscope
from czitools.metadata_tools.add_metadata import CziAddMetaData
from czitools.metadata_tools.detector import CziDetector
from czitools.read_tools import read_tools
from czitools.napari_tools import napari_tools
import napari

# get the metadata_tools at once as one big class
mdata = CziMetadata(filepath)

# get only specific metadata_tools
czi_dimensions = CziDimensions(filepath)
print("SizeS: ", czi_dimensions.SizeS)
print("SizeT: ", czi_dimensions.SizeT)
print("SizeZ: ", czi_dimensions.SizeZ)
print("SizeC: ", czi_dimensions.SizeC)
print("SizeY: ", czi_dimensions.SizeY)
print("SizeX: ", czi_dimensions.SizeX)

# try to write XML to file
xmlfile = writexml(filepath)

# get info about the channels
czi_channels = CziChannelInfo(filepath)

# get the complete metadata_tools from the CZI as one big object
czimd_complete = get_metadata_as_object(filepath)

# get an object containing only the dimension information
czi_dimensions = CziDimensions(filepath)

# get an object containing only the dimension information
czi_scale = CziScaling(filepath)

# get an object containing information about the sample
czi_sample = CziSampleInfo(filepath)

# get info about the objective, the microscope and the detectors
czi_objectives = CziObjectives(filepath)
czi_detectors = CziDetector(filepath)
czi_microscope = CziMicroscope(filepath)

# get info about the sample carrier
czi_sample = CziSampleInfo(filepath)

# get additional metainformation
czi_addmd = CziAddMetaData(filepath)

# get the complete data about the bounding boxes
czi_bbox = CziBoundingBox(filepath)

Reading CZI pixel data

While the pylibCZIrw is focussing on reading individual planes it is also helpful to read CZI pixel data as a STCZYX(A) stack. Please check use_read_tools.py for some examples.

# return a dask or numpy array with dimension order STCZYX(A)
array6d, mdata = read_tools.read_6darray(filepath,
                                         use_dask=True,
                                         chunk_zyx=False,
                                         # T=0,
                                         # Z=0
                                         # S=0
                                         # C=0
                                        )

if array6d is None:
    print("Empty array6d. Nothing to display in Napari")
else:

    # show array inside napari viewer
    viewer = napari.Viewer()
    layers = napari_tools.show(viewer, array6d, mdata,
                               blending="additive",
                               contrast='from_czi',
                               gamma=0.85,
                               show_metadata="tree",
                               name_sliders=True)

    napari.run()

5D CZI inside Napari

Colab Notebooks

Read CZI metadata

The basic usage can be inferred from this sample notebook:  Open In Colab

Read CZI pixeldata

The basic usage can be inferred from this sample notebook:  Open In Colab

Write OME-ZARR from 5D CZI image data

The basic usage can be inferred from this sample notebook:  Open In Colab

Write CZI using ZSTD compression

The basic usage can be inferred from this sample notebook:  Open In Colab

Show planetable of a CZI image as surface

The basic usage can be inferred from this sample notebook:  Open In Colab

Read a CZI and segment using Voroni-Otsu provided by PyClesperanto GPU processing

The basic usage can be inferred from this sample notebook:  Open In Colab

Remarks

The code to read multi-dimensional with delayed reading using Dask array was heavily inspired by input from: Pradeep Rajasekhar.

Local installation (base functionality only):

pip install -e .

Local Installation

Local installation (full functionality):

pip install -e ".[all]"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

czitools-0.7.0.tar.gz (49.4 kB view details)

Uploaded Source

Built Distribution

czitools-0.7.0-py3-none-any.whl (56.3 kB view details)

Uploaded Python 3

File details

Details for the file czitools-0.7.0.tar.gz.

File metadata

  • Download URL: czitools-0.7.0.tar.gz
  • Upload date:
  • Size: 49.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for czitools-0.7.0.tar.gz
Algorithm Hash digest
SHA256 50a7c602f68452c7b461b1a79c65f621a806cea8cdf0abe513a8f28789eb9e1d
MD5 e478e5f59b253eb22ff4de0c103ef15d
BLAKE2b-256 cf0c6058d99b58309c9081d87d2323bc3129e53aae77b5026d0cb2c1fa33a7e4

See more details on using hashes here.

File details

Details for the file czitools-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: czitools-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 56.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for czitools-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 856a33943695cc15f8a105d92326177c27c680c3a0c9ba9d9c8bf6834fcaf7e9
MD5 2d1a3fedaa5fc15f7e0bf16b1758ff09
BLAKE2b-256 3167773c448f1d28f81116d97996bb731ce86a4f0d7bb20cdc185d42dd40e51c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page