A Napari plugin for analysing and simulating ISM images

napari hub License PyPI Python Version

This plugin is built upon the python package BrightEyes-ISM. Napari-ISM enables the simulation, loading, and analysis of ISM datasets. More in detail, it performs:

  • Loading and compression of .h5 files generated by the MCS software.
  • Simulation of a realistic dataset of tubulin filaments.
  • Simulation of realistic ISM Point Spread Functions.
  • Summing over the detector array dimension
  • Adaptive Pixel Reassignment
  • Multi-image deconvolution
  • Focus-ISM


You can install napari-ISM via PyPI:

pip install napari-ISM

or by using napari hub.

It requires the following Python packages



To generate a simulated dataset, go to File > Open Sample > ISM dataset.

To acces the plugin list, go to Plugins > Napari-ISM.

To open a .h5 file, go to File > Open . You can then sum over the dimensions that are not needed, using the command integrateDims. The default axes are 0 (repetition), 1 (axial position), and 4 (time).

Note that all the analysis commands expect an input with size X x Y X Ch.

To see the result of summing over the SPAD dimensions Ch, use the plugin command Sum. Then, press Run.

To see the result of Adaptive Pixel Reassignment, use the plugin command APR_stack. Select as reference image (ref) the central one. Select an upsampling factor (usf), which corresponds to the sub-pixel precision of the shift-vector estimation. Then, press Run.

To generate the PSFs, use the plugin command PSFs. Select an image layer (img layer), it will be used to determine the number of pixels and the pixel size. Then, select the detector pixel size (pxsize) and pixel pitch (pxpitch) in microns. Select the magnification of the system (M). Select the excitation (exWl) and emission wavelength (emWl) in nanometers. Then, press Run.

To see the result of multi-image deconvolution, use the plugin command Deconvolution. Select an image layer (img layer) containing the ISM dataset to deconvolve and another image layer (psf layer) containing the PSFs, either simulated or experimental. Then, press Run.

To use Focus-ISM, first select a region on the input dataset using a shapes layer. Select a rectangle containing mainly in-focus emitters. It will be used as a calibration. Then, use the plugin command Focus-ISM. Select an image layer (img layer) containing the ISM dataset and a shape layer (shape layer) defining the calibration region. Select a lower bound for the standard deviation of the out-of-focus curve (sigma B bound) in units of standard deviations of the in-focus term. We suggest to never select a value below 2. Select a threshold (threshold) in units of photon counts. Scan coordinates with less photons than the threshold will be skipped in the analysis and classified as background. Then, press Run.

To use FRC, prepare the dataset to be in the shape xyt. Select the theshodling method (method) and smoothing method (smoothing) among those available. Then, press Calculate.


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.


Distributed under the terms of the GNU LGPL v3.0 license, "napari-ISM" is free and open source software


If you encounter any problems, please file an issue along with a detailed description.


  • 1.0.7

Last updated:

  • 30 August 2023

First released:

  • 26 May 2022


Supported data:

  • Information not submitted

Open extension:

Save extension:

Save layers:

GitHub activity:

  • Stars: 3
  • Forks: 3
  • Issues + PRs: 1

Python versions supported:

Operating system:


  • numpy
  • scipy
  • h5py
  • PyQt5
  • brighteyes-ism >=1.2.2

Sign up to receive updates