An exponential curve fitting library used for Fluorescent Lifetime Imaging (FLIM).
FLIMLib is developed by Paul Barber and the Advanced Technology Group at the Oxford Institute for Radiation Oncology, University of Oxford, as well as the Laboratory for Optical and Computational Instrumentation (LOCI) at the University of Wisconsin-Madison. FLIMLib is used for FLIM functionality in the Time Resolved Imaging (TRI2) software, as well as in the FLIMJ plugin for ImageJ.
FLIMLib is an open source project licensed under the GNU General Public License v3 or later.
The FLIMLib library code is written in C89 compatible C and is
thread-safe for fitting multiple pixels concurrently. A Java
FLIMLib.java (generated by
SWIG) is provided to call the
library from Java code, used by the FLIMJ plugin for ImageJ.
TRI2 is a Windows application that uses FLIMLib to analyze fluorescence lifetime microscopy (FLIM) data.
Originally named 'Time Resolved Imaging', TRI2 not only incorporates processing for time-domain FLIM data but also for RGB spectral unmixing, foci counting and other batch processing, formatting, printing and export functions. It's all built on a 'workspace' framework to make it easier to try out different processing functions on images.
The time-resolved image processing functions still remain the core of the program and Levenberg-Marquardt fitting routines are implemented for multiple lifetime extraction. Novel Bayesian functions are under development.
The core fitting routines from TRI2 are now open source in the FLIMLib library. These include RLD, Levenberg-Marquardt, non-negative least squares and Bayesian.Read more »
The FLIMJ plugin for ImageJ provides the ability to analyze FLIM data within ImageJ, using the FLIMLib library. The plugin can be installed into the Fiji distribution of ImageJ simply by enabling the FLIMJ update site. Features include:
- Fit individual pixels, entire images per-pixel, or do global analysis on entire images, using FLIMLib's rapid lifetime determination (RLD), Levenberg-Marquardt (LMA) or global analysis (Global) fitting algorithms
- Single, double and triple exponential fits
- Gaussian, Poisson and Maximum Likelihood Estimation noise models
- Produce one or several fitted images depending which parameters (A, τ, Z, χ2) are chosen for visualization
- Full control over the start and end fit cutoffs known as "cursors"
- Binning options for various kernel sizes to reduce noise and boost intensity when fitting per-pixel
- Support for so-called "excitation" or "prompt" files containing a recorded system response function to be convolved with the exponential fit
- Batch processing support for analyzing many lifetime images as part of a scripting workflow