Info: Zenodo’s user support line is staffed on regular business days between Dec 23 and Jan 5. Response times may be slightly longer than normal.

Published December 12, 2024 | Version v0.5.5
Software Open

napari: a multi-dimensional image viewer for Python

  • 1. Chan Zuckerberg Initiative
  • 2. Harvard Medical School
  • 3. University of Warsaw, Faculty of Mathematics, Informatics, and Mechanics
  • 4. Monash eResearch Centre, Monash University
  • 5. The Jackson Laboratory
  • 6. Gutsche Lab - University of Grenoble
  • 7. MRC-LMB
  • 8. Monash University
  • 9. Iber Lab - ETH Zürich
  • 10. Quansight
  • 11. European Molecular Biology Laboratory, Genome Biology Unit, Heidelberg, Germany
  • 12. Chan Zuckerberg Biohub
  • 13. Harvard Medical School, BIDMC
  • 14. SETI Institute/NASA ARC
  • 15. Quansight Labs
  • 16. Laboratory for Optics and Biosciences, Ecole Polytechnique, INSERM, CNRS, Palaiseau, France
  • 17. Friedrich Miescher Institute for Biomedical Research (FMI), Basel (Switzerland)
  • 18. EMBL Heidelberg, Germany
  • 19. University of California, Irvine
  • 20. Tel Aviv University, Israel
  • 21. Ramona Optics Inc, Durham, North Carolina, USA
  • 22. University College London
  • 23. Swiss Federal Institute of Technology (EPFL), Lausanne, Switzerland
  • 24. Universitätsmedizin Greifswald
  • 25. Chan Zuckerberg Initiative Foundation
  • 26. UCL & The Alan Turing Institute
  • 27. EMBL Heidelberg
  • 28. MetaCell
  • 29. Delft University of Technology
  • 30. Apex Systems
  • 31. University of California, Los Angeles
  • 32. Georg-August-Universität Göttingen
  • 33. University Hospital Würzburg - Institute of Neuroradiology
  • 34. Algarve Centre of Marine Sciences (CCMAR)
  • 35. Yikes LLC
  • 36. Brown University
  • 37. NanoString Technologies, Inc.
  • 38. European Bioinformatics Institute - European Molecular Biology Laboratory
  • 39. University of Wisconsin-Madison
  • 40. AI lab for Living Technologies, University Medical Centre Utrecht (The Netherlands)
  • 41. DFG cluster of excellence 'Physics of Life', TU Dresden
  • 42. Aix Marseille University, CNRS, Fresnel, I2M, IBDM, Turing Centre for Living systems
  • 43. TU-Dresden / EPFL
  • 44. ETH Zurich / University of Zurich
  • 45. Tobeva Software
  • 46. Chinese Academy of Sciences - SIAT, Shenzhen, China

Description

napari 0.5.5

Thu, Dec 12, 2024

We're happy to announce the release of napari 0.5.5! (You might have noticed it's been a hot minute since our last release — the team has been busy on the conference circuit (watch our talk at PyConAU!), defending their PhDs, and more! We are now back to our regularly-scheduled programming. 😂

napari is a fast, interactive, multi-dimensional image viewer for Python. It's designed for exploring, annotating, and analyzing multi-dimensional images. It's built on Qt (for the GUI), VisPy (for performant GPU-based rendering), and the scientific Python stack (NumPy, SciPy, and friends).

For more information, examples, and documentation, please visit our website: https://napari.org/

Highlights

This release continues the 0.5 tradition of churning out the bug fixes and enhancements, with 24 pull requests total in that category. If you are a user of oblique plane rendering, you'll appreciate #7422, which fixes the plane calculation when data is anisotropic.

And, did you have a hole in your heart where high-quality 3D labels rendering should have been? Check out #7431, in which Ashley Anderson has (again) improved the quality of 3D labels by filling the (apparent, but fictional) holes in labels at the borders of a volume. Before/after gif:

