Releases: AllenCellModeling/napari-aicsimageio
Bugfixes and UX Improvements!
napari-aicsimageio v0.7.2
napari-aicsimageio is a plugin for napari that utilizes AICSImageIO for image reading. In doing so, this plugin allows the reading of hundreds of different file formats. Most with channel, scale, axis, and metadata extraction.
This release includes some minor admin changes, some bugfixes, and some UX improvements.
The main bugfix is that, before this plugin hands the data to napari to render, we squeeze the proper dimensions out of it. And the UX improvement is to change the layer names for single scene images. For example, single scene images used to be added with Image :: 0
but will now be added with FILENAME
to add more clarity to the layers when working with multiple files at once.
Thanks @psobolewskiPhD and @tlambert03 for your work on these!
What's Changed
- build/use-setuptools-scm-for-versioning by @tlambert03 in #52
- Bugfix: Fix napari-plugin-check version by @psobolewskiPhD in #59
- Bugfix: Check the squeezed data for scale vals by @psobolewskiPhD in #60
- Use filename if single scene & no scene name by @psobolewskiPhD in #58
Full Changelog: v0.7.1...v0.7.2
NPE2 and Single Plugin Entry
napari-aicsimageio v0.7.0
This release includes a major change.
Previously after installing and using this plugin, users would be able to manually select between how to read a file (either in-memory or delayed). Due to upgrading to npe2
however, we can no longer ship multiple readers with the same package anymore.
So instead we have made it so the file reading mode (in-memory or delayed) is determined via filesize and available memory.
Reading Mode Threshold
This image reading plugin will load the provided image directly into memory if it meets the following two conditions:
The filesize is less than 4GB.
The filesize is less than 30% of machine memory available.
If either of these conditions isn't met, the image is loaded in chunks only as needed.
Currently, the user cannot select which reading mode to enforce. However coming soom^tm, napari users will be able to edit a configuration file and we plan to expose such settings there.
What's Changed
- admin/bump-min-aicsimageio-to-resolve-czi-physical-pixel-sizes by @evamaxfield in #44
- mention conda in installation instructions by @haesleinhuepf in #48
- feature/convert-to-npe2 by @tlambert03 in #49
- feature/cleanup-np2 by @evamaxfield in #50
New Contributors
- @haesleinhuepf made their first contribution in #48
Full Changelog: v0.6.1...v0.7.0
Link AICSImage Object to Napari Layers
This release can be summed up by the new addition in the README:
You can access the
AICSImage
object used to load the image pixel data and
image metadata using the built-in napari console:img = viewer.layers[0].metadata["aicsimage"] img.dims.order # TCZYX img.channel_names # ["Bright", "Struct", "Nuc", "Memb"] img.get_image_dask_data("ZYX") # dask.array.ArrayThe napari layer metadata dictionary also stores a shorthand
for the raw image metadata:viewer.layers[0].metadata["raw_image_metadata"]The metadata is returned in whichever format is used by the underlying
file format reader, i.e. for CZI the raw metadata is returned as
anxml.etree.ElementTree.Element
, for OME-TIFF the raw metadata is returned
as anOME
object fromome-types
.Lastly, if the underlying file format reader has an OME metadata conversion function,
you may additionally see a key in the napari layer metadata dictionary
called"ome_types"
. For example, because the AICSImageIO
CZIReader
andBioformatsReader
both support converting raw image metadata
to OME metadata, you will see an"ome_types"
key that stores the metadata transformed
into the OME metadata model.viewer.layers[0].metadata["ome_types"] # OME object from ome-types
What's Changed
- bugfix/windows-tests-fix by @psobolewskiPhD in #41
- bugfix/windows-build-main-yml-matrix by @psobolewskiPhD in #42
- feature/store-access-to-aicsimage-and-raw-meta-in-layer-meta by @JacksonMaxfield in #43
- Update minimum
aicsimageio
version to v4.6.0: 40d8f8a - Update PyPI license to reflect the repo license: c18b6d0
New Contributors
- @psobolewskiPhD made their first contribution in #41
Full Changelog: v0.5.0...v0.6.0
Thanks
All Deps Installable Means GPL License
All readers / file formats / deps are now installable (the main culprit was aicspylibczi not being installable on M1 macs), and as such we have added them all to the deps list. Additionally with this move, the package has become a GPL licensed package.
What's Changed
- admin/make-script-for-downloading-test-resource-use-cache by @sir-sigurd in #31
- bugfix/squeeze-extra-dims by @JacksonMaxfield in #32
- admin/update-min-aicsimageio-ver-and-move-to-gpl3 by @JacksonMaxfield in #36
Doc Updates
New Contributors
- @sir-sigurd made their first contribution in #31
- @ianhi made their first contribution in #38
Full Changelog: v0.4.1...v0.5.0
Multi-Scene Support
This release adds support for multi-scene files! When napari-aicsimageio
reads a multi-scene image it will pop open a widget with a list of all scenes in that file as well as some options for how to load those scenes.
This feature is marked as experimental so please give it a go and give us feedback! If reception is positive we are even considering making this the default loading pattern for napari-aicsimageio
so that the user can set even more parameters before loading with options like #28 and #29.
Major thanks to @psobolewskiPhD for the large majority of this work, to @tlambert03, @jwindhager, and @Czaki for being readily available for questions, and to the napari community as a whole. This was a lot of work and feedback from a lot of people.
napari-hub launch!
With napari-hub launch just around the corner and with the 4.0 release of AICSImageIO, I thought it would be good to release and fix the plugin in preparation.
This brings the plugin up-to-date with AICSImageIO==4.0.2 🎉
With that, the plugin now directly reads and returns the reconstructed / restitched mosaic tile images for certain file formats. It has generally more bug fixes, and should be faster across the board (especially the out-of-memory
variant).