Metadata-Version: 2.4
Name: spacr
Version: 1.5.1.6
Summary: Spatial phenotype analysis of CRISPR screens (spaCR)
Author-email: Einar Birnir Olafsson <olafsson@med.umich.com>
License-Expression: LicenseRef-spaCR-BSD-3-Clause-Additional-Terms AND BSD-3-Clause
Project-URL: Homepage, https://einarolafsson.github.io/projects/spacr/
Project-URL: Website, https://einarolafsson.github.io/projects/spacr/
Project-URL: Documentation, https://einarolafsson.github.io/spacr/
Project-URL: Source, https://github.com/EinarOlafsson/spacr
Project-URL: Issues, https://github.com/EinarOlafsson/spacr/issues
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Image Recognition
Requires-Python: !=3.14.1,<3.16,>=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: LICENSE-BSD-3-Clause
Requires-Dist: packaging>=21.3
Requires-Dist: numpy<3.0,>=1.26.4; python_version < "3.15" and (sys_platform != "darwin" or platform_machine != "x86_64" or python_version >= "3.13")
Requires-Dist: numpy<3.0,>=2.5.2; python_version >= "3.15"
Requires-Dist: numpy<2.0,>=1.26.4; sys_platform == "darwin" and platform_machine == "x86_64" and python_version < "3.13"
Requires-Dist: pandas<4.0,>=2.2.1
Requires-Dist: scipy<2.0,>=1.12.0
Requires-Dist: cellpose<5.0,>=4.0.7
Requires-Dist: scikit-image<0.28,>=0.22.0; python_version < "3.15"
Requires-Dist: scikit-image<0.28,>=0.27.0rc1; python_version >= "3.15"
Requires-Dist: PyWavelets<2,>=1.4
Requires-Dist: scikit-learn<2.0,>=1.5.0
Requires-Dist: scikit-posthocs<0.20,>=0.10.0
Requires-Dist: trackpy<1.0,>=0.6.2
Requires-Dist: statsmodels<0.16,>=0.14.0
Requires-Dist: patsy<2.0,>=0.5.6
Requires-Dist: shap<1.0,>=0.47.0
Requires-Dist: torch<3.0,>=2.0; sys_platform != "darwin" or platform_machine != "x86_64" or python_version < "3.13"
Requires-Dist: pyfixest<1,>=0.40.1; python_version >= "3.10" and python_version < "3.15" and (sys_platform != "darwin" or python_version >= "3.11")
Requires-Dist: glum<4,>=3.1.2; python_version >= "3.10"
Requires-Dist: gpytorch<2,>=1.11; python_version >= "3.10"
Requires-Dist: tensorboard<3.0,>=2.21
Requires-Dist: numba<1.0,>=0.60; sys_platform != "darwin" or platform_machine != "x86_64"
Requires-Dist: llvmlite<1.0,>=0.43; sys_platform != "darwin" or platform_machine != "x86_64"
Requires-Dist: numba<0.63,>=0.60; sys_platform == "darwin" and platform_machine == "x86_64"
Requires-Dist: llvmlite<0.46,>=0.43; sys_platform == "darwin" and platform_machine == "x86_64"
Requires-Dist: torchvision<1.0,>=0.15; sys_platform != "darwin" or platform_machine != "x86_64" or python_version < "3.13"
Requires-Dist: captum<1.0,>=0.7.0
Requires-Dist: seaborn<1.0,>=0.13.2
Requires-Dist: matplotlib<4.0,>=3.8.3
Requires-Dist: matplotlib_venn<2.0,>=1.1
Requires-Dist: pypdf<7.0,>=6.16.1
Requires-Dist: cycler<1,>=0.10
Requires-Dist: PySide6!=6.12.0,<7,>=6.6; sys_platform != "darwin" and python_version < "3.15"
Requires-Dist: PySide6<7,>=6.12; sys_platform != "darwin" and python_version >= "3.15"
Requires-Dist: PySide6<6.11,>=6.6; sys_platform == "darwin"
Requires-Dist: qtawesome<2,>=1.3
Requires-Dist: pyqtgraph<1,>=0.13.3
Requires-Dist: mpmath<2,>=1.3
Requires-Dist: vispy<1.0,>=0.14
Requires-Dist: PyOpenGL<4,>=3.1.7
Requires-Dist: wgpu<=0.31.0,>=0.25; python_version == "3.10" and (platform_machine == "x86_64" or platform_machine == "AMD64" or platform_machine == "aarch64" or platform_machine == "arm64" or platform_machine == "ARM64")
Requires-Dist: wgpu<0.33,>=0.25; python_version >= "3.11" and (platform_machine == "x86_64" or platform_machine == "AMD64" or platform_machine == "aarch64" or platform_machine == "arm64" or platform_machine == "ARM64")
Requires-Dist: win10toast>=0.9; platform_system == "Windows"
Requires-Dist: adjustText<2.0,>=1.2.0
Requires-Dist: bottleneck<2.0,>=1.3.6
Requires-Dist: numexpr<3.0,>=2.8.4
Requires-Dist: opencv-python-headless<6.0,>=4.9.0.80; sys_platform != "darwin" or platform_machine != "x86_64" or python_version >= "3.13"
Requires-Dist: opencv-python-headless<4.12,>=4.9.0.80; sys_platform == "darwin" and platform_machine == "x86_64" and python_version < "3.13"
Requires-Dist: pillow<14,>=10.2.0
Requires-Dist: tifffile>=2023.4.12
Requires-Dist: nd2reader<4.0,>=3.3.0
Requires-Dist: czifile
Requires-Dist: readlif
Requires-Dist: openpyxl<4.0,>=3.1
Requires-Dist: imageio<3.0,>=2.34.0
Requires-Dist: umap-learn<1.0,>=0.5.11
Requires-Dist: xgboost<4,>=2.0.3
Requires-Dist: biopython<2.0,>=1.80
Requires-Dist: lxml>=5.1.0
Requires-Dist: psutil<8,>=5.9.8
Requires-Dist: gputil<2.0,>=1.4.0
Requires-Dist: nvidia-ml-py<14,>=11.450.51
Requires-Dist: tables<4.0,>=3.8.0
Requires-Dist: fastremap>=1.14.1
Requires-Dist: tqdm>=4.65.0
Requires-Dist: requests<3.0,>=2.28
Requires-Dist: paramiko<6,>=3.5
Requires-Dist: joblib<2.0,>=1.2
Requires-Dist: cloudpickle<4,>=3.1.2
Requires-Dist: natsort<9.0,>=8.0
Requires-Dist: IPython<10,>=8.18.1
Requires-Dist: ipywidgets<9.0,>=8.1.2
Requires-Dist: huggingface-hub<3,>=0.25
Requires-Dist: protobuf>=5.28.3
Requires-Dist: pyarrow<27,>=14.0.2; python_version >= "3.10"
Requires-Dist: adlfs>=2023.1; python_version >= "3.10"
Requires-Dist: aiohttp<4,>=3.8; python_version >= "3.10"
Requires-Dist: anndata<0.14,>=0.10; python_version >= "3.10"
Requires-Dist: botocore<2,>=1.29; python_version >= "3.10"
Requires-Dist: btrack<1.0,>=0.7.0; python_version >= "3.10" and (sys_platform != "darwin" or python_version < "3.14" or "24" <= platform_release)
Requires-Dist: catboost<2.0,>=1.2; python_version >= "3.10" and python_version < "3.15"
Requires-Dist: duckdb<3,>=1.1; python_version >= "3.10"
Requires-Dist: faiss-cpu<2,>=1.7.4; python_version >= "3.10" and (sys_platform != "darwin" or python_version < "3.14" or "23" <= platform_release)
Requires-Dist: fsspec>=2023.1; python_version >= "3.10"
Requires-Dist: gcsfs>=2023.1; python_version >= "3.10"
Requires-Dist: jax<1.0,>=0.4; python_version >= "3.10"
Requires-Dist: keyring<27,>=23.0; python_version >= "3.10"
Requires-Dist: liffile>=2025.1.25; python_version >= "3.10"
Requires-Dist: lightgbm<5.0,>=4.0; python_version >= "3.10"
Requires-Dist: mahotas<2.0,>=1.4.19; python_version >= "3.10"
Requires-Dist: moderngl<6,>=5.12; python_version >= "3.10" and (sys_platform != "darwin" or platform_machine != "x86_64")
Requires-Dist: moderngl<5.13,>=5.12; python_version >= "3.10" and sys_platform == "darwin" and platform_machine == "x86_64"
Requires-Dist: glcontext<3.1,>=3.0; python_version >= "3.10" and sys_platform == "darwin" and platform_machine == "x86_64"
Requires-Dist: cryptography<49; sys_platform == "darwin" and platform_machine == "x86_64"
Requires-Dist: mrcfile<2,>=1.5; python_version >= "3.10"
Requires-Dist: napari<1.0,>=0.5; python_version >= "3.10"
Requires-Dist: nd2<1,>=0.10; python_version >= "3.10"
Requires-Dist: numcodecs<1,>=0.12; python_version >= "3.10"
Requires-Dist: numpyro<1.0,>=0.13; python_version >= "3.10"
Requires-Dist: pdfplumber<1,>=0.11; python_version >= "3.10"
Requires-Dist: piper-tts<2,>=1.2; python_version < "3.15" and (sys_platform != "darwin" or platform_machine != "x86_64" or python_version < "3.14") and python_version >= "3.10" and (sys_platform != "darwin" or python_version < "3.14" or "23" <= platform_release)
Requires-Dist: psycopg[binary]<4,>=3.1; python_version >= "3.10"
Requires-Dist: pycromanager<2,>=0.28; python_version >= "3.10"
Requires-Dist: pylibCZIrw<7.0,>=5.0.0; python_version < "3.14" and python_version >= "3.10" and (sys_platform != "darwin" or platform_machine != "x86_64")
Requires-Dist: pymc<7,>=5.10; python_version >= "3.10" and python_version < "3.15"
Requires-Dist: rdkit>=2023.3; python_version >= "3.10"
Requires-Dist: s3fs>=2023.1; python_version >= "3.10"
Requires-Dist: samcell<2.0,>=1.2; python_version >= "3.10"
Requires-Dist: threadpoolctl<4,>=3.0; python_version >= "3.10"
Requires-Dist: timm<2.0,>=0.9; python_version >= "3.10"
Requires-Dist: torchcam<1.0,>=0.5; python_version >= "3.11" and (sys_platform != "darwin" or platform_machine != "x86_64")
Requires-Dist: torchcam<0.5,>=0.4; sys_platform == "darwin" and platform_machine == "x86_64" and python_version < "3.13"
Requires-Dist: trackastra<1.0,>=0.5; (python_version >= "3.10" and (sys_platform != "darwin" or platform_machine != "x86_64" or python_version < "3.13")) and python_version >= "3.10"
Requires-Dist: transformers<6,>=4.40; python_version >= "3.10" and (sys_platform != "darwin" or platform_machine != "x86_64")
Requires-Dist: transformers<4.58,>=4.40; sys_platform == "darwin" and platform_machine == "x86_64"
Requires-Dist: ultrack<1.0,>=0.6; (python_version >= "3.10" and python_version < "3.14" and (sys_platform != "darwin" or platform_machine != "x86_64" or python_version < "3.13")) and python_version >= "3.10" and (sys_platform != "linux" or platform_machine == "x86_64" or platform_machine == "AMD64")
Requires-Dist: zarr<4,>=2.16; python_version >= "3.10"
Provides-Extra: dev
Requires-Dist: pytest<10,>=8.0; extra == "dev"
Requires-Dist: pytest-qt<5,>=4.4; extra == "dev"
Requires-Dist: pytest-xdist<4,>=3.6.1; extra == "dev"
Requires-Dist: tomli>=2.0; python_version < "3.11" and extra == "dev"
Requires-Dist: hypothesis<7,>=6.100; extra == "dev"
Requires-Dist: docutils<0.24,>=0.20.1; extra == "dev"
Requires-Dist: pypdfium2<6,>=5.13.0; extra == "dev"
Requires-Dist: markdown-it-py<5,>=2.2; extra == "dev"
Requires-Dist: readme-renderer<47,>=43; extra == "dev"
Requires-Dist: pyarrow<27,>=14.0.2; extra == "dev"
Requires-Dist: ruff<1,>=0.9; extra == "dev"
Requires-Dist: mypy<3,>=1.11; extra == "dev"
Requires-Dist: xenon<1,>=0.9; extra == "dev"
Requires-Dist: pingouin<2.0,>=0.5.5; extra == "dev"
Provides-Extra: headless
Requires-Dist: opencv-python-headless<6.0,>=4.9.0.80; (sys_platform != "darwin" or platform_machine != "x86_64" or python_version >= "3.13") and extra == "headless"
Requires-Dist: opencv-python-headless<4.12,>=4.9.0.80; (sys_platform == "darwin" and platform_machine == "x86_64" and python_version < "3.13") and extra == "headless"
Provides-Extra: embeddings
Requires-Dist: timm<2.0,>=0.9; extra == "embeddings"
Provides-Extra: trackastra
Requires-Dist: trackastra<1.0,>=0.5; (python_version >= "3.10" and (sys_platform != "darwin" or platform_machine != "x86_64" or python_version < "3.13")) and extra == "trackastra"
Provides-Extra: ultrack
Requires-Dist: ultrack<1.0,>=0.6; (python_version >= "3.10" and python_version < "3.14" and (sys_platform != "darwin" or platform_machine != "x86_64" or python_version < "3.13") and (sys_platform != "linux" or platform_machine == "x86_64" or platform_machine == "AMD64")) and extra == "ultrack"
Provides-Extra: attribution
Requires-Dist: torchcam<1.0,>=0.4.0; extra == "attribution"
Provides-Extra: gpu
Requires-Dist: cucim-cu12>=24.0; platform_system == "Linux" and extra == "gpu"
Requires-Dist: cupy-cuda12x>=13.0; platform_system == "Linux" and extra == "gpu"
Provides-Extra: rapids
Requires-Dist: cuml-cu12>=25.2; (python_version >= "3.11" and python_version < "3.13") and extra == "rapids"
Requires-Dist: cupy-cuda12x>=13.0; (python_version >= "3.11" and python_version < "3.13") and extra == "rapids"
Provides-Extra: intel-gpu
Requires-Dist: intel-extension-for-pytorch>=2.1; platform_system != "Darwin" and extra == "intel-gpu"
Provides-Extra: directml
Requires-Dist: torch-directml>=0.2; platform_system == "Windows" and extra == "directml"
Provides-Extra: boosting
Requires-Dist: catboost<2.0,>=1.2; extra == "boosting"
Requires-Dist: lightgbm<5.0,>=4.0; extra == "boosting"
Provides-Extra: plaque
Requires-Dist: ultralytics<9,>=8.0; extra == "plaque"
Provides-Extra: papers
Requires-Dist: ultralytics<9,>=8.4; extra == "papers"
Requires-Dist: rapidocr-onnxruntime<2,>=1.3; extra == "papers"
Requires-Dist: pdfplumber<1,>=0.11; extra == "papers"
Provides-Extra: umap
Requires-Dist: umap-learn<1.0,>=0.5.11; extra == "umap"
Provides-Extra: anndata
Requires-Dist: anndata<0.14,>=0.10; extra == "anndata"
Provides-Extra: databases
Requires-Dist: duckdb<3,>=1.1; extra == "databases"
Requires-Dist: psycopg[binary]<4,>=3.1; extra == "databases"
Provides-Extra: dinocell
Requires-Dist: dinocell<1.0,>=0.74; extra == "dinocell"
Provides-Extra: samcell
Requires-Dist: samcell<2.0,>=1.2; extra == "samcell"
Provides-Extra: napari
Requires-Dist: napari<1.0,>=0.5; extra == "napari"
Provides-Extra: tem
Requires-Dist: mrcfile<2,>=1.5; extra == "tem"
Provides-Extra: full
Requires-Dist: opencv-python; extra == "full"
Provides-Extra: sweep
Requires-Dist: threadpoolctl<4,>=3.0; extra == "sweep"
Provides-Extra: qt
Requires-Dist: PySide6!=6.12.0,<7,>=6.6; (sys_platform != "darwin" and python_version < "3.15") and extra == "qt"
Requires-Dist: PySide6<7,>=6.12; (sys_platform != "darwin" and python_version >= "3.15") and extra == "qt"
Requires-Dist: PySide6<6.11,>=6.6; sys_platform == "darwin" and extra == "qt"
Requires-Dist: qtawesome<2,>=1.3; extra == "qt"
Requires-Dist: pyqtgraph<1,>=0.13.3; extra == "qt"
Requires-Dist: win10toast>=0.9; platform_system == "Windows" and extra == "qt"
Provides-Extra: flowview
Requires-Dist: PySide6!=6.12.0,<7,>=6.6; (sys_platform != "darwin" and python_version < "3.15") and extra == "flowview"
Requires-Dist: PySide6<7,>=6.12; (sys_platform != "darwin" and python_version >= "3.15") and extra == "flowview"
Requires-Dist: PySide6<6.11,>=6.6; sys_platform == "darwin" and extra == "flowview"
Provides-Extra: flow-gpu
Requires-Dist: moderngl<6,>=5.12; (sys_platform != "darwin" or platform_machine != "x86_64") and extra == "flow-gpu"
Requires-Dist: moderngl<5.13,>=5.12; (sys_platform == "darwin" and platform_machine == "x86_64") and extra == "flow-gpu"
Requires-Dist: glcontext<3.1,>=3.0; (sys_platform == "darwin" and platform_machine == "x86_64") and extra == "flow-gpu"
Provides-Extra: fractal
Requires-Dist: vispy<1.0,>=0.14; extra == "fractal"
Provides-Extra: tutorial
Requires-Dist: PySide6!=6.12.0,<7,>=6.6; (sys_platform != "darwin" and python_version < "3.15") and extra == "tutorial"
Requires-Dist: PySide6<7,>=6.12; (sys_platform != "darwin" and python_version >= "3.15") and extra == "tutorial"
Requires-Dist: PySide6<6.11,>=6.6; sys_platform == "darwin" and extra == "tutorial"
Requires-Dist: qtawesome<2,>=1.3; extra == "tutorial"
Requires-Dist: win10toast>=0.9; platform_system == "Windows" and extra == "tutorial"
Requires-Dist: piper-tts<2,>=1.2; (python_version < "3.15" and (sys_platform != "darwin" or platform_machine != "x86_64" or python_version < "3.14") and (sys_platform != "darwin" or python_version < "3.14" or "23" <= platform_release)) and extra == "tutorial"
Provides-Extra: czi
Requires-Dist: pylibCZIrw<7.0,>=5.0.0; python_version < "3.14" and extra == "czi"
Requires-Dist: czifile; extra == "czi"
Provides-Extra: nd2
Requires-Dist: nd2reader<4.0,>=3.3.0; extra == "nd2"
Provides-Extra: lif
Requires-Dist: readlif; extra == "lif"
Provides-Extra: vendor-watch
Requires-Dist: nd2<1,>=0.10; python_version >= "3.10" and extra == "vendor-watch"
Requires-Dist: liffile>=2025.1.25; python_version >= "3.12" and extra == "vendor-watch"
Provides-Extra: zernike
Requires-Dist: mahotas<2.0,>=1.4.13; extra == "zernike"
Provides-Extra: btrack
Requires-Dist: btrack<1.0,>=0.7.0; (sys_platform != "darwin" or python_version < "3.14" or "24" <= platform_release) and extra == "btrack"
Provides-Extra: numpyro
Requires-Dist: numpyro<1.0,>=0.13; extra == "numpyro"
Requires-Dist: jax<1.0,>=0.4; extra == "numpyro"
Provides-Extra: pymc
Requires-Dist: pymc<7,>=5.10; extra == "pymc"
Provides-Extra: pyfixest
Requires-Dist: pyfixest<1,>=0.40.1; (python_version >= "3.10" and (sys_platform != "darwin" or python_version >= "3.11")) and extra == "pyfixest"
Provides-Extra: glum
Requires-Dist: glum<4,>=3.1.2; python_version >= "3.10" and extra == "glum"
Provides-Extra: gpytorch
Requires-Dist: gpytorch<2,>=1.11; python_version >= "3.10" and extra == "gpytorch"
Provides-Extra: zarr
Requires-Dist: zarr<4,>=2.16; extra == "zarr"
Requires-Dist: numcodecs<1,>=0.12; extra == "zarr"
Provides-Extra: omero
Requires-Dist: omero-py<6,>=5.17; extra == "omero"
Provides-Extra: cloud
Requires-Dist: fsspec>=2023.1; extra == "cloud"
Requires-Dist: s3fs>=2023.1; extra == "cloud"
Requires-Dist: gcsfs>=2023.1; extra == "cloud"
Requires-Dist: adlfs>=2023.1; extra == "cloud"
Requires-Dist: aiohttp<4,>=3.8; extra == "cloud"
Requires-Dist: botocore<2,>=1.29; extra == "cloud"
Provides-Extra: survival
Requires-Dist: lifelines<1,>=0.27; extra == "survival"
Provides-Extra: search
Requires-Dist: faiss-cpu<2,>=1.7.4; (sys_platform != "darwin" or python_version < "3.14" or "23" <= platform_release) and extra == "search"
Provides-Extra: foundation
Requires-Dist: transformers<6,>=4.40; extra == "foundation"
Provides-Extra: notify
Requires-Dist: keyring<27,>=23.0; extra == "notify"
Provides-Extra: chem
Requires-Dist: rdkit>=2023.3; extra == "chem"
Provides-Extra: microscope
Requires-Dist: pycromanager<2,>=0.28; extra == "microscope"
Provides-Extra: all
Requires-Dist: PySide6!=6.12.0,<7,>=6.6; (sys_platform != "darwin" and python_version < "3.15") and extra == "all"
Requires-Dist: PySide6<7,>=6.12; (sys_platform != "darwin" and python_version >= "3.15") and extra == "all"
Requires-Dist: PySide6<6.11,>=6.6; sys_platform == "darwin" and extra == "all"
Requires-Dist: qtawesome<2,>=1.3; extra == "all"
Requires-Dist: pyqtgraph<1,>=0.13.3; extra == "all"
Requires-Dist: vispy<1.0,>=0.14; extra == "all"
Requires-Dist: win10toast>=0.9; platform_system == "Windows" and extra == "all"
Requires-Dist: piper-tts<2,>=1.2; (python_version < "3.15" and (sys_platform != "darwin" or platform_machine != "x86_64" or python_version < "3.14") and (sys_platform != "darwin" or python_version < "3.14" or "23" <= platform_release)) and extra == "all"
Requires-Dist: trackastra<1.0,>=0.5; (python_version >= "3.10" and (sys_platform != "darwin" or platform_machine != "x86_64" or python_version < "3.13")) and extra == "all"
Requires-Dist: ultrack<1.0,>=0.6; (python_version >= "3.10" and python_version < "3.14" and (sys_platform != "darwin" or platform_machine != "x86_64" or python_version < "3.13") and (sys_platform != "linux" or platform_machine == "x86_64" or platform_machine == "AMD64")) and extra == "all"
Requires-Dist: catboost<2.0,>=1.2; extra == "all"
Requires-Dist: lightgbm<5.0,>=4.0; extra == "all"
Requires-Dist: ultralytics<9,>=8.0; extra == "all"
Requires-Dist: pylibCZIrw<7.0,>=5.0.0; python_version < "3.14" and extra == "all"
Requires-Dist: czifile; extra == "all"
Requires-Dist: nd2reader<4.0,>=3.3.0; extra == "all"
Requires-Dist: readlif; extra == "all"
Requires-Dist: mahotas<2.0,>=1.4.13; extra == "all"
Requires-Dist: btrack<1.0,>=0.7.0; (sys_platform != "darwin" or python_version < "3.14" or "24" <= platform_release) and extra == "all"
Requires-Dist: anndata<0.14,>=0.10; extra == "all"
Requires-Dist: mrcfile<2,>=1.5; extra == "all"
Dynamic: description
Dynamic: description-content-type
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: summary