Additionally, Grzegorz Bokota has again sped up launch time for Shapes layers by porting all the edge triangulation code to numba (#7268). As part of that work he also created a fantastic developer example explaining how the edge triangulation works, which you can find at examples/dev/triangle_edge.py. Give it a read and a play if you want to peek under the hood of the Shapes layer!

<figure>
  <video width="100%" controls autoplay loop muted playsinline>
    <source src="../_static/images/triangle-edge.webm" type="video/webm" />
    <source src="../_static/images/triangle-edge.mp4" type="video/mp4" />
    <img src="../_static/images/triangle-edge.png"
      title="Your browser does not support the video tag"
      alt="napari viewer showing a shapes layer and associated layers depicting the triangulation of the elements of the Shapes layer."
    >
  </video>
</figure>

Did you miss a napari error or warning while reading these notes? We don't blame you! Those missed notifications will be a thing of the past with #7220, which will keep notifications open if the napari window is not in focus. Whew!

Finally, for the zarrventurous among you, napari 0.5.5 is ready for zarr v3, coming soon to a PyPI near you! (#7215) If you are using or testing the zarr 3.0.0 betas, try them with napari! We hope you'll be pleasantly surprised. 😊

As always, we thank all the contributors to this napari release and all the previous ones! We welcome Carol Willing and Tim Monko to the list of contributors. Read on for all the changes in this version!

Read on for all the changes in this version!

Improvements

  • Do not start notification timer if window is not active. (#7220)
  • Speedup triangulation of edges (#7268)
  • [Enh] Double-click to zoom in on the clicked location (alt to zoom out) (#7286)
  • Highlight Shapes and Points layer data only when active (#7289)
  • Remove keybinding full stops (#7304)
  • Add example doc comparing screenshot and export_figure (#7319)
  • [Enh] Add a Merge to RGB contextual menu item (#7322)
  • Enable mouse pan and zoom when no active layer is available (#7408)
  • Add metadata event to Layer class (#7416)
  • Update normal calculation for labels isosurface rendering (#7431)

Bug Fixes

  • Use font_size setting to control napari-console font-size (#6753)
  • Add from maximized to fullscreen mode interactions handling and allow using Alt-Tab while on fullscreen on Windows (#7308)
  • Fix bounding box to not contain only shape interior but also edges (#7332)
  • Clean selected data in Shapes layer when setting data (#7336)
  • fix iso_gradient_mode in constructor call (#7340)
  • Fix using transform mode when having layers with a different number of dimensions (#7342)
  • fix: change highlight only on zoom and mouse press (#7386)
  • Don't show plane normal controls unless layer has 3 or more dimensions and change controls order (plane controls under depiction combobox) (#7395)
  • Enable mouse pan and zoom when no active layer is available (#7408)
  • bug fix: have layerlist consume return, not pass to viewer (#7417)
  • Prevent errors when interacting with selected non-visible layers (#7418)
  • [bugfix] implement proper world to data normal transformation (#7422)
  • Turn off 'flash' in screenshot/export_figure examples (#7427)
  • Update surface shading control combobox when value is set programatically (#7432)

Documentation

  • update scale_bar example to include new attributes (#7309)
  • Add example doc comparing screenshot and export_figure (#7319)
  • Add reminder about version added directive in PR template (#7359)
  • Update the docstrings and comments for status checker thread (#7381)
  • Update to_screenshot and export_figure example docstrings (#7426)
  • Turn off 'flash' in screenshot/export_figure examples (#7427)
  • Add draft release notes for 0.5.5 (docs#536)
  • Add linkcheck step to be run once a week (docs#474)
  • Fix broken links detected by make linkcheck-files (docs#484)
  • Add 0.5.4 to the version switcher (docs#500)
  • Document the SPEC-0 rule for bundled Python (docs#501)
  • Update docs to remove flake8, isort mentions and add ruff (docs#502)
  • Highlight Jupyter option in gallery examples (docs#503)
  • Add community calendar link to landing page (docs#504)
  • Add information about qt_viewer fixture (docs#505)
  • Add information that qt_viewer fixture hide the viewer (docs#506)
  • Update release guide anchor (docs#507)
  • Minor improvement to provider annotations (docs#510)
  • Add notes about versionadded/versionchanged directives to dev guide (docs#512)
  • Update Step 4 of development set up to clarify qt backends (docs#516)
  • Update benchmarks.md to use conda napari-env (docs#518)
  • Add contributing text and link about CI (docs#519)
  • Update finding_and_installing_plugins.md (docs#521)
  • [Labels] Add more prominent info about the next label keybind and fix n_dimensional (deprecated) (docs#522)
  • Update NAP-6 to remove mention of context menu (docs#525)
  • Move Andy Sweet from core-devs to emeritus core-devs (docs#530)

Other Pull Requests

  • Add testing for drag and drop events/behavior on QtLayerList (#6699)
  • Fix zarr 3.0 compatibility (#7215)
  • Add more tests for Qt processors (#7280)
  • Update coverage, dask, fsspec, hypothesis, imageio, ipython, napari-console, pillow, psutil, qtconsole, qtpy, rich, tensorstore, toolz, tqdm, virtualenv, xarray (#7287)
  • Block zarr 3.0.0a5, 3.0.0a6 (#7305)
  • [pre-commit.ci] pre-commit autoupdate (#7307)
  • ci(dependabot): bump peter-evans/create-pull-request from 6 to 7 in the actions group (#7311)
  • Change Layer.create type annotation to accept any Mapping (#7317)
  • [pre-commit.ci] pre-commit autoupdate (#7324)
  • Fix double reporting of leaked widgets (#7326)
  • Improve docstrings and code flow of ShapeList.outline add missed return in thread status (#7337)
  • Add screenshot test for highlights visibility when layer selection/active layer changes (#7339)
  • [miant] update binder to use conda nightly and jupyter-remote-desktop-proxy (#7352)
  • Update dask, hypothesis, pint (#7358)
  • Add setting Windows resolution step for prereleases testing workflow and some tests fixes (#7360)
  • [pre-commit.ci] pre-commit autoupdate (#7361)
  • Add maintainer and contributor documentation about workflow automation near the configuration (#7365)
  • Stop testing PySide6 on python 3.9 (#7368)
  • fix: remove "openblas_set_num_threads not found" warning by add missed break (#7369)
  • Isolate keybinding tests using pytest.mark (#7375)
  • Add python-dotenv to dev dependencies (#7377)
  • mark slow local tests (#7383)
  • Speed up bigtiff test using np.empty and smaller data (#7384)
  • Update coverage, dask, hypothesis, tensorstore (#7385)
  • [pre-commit.ci] pre-commit autoupdate (#7388)
  • [Maint] drop unused n_dimensional property of Labels (#7389)
  • [pre-commit.ci] pre-commit autoupdate (#7424)
  • [tests] add tests for Layer._world_to_displayed_data_normal (#7435)
  • [pre-commit.ci] pre-commit autoupdate (#7439)
  • Remove lucyleeow from qt/ codeowners (#7441)
  • [Maint] Fix labeler action by using proper syntax (docs#523)
  • Update labeler.yml to check subfolders (docs#526)
  • Fix linkchecker (docs#528)

12 authors added to this release (alphabetical)

(+) denotes first-time contributors 🥳

14 reviewers added to this release (alphabetical)

(+) denotes first-time contributors 🥳

Notes

If you use this software, please cite it using these metadata.

Files

napari/napari-v0.5.5.zip

Files (3.5 MB)

Name Size Download all
md5:0a7a3371c0bdbb60217ccad9735e8a0d
3.5 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/napari/napari/tree/v0.5.5 (URL)

Software