-
Notifications
You must be signed in to change notification settings - Fork 0
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.
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.sdtand Photonscore.photonsare 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.