|Website| |Platforms| |Python| |Qt| |Test counts| |Coverage| |Issues| |Conda| |PyPI| |Docker| |PyPI Downloads| |Docs| |Tutorials| |Preprint| |DOI| |Cite| |License| |PyPI rank|

Website: `einarolafsson.github.io/projects/spacr <https://einarolafsson.github.io/projects/spacr/>`_

.. |Website| image:: https://img.shields.io/badge/Website-spaCR-0A7BBB
   :target: https://einarolafsson.github.io/projects/spacr/
   :alt: spaCR website

.. |Docs| image:: https://img.shields.io/github/actions/workflow/status/EinarOlafsson/spacr/pages%2Fpages-build-deployment?label=API&logo=readthedocs&logoColor=white
   :target: https://einarolafsson.github.io/spacr/
   :alt: API Documentation

.. |Tutorials| image:: https://img.shields.io/badge/Tutorials-4A9EFF
   :target: https://einarolafsson.github.io/spacr/tutorials/
   :alt: Interactive tutorials

.. |PyPI| image:: https://img.shields.io/pypi/v/spacr?label=PyPI&logo=pypi&logoColor=white
   :target: https://pypi.org/project/spacr/
   :alt: PyPI version

.. |Python| image:: https://img.shields.io/badge/Python-3.9%E2%80%933.15-3776AB?logo=python&logoColor=white
   :target: https://pypi.org/project/spacr/
   :alt: Python 3.9 through 3.15

.. |Coverage| image:: https://img.shields.io/codecov/c/github/EinarOlafsson/spacr/main?logo=codecov&logoColor=white
   :target: https://app.codecov.io/github/EinarOlafsson/spacr
   :alt: Codecov coverage

.. |Test counts| image:: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2FEinarOlafsson%2Fspacr%2Fnightly%2Fdocs%2Fsource%2F_static%2Ftest-counts.json&cacheSeconds=300&logo=pytest&logoColor=white
   :target: https://github.com/EinarOlafsson/spacr/actions/workflows/tests.yml
   :alt: tests passed/total

