Metadata-Version: 2.4
Name: senoquant
Version: 1.0.0b11.post3
Summary: napari plugin for spatial quantification of senescence markers in tissue imaging
Author: SenoQuant Contributors
Maintainer: SenoQuant Contributors
License: BSD-3-Clause
Project-URL: Homepage, https://github.com/HaamsRee/senoquant
Project-URL: Documentation, https://haamsree.github.io/senoquant/
Project-URL: Repository, https://github.com/HaamsRee/senoquant
Project-URL: Bug Tracker, https://github.com/HaamsRee/senoquant/issues
Keywords: napari,plugin,senescence,quantification,microscopy,image analysis,segmentation,spot detection
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: napari
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: bioio>=3.2.0
Requires-Dist: bioio-bioformats>=1.3.0
Requires-Dist: bioio-czi>=2.4.2
Requires-Dist: bioio-dv>=1.2.0
Requires-Dist: bioio-imageio>=1.3.0
Requires-Dist: bioio-lif>=1.4.0
Requires-Dist: bioio-nd2>=1.6.0
Requires-Dist: bioio-ome-tiff>=1.4.0
Requires-Dist: bioio-ome-zarr>=3.2.1
Requires-Dist: bioio-sldy>=1.4.0
Requires-Dist: bioio-tifffile>=1.3.0
Requires-Dist: scyjava>=1.12.0
Requires-Dist: numpy<=1.26.4,>=1.23
Requires-Dist: pandas>=2.0
Requires-Dist: cellpose==4.0.8
Requires-Dist: onnx>=1.16
Requires-Dist: onnxruntime>=1.21.0; platform_system == "Darwin"
Requires-Dist: onnxruntime-gpu>=1.21.0; platform_system != "Darwin"
Requires-Dist: openpyxl>=3.1
Requires-Dist: huggingface_hub>=0.23.0
Requires-Dist: scikit-image<0.25,>=0.22
Requires-Dist: PyWavelets>=1.5
Requires-Dist: scipy>=1.8
Requires-Dist: senoquant-stardist-ext>=0.1.1
Requires-Dist: dask[array]>=2024.4
Requires-Dist: dask[distributed]>=2024.4
Requires-Dist: fsspec>=2024.4
Requires-Dist: smbprotocol>=1.13
Requires-Dist: matplotlib>=3.8
Requires-Dist: umap-learn>=0.5
Requires-Dist: jsonschema>=3.2
Requires-Dist: pathvalidate>=3.2
Requires-Dist: zarr>=3
Requires-Dist: globus-cli>=3.1.4
Requires-Dist: atlas-consortia-clt>=1.0.4
Provides-Extra: all
Requires-Dist: napari[all]; extra == "all"
Requires-Dist: bioio>=3.2.0; extra == "all"
Requires-Dist: bioio-bioformats>=1.3.0; extra == "all"
Requires-Dist: bioio-czi>=2.4.2; extra == "all"
Requires-Dist: bioio-dv>=1.2.0; extra == "all"
Requires-Dist: bioio-imageio>=1.3.0; extra == "all"
Requires-Dist: bioio-lif>=1.4.0; extra == "all"
Requires-Dist: bioio-nd2>=1.6.0; extra == "all"
Requires-Dist: bioio-ome-tiff>=1.4.0; extra == "all"
Requires-Dist: bioio-ome-zarr>=3.2.1; extra == "all"
Requires-Dist: bioio-sldy>=1.4.0; extra == "all"
Requires-Dist: bioio-tifffile>=1.3.0; extra == "all"
Requires-Dist: scyjava>=1.12.0; extra == "all"
Requires-Dist: numpy<=1.26.4,>=1.23; extra == "all"
Requires-Dist: pandas>=2.0; extra == "all"
Requires-Dist: cellpose==4.0.8; extra == "all"
Requires-Dist: onnx>=1.16; extra == "all"
Requires-Dist: onnxruntime>=1.21.0; platform_system == "Darwin" and extra == "all"
Requires-Dist: onnxruntime-gpu>=1.21.0; platform_system != "Darwin" and extra == "all"
Requires-Dist: openpyxl>=3.1; extra == "all"
Requires-Dist: huggingface_hub>=0.23.0; extra == "all"
Requires-Dist: scikit-image<0.25,>=0.22; extra == "all"
Requires-Dist: PyWavelets>=1.5; extra == "all"
Requires-Dist: scipy>=1.8; extra == "all"
Requires-Dist: senoquant-stardist-ext>=0.1.1; extra == "all"
Requires-Dist: dask[array]>=2024.4; extra == "all"
Requires-Dist: dask[distributed]>=2024.4; extra == "all"
Requires-Dist: fsspec>=2024.4; extra == "all"
Requires-Dist: smbprotocol>=1.13; extra == "all"
Requires-Dist: matplotlib>=3.8; extra == "all"
Requires-Dist: umap-learn>=0.5; extra == "all"
Requires-Dist: jsonschema>=3.2; extra == "all"
Requires-Dist: pathvalidate>=3.2; extra == "all"
Requires-Dist: zarr>=3; extra == "all"
Requires-Dist: globus-cli>=3.1.4; extra == "all"
Requires-Dist: atlas-consortia-clt>=1.0.4; extra == "all"
Dynamic: license-file

