Skip to main content

Napari plugin for loading Bitplane imaris files '.ims'

Project description

napari-imaris-loader

License PyPI Python Version tests codecov

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

napari-imaris-loader-0.0.2.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

napari_imaris_loader-0.0.2-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

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

Hashes for napari-imaris-loader-0.0.2.tar.gz
Algorithm Hash digest
SHA256 bdfb84d02a87d08888fe048b600def27cf47a2c4f4a536bc896e8ddbd1a59be8
MD5 be45fe1db225cd99715fc4f03232939b
BLAKE2b-256 1463e888e45bee71f86bf40ea1e0554ff7ac3d7e1a6e7f68819a653fff9cec0b

See more details on using hashes here.

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

Hashes for napari_imaris_loader-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 017e8a470fa1cad7a9df749a7f0d1b8179e119681e2d4125103f0ab628913ebc
MD5 b735e9f604fbbf90a07f7d27d4130b31
BLAKE2b-256 c5881460f41b61f6d22972f5698ba9c92d40b0cb0030119f35d765637409e59b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page