.. |Qt| image:: https://img.shields.io/badge/GUI-Qt-41CD52?logo=qt&logoColor=white
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/index.html#module-spacr.qt
   :alt: Qt interface

.. |Issues| image:: https://img.shields.io/github/issues/EinarOlafsson/spacr?logo=github
   :target: https://github.com/EinarOlafsson/spacr/issues
   :alt: GitHub issues

.. |License| image:: https://img.shields.io/badge/License-BSD_3--Clause-blue
   :target: https://github.com/EinarOlafsson/spacr/blob/nightly/LICENSE
   :alt: BSD 3-Clause

.. |Preprint| image:: https://img.shields.io/badge/bioRxiv-BF2636
   :target: https://www.biorxiv.org/content/10.64898/2026.07.08.737057v1
   :alt: bioRxiv preprint

.. |DOI| image:: https://img.shields.io/badge/DOI-blue?logo=zenodo&logoColor=white
   :target: https://doi.org/10.5281/zenodo.21343316
   :alt: Zenodo DOI

.. |Conda| image:: https://img.shields.io/conda/vn/conda-forge/spacr?label=Conda&logo=anaconda&logoColor=white
   :target: https://anaconda.org/conda-forge/spacr
   :alt: conda-forge version

.. |Release date| image:: https://anaconda.org/conda-forge/spacr/badges/latest_release_date.svg
   :target: https://anaconda.org/conda-forge/spacr
   :alt: conda-forge latest_release_date

.. |Docker| image:: https://img.shields.io/badge/Docker-GHCR-2496ED?logo=docker&logoColor=white
   :target: https://github.com/EinarOlafsson/spacr/pkgs/container/spacr
   :alt: Docker images on GHCR

.. |PyPI Downloads| image:: https://img.shields.io/pepy/dt/spacr?label=downloads&logo=pypi&logoColor=white
   :target: https://pepy.tech/projects/spacr
   :alt: PyPI Downloads

.. |Platforms| image:: https://img.shields.io/badge/Linux%20OSX%20Win-lightgrey?logo=linux&logoColor=white
   :target: https://github.com/EinarOlafsson/spacr/blob/nightly/docs/source/installers.rst
   :alt: Linux, macOS, and Windows

.. |Cite| image:: https://img.shields.io/badge/Cite-8A2BE2
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/CITATION.cff
   :alt: Cite spaCR

.. |PyPI rank| image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsql-clickhouse.clickhouse.com%2F%3Fuser%3Ddemo%26param_package_name%3Dspacr%26param_days%3D30%26query%3DWITH%2B%2528%2BSELECT%2Bsum%2528count%2529%2BFROM%2Bpypi.pypi_downloads_per_day%2BWHERE%2Bproject%2B%253D%2B%257Bpackage_name%253AString%257D%2BAND%2Bdate%2B%253E%253D%2BtoDate%2528now%2528%2527UTC%2527%2529%2529%2B-%2B%257Bdays%253AUInt16%257D%2BAND%2Bdate%2B%253C%2BtoDate%2528now%2528%2527UTC%2527%2529%2529%2B%2529%2BAS%2Bdownloads%2BSELECT%2Bdownloads%2BAS%2Bpackage_downloads%252C%2BcountIf%2528n%2B%253E%253D%2Bdownloads%2529%2BAS%2Brank%252C%2Bcount%2528%2529%2BAS%2Btotal_packages%252C%2B100.0%2B%252A%2Brank%2B%252F%2BnullIf%2528total_packages%252C%2B0%2529%2BAS%2Bpercentile%252C%2Bif%2528%2Btotal_packages%2B%253D%2B0%2BOR%2Bdownloads%2B%253D%2B0%252C%2B%2527no%2Bdata%2527%252C%2Bconcat%2528%2B%2527top%2B%2527%252C%2BtoString%2528ceil%25281000.0%2B%252A%2Brank%2B%252F%2BnullIf%2528total_packages%252C%2B0%2529%2529%2B%252F%2B10%2529%252C%2B%2527%2525%2527%2B%2529%2B%2529%2BAS%2Bmessage%2BFROM%2B%2528%2BSELECT%2Bproject%252C%2Bsum%2528count%2529%2BAS%2Bn%2BFROM%2Bpypi.pypi_downloads_per_day%2BWHERE%2Bdate%2B%253E%253D%2BtoDate%2528now%2528%2527UTC%2527%2529%2529%2B-%2B%257Bdays%253AUInt16%257D%2BAND%2Bdate%2B%253C%2BtoDate%2528now%2528%2527UTC%2527%2529%2529%2BGROUP%2BBY%2Bproject%2B%2529%2BFORMAT%2BJSON&query=%24.data%5B0%5D.message&label=Rank&color=brightgreen&logo=pypi&logoColor=white&cacheSeconds=86400
   :target: https://clickpy.clickhouse.com/dashboard/spacr
   :alt: spaCR PyPI download ranking over the previous 30 complete days

.. class:: hide-below-desktop

| |pypi-desktop-cover-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-cover-svg|

.. |pypi-desktop-cover-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cover.desktop.svg
   :alt: spaCR
   :class: hide-below-desktop
   :width: 100%
   :target: https://einarolafsson.github.io/spacr/_static/deck/

.. |pypi-phone-cover-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cover.svg
   :alt: spaCR
   :class: hide-on-desktop
   :width: 100%
   :target: https://einarolafsson.github.io/spacr/_static/deck/

.. class:: hide-below-desktop

| |pypi-desktop-intro-1-desktop-svg|\ |pypi-desktop-intro-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-intro-1-svg|\ |pypi-phone-intro-2-svg|

.. |pypi-desktop-intro-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/intro-1.desktop.svg
   :alt: ← Back
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/source/_static/deck/pages/57.md

.. |pypi-desktop-intro-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/intro-2.desktop.svg
   :alt: Next →
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/source/_static/deck/pages/02.md

.. |pypi-phone-intro-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/intro-1.svg
   :alt: ← Back
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/source/_static/deck/pages/57.md

.. |pypi-phone-intro-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/intro-2.svg
   :alt: Next →
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/source/_static/deck/pages/02.md

.. spacr-language-picker-begin

.. class:: hide-below-desktop

| |pypi-desktop-generated-language-picker-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-generated-language-picker-svg|

.. |pypi-desktop-generated-language-picker-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-language-picker.desktop.svg
   :alt: Languages: English
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/i18n/readme/README.md

.. |pypi-phone-generated-language-picker-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-language-picker.svg
   :alt: Languages: English
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/i18n/readme/README.md

.. spacr-language-picker-end

.. class:: hide-below-desktop

| |pypi-desktop-spacr-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-spacr-svg|

.. |pypi-desktop-spacr-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/spacr.desktop.svg
   :alt: spaCR. Spatial phenotype analysis of CRISPR screens. spaCR segments and measures single cells in microscopy images, integrates per-object phenotypes with sequencing-derived guide abundance, and estimates which genes are associated with phenotypic changes. Starting from plate images and FASTQ reads, it produces per-object measurements, trained classifiers, per-guide and per-gene effect estimates, and a ranked hit list. The segmentation, measurement, annotation and classification modules also run without a sequencing arm. Make Masks corrects segmentation masks and annotates independent, class-labelled rectangles with the Box tool for YOLO export. Boxes keep their own labels and history without changing source images or masks. See the feature guide for each tool. Images, masks and crops are files on disk. Measurements, annotations and model predictions are tables in the project's measurements.db SQLite database. Runs as a desktop application or headlessly on a workstation, server or cluster.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/spacr.md

.. |pypi-phone-spacr-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/spacr.svg
   :alt: spaCR. Spatial phenotype analysis of CRISPR screens. spaCR segments and measures single cells in microscopy images, integrates per-object phenotypes with sequencing-derived guide abundance, and estimates which genes are associated with phenotypic changes. Starting from plate images and FASTQ reads, it produces per-object measurements, trained classifiers, per-guide and per-gene effect estimates, and a ranked hit list. The segmentation, measurement, annotation and classification modules also run without a sequencing arm. Make Masks corrects segmentation masks and annotates independent, class-labelled rectangles with the Box tool for YOLO export. Boxes keep their own labels and history without changing source images or masks. See the feature guide for each tool. Images, masks and crops are files on disk. Measurements, annotations and model predictions are tables in the project's measurements.db SQLite database. Runs as a desktop application or headlessly on a workstation, server or cluster.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/spacr.md

.. class:: hide-below-desktop

| |pypi-desktop-try-spacr-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-try-spacr-svg|

.. |pypi-desktop-try-spacr-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/try-spacr.desktop.svg
   :alt: Try spaCR.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/try-spacr.md

.. |pypi-phone-try-spacr-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/try-spacr.svg
   :alt: Try spaCR.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/try-spacr.md

.. code-block:: bash

   conda create -n spacr python=3.12 -y
   conda activate spacr
   python -m pip install spacr
   spacr

|

.. class:: hide-below-desktop

| |pypi-desktop-hardware-support-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-hardware-support-svg|

.. |pypi-desktop-hardware-support-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/hardware-support.desktop.svg
   :alt: Hardware support.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/hardware-support.md

.. |pypi-phone-hardware-support-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/hardware-support.svg
   :alt: Hardware support.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/hardware-support.md

.. spacr-hardware-begin

.. class:: hide-below-desktop

| |pypi-desktop-generated-hardware-1-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-generated-hardware-1-svg|

.. |pypi-desktop-generated-hardware-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-hardware-1.desktop.svg
   :alt: NVIDIA (CUDA): Cellpose 4 GPU, Torch GPU, UMAP / clustering GPU, 3D GPU. AMD on Linux (ROCm): Cellpose 4 GPU, Torch GPU, UMAP / clustering CPU, 3D GPU. AMD in an Intel Mac (Metal): Cellpose 4 GPU, Torch GPU, UMAP / clustering KMeans GPU; PCA fitting CPU, projection GPU / CPU; UMAP / t-SNE / DBSCAN CPU, 3D GPU. Apple Silicon (Metal): Cellpose 4 GPU, Torch GPU, UMAP / clustering KMeans GPU; PCA fitting CPU, projection GPU / CPU; UMAP / t-SNE / DBSCAN CPU, 3D GPU. Intel Arc/Xe (XPU): Cellpose 4 GPU, Torch GPU, UMAP / clustering CPU, 3D GPU. No GPU: Cellpose 4 CPU, Torch CPU, UMAP / clustering CPU, 3D CPU. supported (stable) implemented (beta) CPU support only.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-hardware-1.md

.. |pypi-phone-generated-hardware-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-hardware-1.svg
   :alt: NVIDIA (CUDA): Cellpose 4 GPU, Torch GPU, UMAP / clustering GPU, 3D GPU. AMD on Linux (ROCm): Cellpose 4 GPU, Torch GPU, UMAP / clustering CPU, 3D GPU. AMD in an Intel Mac (Metal): Cellpose 4 GPU, Torch GPU, UMAP / clustering KMeans GPU; PCA fitting CPU, projection GPU / CPU; UMAP / t-SNE / DBSCAN CPU, 3D GPU. Apple Silicon (Metal): Cellpose 4 GPU, Torch GPU, UMAP / clustering KMeans GPU; PCA fitting CPU, projection GPU / CPU; UMAP / t-SNE / DBSCAN CPU, 3D GPU. Intel Arc/Xe (XPU): Cellpose 4 GPU, Torch GPU, UMAP / clustering CPU, 3D GPU. No GPU: Cellpose 4 CPU, Torch CPU, UMAP / clustering CPU, 3D CPU. supported (stable) implemented (beta) CPU support only.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-hardware-1.md

.. spacr-hardware-end

.. class:: hide-below-desktop

| |pypi-desktop-install-spacr-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-install-spacr-svg|

.. |pypi-desktop-install-spacr-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-spacr.desktop.svg
   :alt: Install spaCR. Choose an install route: Desktop application: a Linux, macOS or Windows installer with its own Python. pip: python -m pip install spacr in a Conda environment. conda-forge: conda install conda-forge::spacr in a Conda environment. Docker: the command-line pipelines in a Linux container, from the CPU image or the NVIDIA GPU image:
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-spacr.md

.. |pypi-phone-install-spacr-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-spacr.svg
   :alt: Install spaCR. Choose an install route: Desktop application: a Linux, macOS or Windows installer with its own Python. pip: python -m pip install spacr in a Conda environment. conda-forge: conda install conda-forge::spacr in a Conda environment. Docker: the command-line pipelines in a Linux container, from the CPU image or the NVIDIA GPU image:
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-spacr.md

.. code-block:: bash

   docker run --rm ghcr.io/einarolafsson/spacr:1.5.1.6 spacr-run --list
   docker run --rm --gpus all ghcr.io/einarolafsson/spacr:1.5.1.6-cuda12.4 spacr-run --list

|

.. class:: hide-below-desktop

| |pypi-desktop-install-spacr-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-install-spacr-2-svg|

