Welcome to the source code for Localizer, which implements various kinds of analyses related to superresolution microscopy. The routines were lovingly hand-crafted by Peter Dedecker (peter.dedecker@chem.kuleuven.be), who currently resides at the Department of Chemistry at the University of Leuven. This repository is available at at https://bitbucket.org/pdedecker/localizer.

A paper on Localizer is now available from the Journal of Biomedical Optics. Download the paper here after checking that you have access to the journal. Please cite this paper if Localizer turns out to be useful for your research.

The fastest way to get started with Localizer is to download the ready-made binaries appropriate for your platform. This is all that you need to use the software. If you have trouble accessing that link then try this one.

At present there are binaries for Igor Pro and for Matlab. The Matlab files can be downloaded here.

If you are unfamiliar with programming the Igor Pro plugin will be the best option, since it comes with a complete graphical interface to use for analyzing your PALM/STORM or SOFI data, including visualization, clustering analysis, drift correction, etc. Igor Pro is commercial software, but a free 30-day trial version is available for direct download. Localizer will function without restrictions during the trial period. After the trial period Localizer will continue to function normally, but you will be unable to save the data or figures it generates.

Instructions are provided on the same website. For the Igor plugin, take a look at the "Getting Started" document, while for the Matlab plugin you can examine the example ".m" files.

Example data to play around with can be found here for SOFI (or here) and here for localization microscopy (or here). The SOFI data shows a Hek cell transfected using Lyn-Dronpa, while the localization data shows a fixed HeLa cell that expressed Lyn-Dendra2.

At present I do not have a Linux version of the Matlab plugin. That is simply because I do not have access to a Linux version of Matlab. If this interests you and you have these installations, let me know!

Downloading and modifying the source code

The Localizer code is licensed under the GPL license, which means that you are free to modify and distribute the code, provided that you provide proper attribution, and that any such code is governed by a compatible license (which means that your code must be similarly free). If this license is restrictive for your application, contact me and we may be able to work it out.

You can download the code using the links above. I use different systems to compile the code:

  • Xcode 7 on Macintosh.
  • Visual C++ 2013 on Windows. The free express edition should work fine.

To compile the Igor Pro and Matlab plugins you will also need a copy of the Igor XOP Toolkit and/or a working Matlab installation. This is important – without the XOP Toolkit or a Matlab installation you will not be able to compile the plugins!

If you modify or improve this code in any way, I would appreciate if you could communicate these changes back to me so that it can be included for the benefit of other users (with proper attribution). For this it might help if you are familiar with git.


You're free to distribute this code or the compiled products in any way, provided that you provide proper attribution in your code and/or the products you derive from them. You're also free to include whatever parts of this code in your own work, provided that any distribution of this work is governed by a license compatible with the GPLv3, and subject to the same attribution clause. "Proper attribution" is a clearly visible notice containing e.g. "this product is based on Localizer, created by Peter Dedecker at the University of Leuven, available at https://bitbucket.org/pdedecker/localizer".

Compiling the plugin for Igor Pro

  1. Make sure that you have a copy of XCode (Mac) or Visual Studio 2013.
  2. Buy a copy of the Igor XOP Toolkit if you don't already have it, or make sure that you have the latest version otherwise.
  3. Download the Localizer source code and place the folder in the XOP Toolkit 6/IgorXOPs/ folder (in the same location as the examples provided by WaveMetrics).
  4. On Windows, open Visual Studio/Localizer.sln. On Mac, open Xcode/Localizer.
  5. Build the 'Localizer' projects in Visual Studio or XCode. Hopefully everything should compile at this point.
  6. Make whatever changes you see fit!

Compiling the plugin for Matlab

  1. Make sure that you have a copy of XCode (Mac) or Visual Studio 2013., and a working copy of Matlab.
  2. Download the Localizer source code and place it in some convenient location.
  3. Open XCode/Localizer or Visual Studio/Localizer.sln.
  4. Edit the project so that it knows where to find the required header files and libraries.
    1. (Mac) Open the project in XCode, click on the blue icon with "Localizer" written next to it in the upper left corner of the window.
    2. (Mac) Click "LocalizerMatlab" in the "Targets" list.
    3. (Mac) Click the "Build Settings" tab.
    4. (Mac) Edit the "Exported Symbols File", "Header Search Paths", and "Library Search Paths" settings to match your Matlab installation.
    5. (Windows) Right click the 'Localizer' project in the "Solution Explorer" window, and choose properties.
    6. (Windows) Change the configuration to "Release-Matlab", and select the correct platform in the top-right combobox: "Win32" if you're using a 32-bit version of Matlab, "x64" otherwise.
    7. (Windows) In the left list, click "C/C++" and then "General".
    8. (Windows) Edit the "Additional Include Directories" setting to point to your Matlab include directory. For example, if it currently reads "C:\Program Files\MATLAB\R2010b\extern\include", you may have to change it to point to a "R2011a" folder. Do not remove the other paths!
    9. In the left list, click "Linker" and then "General". Modify the "Additional Library Directories" to point to the correct folder for your Matlab installation.
  5. Build the project.
  6. Make whatever changes you see fit!