napari plugin for nd tiff folders with optional CUDA or OpenCL-based deskewing.
Built-in support for folders of (skewed) lattice light sheet tiffs.
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 viewer.open("path")
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
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
To monitor file io and deskew activity, enter the following in the napari console:
import logging
logging.getLogger('napari_ndtiffs').setLevel('DEBUG')
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.