.. |pypi-desktop-install-spacr-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-spacr-2.desktop.svg
   :alt: The Docker guide (nightly, English) covers GPU setup, data mounts and pipeline commands.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-spacr-2.md

.. |pypi-phone-install-spacr-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-spacr-2.svg
   :alt: The Docker guide (nightly, English) covers GPU setup, data mounts and pipeline commands.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-spacr-2.md

.. class:: hide-below-desktop

| |pypi-desktop-desktop-application-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-desktop-application-svg|

.. |pypi-desktop-desktop-application-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/desktop-application.desktop.svg
   :alt: Desktop application. The installers bundle their own Python. Conda is not required.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/desktop-application.md

.. |pypi-phone-desktop-application-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/desktop-application.svg
   :alt: Desktop application. The installers bundle their own Python. Conda is not required.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/desktop-application.md

.. spacr-installer-links-begin

| |InstallerLinux|\ |InstallerMacOS|\ |InstallerWindows|

.. |InstallerWindows| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/platforms/windows.png
   :width: 14.14%
   :alt: Download spaCR 1.5.1.6 for Windows 10/11
   :target: https://github.com/EinarOlafsson/spacr/releases/download/v1.5.1.6/spaCR-1.5.1.6-Windows-Online-Setup.exe
   :align: middle
.. |InstallerMacOS| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/platforms/macos.png
   :width: 14.14%
   :alt: Download spaCR 1.5.1.6 for macOS 11+ (Intel and Apple silicon)
   :target: https://github.com/EinarOlafsson/spacr/releases/download/v1.5.1.6/spaCR-1.5.1.6-macOS-Universal-Online.pkg
   :align: middle
.. |InstallerLinux| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/platforms/linux.png
   :width: 14.14%
   :alt: Download spaCR 1.5.1.6 for 64-bit Linux
   :target: https://github.com/EinarOlafsson/spacr/releases/download/v1.5.1.6/spaCR-1.5.1.6-Linux-x86_64-Online.run
   :align: middle

.. spacr-installer-links-end

.. class:: hide-below-desktop

| |pypi-desktop-desktop-application-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-desktop-application-2-svg|

.. |pypi-desktop-desktop-application-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/desktop-application-2.desktop.svg
   :alt: On Linux, make the downloaded file executable and run it:
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/desktop-application-2.md

.. |pypi-phone-desktop-application-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/desktop-application-2.svg
   :alt: On Linux, make the downloaded file executable and run it:
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/desktop-application-2.md

.. code-block:: bash

   chmod +x SpaCR-*-Linux-x86_64-Online.run
   ./SpaCR-*-Linux-x86_64-Online.run

|

.. class:: hide-below-desktop

| |pypi-desktop-desktop-application-3-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-desktop-application-3-svg|

.. |pypi-desktop-desktop-application-3-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/desktop-application-3.desktop.svg
   :alt: On macOS, open the .pkg. The current beta is not notarized; if Gatekeeper blocks it, choose System Settings → Privacy & Security → Open Anyway. For installation, updates, reinstallation, uninstallation, offline use and troubleshooting, see the current nightly installer guide (English). See system requirements for workstation and server recommendations and GPU compatibility tables.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/desktop-application-3.md

.. |pypi-phone-desktop-application-3-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/desktop-application-3.svg
   :alt: On macOS, open the .pkg. The current beta is not notarized; if Gatekeeper blocks it, choose System Settings → Privacy & Security → Open Anyway. For installation, updates, reinstallation, uninstallation, offline use and troubleshooting, see the current nightly installer guide (English). See system requirements for workstation and server recommendations and GPU compatibility tables.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/desktop-application-3.md

.. class:: hide-below-desktop

| |pypi-desktop-desktop-application-3-link-1-desktop-svg|\ |pypi-desktop-desktop-application-3-link-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-desktop-application-3-link-1-svg|\ |pypi-phone-desktop-application-3-link-2-svg|

.. |pypi-desktop-desktop-application-3-link-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/desktop-application-3-link-1.desktop.svg
   :alt: current nightly installer guide (English)
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/nightly/docs/source/installer_guide.rst

.. |pypi-desktop-desktop-application-3-link-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/desktop-application-3-link-2.desktop.svg
   :alt: system requirements
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/source/system_requirements.rst

.. |pypi-phone-desktop-application-3-link-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/desktop-application-3-link-1.svg
   :alt: current nightly installer guide (English)
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/nightly/docs/source/installer_guide.rst

.. |pypi-phone-desktop-application-3-link-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/desktop-application-3-link-2.svg
   :alt: system requirements
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/source/system_requirements.rst

.. class:: hide-below-desktop

| |pypi-desktop-pypi-installation-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-pypi-installation-svg|

.. |pypi-desktop-pypi-installation-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/pypi-installation.desktop.svg
   :alt: PyPI installation. For the PyPI release, install spaCR with pip inside a Conda environment. Python 3.12 has the widest choice of optional scientific packages:
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/pypi-installation.md

.. |pypi-phone-pypi-installation-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/pypi-installation.svg
   :alt: PyPI installation. For the PyPI release, install spaCR with pip inside a Conda environment. Python 3.12 has the widest choice of optional scientific packages:
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/pypi-installation.md

.. code-block:: bash

   conda create -n spacr python=3.12 -y
   conda activate spacr
   python -m pip install --upgrade pip
   python -m pip install spacr
   spacr

|

.. class:: hide-below-desktop

| |pypi-desktop-pypi-installation-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-pypi-installation-2-svg|

.. |pypi-desktop-pypi-installation-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/pypi-installation-2.desktop.svg
   :alt: spaCR supports Python 3.9 through 3.14, except Python 3.14.1, which torchvision excludes. Linux is recommended for the heaviest CUDA and ROCm workflows; macOS and Windows are also supported, and both use their GPUs — macOS through Metal, which covers Apple Silicon and the AMD cards in Intel Macs, and Windows through CUDA or DirectML. The standard installation includes the Qt desktop interface. For a server, cluster or CI runner, run the command-line pipelines without opening it:
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/pypi-installation-2.md

.. |pypi-phone-pypi-installation-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/pypi-installation-2.svg
   :alt: spaCR supports Python 3.9 through 3.14, except Python 3.14.1, which torchvision excludes. Linux is recommended for the heaviest CUDA and ROCm workflows; macOS and Windows are also supported, and both use their GPUs — macOS through Metal, which covers Apple Silicon and the AMD cards in Intel Macs, and Windows through CUDA or DirectML. The standard installation includes the Qt desktop interface. For a server, cluster or CI runner, run the command-line pipelines without opening it:
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/pypi-installation-2.md

.. code-block:: bash

   python -m pip install spacr
   spacr-run --list

|

.. class:: hide-below-desktop

| |pypi-desktop-pypi-installation-3-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-pypi-installation-3-svg|

.. |pypi-desktop-pypi-installation-3-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/pypi-installation-3.desktop.svg
   :alt: Optional integrations are installed separately, for example spacr[zarr], spacr[omero], spacr[napari] and spacr[czi,nd2,lif]. See the installation guide (nightly, English) for the complete extras and Python-version compatibility table.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/pypi-installation-3.md

.. |pypi-phone-pypi-installation-3-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/pypi-installation-3.svg
   :alt: Optional integrations are installed separately, for example spacr[zarr], spacr[omero], spacr[napari] and spacr[czi,nd2,lif]. See the installation guide (nightly, English) for the complete extras and Python-version compatibility table.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/pypi-installation-3.md

.. class:: hide-below-desktop

| |pypi-desktop-conda-forge-installation-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-conda-forge-installation-svg|

.. |pypi-desktop-conda-forge-installation-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/conda-forge-installation.desktop.svg
   :alt: Conda-forge installation. The official conda-forge package installs spaCR and its desktop dependencies into the active environment:
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/conda-forge-installation.md

.. |pypi-phone-conda-forge-installation-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/conda-forge-installation.svg
   :alt: Conda-forge installation. The official conda-forge package installs spaCR and its desktop dependencies into the active environment:
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/conda-forge-installation.md

.. code-block:: bash

   conda create -n spacr python=3.12 -y
   conda activate spacr
   conda install conda-forge::spacr
   spacr

|

.. class:: hide-below-desktop

| |pypi-desktop-install-from-source-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-install-from-source-svg|

.. |pypi-desktop-install-from-source-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source.desktop.svg
   :alt: Install from source. Clone the repository and install it in editable mode, so your working copy is the installed package and edits take effect without reinstalling:
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source.md

.. |pypi-phone-install-from-source-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source.svg
   :alt: Install from source. Clone the repository and install it in editable mode, so your working copy is the installed package and edits take effect without reinstalling:
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source.md

.. code-block:: bash

   git clone https://github.com/EinarOlafsson/spacr.git
   cd spacr
   conda create -n spacr python=3.12 -y
   conda activate spacr
   pip install -e .
   spacr

|

.. class:: hide-below-desktop

| |pypi-desktop-install-from-source-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-install-from-source-2-svg|

.. |pypi-desktop-install-from-source-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-2.desktop.svg
   :alt: This clones main, the default branch, which carries the latest release. Development happens on nightly; add --branch nightly to clone it instead. For a specific release:
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-2.md

.. |pypi-phone-install-from-source-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-2.svg
   :alt: This clones main, the default branch, which carries the latest release. Development happens on nightly; add --branch nightly to clone it instead. For a specific release:
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-2.md

.. code-block:: bash

   git clone --branch v1.5.0.5 https://github.com/EinarOlafsson/spacr.git

|

.. class:: hide-below-desktop

| |pypi-desktop-install-from-source-3-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-install-from-source-3-svg|

.. |pypi-desktop-install-from-source-3-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-3.desktop.svg
   :alt: To pull later changes, from inside the clone:
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-3.md

.. |pypi-phone-install-from-source-3-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-3.svg
   :alt: To pull later changes, from inside the clone:
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-3.md

.. code-block:: bash

   git pull
   pip install -e .

|

.. class:: hide-below-desktop

| |pypi-desktop-install-from-source-4-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-install-from-source-4-svg|

.. |pypi-desktop-install-from-source-4-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-4.desktop.svg
   :alt: Reinstall when dependencies or entry points change. Python edits take effect directly; spacr-doctor identifies the active installation.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-4.md

.. |pypi-phone-install-from-source-4-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-4.svg
   :alt: Reinstall when dependencies or entry points change. Python edits take effect directly; spacr-doctor identifies the active installation.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-4.md

.. class:: hide-below-desktop

| |pypi-desktop-install-from-source-light-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-install-from-source-light-svg|

.. |pypi-desktop-install-from-source-light-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-light.desktop.svg
   :alt: Install from source (light). Contributors need history; to run spaCR, choose below. Measurements: nightly at 05302fd5c on 2026-10-07, using packaging/measure_clone_forms.sh. Shallow clone: 2048 MB downloaded in 140 s. Only the latest commit is kept, so older history is unavailable to git log, git blame and git bisect. git pull works but stays shallow; git fetch --unshallow retrieves the full history.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-light.md

.. |pypi-phone-install-from-source-light-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-light.svg
   :alt: Install from source (light). Contributors need history; to run spaCR, choose below. Measurements: nightly at 05302fd5c on 2026-10-07, using packaging/measure_clone_forms.sh. Shallow clone: 2048 MB downloaded in 140 s. Only the latest commit is kept, so older history is unavailable to git log, git blame and git bisect. git pull works but stays shallow; git fetch --unshallow retrieves the full history.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-light.md

.. code-block:: bash

   git clone --depth 1 --branch nightly https://github.com/EinarOlafsson/spacr.git
   cd spacr && pip install -e .

|

.. class:: hide-below-desktop

| |pypi-desktop-install-from-source-light-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-install-from-source-light-2-svg|

.. |pypi-desktop-install-from-source-light-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-light-2.desktop.svg
   :alt: Runtime-only checkout: 104 MB on disk in 6 s (Git: 38 MB; files: 66 MB). It omits history, docs, tests, tools, features, example data and extended interface translations. --with-docs, --with-tests and --with-translations retain the corresponding documentation, tests and translations. The compact interface translations remain available.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-light-2.md

.. |pypi-phone-install-from-source-light-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-light-2.svg
   :alt: Runtime-only checkout: 104 MB on disk in 6 s (Git: 38 MB; files: 66 MB). It omits history, docs, tests, tools, features, example data and extended interface translations. --with-docs, --with-tests and --with-translations retain the corresponding documentation, tests and translations. The compact interface translations remain available.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-light-2.md

.. code-block:: bash

   curl -fsSL https://raw.githubusercontent.com/EinarOlafsson/spacr/nightly/packaging/install_from_source.sh -o install_spacr.sh
   sh install_spacr.sh --branch nightly

|

.. class:: hide-below-desktop

| |pypi-desktop-install-from-source-light-3-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-install-from-source-light-3-svg|

