Napari plugin for loading Bitplane imaris files '.ims'
Project description
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.
- Chunks are implemented by dask and matched to the chunk sizes stored in each dataset. (Napari appears to only ask for 2D chunks - unclear how helpful this feature is currently)
- 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 other.
- This sometimes but relatively rarely causes napari to crash
- The IMS class used in the reader represents all arrays to napari as a 5D dask.array (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. Working on a fix for this.
- Would like to enable Asynchronous Tiling of Images, but this results in more instability and causes crashes.
- 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.
- 3D rendering works, but it is suggested to turn on 1 channel at a time starting from the highest channel to avoid some OpenGL errors and misalignment errors.
- For example: Turn on only Channel 1, activate 3D rendering, then turn on Channel 0.
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 verifies that the loader is callable. I plan to 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for napari-imaris-loader-0.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdfb84d02a87d08888fe048b600def27cf47a2c4f4a536bc896e8ddbd1a59be8 |
|
MD5 | be45fe1db225cd99715fc4f03232939b |
|
BLAKE2b-256 | 1463e888e45bee71f86bf40ea1e0554ff7ac3d7e1a6e7f68819a653fff9cec0b |
Hashes for napari_imaris_loader-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 017e8a470fa1cad7a9df749a7f0d1b8179e119681e2d4125103f0ab628913ebc |
|
MD5 | b735e9f604fbbf90a07f7d27d4130b31 |
|
BLAKE2b-256 | c5881460f41b61f6d22972f5698ba9c92d40b0cb0030119f35d765637409e59b |