Skip to content

webSMLM v0.5.0 — 3D astigmatism

Choose a tag to compare

@jhohlbein jhohlbein released this 21 Jul 21:03
· 868 commits to main since this release

Adds astigmatism-based 3D localization (Phasor 3D), a full calibration workflow, and depth-coded rendering.

Try it: https://hohlbeinlab.github.io/webSMLM/

3D astigmatism

  • Calibration. Load a bead z-stack, set the frame range and z-step, and Calibrate. Every spot in each plane is detected and fitted with an elliptical Gaussian (independent σ_x, σ_y), pooled across the field (a stage z-scan means all emitters in a plane share z). The right panel shows a scatter of σ_x (green) / σ_y (magenta) vs z with vertex-quadratic fits σ = a(z−c)² + b, and z=0 is placed at the σ_x=σ_y focus. Calibrations save/load as JSON.
  • Phasor 3D fit method. Assigns z per localization from the phasor width ratio via a monotonic z(ratio) fit (~137 nm axial RMS on the test beads). "Phasor (fast)" is now "Phasor 2D".
  • Depth-coded rendering. Colour by z (hue = z, brightness = density) with an adjustable z range (out-of-range renders black, so you can optically section), a depth colourbar, and a Turbo blue-green-red map. z [nm] is added to the CSV export.

Also in this release

  • Frame scrubber under the raw panel (slider or mouse-wheel) to browse any stack.
  • Loader fix: contiguous ImageJ stacks with trailing ROI/overlay metadata now load fully (previously such a stack could load as one frame).
  • Consistent Save-As handling for CSV and calibration exports, with a clear note on the file:// download limitation.

Known limitations

3D is astigmatism-only; the Gaussian fitter is 2D least-squares (not MLE); dense overlapping PSFs bias single-emitter fits; intensities are ADU unless a camera gain is set. The astigmatism calibration is a vertex-quadratic per axis — a local approximation, best over a cropped z-range.

Licensed CC BY 4.0.