.. |pypi-desktop-install-from-source-light-3-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-light-3.desktop.svg
   :alt: --dir chooses the checkout path; --branch selects a branch or tag; --no-install fetches without installing; --help lists the options. packaging/source_install_excludes.txt lists every skipped path. The full nightly clone downloaded 9.25 GiB. Adding --filter=blob:none to the shallow clone does not reduce the checkout: its object store is still 2032 MB. Git does not report lazy blob fetches, so no download total was measured. The nightly tracked tree is a 720 MB checkout (measured 2026-10-21), excluding Git history. Download sizes and times vary with the branch.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-light-3.md

.. |pypi-phone-install-from-source-light-3-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/install-from-source-light-3.svg
   :alt: --dir chooses the checkout path; --branch selects a branch or tag; --no-install fetches without installing; --help lists the options. packaging/source_install_excludes.txt lists every skipped path. The full nightly clone downloaded 9.25 GiB. Adding --filter=blob:none to the shallow clone does not reduce the checkout: its object store is still 2032 MB. Git does not report lazy blob fetches, so no download total was measured. The nightly tracked tree is a 720 MB checkout (measured 2026-10-21), excluding Git history. Download sizes and times vary with the branch.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/install-from-source-light-3.md

.. class:: hide-below-desktop

| |pypi-desktop-command-line-entry-points-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-command-line-entry-points-svg|

.. |pypi-desktop-command-line-entry-points-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/command-line-entry-points.desktop.svg
   :alt: Command-line entry points.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/command-line-entry-points.md

.. |pypi-phone-command-line-entry-points-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/command-line-entry-points.svg
   :alt: Command-line entry points.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/command-line-entry-points.md

.. code-block:: bash

   spacr                                      # launch the Qt application
   spacr-doctor                               # diagnose the installation
   spacr-run --list                           # list headless modules
   spacr-run --describe MODULE                # inspect a module contract
   spacr-run MODULE --settings settings.csv   # execute a module
   spacr-run validate --module MODULE \
       --settings settings.csv                # validate before running
   spacr-repro RUN_DIR                        # replay a recorded run
   spacr-download --list                      # what example data exists
   spacr-download measure annotate            # fetch example sets by name
   spacr-make-masks --folder DIR              # curate masks as a resumable queue
   spacr-make-masks --folder DIR --order easy --limit 50

|

.. class:: hide-below-desktop

| |pypi-desktop-command-line-entry-points-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-command-line-entry-points-2-svg|

.. |pypi-desktop-command-line-entry-points-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/command-line-entry-points-2.desktop.svg
   :alt: spacr-run --list lists modules with headless command-line entry points. GUI-only annotation, curation, comparison and exploration modules are omitted.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/command-line-entry-points-2.md

.. |pypi-phone-command-line-entry-points-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/command-line-entry-points-2.svg
   :alt: spacr-run --list lists modules with headless command-line entry points. GUI-only annotation, curation, comparison and exploration modules are omitted.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/command-line-entry-points-2.md

.. class:: hide-below-desktop

| |pypi-desktop-core-workflow-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-core-workflow-svg|

.. |pypi-desktop-core-workflow-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/core-workflow.desktop.svg
   :alt: Core workflow. The primary workflow comprises six modules: Mask segments cells, nuclei, pathogens and organelles with Cellpose. Measure writes morphology, intensity, texture, spatial and colocalization features, together with object crops, to SQLite. Annotate labels crops in a keyboard-driven grid and supports active-learning queues. Classify trains image or measurement-based models and records held-out performance with each checkpoint. Map Barcodes maps FASTQ reads to wells and gRNAs, with abundance, collision and coverage QC. Regression estimates guide, gene, condition and control effects with model families suited to continuous, fractional and count responses.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/core-workflow.md

.. |pypi-phone-core-workflow-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/core-workflow.svg
   :alt: Core workflow. The primary workflow comprises six modules: Mask segments cells, nuclei, pathogens and organelles with Cellpose. Measure writes morphology, intensity, texture, spatial and colocalization features, together with object crops, to SQLite. Annotate labels crops in a keyboard-driven grid and supports active-learning queues. Classify trains image or measurement-based models and records held-out performance with each checkpoint. Map Barcodes maps FASTQ reads to wells and gRNAs, with abundance, collision and coverage QC. Regression estimates guide, gene, condition and control effects with model families suited to continuous, fractional and count responses.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/core-workflow.md

.. class:: hide-below-desktop

| |pypi-desktop-spacr-modules-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-spacr-modules-svg|

.. |pypi-desktop-spacr-modules-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/spacr-modules.desktop.svg
   :alt: spaCR modules.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/spacr-modules.md

.. |pypi-phone-spacr-modules-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/spacr-modules.svg
   :alt: spaCR modules.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/spacr-modules.md

.. spacr-workflow-begin

.. class:: hide-below-desktop

| |pypi-desktop-generated-workflow-1-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-generated-workflow-1-svg|

.. |pypi-desktop-generated-workflow-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-workflow-1.desktop.svg
   :alt: Core. Core sequence from microscopy images through segmentation, measurements, annotations, classification, barcode mapping and regression.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-workflow-1.md

.. |pypi-phone-generated-workflow-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-workflow-1.svg
   :alt: Core. Core sequence from microscopy images through segmentation, measurements, annotations, classification, barcode mapping and regression.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-workflow-1.md

| |Module_mask|\ |Module_measure|\ |Module_annotate|\ |Module_classify_merged|\ |Module_map_barcodes|\ |Module_regression|

.. class:: hide-below-desktop

| |pypi-desktop-generated-workflow-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-generated-workflow-2-svg|

.. |pypi-desktop-generated-workflow-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-workflow-2.desktop.svg
   :alt: Data. Import images and tables into spaCR projects and execute reproducible multi-plate workflows.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-workflow-2.md

.. |pypi-phone-generated-workflow-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-workflow-2.svg
   :alt: Data. Import images and tables into spaCR projects and execute reproducible multi-plate workflows.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-workflow-2.md

| |Module_foreign|\ |Module_embeddings|\ |Module_run_compare|\ |Module_experiment_design|\ |Module_power|\ |Module_dose_response|\ |Module_qc_dashboard|

.. class:: hide-below-desktop

| |pypi-desktop-generated-workflow-3-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-generated-workflow-3-svg|

.. |pypi-desktop-generated-workflow-3-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-workflow-3.desktop.svg
   :alt: Tools. Point these at a project: edit masks by hand, stitch tiles, read an embedding, draw a gate, build a plot, check quality.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-workflow-3.md

.. |pypi-phone-generated-workflow-3-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-workflow-3.svg
   :alt: Tools. Point these at a project: edit masks by hand, stitch tiles, read an embedding, draw a gate, build a plot, check quality.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-workflow-3.md

| |Module_make_masks|\ |Module_align|\ |Module_umap|\ |Module_gate_editor|\ |Module_graph_builder|

.. class:: hide-below-desktop

| |pypi-desktop-generated-workflow-4-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-generated-workflow-4-svg|

.. |pypi-desktop-generated-workflow-4-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-workflow-4.desktop.svg
   :alt: Organism. Organism-specific image analysis and quantitative assay readouts.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-workflow-4.md

.. |pypi-phone-generated-workflow-4-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-workflow-4.svg
   :alt: Organism. Organism-specific image analysis and quantitative assay readouts.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-workflow-4.md

| |Module_toxoplasma|

.. |Module_mask| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/mask.png
   :width: 14.14%
   :alt: Open the Mask API
   :target: https://einarolafsson.github.io/spacr/api/spacr/core/index.html#spacr.core.preprocess_generate_masks
   :align: middle

.. |Module_measure| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/measure.png
   :width: 14.14%
   :alt: Open the Measure API
   :target: https://einarolafsson.github.io/spacr/api/spacr/measure/index.html
   :align: middle

.. |Module_annotate| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/annotate.png
   :width: 14.14%
   :alt: Open the Annotate API
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/screens/annotate/index.html
   :align: middle

.. |Module_classify_merged| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/classify_merged.png
   :width: 14.14%
   :alt: Open the Classify API
   :target: https://einarolafsson.github.io/spacr/api/spacr/classify/index.html
   :align: middle

.. |Module_map_barcodes| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/map_barcodes.png
   :width: 14.14%
   :alt: Open the Map Barcodes API
   :target: https://einarolafsson.github.io/spacr/api/spacr/sequencing/index.html
   :align: middle

.. |Module_regression| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/regression.png
   :width: 14.14%
   :alt: Open the Regression API
   :target: https://einarolafsson.github.io/spacr/api/spacr/ml/index.html
   :align: middle

.. |Module_foreign| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/foreign.png
   :width: 14.14%
   :alt: Open the Import API
   :target: https://einarolafsson.github.io/spacr/api/spacr/foreign/index.html
   :align: middle

.. |Module_embeddings| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/embeddings.png
   :width: 14.14%
   :alt: Open the Embeddings API
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/screens/embeddings/index.html
   :align: middle

.. |Module_run_compare| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/run_compare.png
   :width: 14.14%
   :alt: Open the Run Compare API
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/screens/run_compare/index.html
   :align: middle

.. |Module_experiment_design| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/experiment_design.png
   :width: 14.14%
   :alt: Open the Experiment Design API
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/screens/experiment_design/index.html
   :align: middle

.. |Module_power| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/power.png
   :width: 14.14%
   :alt: Open the Power / Design API
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/screens/power/index.html
   :align: middle

.. |Module_dose_response| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/dose_response.png
   :width: 14.14%
   :alt: Open the Dose–Response API
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/screens/dose_response/index.html
   :align: middle

.. |Module_qc_dashboard| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/qc_dashboard.png
   :width: 14.14%
   :alt: Open the QC API
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/screens/qc_dashboard/index.html
   :align: middle

.. |Module_make_masks| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/make_masks.png
   :width: 14.14%
   :alt: Open the Make Masks API
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/screens/make_masks/index.html
   :align: middle

.. |Module_align| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/align.png
   :width: 14.14%
   :alt: Open the Align & Stitch API
   :target: https://einarolafsson.github.io/spacr/api/spacr/align/index.html
   :align: middle

.. |Module_umap| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/umap.png
   :width: 14.14%
   :alt: Open the Image UMAP API
   :target: https://einarolafsson.github.io/spacr/api/spacr/core/index.html#spacr.core.generate_image_umap
   :align: middle

.. |Module_gate_editor| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/gate_editor.png
   :width: 14.14%
   :alt: Open the Gate Editor API
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/screens/gate_editor/index.html
   :align: middle

.. |Module_graph_builder| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/graph_builder.png
   :width: 14.14%
   :alt: Open the Graph Builder API
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/screens/graph_builder/index.html
   :align: middle

.. |Module_toxoplasma| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/workflow/apps/toxoplasma.png
   :width: 14.14%
   :alt: Open the Toxoplasma API
   :target: https://einarolafsson.github.io/spacr/api/spacr/qt/screens/organism_screen/index.html#spacr-qt-screens-organism-screen-toxoplasma
   :align: middle

.. spacr-workflow-end

.. class:: hide-below-desktop

| |pypi-desktop-spacr-modules-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-spacr-modules-2-svg|

.. |pypi-desktop-spacr-modules-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/spacr-modules-2.desktop.svg
   :alt: Every module with a Home tile, in Home's order: the six pipeline modules first, then the rest. Select a tile to open that module's API page.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/spacr-modules-2.md

.. |pypi-phone-spacr-modules-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/spacr-modules-2.svg
   :alt: Every module with a Home tile, in Home's order: the six pipeline modules first, then the rest. Select a tile to open that module's API page.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/spacr-modules-2.md

.. class:: hide-below-desktop

| |pypi-desktop-other-resources-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-resources-svg|

.. |pypi-desktop-other-resources-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources.desktop.svg
   :alt: Other resources.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources.md

.. |pypi-phone-other-resources-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources.svg
   :alt: Other resources.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources.md

.. class:: hide-below-desktop

| |pypi-desktop-other-resources-2-1-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-resources-2-1-svg|

.. |pypi-desktop-other-resources-2-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources-2-1.desktop.svg
   :alt: Interactive tutorials — guided workflows from installation through hit investigation.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources-2-1.md

.. |pypi-phone-other-resources-2-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources-2-1.svg
   :alt: Interactive tutorials — guided workflows from installation through hit investigation.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources-2-1.md

.. class:: hide-below-desktop

| |pypi-desktop-other-resources-2-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-resources-2-2-svg|

.. |pypi-desktop-other-resources-2-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources-2-2.desktop.svg
   :alt: Python API quickstart — run and validate pipelines from scripts, notebooks or a cluster.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources-2-2.md

.. |pypi-phone-other-resources-2-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources-2-2.svg
   :alt: Python API quickstart — run and validate pipelines from scripts, notebooks or a cluster.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources-2-2.md

.. class:: hide-below-desktop

| |pypi-desktop-other-resources-2-3-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-resources-2-3-svg|

.. |pypi-desktop-other-resources-2-3-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources-2-3.desktop.svg
   :alt: Feature guide — capabilities, maturity and optional integrations.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources-2-3.md

.. |pypi-phone-other-resources-2-3-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources-2-3.svg
   :alt: Feature guide — capabilities, maturity and optional integrations.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources-2-3.md

