No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
ImageJ add bioformats_package.jar Oct 11, 2017
data replaced example data for single bead Aug 9, 2017
private fix Gaussian calibrator to work with any distance between frames Jun 2, 2018
shared replace nansum Apr 25, 2018
simplefitter_GUI compile for pc Dec 5, 2017
source add source files May 11, 2018
.gitignore change quantile to myquantile (it was already present in the shared f… Apr 25, 2018
Licence.txt update licence file Aug 8, 2017
Manuscript_fit3D.pdf first commit Aug 7, 2017 Update README, add reference May 11, 2018
Supplementary_Figures.pdf first commit Aug 7, 2017
User_guide_Ries.pdf add user guide Oct 22, 2017
calibrate3D.m version submitted to NM Dec 6, 2017
calibrate3D_GUI.prj compiled for PC Oct 17, 2017
calibrate3D_GUI_g.m global calibration workflow Dec 15, 2017
calibrate3D_g.m global fittingwith new calibrator Dec 16, 2017
calibrate3Daberrations.m Replace all nanmean(...) with mean(...,'omitnan') to accomodate peopl… Apr 25, 2018
calibrate_globalworkflow.m export transform directly Dec 17, 2017
correct_3Daberrations.m first commit Aug 7, 2017
example_3D_fit_NM.m Replace all nanstd(...) with std(...,'omitnan') to accommodate people… Apr 25, 2018
example_fit_2DPSF.m version submitted to NM Dec 6, 2017
example_fit_astig.m Replace all nanstd(...) with std(...,'omitnan') to accommodate people… Apr 25, 2018
simSplinePSF.m version submitted to NM Dec 6, 2017
simplefitter_GUI.m version submitted to NM Dec 6, 2017
simplefitter_cspline.m version submitted to NM Dec 6, 2017
simulate2c.m simulate mirrored image Nov 17, 2017


fit3Dcspline is a GPU based 3D single molecule fitter for arbitrary, experimental point spread functions (PSF). The fitting speeds achieves more than 10^5 fits/s on a consumer graphic card GTX 1070. The implmentation of the fitting algorithm is based on maximum likelihood estimation and employs Levenberg-Marquardt optimization routine, which reaches theoretical minimum uncertainty. Both the EMCCD and sCMOS noise model are included. The softare package also includes tools to robustly model beads based experimental PSFs of different modality and correct for depth induce aberrations.


  • Matlab R2016a or newer
    • Curve Fitting Toolbox
    • Optimization Toolbox

The GPU fitter requires:

  • Microsoft Windows 7 or newer, 64-bit
  • CUDA capable graphics card, minimum Compute Capability 3.0
  • CUDA 8 compatible graphics driver (for GeForce products 378.66 or later)

The CPU version runs on macOS and Microsoft Windows 7 or newer, 64-bit

How to run

Example code is avalible in file example_3D_fit.m. The required 3D image stacks for the demo code can be found in the folder data. A full instruction guide can be found in User_guide_Ries.pdf.


For any questions / comments about this software, please contact Ries Lab.

Copyright and Software License

Copyright (c) 2017 Ries Lab, European Molecular Biology Laboratory, Heidelberg.

fit3Dcspline also includes OME Bio-Formats package for reading and converting biological file formats in folder bfmatlab which comes with a separate copyright.

The fit3Dcspline is licenced under the GNU GPL.

How to cite fit3Dcspline

If you use fit3Dcspline to process your data, please, cite our paper:

  • Yiming Li, Markus Mund, Philipp Hoess, Joran Deschamps, Ulf Matti, Bianca Nijmeijer, Vilma Jimenez Sabinina, Jan Ellenberg, Ingmar Schoen, Jonas Ries. Real-time 3D single-molecule localization using experimental point spread functions. Nat. Methods 15, 367–369 (2018).