napari plugin for nd tiff folders with OpenCl deskew
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.txtfile is found, will deskew automatically (only if necessary)
- Lazily loads dataset on demand. quickly load preview your data.
.ziparchives 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
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
- 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:
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.
- 29 March 2023
- 06 May 2020
- Information not submitted
- Stars: 11
- Forks: 5
- Issues + PRs: 2