.. class:: hide-below-desktop

| |pypi-desktop-other-resources-2-4-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-resources-2-4-svg|

.. |pypi-desktop-other-resources-2-4-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources-2-4.desktop.svg
   :alt: Curated API reference — supported entry points by task, with the complete module reference one level deeper.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources-2-4.md

.. |pypi-phone-other-resources-2-4-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources-2-4.svg
   :alt: Curated API reference — supported entry points by task, with the complete module reference one level deeper.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources-2-4.md

.. class:: hide-below-desktop

| |pypi-desktop-other-resources-2-5-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-resources-2-5-svg|

.. |pypi-desktop-other-resources-2-5-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources-2-5.desktop.svg
   :alt: Language & translation guide — interface languages, contextual help and scientific-output policy.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources-2-5.md

.. |pypi-phone-other-resources-2-5-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-resources-2-5.svg
   :alt: Language & translation guide — interface languages, contextual help and scientific-output policy.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-resources-2-5.md

.. class:: hide-below-desktop

| |pypi-desktop-language-translation-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-language-translation-svg|

.. |pypi-desktop-language-translation-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/language-translation.desktop.svg
   :alt: Language & translation. The interface supports ten languages across navigation and Preferences. AI and LIVE controls, module descriptions and reviewed contextual help are also translated. Change the language under spaCR → Preferences → Language without restarting. Logs, paths, database values and measurements are never translated; scientific output remains canonical English. See the contextual-help policy.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/language-translation.md

.. |pypi-phone-language-translation-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/language-translation.svg
   :alt: Language & translation. The interface supports ten languages across navigation and Preferences. AI and LIVE controls, module descriptions and reviewed contextual help are also translated. Change the language under spaCR → Preferences → Language without restarting. Logs, paths, database values and measurements are never translated; scientific output remains canonical English. See the contextual-help policy.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/language-translation.md

.. class:: hide-below-desktop

| |pypi-desktop-animated-setting-guidance-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-animated-setting-guidance-svg|

.. |pypi-desktop-animated-setting-guidance-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/animated-setting-guidance.desktop.svg
   :alt: Animated setting guidance. Settings with a visual explanation offer an Animation control in their tooltip. Browse the setting animation gallery or the Setting animation registry.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/animated-setting-guidance.md

.. |pypi-phone-animated-setting-guidance-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/animated-setting-guidance.svg
   :alt: Animated setting guidance. Settings with a visual explanation offer an Animation control in their tooltip. Browse the setting animation gallery or the Setting animation registry.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/animated-setting-guidance.md

.. class:: hide-below-desktop

| |pypi-desktop-animated-setting-guidance-link-1-desktop-svg|\ |pypi-desktop-animated-setting-guidance-link-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-animated-setting-guidance-link-1-svg|\ |pypi-phone-animated-setting-guidance-link-2-svg|

.. |pypi-desktop-animated-setting-guidance-link-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/animated-setting-guidance-link-1.desktop.svg
   :alt: setting animation gallery
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://einarolafsson.github.io/spacr/setting_animations.html

.. |pypi-desktop-animated-setting-guidance-link-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/animated-setting-guidance-link-2.desktop.svg
   :alt: Setting animation registry
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://einarolafsson.github.io/spacr/api/spacr/setting_animations/index.html

.. |pypi-phone-animated-setting-guidance-link-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/animated-setting-guidance-link-1.svg
   :alt: setting animation gallery
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://einarolafsson.github.io/spacr/setting_animations.html

.. |pypi-phone-animated-setting-guidance-link-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/animated-setting-guidance-link-2.svg
   :alt: Setting animation registry
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://einarolafsson.github.io/spacr/api/spacr/setting_animations/index.html

.. class:: hide-below-desktop

| |pypi-desktop-data-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-data-svg|

.. |pypi-desktop-data-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/data.desktop.svg
   :alt: Data. Reference datasets.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/data.md

.. |pypi-phone-data-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/data.svg
   :alt: Data. Reference datasets.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/data.md

| |DataBioStudies|\ |DataHuggingFace|\ |DataNCBI|\ |DataSpaCRPower|\ |DataBioRxiv|

.. |DataBioStudies| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/databanks/biostudies_button.png
   :width: 14.14%
   :alt: Open the BioStudies microscopy dataset
   :target: https://doi.org/10.6019/S-BIAD2135
   :align: middle

.. |DataHuggingFace| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/databanks/huggingface_button.png
   :width: 14.14%
   :alt: Open the Hugging Face testing dataset
   :target: https://huggingface.co/datasets/einarolafsson/toxo_mito
   :align: middle

.. |DataNCBI| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/databanks/ncbi_button.png
   :width: 14.14%
   :alt: Open the NCBI sequencing dataset
   :target: https://www.ncbi.nlm.nih.gov/bioproject/?term=PRJNA1261935
   :align: middle

.. |DataSpaCRPower| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/databanks/spacrpower_button.png
   :width: 14.14%
   :alt: Open spaCRPower
   :target: https://github.com/maomlab/spaCRPower
   :align: middle

.. |DataBioRxiv| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_assets/cells/databanks/biorxiv_button.png
   :width: 14.14%
   :alt: Open the bioRxiv preprint
   :target: https://www.biorxiv.org/content/10.64898/2026.07.08.737057v1
   :align: middle

.. class:: hide-below-desktop

| |pypi-desktop-model-zoo-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-model-zoo-svg|

.. |pypi-desktop-model-zoo-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/model-zoo.desktop.svg
   :alt: Model zoo. spaCR ships a catalogue of trained models and fetches them on demand. Open Model Zoo from the home screen to browse and install them, or name a key in a settings file -- pathogen_model: toxoplasma_pv_v1 -- and the model is downloaded and checksum-verified the first time it is needed. Every published entry carries a SHA-256; an entry without one is refused rather than installed, because a truncated or substituted checkpoint cannot be told from the real one.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/model-zoo.md

.. |pypi-phone-model-zoo-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/model-zoo.svg
   :alt: Model zoo. spaCR ships a catalogue of trained models and fetches them on demand. Open Model Zoo from the home screen to browse and install them, or name a key in a settings file -- pathogen_model: toxoplasma_pv_v1 -- and the model is downloaded and checksum-verified the first time it is needed. Every published entry carries a SHA-256; an entry without one is refused rather than installed, because a truncated or substituted checkpoint cannot be told from the real one.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/model-zoo.md

.. spacr-model-zoo-begin

.. class:: hide-below-desktop

| |pypi-desktop-heading-svg|

.. class:: hide-on-desktop

| |pypi-phone-heading-phone-svg|

.. class:: hide-below-desktop

| |pypi-desktop-toxoplasma_pv_v4-svg|\ |pypi-desktop-toxoplasma_plaque_v6-svg|\ |pypi-desktop-toxoplasma_well_detector_v3-svg|\ |pypi-desktop-toxoplasma_from_cellmask_v1-svg|\ |pypi-desktop-nuclei_from_cellmask_v1-svg|\ |pypi-desktop-cell_from_hoechst_v1-svg|\ |pypi-desktop-toxoplasma_from_hoechst_v1-svg|

.. class:: hide-on-desktop

| |pypi-phone-toxoplasma_pv_v4-phone-svg|\ |pypi-phone-toxoplasma_plaque_v6-phone-svg|\ |pypi-phone-toxoplasma_well_detector_v3-phone-svg|\ |pypi-phone-toxoplasma_from_cellmask_v1-phone-svg|\ |pypi-phone-nuclei_from_cellmask_v1-phone-svg|\ |pypi-phone-cell_from_hoechst_v1-phone-svg|\ |pypi-phone-toxoplasma_from_hoechst_v1-phone-svg|

.. |pypi-desktop-heading-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/heading.svg
   :alt: Default models · held-out scores
   :class: hide-below-desktop
   :width: 99.759%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/README.md

.. |pypi-phone-heading-phone-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/heading.phone.svg
   :alt: Default models · held-out scores
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/README.md

.. |pypi-desktop-toxoplasma_pv_v4-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/toxoplasma_pv_v4.svg
   :alt: Score card of Parasite vacuoles v4 (toxoplasma_pv_v4, default): F1 0.761 on 209 held-out fields against 0.377 for stock cpsam_v2. F1 0.761 against stock cpsam_v2's 0.377 on the 209 strict hold-out fields at IoU 0.5; AJI 0.582 against 0.040.
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_pv_v4.md

.. |pypi-desktop-toxoplasma_plaque_v6-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/toxoplasma_plaque_v6.svg
   :alt: Score card of Plaques v6 (toxoplasma_plaque_v6, default): F1 0.768 on 160 held-out fields against 0.294 for stock cpsam_v2. F1 0.768 against stock cpsam_v2's 0.294 on the 160 strict hold-out fields at IoU 0.5; AJI 0.752 against 0.249.
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v6.md

.. |pypi-desktop-toxoplasma_well_detector_v3-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/toxoplasma_well_detector_v3.svg
   :alt: Score card of Plaque wells v3 (toxoplasma_well_detector_v3, default): mAP50 0.994 on 73 held-out images. Stock was not evaluated in this run; see the named incumbent comparison on the model card.
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_well_detector_v3.md

.. |pypi-desktop-toxoplasma_from_cellmask_v1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/toxoplasma_from_cellmask_v1.svg
   :alt: Score card of Vacuoles from cell mask v1 (toxoplasma_from_cellmask_v1, default): F1 0.606 on 463 held-out fields against 0.021 for stock cpsam_v2. F1 0.606 against 0.021 for stock cpsam_v2 on 463 well-grouped held-out fields, at IoU 0.5.
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_from_cellmask_v1.md

.. |pypi-desktop-nuclei_from_cellmask_v1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/nuclei_from_cellmask_v1.svg
   :alt: Score card of Nuclei from cell mask v1 (nuclei_from_cellmask_v1, default): F1 0.888 on 453 held-out fields against 0.201 for stock cpsam_v2. F1 0.888 against 0.201 for stock cpsam_v2 on 453 well-grouped held-out fields, at IoU 0.5.
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/nuclei_from_cellmask_v1.md

.. |pypi-desktop-cell_from_hoechst_v1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/cell_from_hoechst_v1.svg
   :alt: Score card of Cells from Hoechst v1 (cell_from_hoechst_v1, default): F1 0.870 on 451 held-out fields against 0.301 for stock cpsam_v2. F1 0.870 against stock cpsam_v2's 0.301 on 451 held-out fields at IoU 0.5 -- a delta of 0.569.
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cell_from_hoechst_v1.md

.. |pypi-desktop-toxoplasma_from_hoechst_v1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/toxoplasma_from_hoechst_v1.svg
   :alt: Score card of Vacuoles from Hoechst v1 (toxoplasma_from_hoechst_v1, default): F1 0.569 on 463 held-out fields against 0.002 for stock cpsam_v2. F1 0.569 against 0.002 for stock cpsam_v2 on 463 well-grouped held-out fields, at IoU 0.5.
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_from_hoechst_v1.md

.. |pypi-phone-toxoplasma_pv_v4-phone-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/toxoplasma_pv_v4.phone.svg
   :alt: Score card of Parasite vacuoles v4 (toxoplasma_pv_v4, default): F1 0.761 on 209 held-out fields against 0.377 for stock cpsam_v2. F1 0.761 against stock cpsam_v2's 0.377 on the 209 strict hold-out fields at IoU 0.5; AJI 0.582 against 0.040.
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_pv_v4.md

.. |pypi-phone-toxoplasma_plaque_v6-phone-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/toxoplasma_plaque_v6.phone.svg
   :alt: Score card of Plaques v6 (toxoplasma_plaque_v6, default): F1 0.768 on 160 held-out fields against 0.294 for stock cpsam_v2. F1 0.768 against stock cpsam_v2's 0.294 on the 160 strict hold-out fields at IoU 0.5; AJI 0.752 against 0.249.
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v6.md

.. |pypi-phone-toxoplasma_well_detector_v3-phone-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/toxoplasma_well_detector_v3.phone.svg
   :alt: Score card of Plaque wells v3 (toxoplasma_well_detector_v3, default): mAP50 0.994 on 73 held-out images. Stock was not evaluated in this run; see the named incumbent comparison on the model card.
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_well_detector_v3.md

.. |pypi-phone-toxoplasma_from_cellmask_v1-phone-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/toxoplasma_from_cellmask_v1.phone.svg
   :alt: Score card of Vacuoles from cell mask v1 (toxoplasma_from_cellmask_v1, default): F1 0.606 on 463 held-out fields against 0.021 for stock cpsam_v2. F1 0.606 against 0.021 for stock cpsam_v2 on 463 well-grouped held-out fields, at IoU 0.5.
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_from_cellmask_v1.md

.. |pypi-phone-nuclei_from_cellmask_v1-phone-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/nuclei_from_cellmask_v1.phone.svg
   :alt: Score card of Nuclei from cell mask v1 (nuclei_from_cellmask_v1, default): F1 0.888 on 453 held-out fields against 0.201 for stock cpsam_v2. F1 0.888 against 0.201 for stock cpsam_v2 on 453 well-grouped held-out fields, at IoU 0.5.
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/nuclei_from_cellmask_v1.md

