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.
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 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 .
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. ries-lab.github.io/SMAPpy has short guided tours on simulated data you can follow along with. Start with SMAPpy in three minutes.
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, and
python -m smappy.docs -o DIR writes them as a static website.
For developers. GUI.md describes the architecture. docs/ holds design notes on the plugin system and individual algorithms. NOTES.md records design decisions and measurements.
SMAPPY_TEST_CAL=/path/to/_3dcal.mat python -m pytest tests/
SMAPpy is released under the BSD 3-Clause license; see LICENSE and THIRD_PARTY_NOTICES.md.