Git Product home page Git Product logo

srmlabhust / qc-storm Goto Github PK

View Code? Open in Web Editor NEW
7.0 0.0 6.0 295.71 MB

Online processing plugin (Micro-Manager & ImageJ) for quality-controlled super-resolution localization imaging.

Home Page: https://github.com/SRMLabHUST/QC-STORM

License: GNU Lesser General Public License v3.0

Java 5.17% C++ 91.01% C 0.95% HTML 0.03% Cuda 2.05% MATLAB 0.74% M 0.03% Python 0.02%
localization-microscopy imagej micro-manager localization-density localization-precision mle-localization

qc-storm's Introduction

QC-STORM

QC-STORM is an online processing plug-in (Micro-Manager & ImageJ) for super-resolution localization imaging with large FOV. At single-molecule fitting mode, QC-STORM is able to process the imaging data generated by sCMOS camera at full FOV and fastest frame rate (2048 x 2048 pixels x 100 fps). Even at high density activation and multi-emitter fitting mode, QC-STORM is able to process images with 1024 x 1024 pixels at 100 fps.

The QC-STORM for ImageJ is used for post-processing, while the QC-STORM for Micro-Manager is able to directly acquire the images from camera and apply online processing.

QC-STORM has been published in paper "Divide and conquer: real-time maximum likelihood fitting of multiple emitters for super-resolution localization microscopy" at https://www.osapublishing.org/oe/abstract.cfm?URI=oe-27-15-21029

Key features

Ultrahigh efficient MLE localization: online processing for sCMOS camera based localization microscopy at full FOV and fastest frame rate without sacrificing localization precision (localization speed > 8x10^6 for 7x7 pixels ROI based on Gigabyte GeForce RTX 2080 Ti Graphic Cards).

Most processing parts of QC-STORM are GPU accelerated, and their performance increase almost linearly with GPU’s single-precision floating-point number operation speed (GFLOPS). Note the speed value could be measured low with small and low activation density image, and the speed may also be reduced by low CPU memory bandwidth and low speed image reading from hard disk.

MLE Localization type: 2D, Astigmatism 3D

Online super-resolution image rendering and statistical information analyzing (photon number, background intensity, SNR, PSF width, localization density, on time)

Online localization precision (CRLB) calculation

Drift correction by cross-correlation (post-processing)

Merging molecules emitting in consecutive frames (localization precision weighted average)

Online feedback control for localization density stabilizing and axial drift correction (hardware dependent)

Sequential Multi-FOV acquisition (hardware dependent)

Configuration parameters remembering, saving and loading

The open dataset evaluation of QC-STORM can be found in http://bigwww.epfl.ch/smlm/challenge2016/index.html using name QC-STORM-2019. Note the evaluation of QC-STORM in recently published paper "Super-resolution fight club: assessment of 2D and 3D single-molecule localization microscopy software" is based on submission in 2017, and the results were only processed by single-molecule localization. Moreover, the double-helix localization mode was removed in current version.

System requirements and installation

1, Windows 7 sp1 or newer, x64.

2, NVidia CUDA enabled GPU with compute capability no less than 3.5.

Note: please upgrade your GPU driver to the newest (https://www.geforce.com/drivers , Compatible Driver Versions >= 411.31) or the plug-in can't work successfully.

3, ImageJ/Fiji, Micro-Manager 2.0 (beta or gamma). Note: please set at least 6 GB memory buffer for ImageJ, Micro-Manager and ImageJ of Micro-Manager. (The 64 bits ImageJ with Java 1.8 works well and can be downloaded at https://imagej.nih.gov/ij/download.html)

4, Download and install Microsoft Visual C++ 2015 Redistributable Update 3 (x64) (https://www.microsoft.com/en-us/download/details.aspx?id=53587). You may need to uninstall Visual C++ 2017 Redistributable first.

5, Download the newest QC-STORM release from https://github.com/SRMLabHUST/QC-STORM/releases.

6, Copy the downloaded .dll files into installation directory of ImageJ or Micro-Manager, and .jar files into "plugins" or "mmplugins" folder for ImageJ and Micro-Manager respectively.

7, Note: QC-STORM only supports English file name / path.

Output file format

The QC-STORM generates a super-resolution image and a binary txt file in the result save path.

There are 12 float parameters saved for each localizations in the binary txt file, please see the user's guide of QC-STORM.

In the downloaded release, we provide a MATLAB code file LoadLocResult_BinaryTxt_Single_main.m to read the binary txt file.

We also provide a ConvertBinLocArrayToCSV.exe file to convert the binary txt file into .csv file, just drag (multiple) binary txt files onto the ConvertBinLocArrayToCSV.exe to use.

We also provide a python code file to read the binary txt file, called py_LoadBinaryLocData.py

Recompile the source codes

1, The Java GUI for ImageJ (v1.52g) and Micro-Manager beta (MMSetup_64bit_2.0.0-beta3 from nightly builds of Micro-Manager 2.0) are developed by NetBeans IDE 7.3.1 with Java jdk1.6.0_45. The Java GUI for Micro-Manager gamma are developed by NetBeans IDE 10.0 with Java jdk1.8.0_201.

2, The C++ core image processing algorithms are developed by Visual Studio 2015 Update 3, and accelerated by NVidia CUDA 10.0.

3, Download the codes, open the projects by corresponding software and recompile the codes.

4, Program framework of QC-STORM:

Frequently asked questions

1, peak and total intensity (photon)

For the peak and total intensity, since we fit the PSF of molecules by Gaussian function, the peak intensity is the peak value of the Gaussian function. While the total intensity is the summed photon number in whole ROI (calculated by PeakPhoton2piSimgaXSimgaY).

2, Kadc setting of EMCCD

The camera offset (baseline) is the mean gray value of the camera when there is not light. The Kadc is the photoelectrons per A/D count. The setting of the two items should be the same with ThunderSTORM when the EM gain is 1. For the condition that EM gain is larger than 1, typically you should divide the original Kadc by EM gain, since the EM gain amplifies the photon converted photoelectrons. The role of the Kadc in QC-STORM is to convert the gray value into the true photoelectron number that is calculated by input photon and QE.

Declaration

This program is free software: you can redistribute it and/or modify it under the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU LESSER GENERAL PUBLIC LICENSE for more details.

You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE along with this program. If not, see https://www.gnu.org/licenses/.

For more questions, please contact Prof. Zhenli-Huang at "[email protected]" or author Luchang Li at "[email protected]".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.