.. |pypi-phone-cell_from_hoechst_v1-phone-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/cell_from_hoechst_v1.phone.svg
   :alt: Score card of Cells from Hoechst v1 (cell_from_hoechst_v1, default): F1 0.870 on 451 held-out fields against 0.301 for stock cpsam_v2. F1 0.870 against stock cpsam_v2's 0.301 on 451 held-out fields at IoU 0.5 -- a delta of 0.569.
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cell_from_hoechst_v1.md

.. |pypi-phone-toxoplasma_from_hoechst_v1-phone-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/cards/toxoplasma_from_hoechst_v1.phone.svg
   :alt: Score card of Vacuoles from Hoechst v1 (toxoplasma_from_hoechst_v1, default): F1 0.569 on 463 held-out fields against 0.002 for stock cpsam_v2. F1 0.569 against 0.002 for stock cpsam_v2 on 463 well-grouped held-out fields, at IoU 0.5.
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_from_hoechst_v1.md

.. class:: hide-below-desktop

| |pypi-desktop-generated-model-zoo-1-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-generated-model-zoo-1-svg|

.. |pypi-desktop-generated-model-zoo-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1.desktop.svg
   :alt: Older models.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-model-zoo-1.md

.. |pypi-phone-generated-model-zoo-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1.svg
   :alt: Older models.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-model-zoo-1.md

.. class:: hide-below-desktop

| |pypi-desktop-generated-model-zoo-1-link-1-desktop-svg|\ |pypi-desktop-generated-model-zoo-1-link-2-desktop-svg|\ |pypi-desktop-generated-model-zoo-1-link-3-desktop-svg|\ |pypi-desktop-generated-model-zoo-1-link-4-desktop-svg|\ |pypi-desktop-generated-model-zoo-1-link-5-desktop-svg|\ |pypi-desktop-generated-model-zoo-1-link-6-desktop-svg|\ |pypi-desktop-generated-model-zoo-1-link-7-desktop-svg|\ |pypi-desktop-generated-model-zoo-1-link-8-desktop-svg|\ |pypi-desktop-generated-model-zoo-1-link-9-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-generated-model-zoo-1-link-1-svg|\ |pypi-phone-generated-model-zoo-1-link-2-svg|\ |pypi-phone-generated-model-zoo-1-link-3-svg|\ |pypi-phone-generated-model-zoo-1-link-4-svg|\ |pypi-phone-generated-model-zoo-1-link-5-svg|\ |pypi-phone-generated-model-zoo-1-link-6-svg|\ |pypi-phone-generated-model-zoo-1-link-7-svg|\ |pypi-phone-generated-model-zoo-1-link-8-svg|\ |pypi-phone-generated-model-zoo-1-link-9-svg|

.. |pypi-desktop-generated-model-zoo-1-link-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-1.desktop.svg
   :alt: toxoplasma_pv_v3
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_pv_v3.md

.. |pypi-desktop-generated-model-zoo-1-link-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-2.desktop.svg
   :alt: toxoplasma_pv_v2
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_pv_v2.md

.. |pypi-desktop-generated-model-zoo-1-link-3-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-3.desktop.svg
   :alt: toxoplasma_pv_v1
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_pv_v1.md

.. |pypi-desktop-generated-model-zoo-1-link-4-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-4.desktop.svg
   :alt: toxoplasma_plaque_v5
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v5.md

.. |pypi-desktop-generated-model-zoo-1-link-5-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-5.desktop.svg
   :alt: toxoplasma_plaque_v4
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v4.md

.. |pypi-desktop-generated-model-zoo-1-link-6-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-6.desktop.svg
   :alt: toxoplasma_plaque_v2
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v2.md

.. |pypi-desktop-generated-model-zoo-1-link-7-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-7.desktop.svg
   :alt: toxoplasma_plaque_v1
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v1.md

.. |pypi-desktop-generated-model-zoo-1-link-8-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-8.desktop.svg
   :alt: toxoplasma_well_detector_v2
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_well_detector_v2.md

.. |pypi-desktop-generated-model-zoo-1-link-9-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-9.desktop.svg
   :alt: toxoplasma_well_detector_v1
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_well_detector_v1.md

.. |pypi-phone-generated-model-zoo-1-link-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-1.svg
   :alt: toxoplasma_pv_v3
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_pv_v3.md

.. |pypi-phone-generated-model-zoo-1-link-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-2.svg
   :alt: toxoplasma_pv_v2
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_pv_v2.md

.. |pypi-phone-generated-model-zoo-1-link-3-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-3.svg
   :alt: toxoplasma_pv_v1
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_pv_v1.md

.. |pypi-phone-generated-model-zoo-1-link-4-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-4.svg
   :alt: toxoplasma_plaque_v5
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v5.md

.. |pypi-phone-generated-model-zoo-1-link-5-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-5.svg
   :alt: toxoplasma_plaque_v4
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v4.md

.. |pypi-phone-generated-model-zoo-1-link-6-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-6.svg
   :alt: toxoplasma_plaque_v2
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v2.md

.. |pypi-phone-generated-model-zoo-1-link-7-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-7.svg
   :alt: toxoplasma_plaque_v1
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v1.md

.. |pypi-phone-generated-model-zoo-1-link-8-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-8.svg
   :alt: toxoplasma_well_detector_v2
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_well_detector_v2.md

.. |pypi-phone-generated-model-zoo-1-link-9-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-1-link-9.svg
   :alt: toxoplasma_well_detector_v1
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_well_detector_v1.md

.. class:: hide-below-desktop

| |pypi-desktop-generated-model-zoo-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-generated-model-zoo-2-svg|

.. |pypi-desktop-generated-model-zoo-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-2.desktop.svg
   :alt: Alternatives.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-model-zoo-2.md

.. |pypi-phone-generated-model-zoo-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-2.svg
   :alt: Alternatives.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-model-zoo-2.md

.. class:: hide-below-desktop

| |pypi-desktop-generated-model-zoo-2-link-1-desktop-svg|\ |pypi-desktop-generated-model-zoo-2-link-2-desktop-svg|\ |pypi-desktop-generated-model-zoo-2-link-3-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-generated-model-zoo-2-link-1-svg|\ |pypi-phone-generated-model-zoo-2-link-2-svg|\ |pypi-phone-generated-model-zoo-2-link-3-svg|

.. |pypi-desktop-generated-model-zoo-2-link-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-2-link-1.desktop.svg
   :alt: toxoplasma_pv_v5
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_pv_v5.md

.. |pypi-desktop-generated-model-zoo-2-link-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-2-link-2.desktop.svg
   :alt: toxoplasma_plaque_v3
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v3.md

.. |pypi-desktop-generated-model-zoo-2-link-3-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-2-link-3.desktop.svg
   :alt: live_cell_v1
   :class: hide-below-desktop
   :width: 33.253%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/live_cell_v1.md

.. |pypi-phone-generated-model-zoo-2-link-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-2-link-1.svg
   :alt: toxoplasma_pv_v5
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_pv_v5.md

.. |pypi-phone-generated-model-zoo-2-link-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-2-link-2.svg
   :alt: toxoplasma_plaque_v3
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/toxoplasma_plaque_v3.md

.. |pypi-phone-generated-model-zoo-2-link-3-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-2-link-3.svg
   :alt: live_cell_v1
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/models/live_cell_v1.md

.. class:: hide-below-desktop

| |pypi-desktop-generated-model-zoo-3-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-generated-model-zoo-3-svg|

.. |pypi-desktop-generated-model-zoo-3-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-3.desktop.svg
   :alt: Mask generator
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-model-zoo-3.md

.. |pypi-phone-generated-model-zoo-3-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/generated-model-zoo-3.svg
   :alt: Mask generator
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/generated-model-zoo-3.md

.. spacr-model-zoo-end

.. class:: hide-below-desktop

| |pypi-desktop-diagnosing-performance-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-diagnosing-performance-svg|

.. |pypi-desktop-diagnosing-performance-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/diagnosing-performance.desktop.svg
   :alt: Diagnosing performance. Generate a hardware report and attach it to a performance-related issue:
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/diagnosing-performance.md

.. |pypi-phone-diagnosing-performance-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/diagnosing-performance.svg
   :alt: Diagnosing performance. Generate a hardware report and attach it to a performance-related issue:
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/diagnosing-performance.md

.. code-block:: bash

   python tools/spacr_hardware_report.py

|

.. class:: hide-below-desktop

| |pypi-desktop-diagnosing-performance-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-diagnosing-performance-2-svg|

.. |pypi-desktop-diagnosing-performance-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/diagnosing-performance-2.desktop.svg
   :alt: Saves to ~/.spacr/reports and prints the path. --quick skips the longer benchmarks; --out PATH sets the location. Reads no project data. Times imports, numeric libraries, window construction and animation, and reports x86_64 emulation on Apple Silicon and NumPy's BLAS.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/diagnosing-performance-2.md

.. |pypi-phone-diagnosing-performance-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/diagnosing-performance-2.svg
   :alt: Saves to ~/.spacr/reports and prints the path. --quick skips the longer benchmarks; --out PATH sets the location. Reads no project data. Times imports, numeric libraries, window construction and animation, and reports x86_64 emulation on Apple Silicon and NumPy's BLAS.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/diagnosing-performance-2.md

.. class:: hide-below-desktop

| |pypi-desktop-command-line-reference-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-command-line-reference-svg|

.. |pypi-desktop-command-line-reference-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/command-line-reference.desktop.svg
   :alt: Command-line reference. Every command below is installed by pip install spacr. All of them accept --help.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/command-line-reference.md

.. |pypi-phone-command-line-reference-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/command-line-reference.svg
   :alt: Command-line reference. Every command below is installed by pip install spacr. All of them accept --help.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/command-line-reference.md

.. class:: hide-below-desktop

| |pypi-desktop-launching-the-application-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-launching-the-application-svg|

.. |pypi-desktop-launching-the-application-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/launching-the-application.desktop.svg
   :alt: Launching the application.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/launching-the-application.md

.. |pypi-phone-launching-the-application-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/launching-the-application.svg
   :alt: Launching the application.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/launching-the-application.md

.. code-block:: bash

   spacr              # the desktop application
   spacr-nav
   spacr-navigator
   spacr-tutorial     # the interactive tutorial library
   spacr-server       # no first-run setup screen, for unattended launches

|

.. class:: hide-below-desktop

| |pypi-desktop-when-spacr-will-not-start-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-when-spacr-will-not-start-svg|

.. |pypi-desktop-when-spacr-will-not-start-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/when-spacr-will-not-start.desktop.svg
   :alt: When spaCR will not start.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/when-spacr-will-not-start.md

.. |pypi-phone-when-spacr-will-not-start-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/when-spacr-will-not-start.svg
   :alt: When spaCR will not start.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/when-spacr-will-not-start.md

.. code-block:: bash

   spacr-doctor       # diagnose the installation and say how to fix it
   safespacr          # the least spaCR that can still change a setting

|

.. class:: hide-below-desktop

| |pypi-desktop-when-spacr-will-not-start-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-when-spacr-will-not-start-2-svg|

.. |pypi-desktop-when-spacr-will-not-start-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/when-spacr-will-not-start-2.desktop.svg
   :alt: spacr-doctor prints one line per check, with a command to run for each failure. It also reports which spacr is on the path. safespacr reads every preference as its default and forces the backdrop, animations, verbose logging and preloading off. Use it when a saved preference breaks the launch. Preferences saved in safe mode are written normally and persist.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/when-spacr-will-not-start-2.md

.. |pypi-phone-when-spacr-will-not-start-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/when-spacr-will-not-start-2.svg
   :alt: spacr-doctor prints one line per check, with a command to run for each failure. It also reports which spacr is on the path. safespacr reads every preference as its default and forces the backdrop, animations, verbose logging and preloading off. Use it when a saved preference breaks the launch. Preferences saved in safe mode are written normally and persist.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/when-spacr-will-not-start-2.md

.. class:: hide-below-desktop

| |pypi-desktop-running-modules-headlessly-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-running-modules-headlessly-svg|

.. |pypi-desktop-running-modules-headlessly-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/running-modules-headlessly.desktop.svg
   :alt: Running modules headlessly. No Qt, no display — for clusters, servers and CI.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/running-modules-headlessly.md

.. |pypi-phone-running-modules-headlessly-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/running-modules-headlessly.svg
   :alt: Running modules headlessly. No Qt, no display — for clusters, servers and CI.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/running-modules-headlessly.md

.. code-block:: bash

   spacr-run --list                              # modules with a headless entry
   spacr-run --describe MODULE                   # what a module consumes and produces
   spacr-run validate --module MODULE \
       --settings settings.csv                   # check settings before spending the run
   spacr-run MODULE --settings settings.csv      # execute
   spacr-remote --help                           # submit and monitor SSH, Slurm or cloud jobs

|

.. class:: hide-below-desktop

