Metadata-Version: 2.4
Name: smappy-smlm
Version: 0.3.1
Summary: Single-molecule localization fitting pipeline (Python port of the SMAP fast-simple workflow)
Author-email: Jonas Ries <ries@embl.de>
License-Expression: BSD-3-Clause
Project-URL: Homepage, https://github.com/ries-lab/SMAPpy
Project-URL: Source, https://github.com/ries-lab/SMAPpy
Keywords: SMLM,super-resolution,localization microscopy,PALM,STORM
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Image Recognition
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.22
Requires-Dist: scipy>=1.8
Requires-Dist: tifffile>=2022.5
Requires-Dist: h5py>=3.6
Requires-Dist: pyyaml>=5.4
Requires-Dist: PySide6-Essentials>=6.6
Requires-Dist: pyqtgraph>=0.13
Requires-Dist: matplotlib>=3.4
Requires-Dist: ziamath>=0.13
Provides-Extra: viewer
Requires-Dist: matplotlib>=3.4; extra == "viewer"
Provides-Extra: image
Requires-Dist: pillow>=9.0; extra == "image"
Provides-Extra: drift
Requires-Dist: matplotlib>=3.4; extra == "drift"
Provides-Extra: cuda
Requires-Dist: numba>=0.57; extra == "cuda"
Provides-Extra: gui
Provides-Extra: gpu
Requires-Dist: wgpu>=0.19; extra == "gpu"
Provides-Extra: tutorial
Requires-Dist: playwright>=1.40; extra == "tutorial"
Requires-Dist: piper-tts>=1.2; extra == "tutorial"
Provides-Extra: test
Requires-Dist: pytest>=7; extra == "test"
Requires-Dist: pytest-timeout>=2.1; extra == "test"
Requires-Dist: pytest-xdist>=3; extra == "test"
Dynamic: license-file

# SMAPpy

SMAPpy is software for single-molecule localization microscopy (SMLM) in
Python. It takes raw camera frames to localizations and super-resolution
images, with a graphical interface, command-line tools and a Python API. It is
a Python port of [SMAP](https://github.com/jries/SMAP).

## Install

    pip install smappy-smlm

The GUI is included. Binary wheels are available for Python 3.9-3.13 on macOS,
Linux and Windows, so nothing needs to be compiled. The package is called
`smappy-smlm` on PyPI; in Python you `import smappy`.

With [uv](https://docs.astral.sh/uv/) you can install the GUI as a standalone
tool, or run it without installing:

    uv tool install smappy-smlm
    uvx --from smappy-smlm smappy-gui

To install from a checkout, which builds the C++ extensions (pip 21.3 or newer):

    git clone https://github.com/ries-lab/SMAPpy.git
    cd SMAPpy
    python -m venv .venv
    .venv/bin/python -m pip install -e .

## Start

    smappy-gui

or, to open a localization file directly:

    smappy-gui FILE.hdf5

From a checkout, activate the venv first or run `.venv/bin/smappy-gui`.

## Tutorials and documentation

**Tutorials.** [ries-lab.github.io/SMAPpy](https://ries-lab.github.io/SMAPpy/)
has short guided tours on simulated data you can follow along with. Start with
[SMAPpy in three minutes](https://ries-lab.github.io/SMAPpy/quickstart/).

**Help pages.** Every plugin and the main parts of the GUI have a help page.
It explains the theoretical background and every control. Open it with the
**?** in a plugin's or a Render-tab section's title bar, with F1 in any panel or
window, or from *Help → Plugin documentation*. The same pages are online at
[ries-lab.github.io/SMAPpy/help](https://ries-lab.github.io/SMAPpy/help/), and
`python -m smappy.docs -o DIR` writes them as a static website.

**For developers.** [GUI.md](GUI.md) describes the architecture.
[docs/](docs/) holds design notes on the plugin system and individual
algorithms. [NOTES.md](NOTES.md) records design decisions and measurements.

## Tests

    SMAPPY_TEST_CAL=/path/to/_3dcal.mat python -m pytest tests/

## License

SMAPpy is released under the BSD 3-Clause license; see [LICENSE](LICENSE) and
[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
