-
Notifications
You must be signed in to change notification settings - Fork 0
Supported 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.
Loads as says what the file can drive: Fitting + phasor means it carries a time-resolved decay per pixel; Phasor only means the file already stores computed phasor coordinates, so there is no decay to fit; Intensity only means no lifetime data at all.
| Format | Extension | Loads as | Reader | Validated against real files |
|---|---|---|---|---|
| PicoQuant PTU | .ptu |
Fitting + phasor | ptufile |
Yes (32 files) |
| Becker & Hickl SDT | .sdt |
Fitting + phasor | sdtfile |
Yes (bit-identical) |
| Photonscore LINCam | .photons |
Fitting + phasor | photonsfile |
Yes (bit-exact vs SDK) |
| PicoQuant BIN | .bin |
Fitting + phasor | ptufile |
Upstream |
| PicoQuant PHU | .phu |
Fitting (no image) | ptufile |
Upstream |
| SimFCS B&H | .b&h |
Fitting + phasor | lfdfiles |
Upstream (no time axis in file) |
| SimFCS BHZ | .bhz |
Fitting + phasor | lfdfiles |
Upstream (no time axis in file) |
| ImSpector FLIM TIFF |
.tif, .tiff (sniffed) |
Fitting + phasor | tifffile |
Upstream |
| ISS Vista TDFLIM |
.iss-tdflim, .tdflim
|
Fitting + phasor | lfdfiles |
Upstream |
| FLIM LABS imaging |
.json (sniffed) |
Fitting + phasor | phasorpy |
Upstream |
| ISS time-tag |
.tagtime, .tagchannel, .tagdecay
|
Fitting + phasor | FLIMKit (from ISS spec) | No |
| ISS FD-FLIM | .ifli |
Phasor only | lfdfiles |
Upstream |
| SimFCS referenced |
.ref, .r64
|
Phasor only | lfdfiles |
Upstream (no frequency in file) |
| PhasorPy OME-TIFF |
.ome.tif (sniffed) |
Phasor only | tifffile |
Upstream |
| FLIM LABS phasor |
.json (sniffed) |
Phasor only | phasorpy |
Upstream |
| ISS intensity image | .ifi |
Intensity only | FLIMKit (from ISS spec) | No |
"Upstream" means decoding is delegated to a maintained third-party reader that is tested against real files by its own author; FLIMKit has not independently re-validated it. "Sniffed" means the extension is ambiguous (an ordinary TIFF or JSON is not claimed), so the file is identified by its content rather than its name.
Formats whose files carry no time axis (.b&h, .bhz) or no modulation frequency (.ref, .r64) will prompt for the missing value, since fits and the universal circle cannot be computed without it.
-
PicoQuant
.ptu(T3) - PicoHarp, HydraHarp v1/v2, TimeHarp 260 N/P, MultiHarp / generic. The original FLIMKit decoder is kept as a cross-checked reference inflim-native-decoders(flimkit/formats/PTU/NOTICE.md). -
Becker & Hickl
.sdt- SPCM histogram / image files (per-pixel decays already binned). FLIMKit's own decoder, written from B&H's SPCM docs and checked bit-for-bit againstsdtfile, is kept as a reference inflim-native-decoders(flimkit/formats/BH/NOTICE.md). -
Photonscore
.photons- LINCam D7 container (position-sensitive).photonsfileis a pure-Python reader spun out of FLIMKit, with no native dependency;dtcalibration comes from theTacChannelattribute (flimkit/formats/PS/NOTICE.md). -
ISS - the
.TAGTIME/.TAGCHANNEL/.TAGDECAYtriplet is read together from any one of the three paths or their shared basename. Format specifications were provided by ISS (flimkit/formats/ISS/NOTICE.md).
The ISS time-tag and
.ifireaders are experimental and need testing. They were written from ISS's format specifications and have not been validated against real ISS acquisitions - byte order and the marker conventions are assumptions. Treat their results as unverified and cross-check them. If you have ISS data, trying it and reporting back is very welcome. The.ifliand.tdflimpaths are delegated tolfdfilesand inherit that library's own testing.
Not decoded yet: T2-mode PTUs (ptufile reads the records, but FLIMKit does not build a decay cube from them), older PicoQuant .pt3 / .ht3, Becker & Hickl raw .spc photon streams, and Leica .lif.