napari-imaris-loader
Napari plugin for loading Bitplane Imaris files ‘.ims’.
Notes:
For this plugin to work “File/Preferences/Experimental/Render Images Asynchronously” must be selected.
Features
- Multiscale Rendering
- Image pyramids which are present in the native IMS format are automatically added to napari during file loading.
- Chunk loading from disk is implemented by dask and matched to the chunk sizes stored in each dataset.
- Successfully handles multi-terabyte multi-channel datasets (see unknowns)
Known Issues / limitations
- Currently, this is only an image loader, and there are no features for loading or viewing objects
- Napari sometimes throws errors indicating that it expected a 3D or 5D array but receives the opposite.
- This sometimes but relatively rarely causes napari to crash
- The IMS class used in the reader represents all arrays as 5D arrays to dask.array / napari (tczyx). This is necessary because IMS only stores data as 3D arrays separated by time and color. For example a 1 Timepoint / 1 Color, 3D 100x1024x1024px volume would have dimensions (1,1,100,1024,1024) and would be handed to napari as a 5D array rather than 3D.
- Would like to enable Asynchronous Tilimg of Images, but this results in more instability and causes crashes.
- May need to rethink the way that IMS slicing is done or resulting numpy array is presented to napari
- The lowest resolution level in the IMS file is often too small for detailed 3D renderings.
- Currently this is limited by the lowest resolution level being used by napari for 3D.
- Contrast_Limits are currently determined by dtype and not the actual data.
- float: [0,1], uint8: [0,254], uint16: [0,65534]
- Future implementations may use the HistogramMax parameter to determine this.
Unknowns
- Time series data has not been tested, but it has been designed to work.
This napari plugin was generated with Cookiecutter using with @napari‘s cookiecutter-napari-plugin template.
Installation
You can install napari-imaris-loader
via pip:
pip install napari-imaris-loader
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. Test only verify that the loader is callable. Will implement testing over a real ‘.ims’ file in the future.
License
Distributed under the terms of the BSD-3 license,
“napari-imaris-loader” is free and open source software
Issues
If you encounter any problems, please file an issue along with a detailed description.