GaussMLE.jl is a Julia package for performing Maximum Likelihood Estimation (MLE) of Gaussian blob parameters in 2D images under a Poisson noise model.
The main functionality is provided through the exported fitstack
function, which takes a stack of 2D image boxes and returns the estimated Gaussian parameters for each box along with the uncertainties for each parameter. Uncertainties are calculated using the Cramér-Rao Lower Bound.
- Fast MLE of Gaussian blob parameters
- Supports different forms of Gaussian expectation models
- Easy-to-use API
To install GaussMLE.jl, start Julia and run:
using Pkg
Pkg.add("GaussMLE")
A basic example that demonstrates how to use GaussFit.fitstack
to fit Gaussian blobs in a stack of 2D image boxes:
using GaussMLE
using Statistics
# Simulate a stack of boxes with Poisson noise
T = Float32 # Data type
boxsz = 7 # Box size
nboxes = Int(1e5) # Number of boxes
modeltype = :xynb # Fit model type
out, θ_true, args = GaussMLE.GaussSim.genstack(boxsz, nboxes, :xynb; T=T, poissonnoise=true)
# Fit all boxes in the stack
θ_found, Σ_found = fitstack(out, modeltype, args);
For more details and advanced usage, check out the docs.
This package implements the algorithm described in:
- Smith, C., Joseph, N., Rieger, B. et al. "Fast, single-molecule localization that achieves theoretically minimum uncertainty." Nat Methods 7, 373–375 (2010). DOI: 10.1038/nmeth.1449
This project is licensed under the MIT License - see the LICENSE file for details.