napari-ndtiffs

napari plugin for nd tiff folders with OpenCl deskew


    License PyPI Python Version tests codecov

    napari plugin for nd tiff folders with optional 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.

    Features

    • 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.

    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!

    Installation

    You can install napari-ndtiffs via pip:

    pip install napari-ndtiffs

    To also install PyOpenCL (for faster deskewing):

    pip install napari-ndtiffs[opencl]

    Usage

    In most cases, just drop your folder onto napari, or use viewer.open("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"):
        viewer.open("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/lls_mitosis.zip

    Debugging

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

    import logging
    logging.getLogger('napari_llsfolder').setLevel('DEBUG')

    Contributing

    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.

    License

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

    Issues

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

    Version:

    • 0.1.2

    Release date:

    • 24 June 2021

    First released:

    • 06 May 2020

    License:

    • BSD-3-Clause

    Supported data:

    • Information not submitted

    GitHub activity:

    • Stars: 10
    • Forks: 5
    • Issues + PRs: 1

    Python versions supported:

    Operating system:

    Requirements:

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

    Sign up to receive updates