napari plugin for nd tiff folders with OpenCl deskew

    License PyPI Python Version tests codecov

    napari plugin for nd tiff folders with optional CUDA or OpenCL-based deskewing.

    Built-in support for folders of (skewed) lattice light sheet tiffs.

    napari-ndtiffs demo

    This napari plugin was generated with Cookiecutter using with @napari's cookiecutter-napari-plugin template.


    • Drag and drop a folder of tiffs onto napari window to view easily
      • (currently designed to detect lattice light sheet tiffs, but easily adjustable)
    • If lattice Settings.txt file is found, will deskew automatically (only if necessary)
    • Lazily loads dataset on demand. quickly load preview your data.
    • Handles .zip archives as well! Just directly compress your tiff folder, then drop it into napari.
    • All OpenCL deskewing, works on GPU as well as CPU, falls back to scipy if PyOpenCL is unavailable.
    • CuPy-based deskewing will work for cards with NVIDIA GPUs that support CUDA. CuPy 8.x releases should work, although CuPy >= 9 is recommended. If CuPy is unavailable, the PyOpenCL implementation is used instead.

    It would not be hard to support arbitrary filenaming patterns! If you have a folder of tiffs with a consistent naming scheme and would like to take advantage of this plugin, feel free to open an issue!


    You can install napari-ndtiffs via pip:

    pip install napari-ndtiffs

    To also install PyOpenCL (for faster deskewing):

    pip install napari-ndtiffs[opencl]

    On NVIDIA GPUs with CUDA support, the CuPy implementation may be faster than PyOpenCL. CuPy also has experimental support for AMD GPUs via HIP/ROCm. See the CuPy installation instructions


    In most cases, just drop your folder onto napari, or use"path")

    Overriding parameters

    You can control things like voxel size and deskewing angle as follows:

    from napari_ndtiffs import parameter_override
    import napari
    viewer = napari.Viewer()
    with parameter_override(angle=45, name="my image"):"path/to/folder", plugin="ndtiffs")

    Valid keys for parameter_override include:

    • dx: (float) the pixel size, in microns
    • dz: (float)the z step size, in microns
    • deskew: (bool) whether or not to deskew, (by default, will deskew if angle > 0, or if a lattice metadata file is detected that requires deskewing)
    • angle: (float) the angle of the light sheet relative to the coverslip
    • padval: (float) the value with which to pad the image edges when deskewing (default is 0)
    • contrast_limits: (2-tuple of int) (min, max) contrast_limits to use when viewing the image
    • name: (str) an optional name for the image

    Sample data

    Try it out with test data: download sample data

    You can unzip if you like, or just drag the zip file onto the napari window.

    Or, from command line, use:

    napari path/to/


    To monitor file io and deskew activity, enter the following in the napari console:

    import logging


    Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.


    Distributed under the terms of the BSD-3 license, "napari-ndtiffs" is free and open source software


    If you encounter any problems, please file an issue along with a detailed description.


    • 0.2.1

    Last updated:

    • 29 March 2023

    First released:

    • 06 May 2020


    Supported data:

    • Information not submitted

    Plugin type:

    Open extension:

    GitHub activity:

    • Stars: 11
    • Forks: 5
    • Issues + PRs: 2

    Python versions supported:

    Operating system:

    • Information not submitted


    • dask[array]
    • napari-plugin-engine>=0.1.4
    • numpy
    • python-dateutil
    • scipy
    • tifffile