Skip to content
github-actions[bot] edited this page Jul 20, 2026 · 2 revisions

Overview

FLIMKit handles FLIM data from FLIM microscope systems and common TCSPC / time-tag formats (PicoQuant .ptu, Becker & Hickl .sdt, ISS time-tag, Photonscore .photons). It's designed as a replacement for FLIM microscope software, with two main workflows:

Workflow Description
Reconvolution fitting Mono/bi/tri-exponential lifetime fitting with full IRF deconvolution, per-pixel and summed modes, multi-tile ROI stitching, and batch processing
Lifetime distribution fitting Gaussian and Lorentzian continuous lifetime distributions (α(τ) models), per-ROI and per-pixel maps with GPU acceleration
Phasor analysis Calibrated phasor plots with interactive elliptical cursors, automatic peak detection, two-component decomposition, and session save/load

Both are accessible through a desktop GUI, guided terminal UI, CLI scripts, or the Python API.

Input formats

FLIMKit auto-detects the file type and routes everything through one loader (FLIMFile in flimkit.formats), so every workflow behaves the same regardless of instrument:

Format Notes
PicoQuant .ptu (T3) PicoHarp, HydraHarp v1/v2, TimeHarp 260 N/P, MultiHarp / generic. Read with Christoph Gohlke's ptufile; the original FLIMKit decoder is kept as a cross-checked reference in flim-native-decoders (flimkit/formats/PTU/NOTICE.md)
Becker & Hickl .sdt SPCM histogram / image files (per-pixel decays already binned). Read with Christoph Gohlke's sdtfile; FLIMKit's own decoder (from B&H's SPCM docs, checked bit-for-bit against sdtfile) is kept as a reference in flim-native-decoders (flimkit/formats/BH/NOTICE.md)
Photonscore .photons Photonscore LINCam D7 container (position-sensitive). Read with photonsfile, a pure-Python reader spun out of FLIMKit (no native dependency, validated bit-exact against the Photonscore SDK); dt calibration from the TacChannel attribute (flimkit/formats/PS/NOTICE.md)
ISS .TAGTIME / .TAGCHANNEL / .TAGDECAY FastFLIM / Vista time-domain triplet, read together from any one of the three paths or their shared basename. Experimental: not yet validated against real ISS data (issue #19)
ISS .ifi Intensity image (VISTAIMAGE); float pixels per channel and frame. No lifetime data, so it loads as an intensity image only (no fitting or phasor). Experimental, not yet validated on real ISS files (issue #19)
ISS .ifli FD-FLIM lifetime image (VistaFLImage); per-pixel phase / modulation. Frequency-domain, so it loads straight into phasor analysis with fitting disabled; the reader applies the file's reference calibration. Written from the ISS spec, checked on synthetic files, not yet validated on real ISS data (issue #19)

ISS support is experimental and needs testing. Both ISS readers were written from ISS's format specifications and checked only against synthetic files - not yet validated against real ISS acquisitions (byte order and marker conventions are assumptions). Treat ISS results as unverified and cross-check them (issue #19). PicoQuant .ptu, Becker & Hickl .sdt and Photonscore .photons are validated against real files; ISS is not yet.

Imaging files are reconstructed into a per-pixel decay cube (Y, X, H) from their scan / frame / line / pixel markers, and the intensity image is that cube summed over the time axis. Files without imaging markers (point, single-spot, FCS) are fit as a single decay with no image.

Not decoded yet: T2-mode PTUs, older PicoQuant .pt3 / .ht3 / .phu, Becker & Hickl raw .spc photon streams, and Leica .lif.

Clone this wiki locally