senoquant
napari plugin for spatial quantification of senescence markers in tissue imaging
SenoQuant is a versatile napari plugin designed for comprehensive, accurate, and unbiased spatial quantification and prediction of senescence markers across diverse tissue contexts.
Video tutorial
Watch the tutorial for a guided walkthrough of the main workflow:
Features
- Read microscopy formats via BioIO, including OME-TIFF, OME-ZARR, ND2, LIF, CZI, and more.
- Segment nuclei and cytoplasm with built-in models, including StarDist, Cellpose SAM, and morphological operations.
- Detect punctate spots with built-in detectors.
- Run prediction models for senescence-associated feature maps in a dedicated Prediction tab (includes
demo_modelplaceholder). - Discover and download compatible SenNet datasets from the SenNet Portal tab.
- Quantify marker intensity, morphology, spot counts, and spot colocalization.
- Generate visualization outputs from quantification tables (Spatial Plot, UMAP, Double Expression, and Neighborhood Enrichment).
- Run batch workflows across folders with multi-scene support.
- Save/load reusable Segmentation, Spots, and Batch settings for reproducibility.
Installation
Installer (recommended - please also use Google Chrome to download)
Windows
Download the Windows installer (.exe) from the latest release under "Assets."
macOS
Download the macOS installer (.pkg) from the latest release under "Assets."
Linux
Installer support for Linux is under construction.
Note 1: The installer may trigger security warnings on macOS and Windows (especially when using Microsoft Edge). This is expected for open-source software distributed outside of official app stores. Follow the system prompts to allow installation. On Windows, you may need to click "More info" and then "Run anyway" on the warning popup. On macOS, when you see the warning that "Apple could not verify...," click "Done" to dismiss, then go to System Settings > Privacy & Security and click "Open Anyway" for the SenoQuant installer.
Note 2: In some corporate environments, security policies may block the installer's access to folders or the Internet. If you encounter issues, try running the installer with administrator privileges (right-click > "Run as administrator" on Windows) and ensure that your firewall allows the installer to access the Internet to download dependencies.
Manual installation
For conda/pip/uv setup, see the developer installation guide.
Quick start
Use the documentation workflow for the most up-to-date instructions.
- Start with the installation guide.
- Follow the quick start guide.
- Then use tab-specific guides for SenNet Portal, segmentation, spots, prediction, quantification, visualization, batch, and settings.
Documentation
Full documentation is available at https://haamsree.github.io/senoquant/.
- Installation guide.
- Quick start tutorial.
- Segmentation models.
- Spot detection.
- Prediction tab.
- SenNet Portal tab.
- Quantification features.
- Visualization tab.
- Batch processing.
- Settings persistence.
- Prediction model development.
- API reference.
Development
See the contributing guide for development setup instructions.
How to cite
If you use SenoQuant in your research, please cite it using the metadata in CITATION.cff.
On GitHub, open the repository page and click Cite this repository in the right sidebar to copy a formatted citation.
Acknowledgements
SenoQuant builds on and integrates excellent open-source projects.
Version:
- 1.0.0b11.post5
Last updated:
- 2026-04-14
First released:
- 2026-01-31
License:
- BSD-3-Clause
Supported data:
- Information not submitted
Open extension:
- *.pcoraw
- *.oib
- *.xml
- *.avi
- *.bip
- *.xys
- *.pgm
- *.ome.btf
- *.dm4
- *.cxd
- *.jpx
- *.naf
- *.mng
- *.l2d
- *.erf
- *.fff
- *.ipl
- *.avs2
- *.xdce
- *.mdb
- *.spe
- *.exp
- *.bmp
- *.html
- *.r3d
- *.dnxhd
- *.msr
- *.amiramesh
- *.dv
- *.xv
- *.nd2
- *.3fr
- *.his
- *.ids
- *.xqd
- *.bay
- *.ism
- *.ppm
- *.tf2
- *.nii.gz
- *.stp
- *.oir
- *.dat
- *.pict
- *.obf
- *.tnb
- *.ome.tf2
- *.nrrd
- *.spi
- *.top
- *.zvi
- *.sld
- *.jpg
- *.nhdr
- *.spc
- *.asf
- *.dng
- *.hdr
- *.amr
- *.zarr
- *.sm3
- *.tiff
- *.ffr
- *.vsi
- *.3g2
- *.png
- *.cdg
- *.mnc
- *.jng
- *.czi
- *.mov
- *.a64
- *.dm3
- *.pds
- *.avc
- *.xvthumb
- *.txt
- *.lms
- *.mp4
- *.cfg
- *.ch5
- *.obsep
- *.ome.tif
- *.bif
- *.fli
- *.gif
- *.cgi
- *.ics
- *.labels
- *.img
- *.tfr
- *.pbm
- *.ome.tf8
- *.bin
- *.lei
- *.tga
- *.jif
- *.lif
- *.tf8
- *.hx
- *.wat
- *.dvd
- *.dip
- *.flex
- *.tif
- *.mrw
- *.stk
- *.seq
- *.ndpis
- *.btf
- *.v
- *.avs
- *.gel
- *.dm2
- *.im3
- *.ps
- *.raw
- *.hdf
- *.aim
- *.lim
- *.svs
- *.htd
- *.frm
- *.qptiff
- *.acff
- *.vms
- *.dcr
- *.sxm
- *.oif
- *.dcm
- *.ome.tiff
- *.mod
- *.ome
- *.eps
- *.inr
- *.mrc
- *.sldy
- *.lsm
- *.zfp
- *.zfr
- *.apng
- *.dti
- *.pcx
- *.msp
- *.ct
- *.265
- *.csv
- *.am
- *.cr2
- *.pic
- *.jp2
- *.sdt
- *.1sc
- *.ndpi
- *.fdf
- *.vws
- *.2fl
- *.iiq
- *.hed
- *.pnl
- *.liff
- *.scn
- *.jpk
- *.mtb
- *.if
- *.sif
- *.icb
- *.dir
- *.par
- *.psd
- *.fits
- *.sm2
- *.amv
- *.ims
- *.apl
- *.rec
- *.xqf
- *.afi
- *.arf
- *.ipw
- *.264
- *.mcidas
- *.zif
- *.pr3
- *.al3d
- *.ome.xml
- *.nef
- *.afm
- *.cif
- *.mpo
- *.jfif
- *.c01
- *.adp
- *.ipm
- *.nii
- *.grey
- *.arw
- *.wlz
- *.exr
- *.mvd2
- *.spider
- *.dib
- *.imt
- *.crw
- *.i2i
- *.nd
- *.rcpnl
Save extension:
Python versions supported:
Operating system:
- Information not submitted
Requirements:
- bioio>=3.2.0
- bioio-bioformats>=1.3.0
- bioio-czi>=2.4.2
- bioio-dv>=1.2.0
- bioio-imageio>=1.3.0
- bioio-lif>=1.4.0
- bioio-nd2>=1.6.0
- bioio-ome-tiff>=1.4.0
- bioio-ome-zarr>=3.2.1
- bioio-sldy>=1.4.0
- bioio-tifffile>=1.3.0
- scyjava>=1.12.0
- numpy<=1.26.4,>=1.23
- pandas>=2.0
- cellpose==4.0.8
- onnx>=1.16
- onnxruntime>=1.21.0; platform_system == "Darwin"
- onnxruntime-gpu>=1.21.0; platform_system != "Darwin"
- openpyxl>=3.1
- huggingface_hub>=0.23.0
- scikit-image<0.25,>=0.22
- PyWavelets>=1.5
- scipy>=1.8
- senoquant-stardist-ext>=0.1.1
- dask[array]>=2024.4
- dask[distributed]>=2024.4
- fsspec>=2024.4
- smbprotocol>=1.13
- matplotlib>=3.8
- umap-learn>=0.5
- igraph>=0.11
- leidenalg>=0.10
- jsonschema>=3.2
- pathvalidate>=3.2
- zarr>=3
- globus-cli>=3.1.4
- atlas-consortia-clt>=1.0.4
- napari[all]; extra == "all"
- bioio>=3.2.0; extra == "all"
- bioio-bioformats>=1.3.0; extra == "all"
- bioio-czi>=2.4.2; extra == "all"
- bioio-dv>=1.2.0; extra == "all"
- bioio-imageio>=1.3.0; extra == "all"
- bioio-lif>=1.4.0; extra == "all"
- bioio-nd2>=1.6.0; extra == "all"
- bioio-ome-tiff>=1.4.0; extra == "all"
- bioio-ome-zarr>=3.2.1; extra == "all"
- bioio-sldy>=1.4.0; extra == "all"
- bioio-tifffile>=1.3.0; extra == "all"
- scyjava>=1.12.0; extra == "all"
- numpy<=1.26.4,>=1.23; extra == "all"
- pandas>=2.0; extra == "all"
- cellpose==4.0.8; extra == "all"
- onnx>=1.16; extra == "all"
- onnxruntime>=1.21.0; platform_system == "Darwin" and extra == "all"
- onnxruntime-gpu>=1.21.0; platform_system != "Darwin" and extra == "all"
- openpyxl>=3.1; extra == "all"
- huggingface_hub>=0.23.0; extra == "all"
- scikit-image<0.25,>=0.22; extra == "all"
- PyWavelets>=1.5; extra == "all"
- scipy>=1.8; extra == "all"
- senoquant-stardist-ext>=0.1.1; extra == "all"
- dask[array]>=2024.4; extra == "all"
- dask[distributed]>=2024.4; extra == "all"
- fsspec>=2024.4; extra == "all"
- smbprotocol>=1.13; extra == "all"
- matplotlib>=3.8; extra == "all"
- umap-learn>=0.5; extra == "all"
- igraph>=0.11; extra == "all"
- leidenalg>=0.10; extra == "all"
- jsonschema>=3.2; extra == "all"
- pathvalidate>=3.2; extra == "all"
- zarr>=3; extra == "all"
- globus-cli>=3.1.4; extra == "all"
- atlas-consortia-clt>=1.0.4; extra == "all"


