SIMToolbox: a MATLAB toolbox for structured illumination microscopy

SIMToolbox is an open-source, modular set of functions for MATLAB designed for processing data acquired by structured illumination microscopy. Both optical sectioning and super-resolution applications are supported. The software is also capable of maximum a posteriori probability image estimation (MAP-SIM), an alternative method for reconstruction of structured illumination images. MAP-SIM can potentially reduce reconstruction artifacts, which commonly occur due to refractive index mismatch within the sample and to imperfections in the illumination.

Authors: Pavel Křížek, Tomáš Lukeš, Martin Ovesný, Jakub Pospíšil, Vojtěch Terš, Karel Fliegel, and Guy M. Hagen

Published in: Bioinformatics, October 2015, doi: 10.1093/bioinformatics/btv576


Second generation

Release 2.11

Tested on Matlab 2015a, 2017a, 2018a, Windows 7, 8, 10

PDF files

First generation

Release 1.34

Tested on Matlab 2014a, 2015a, 2017a, Windows 7, 8, 10

PDF files

The supplementary material also contains detailed description of our low cost homemade LCOS super-resolution microscope and information how you can build such a microscope by yourself

Testing files


If you use the SIMToolbox or the MAP-SIM reconstruction method which is also available in the SIMToolbox, please cite the relevant publications:

  • P. Křížek, T. Lukeš, M. Ovesný, K. Fliegel, and G. M. Hagen, “ SIMToolbox: a MATLAB toolbox for structured illumination fluorescence microscopy,” Bioinformatics, vol. 15, p. btv576, 2016. doi: 10.1093/bioinformatics/btv576
  • T. Lukeš, P. Křížek, Z. Švindrych, J. Benda, M. Ovesný, K. Fliegel, M. Klíma, and G. M. Hagen, “Three-dimensional super-resolution structured illumination microscopy with maximum a posteriori probability image estimation,” Optics Express, vol. 22, no. 24, p. 29805, Nov. 2014. doi: 10.1364/OE.22.029805



Compatibility notes

The SIMToolbox GUI was compiled with MATLAB 2015a and tested in Windows 7, 8 and 10. The GUI is a stand-alone program and does not require MATLAB to be installed.To use the MATLAB functions within SIMToolbox (i.e., without the GUI), MATLAB must be installed. The functions were mainly developed with 64bit MATLAB versions 2012b, 2014a, 2015a in Windows 7. When using SIMToolbox functions without the GUI, the MATLAB “Image Processing Toolbox” is required. SIMToolbox also requires the “MATLAB YAML” package by Kota Yamaguchi to convert MATLAB objects to/from YAML file format. Note that this package is installed automatically when using the GUI.

Installation of the GUI (A standalone application)

1. Download the GUI installer above.
2. Un-ZIP the file and run “MyAppInstaller_web.exe”.
3. MATLAB runtime is also required. If it is not already installed, it will be automatically downloaded and installed. “MyAppInstaller_web.exe” will guide you through the installation process.
4. We recommend following the default installation settings.

Installation of the MATLAB functions (not necessary if the GUI is used)

1. Unzip the file with the toolbox into your working directory. It
also contains the YAML package [9]. The file can be downloaded above.
2. Open MATLAB and change the path to the toolbox directory.
3. Run the user interface by running the function SIMToolbox. It initializes all necessary paths by itself.
4. Optionally, we recommend to move the YAML package into your personal toolbox directory so other programs can eventually access it. The path to the package can be initialized in your personal MATLAB start-up script startup.m by the command addpath(‘PathToToolboxes\yaml’).
5. Optionally, we also recommend including in the MATLAB start-up script the command javaaddpath(‘PathToToolboxes\yaml\java\snakeyaml-1.9.jar’) and to comment javaaddpath(YAML.JARFILE) in functions YAML.load and YAML.dump. The function javaaddpath causes clearing of all break points and workspace variables which results in loss of the data every time you load or save a YAML file.

Help with SIMToolbox

To get help on using SIMToolbox, please consult this supplementary documentation. A detailed description of algorithms used for the data processing is also commented in the source code, including numerous examples of how to use the functions. Users can also consult our previous publications [#Krizek-2012-OE, #Krizek-2012-Formatex, #Lukes-2014-OE, #Lukes-2014-SPIE].

Updating the toolbox

Please check this project website for updates.

Reporting a bug

In the case of a malfunction, please let us know by email: and Please specify the malfunction, and describe the procedure to reproduce the error. Specify also your platform, i.e., MATLAB version, the operating system, and version of SIMToolbox.