Skip to content


Repository files navigation


A python library to help in determining oligomeric states of plasma membrane protein complexes using single molecule localization microscopy (SMLM; e.g. PALM or STORM) images
· Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Citations
  6. License
  7. Contact

About The Project

This project is an optimized implementation of the DCC-SMLM algorithm published in Tan et al.
The general idea is that the oligomeric state of protein complexes can be determined from counting the number of colocalized signals when the proteins of interest are labeled with two independent fluorophores (e.g. fluorescent proteins).
As of now, work on this project is still ongoing and proper documentation is currently still missing. However, the accompanying example notebooks should be sufficient to understand and implement the algorithm using your own data. Please contact us for further help and feature requests via the GitHub issue tracker above.

(back to top)

Getting Started

This library is written in python and will likely work with any version of python > 3.6. I recommend using Anaconda or Miniconda but this is no hard requirement. However, for the installation instructions below, I'll assume that you are able to use the conda package manager.


This library and the example notebooks require python (likely>3.6), jupyter notebook, numpy, pandas, matplotlib and seaborn libraries.


Please follow these steps:

  1. Clone the repository using command line tools (below) or by using a GUI version of Git
    git clone
  2. Install the required libraries via conda if not installed already
    conda install numpy
    conda install notebook
    conda install pandas
    conda install matplotlib
    conda install seaborn

(back to top)


At first, you may want to look at the example analysis notebook files using example data from our projects. Later, you can copy the file to your data folders and implement your own analyses. Start an anaconda prompt or terminal session and start jupyter notebook

jupyter notebook

We recommend to explore the notebooks in the following order:

  1. CA_Example.ipynb - This notebooks demonstrates how to extract the chromatic aberration from recordings of fluorescent micro beads.
  2. SciH5_Example.ipynb or SMAP_Example.ipynb - These notebooks show a typical processing pathway for localizations extracted using SNSMIL or SMAP software. It includes correction of the chromatic aberration (determined as shown in CA_Example.ipynb) and sample drift. Furthermore it extracts the colocalization ratio from a rectangular region of interest.
  3. Calibration_Example.ipynb - In order to determine the oligomeric state of unknown proteins, it is necessary to first determine the colocalization ratios of known protein complexes. An example of this procedure is contained within this file.
  4. Example_POI_analysis.ipynb - This notebook demonstrates how to analyze colocalization ratios from several recordings combined. Both, the coefficient of mismatch as well as a Kolmogorov-Smirnov test are performed for statistics.

In general, you may use these notebooks also for data analysis. In this case, we recommend to create a copy of the SciH5_Example.ipynb or SMAP_Example.ipynb for every recording and combine the output into CSV files that can be used by the other analysis notebooks.

(back to top)


  • Implement background correction
  • Create documentation

See the open issues for a full list of proposed features (and known issues).

(back to top)


This tool has been used in the following publications:

  1. Tan, H.L. et al. Determination of oligomeric states of proteins via dual-color colocalization with single molecule localization microscopy. eLife (2022).


Distributed under the GPL 3.0 License. See LICENSE.txt for more information.

(back to top)


Gabriel Stölting - Project Link:

(back to top)


Implementation of the DCC-SMLM algorithm as published in Tan et al.







No releases published


No packages published