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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file napari-imaris-loader-0.0.2.tar.gz.
File metadata
- Download URL: napari-imaris-loader-0.0.2.tar.gz
- Upload date:
- Size: 19.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdfb84d02a87d08888fe048b600def27cf47a2c4f4a536bc896e8ddbd1a59be8
|
|
| MD5 |
be45fe1db225cd99715fc4f03232939b
|
|
| BLAKE2b-256 |
1463e888e45bee71f86bf40ea1e0554ff7ac3d7e1a6e7f68819a653fff9cec0b
|
File details
Details for the file napari_imaris_loader-0.0.2-py3-none-any.whl.
File metadata
- Download URL: napari_imaris_loader-0.0.2-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
017e8a470fa1cad7a9df749a7f0d1b8179e119681e2d4125103f0ab628913ebc
|
|
| MD5 |
b735e9f604fbbf90a07f7d27d4130b31
|
|
| BLAKE2b-256 |
c5881460f41b61f6d22972f5698ba9c92d40b0cb0030119f35d765637409e59b
|