This python package implements s²ISM (Super-resolution Sectioning Image Scanning Microscopy), a computational technique to reconstruct images with enhanced resolution, optical sectioning, signal-to-noise ratio and sampling from a conventional ISM dataset acquired by a laser scanning microscope equipped with a detector array. The details of the method are described in the paper Structured Detection for Simultaneous Super-Resolution and Optical Sectioning in Laser Scanning Microscopy.
The ISM dataset should be a numpy array in the format (x, y, channel), where the channel dimension is the flattened 2D dimension of the detector array. If the lifetime data are present, the array should be in the format (x, y, time, channel).
This package also contains a module for simulating instrument-specific PSFs by retrieving the relevant parameters automatically from the raw dataset with minimal user inputs.
Important: the current implementation of the automatic PSF generation works under the assumption that the detectors of the array are arranged in a squared fashion. If this is not the case for your detector (e.g. AiryScan), you need to provide the PSFs manually.
You can install s2ism
via pip directly from GitHub:
pip install git+https://github.com/VicidominiLab/s2ISM
or using the version on PyPI:
pip install s2ism
It requires the following Python packages
numpy
matplotlib
scipy
scikit-image
brighteyes-ism
torch
tqdm
You can find examples of usage here:
https://github.com/VicidominiLab/s2ISM/tree/main/examples
If you find s²ISM useful for your research, please cite it as:
Zunino, A., Garrè, G., Perego, E., Zappone, S., Donato, M., & Vicidomini, G. Structured Detection for Simultaneous Super-Resolution and Optical Sectioning in Laser Scanning Microscopy. ArXiv (2024). https://doi.org/10.48550/arXiv.2406.12542
Distributed under the terms of the GNU GPL v3.0 license, "s2ISM" is free and open source software
You want to contribute? Great! Contributing works best if you creat a pull request with your changes.
- Fork the project.
- Create a branch for your feature:
git checkout -b cool-new-feature
- Commit your changes:
git commit -am 'My new feature'
- Push to the branch:
git push origin cool-new-feature
- Submit a pull request!
If you are unfamilar with pull requests, you find more information on pull requests in the github help
If you encounter any problems, please file an issue along with a detailed description.