JuliaSMLM
Julia tools for single-molecule localization microscopy (SMLM).

JuliaSMLM is a collection of composable, high-performance Julia packages covering the full SMLM workflow — from simulating raw camera data, through localization and post-processing, to rendering and quantitative analysis. Packages share a common data model (SMLMData.jl) so they snap together into pipelines, and performance-critical steps offer automatic GPU acceleration with CPU fallback.
Under active development. The JuliaSMLM ecosystem grows continuously — new packages are added and existing ones refined over time, so expect this list to keep expanding.
All packages below are registered in the Julia General registry — install any of them with the standard package manager, for example:
using Pkg
Pkg.add("SMLMAnalysis") # the full detection → rendering pipeline
Pkg.add(["SMLMData", "SMLMSim", "SMLMRender"]) # or individual building blocksPackages
Pipeline
| Package | Description |
|---|---|
| SMLMAnalysis.jl · docs | End-to-end analysis pipeline from a single config: detection, fitting, filtering, frame connection, drift correction, and rendering, with provenance tracking. Start here if you want the whole workflow. |
Core
| Package | Description |
|---|---|
| SMLMData.jl · docs | Foundational data types (emitters, cameras, SMLD containers) shared across the ecosystem. Most packages re-export what you need. |
| MicroscopePSFs.jl · docs | 2D/3D point-spread-function models and pixel-integration tools for optical simulation and fitting. |
Simulation
| Package | Description |
|---|---|
| SMLMSim.jl · docs | Simulate realistic SMLM data: static super-resolution patterns with blinking photophysics, and diffusion/interaction dynamics for single-particle tracking. |
Localization
| Package | Description |
|---|---|
| SMLMBoxer.jl · docs | Particle detection and ROI extraction via difference-of-Gaussians filtering, with GPU acceleration and sCMOS variance weighting. |
| GaussMLE.jl · docs | Fast maximum-likelihood fitting of Gaussian-PSF parameters, with automatic GPU acceleration. |
Post-processing
| Package | Description |
|---|---|
| SMLMFrameConnection.jl · docs | Link localizations from the same blinking event across frames into single, higher-precision localizations. |
| SMLMBaGoL.jl · docs | Bayesian Grouping of Localizations (BaGoL): merge an emitter's repeated blinks into single emitters, reaching precision beyond raw localizations. |
| SMLMDriftCorrection.jl · docs | Fiducial-free intra- and inter-dataset drift correction (2D/3D) via entropy minimization. |
Rendering & visualization
| Package | Description |
|---|---|
| SMLMRender.jl | Render point-cloud localizations into images (histogram, Gaussian-blob, or outline) with flexible color mapping. |
| SMLMView.jl · docs | WGLMakie-based interactive viewer for N-dimensional microscopy data. |
Analysis
| Package | Description |
|---|---|
| SMLMClustering.jl · docs | Clustering and spatial statistics (DBSCAN, HDBSCAN, Voronoi/SR-Tesseler) for localization data. |
Conventions
Packages across the ecosystem follow shared conventions so data moves between them without surprises. See the Pixel Indexing Convention for how images and coordinates are indexed.
Also from this org
- ModelContextProtocol.jl — a Julia implementation of the Model Context Protocol (MCP) for integrating tools and resources with LLMs.
Contributing
Issues and pull requests are welcome on any JuliaSMLM repository. Each package is developed and versioned independently and registered through the Julia General registry.