pyfli: A Unified Platform for FLI Data Processing
pyfli is a comprehensive library designed for Fluorescence Lifetime Imaging (FLI) data processing. It streamlines the workflow for handling diverse file formats from various hardware manufacturers and provides a standardized pipeline for both traditional analytical and deep-learning-based inference.
Key Features
- Universal Processing Pipeline: Simplifies the handling of multiple FLI file types (ICCD, SPAD, TCSPC).
- Enhanced FLI Simulator: A robust simulation engine adaptable to specific camera hardware parameters and noise models.
- Standardized Inference: Unified interface for time-resolved microscopy and macroscopic FLI data (MFLI).
Supported Data Acquisition Methods
The platform provides native support for several high-end imaging systems:
- ICCD: Intensified Charge-Coupled Device cameras for fast-gated, wide-field imaging.
- SwissSPAD2 & SwissSPAD3: High-speed SPAD (Single-Photon Avalanche Diode) architectures for high-resolution photon counting.
- SPCImage/TCSPC: Standardized processing for Time-Correlated Single Photon Counting microscopy data.
Data Processing & Analysis
pyfli implements industry-standard analytical methods to extract lifetime information:
- Non-linear Least Squares Fitting (NLSF): Robust mathematical approach for exponential decay modeling.
- Phasor Plot Analysis: Graphical, model-free transformation of fluorescence decay into a 2D polar plot for easy species separation.
- Maximum Likelihood Estimation (MLE): Statistical estimator optimized for low-photon regimes.
- Rapid Lifetime Determination (RLD): Computationally efficient method for real-time applications and high-frame-rate data.
- Laguerre Method: Model-free IRF deconvolution followed by multi-exponential lifetime extraction on a per-pixel basis.
Installation
Install the stable version directly from PyPI:
pip install pyfli-lib
For users requiring GPU-based processing, install the optional tensor/AI dependencies:
pip install "pyfli-lib[gpu]"
Quick Start
Even though the package is installed as pyfli-lib, you import it as pyfli in your scripts:
from pyfli import DataOperations
loader = DataOperations(
data_path="experimental_data.sdt",
irf_path="instrument_data.txt",
bg_path="background_data.tif",
mask_path="background_data.png",
)
decay_data = loader.load_data()
irf_data = loader.load_irf()
Citation
If you use pyfli in your research, please cite this package:
Pandey V. pyfli: A Unified Platform for Fluorescence Lifetime Imaging Data Processing. https://github.com/vkp217/pyfli-pkg/tree/joss-submission
@article{pandey2025pyfli,
author = {Pandey, Vikas},
title = {{pyfli}: A Unified Platform for Fluorescence Lifetime Imaging Data Processing},
journal = {},
year = {2025},
note = {},
url = {https://github.com/vkp217/pyfli-pkg/tree/joss-submission}
}
If you use the phasor SEPL analysis functionality specifically, please also cite the following paper on which the phasor module is based:
Michalet X. "Continuous and discrete phasor analysis of binned or time-gated periodic decays." AIP Advances 11, 035331 (2021). https://doi.org/10.1063/5.0027834
Repository & Issues
The source code is hosted on GitHub. Please report any bugs or feature requests via the issues tracker.
- GitHub: https://github.com/vkp217/pyfli-pkg
- Contact: For any queries, reach out at pyfli4lifetime@gmail.com
Release files for pyfli-lib 0.1.19
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyfli_lib-0.1.19.tar.gz | 2.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyfli_lib-0.1.19-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.0 MB
Release files / pyfli_lib-0.1.19.tar.gz
| Download URL | pyfli_lib-0.1.19.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1fa7c7c8e40836f19a0353136b2f87405aed25d65c2df9c1cf06677d2d079e8c
|
|
BLAKE2b-256 checksum How to use checksums |
78f2145fd6f6cd4b69e500f981bfd78da112aedd1453725a8a6da52a8fd0b109
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / pyfli_lib-0.1.19-py3-none-any.whl
| Download URL | pyfli_lib-0.1.19-py3-none-any.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e0cdd0f0a213192559566464e24eb514168569b6cd4d94f72af1d9092ab44021
|
|
BLAKE2b-256 checksum How to use checksums |
6252e53acb006287ac1ba2c2b035406b33010225d43c3496ebf6ebe2d396c655
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|