# SenoQuant

![tests](https://github.com/HaamsRee/senoquant/actions/workflows/tests.yml/badge.svg)
[![PyPI version](https://badge.fury.io/py/senoquant.svg)](https://badge.fury.io/py/senoquant)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)

SenoQuant is a versatile [napari](https://napari.org/stable/index.html) plugin designed for comprehensive, accurate,
and unbiased spatial quantification and prediction of senescence markers
across diverse tissue contexts.

## 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_model` placeholder).
- 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](https://github.com/HaamsRee/senoquant/releases/latest) under "Assets."

#### macOS

Download the macOS installer (`.pkg`) from the [latest release](https://github.com/HaamsRee/senoquant/releases/latest) 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](https://haamsree.github.io/senoquant/developer/installation/).

## Quick start

Use the documentation workflow for the most up-to-date instructions.

- Start with the [installation guide](https://haamsree.github.io/senoquant/user/installation/).
- Follow the [quick start guide](https://haamsree.github.io/senoquant/user/quickstart/).
- Then use tab-specific guides for [SenNet Portal](https://haamsree.github.io/senoquant/user/sennet-portal/), [segmentation](https://haamsree.github.io/senoquant/user/segmentation/), [spots](https://haamsree.github.io/senoquant/user/spots/), [prediction](https://haamsree.github.io/senoquant/user/prediction/), [quantification](https://haamsree.github.io/senoquant/user/quantification/), [visualization](https://haamsree.github.io/senoquant/user/visualization/), [batch](https://haamsree.github.io/senoquant/user/batch/), and [settings](https://haamsree.github.io/senoquant/user/settings/).

## Documentation

Full documentation is available at [https://haamsree.github.io/senoquant/](https://haamsree.github.io/senoquant/).

- [Installation guide](https://haamsree.github.io/senoquant/user/installation/).
- [Quick start tutorial](https://haamsree.github.io/senoquant/user/quickstart/).
- [Segmentation models](https://haamsree.github.io/senoquant/user/segmentation/).
- [Spot detection](https://haamsree.github.io/senoquant/user/spots/).
- [Prediction tab](https://haamsree.github.io/senoquant/user/prediction/).
- [SenNet Portal tab](https://haamsree.github.io/senoquant/user/sennet-portal/).
- [Quantification features](https://haamsree.github.io/senoquant/user/quantification/).
- [Visualization tab](https://haamsree.github.io/senoquant/user/visualization/).
- [Batch processing](https://haamsree.github.io/senoquant/user/batch/).
- [Settings persistence](https://haamsree.github.io/senoquant/user/settings/).
- [Prediction model development](https://haamsree.github.io/senoquant/developer/prediction/).
- [API reference](https://haamsree.github.io/senoquant/api/).

## Development

See the [contributing guide](https://haamsree.github.io/senoquant/developer/contributing/) 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.

- [napari](https://napari.org/).
- [StarDist](https://github.com/stardist/stardist).
- [Cellpose](https://github.com/MouseLand/cellpose).
- [U-FISH](https://github.com/UFISH-Team/U-FISH).
- [BioIO](https://github.com/bioio-devs/bioio).