| |pypi-desktop-running-modules-headlessly-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-running-modules-headlessly-2-svg|

.. |pypi-desktop-running-modules-headlessly-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/running-modules-headlessly-2.desktop.svg
   :alt: validate reads the same settings the run would and lists each problem, such as a missing setting or a path that does not exist, with a fix.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/running-modules-headlessly-2.md

.. |pypi-phone-running-modules-headlessly-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/running-modules-headlessly-2.svg
   :alt: validate reads the same settings the run would and lists each problem, such as a missing setting or a path that does not exist, with a fix.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/running-modules-headlessly-2.md

.. class:: hide-below-desktop

| |pypi-desktop-inspecting-a-run-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-inspecting-a-run-svg|

.. |pypi-desktop-inspecting-a-run-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/inspecting-a-run.desktop.svg
   :alt: Inspecting a run. Every run is journalled to ~/.spacr/runs with its settings, hashed inputs, outputs, warnings, versions and seeds.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/inspecting-a-run.md

.. |pypi-phone-inspecting-a-run-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/inspecting-a-run.svg
   :alt: Inspecting a run. Every run is journalled to ~/.spacr/runs with its settings, hashed inputs, outputs, warnings, versions and seeds.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/inspecting-a-run.md

.. code-block:: bash

   spacr-repro RUN_DIR        # replay a recorded run from its journal
   spacr-workspace RUN_DIR    # what that run had open: databases, montages, views

|

.. class:: hide-below-desktop

| |pypi-desktop-auditing-data-and-installation-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-auditing-data-and-installation-svg|

.. |pypi-desktop-auditing-data-and-installation-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/auditing-data-and-installation.desktop.svg
   :alt: Auditing data and installation.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/auditing-data-and-installation.md

.. |pypi-phone-auditing-data-and-installation-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/auditing-data-and-installation.svg
   :alt: Auditing data and installation.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/auditing-data-and-installation.md

.. code-block:: bash

   spacr-db-audit DB      # SQLite health, integrity, locking, reader/writer probe
   spacr-leakage          # classifier train/test leakage audit
   spacr-plugins          # installed plugin registry and failure diagnostics

|

.. class:: hide-below-desktop

| |pypi-desktop-environment-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-environment-svg|

.. |pypi-desktop-environment-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/environment.desktop.svg
   :alt: Environment.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/environment.md

.. |pypi-phone-environment-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/environment.svg
   :alt: Environment.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/environment.md

.. code-block:: bash

   SPACR_LOG_LEVEL=DEBUG spacr      # verbose logging for one launch

|

.. class:: hide-below-desktop

| |pypi-desktop-environment-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-environment-2-svg|

.. |pypi-desktop-environment-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/environment-2.desktop.svg
   :alt: Rotating logs are written to ~/.spacr/logs/spacr.log. Attach that file to a bug report.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/environment-2.md

.. |pypi-phone-environment-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/environment-2.svg
   :alt: Rotating logs are written to ~/.spacr/logs/spacr.log. Attach that file to a bug report.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/environment-2.md

.. class:: hide-below-desktop

| |pypi-desktop-contributing-and-support-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-contributing-and-support-svg|

.. |pypi-desktop-contributing-and-support-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/contributing-and-support.desktop.svg
   :alt: Contributing and support. Submit bug reports and focused feature requests through GitHub Issues. When reporting a failure, include the spaCR version, operating system, Python version, module settings and the relevant log excerpt. spacr-doctor collects most of this information; include the hardware report when reporting performance problems.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/contributing-and-support.md

.. |pypi-phone-contributing-and-support-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/contributing-and-support.svg
   :alt: Contributing and support. Submit bug reports and focused feature requests through GitHub Issues. When reporting a failure, include the spaCR version, operating system, Python version, module settings and the relevant log excerpt. spacr-doctor collects most of this information; include the hardware report when reporting performance problems.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/contributing-and-support.md

.. class:: hide-below-desktop

| |pypi-desktop-licensing-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-licensing-svg|

.. |pypi-desktop-licensing-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/licensing.desktop.svg
   :alt: Licensing. New original spaCR material is licensed under the BSD 3-Clause with additional terms. Commercial use requires separate written permission; contact olafsson@med.umich.com. Earlier BSD grants and third-party licenses remain in effect; see LICENSE for scope and notices.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/licensing.md

.. |pypi-phone-licensing-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/licensing.svg
   :alt: Licensing. New original spaCR material is licensed under the BSD 3-Clause with additional terms. Commercial use requires separate written permission; contact olafsson@med.umich.com. Earlier BSD grants and third-party licenses remain in effect; see LICENSE for scope and notices.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/licensing.md

.. class:: hide-below-desktop

| |pypi-desktop-licensing-link-1-desktop-svg|\ |pypi-desktop-licensing-link-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-licensing-link-1-svg|\ |pypi-phone-licensing-link-2-svg|

.. |pypi-desktop-licensing-link-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/licensing-link-1.desktop.svg
   :alt: BSD 3-Clause with additional terms
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://github.com/EinarOlafsson/spacr/blob/nightly/LICENSE

.. |pypi-desktop-licensing-link-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/licensing-link-2.desktop.svg
   :alt: olafsson@med.umich.com
   :class: hide-below-desktop
   :width: 49.879%
   :target: MAILTO:olafsson@med.umich.com

.. |pypi-phone-licensing-link-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/licensing-link-1.svg
   :alt: BSD 3-Clause with additional terms
   :class: hide-on-desktop
   :width: 99.441%
   :target: https://github.com/EinarOlafsson/spacr/blob/nightly/LICENSE

.. |pypi-phone-licensing-link-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/licensing-link-2.svg
   :alt: olafsson@med.umich.com
   :class: hide-on-desktop
   :width: 99.441%
   :target: MAILTO:olafsson@med.umich.com

.. class:: hide-below-desktop

| |pypi-desktop-licensing-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-licensing-2-svg|

.. |pypi-desktop-licensing-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/licensing-2.desktop.svg
   :alt: If spaCR contributed to published work, a citation is appreciated and is not a condition of the licence — see Citing spaCR below.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/licensing-2.md

.. |pypi-phone-licensing-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/licensing-2.svg
   :alt: If spaCR contributed to published work, a citation is appreciated and is not a condition of the licence — see Citing spaCR below.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/licensing-2.md

.. class:: hide-below-desktop

| |pypi-desktop-tutorials-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-tutorials-svg|

.. |pypi-desktop-tutorials-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/tutorials.desktop.svg
   :alt: Tutorials. The interactive spaCR tutorial library provides installation and module walkthroughs. Available narration and languages are listed for each lesson.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/tutorials.md

.. |pypi-phone-tutorials-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/tutorials.svg
   :alt: Tutorials. The interactive spaCR tutorial library provides installation and module walkthroughs. Available narration and languages are listed for each lesson.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/tutorials.md

.. class:: hide-below-desktop

| |pypi-desktop-citing-spacr-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-citing-spacr-svg|

.. |pypi-desktop-citing-spacr-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/citing-spacr.desktop.svg
   :alt: Citing spaCR. If spaCR contributes to your research, cite: Olafsson EB, et al. A pooled image-based CRISPR screen identifies EAF1 as a T. gondii modulator of ESCRT subversion.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/citing-spacr.md

.. |pypi-phone-citing-spacr-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/citing-spacr.svg
   :alt: Citing spaCR. If spaCR contributes to your research, cite: Olafsson EB, et al. A pooled image-based CRISPR screen identifies EAF1 as a T. gondii modulator of ESCRT subversion.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/citing-spacr.md

.. class:: hide-below-desktop

| |pypi-desktop-citing-spacr-2-1-desktop-svg|\ |pypi-desktop-citing-spacr-2-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-citing-spacr-2-1-svg|\ |pypi-phone-citing-spacr-2-2-svg|

.. |pypi-desktop-citing-spacr-2-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/citing-spacr-2-1.desktop.svg
   :alt: bioRxiv preprint
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://www.biorxiv.org/content/10.64898/2026.07.08.737057v1

.. |pypi-desktop-citing-spacr-2-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/citing-spacr-2-2.desktop.svg
   :alt: software archive
   :class: hide-below-desktop
   :width: 49.879%
   :target: https://doi.org/10.5281/zenodo.21343316

.. |pypi-phone-citing-spacr-2-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/citing-spacr-2-1.svg
   :alt: bioRxiv preprint
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://www.biorxiv.org/content/10.64898/2026.07.08.737057v1

.. |pypi-phone-citing-spacr-2-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/citing-spacr-2-2.svg
   :alt: software archive
   :class: hide-on-desktop
   :width: 49.72%
   :target: https://doi.org/10.5281/zenodo.21343316

.. class:: hide-below-desktop

| |pypi-desktop-other-work-citing-spacr-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-work-citing-spacr-svg|

.. |pypi-desktop-other-work-citing-spacr-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr.desktop.svg
   :alt: Other work citing spaCR.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr.md

.. |pypi-phone-other-work-citing-spacr-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr.svg
   :alt: Other work citing spaCR.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr.md

.. spacr-citing-papers-begin

.. class:: hide-below-desktop

| |pypi-desktop-other-work-citing-spacr-2-1-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-work-citing-spacr-2-1-svg|

.. |pypi-desktop-other-work-citing-spacr-2-1-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr-2-1.desktop.svg
   :alt: Metabolic adaptability and nutrient scavenging in Toxoplasma gondii: insights from ingestion pathway-deficient mutants.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr-2-1.md

.. |pypi-phone-other-work-citing-spacr-2-1-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr-2-1.svg
   :alt: Metabolic adaptability and nutrient scavenging in Toxoplasma gondii: insights from ingestion pathway-deficient mutants.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr-2-1.md

.. class:: hide-below-desktop

| |pypi-desktop-other-work-citing-spacr-2-2-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-work-citing-spacr-2-2-svg|

.. |pypi-desktop-other-work-citing-spacr-2-2-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr-2-2.desktop.svg
   :alt: IRE1α promotes phagosomal calcium flux to enhance macrophage fungicidal activity.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr-2-2.md

.. |pypi-phone-other-work-citing-spacr-2-2-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr-2-2.svg
   :alt: IRE1α promotes phagosomal calcium flux to enhance macrophage fungicidal activity.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr-2-2.md

.. class:: hide-below-desktop

| |pypi-desktop-other-work-citing-spacr-2-3-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-work-citing-spacr-2-3-svg|

.. |pypi-desktop-other-work-citing-spacr-2-3-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr-2-3.desktop.svg
   :alt: Toxoplasma GRA8 engages the host ESCRT accessory protein ALG-2 and is necessary for parasite metabolic integrity.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr-2-3.md

.. |pypi-phone-other-work-citing-spacr-2-3-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr-2-3.svg
   :alt: Toxoplasma GRA8 engages the host ESCRT accessory protein ALG-2 and is necessary for parasite metabolic integrity.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr-2-3.md

.. class:: hide-below-desktop

| |pypi-desktop-other-work-citing-spacr-2-4-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-work-citing-spacr-2-4-svg|

.. |pypi-desktop-other-work-citing-spacr-2-4-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr-2-4.desktop.svg
   :alt: Hydrogen sulfide dynamically upregulates copper uptake and localization.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr-2-4.md

.. |pypi-phone-other-work-citing-spacr-2-4-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr-2-4.svg
   :alt: Hydrogen sulfide dynamically upregulates copper uptake and localization.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr-2-4.md

.. class:: hide-below-desktop

| |pypi-desktop-other-work-citing-spacr-2-5-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-other-work-citing-spacr-2-5-svg|

.. |pypi-desktop-other-work-citing-spacr-2-5-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr-2-5.desktop.svg
   :alt: spaCR: Spatial phenotype analysis of CRISPR-Cas9 screens (preprint version 1).
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr-2-5.md

.. |pypi-phone-other-work-citing-spacr-2-5-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/other-work-citing-spacr-2-5.svg
   :alt: spaCR: Spatial phenotype analysis of CRISPR-Cas9 screens (preprint version 1).
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/other-work-citing-spacr-2-5.md

.. spacr-citing-papers-end

.. class:: hide-below-desktop

| |pypi-desktop-acknowledgments-desktop-svg|

.. class:: hide-on-desktop

| |pypi-phone-acknowledgments-svg|

.. |pypi-desktop-acknowledgments-desktop-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/acknowledgments.desktop.svg
   :alt: Acknowledgments. spaCR builds on open scientific software including NumPy, pandas, scikit-image, scikit-learn, Cellpose, PyTorch and Qt.
   :class: hide-below-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/acknowledgments.md

.. |pypi-phone-acknowledgments-svg| image:: https://raw.githubusercontent.com/EinarOlafsson/spacr/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_images/en/acknowledgments.svg
   :alt: Acknowledgments. spaCR builds on open scientific software including NumPy, pandas, scikit-image, scikit-learn, Cellpose, PyTorch and Qt.
   :class: hide-on-desktop
   :width: 100%
   :target: https://github.com/EinarOlafsson/spacr/blob/c528221cf127a9ab8388cfe86fd5ff67f8eea916/docs/readme_text/en/acknowledgments.md
