phasorpy 0.10__tar.gz → 0.11__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {phasorpy-0.10 → phasorpy-0.11}/PKG-INFO +17 -4
- {phasorpy-0.10 → phasorpy-0.11}/README.md +13 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/_static/switcher.json +8 -3
- {phasorpy-0.10 → phasorpy-0.11}/docs/acknowledgments.rst +3 -3
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/index.rst +2 -2
- {phasorpy-0.10 → phasorpy-0.11}/docs/conf.py +18 -9
- {phasorpy-0.10 → phasorpy-0.11}/docs/contributing.rst +8 -9
- {phasorpy-0.10 → phasorpy-0.11}/docs/index.rst +6 -6
- {phasorpy-0.10 → phasorpy-0.11}/docs/phasor_approach.rst +102 -50
- {phasorpy-0.10 → phasorpy-0.11}/pyproject.toml +15 -13
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/__init__.py +1 -1
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/_phasorpy.pyx +5 -5
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/_utils.py +4 -4
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/cli.py +3 -3
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/cluster.py +3 -3
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/color.py +3 -3
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/component.py +44 -20
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/cursor.py +7 -8
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/datasets.py +43 -4
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/filter.py +107 -35
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/io/__init__.py +25 -12
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/io/_flimlabs.py +5 -3
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/io/_leica.py +16 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/io/_ometiff.py +98 -2
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/io/_other.py +31 -10
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/io/_simfcs.py +17 -1
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/lifetime.py +37 -15
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/phasor.py +23 -7
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/plot/_functions.py +10 -11
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/plot/_lifetime_plots.py +2 -2
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/plot/_phasorplot.py +21 -12
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/plot/_phasorplot_fret.py +3 -3
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/utils.py +9 -2
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy.egg-info/PKG-INFO +17 -4
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy.egg-info/SOURCES.txt +1 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy.egg-info/requires.txt +3 -3
- {phasorpy-0.10 → phasorpy-0.11}/tests/io/test_ometiff.py +26 -1
- {phasorpy-0.10 → phasorpy-0.11}/tests/io/test_other.py +6 -1
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_filter.py +213 -13
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/api/phasorpy_component.py +6 -6
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/api/phasorpy_cursor.py +1 -1
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/api/phasorpy_filter.py +24 -13
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/api/phasorpy_fret.py +3 -3
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/api/phasorpy_io.py +40 -21
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/api/phasorpy_lifetime_to_signal.py +4 -4
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/api/phasorpy_multi_harmonic.py +1 -1
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/api/phasorpy_pca.py +1 -1
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/api/phasorpy_phasor_from_lifetime.py +2 -2
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/api/phasorpy_phasorplot.py +3 -3
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/applications/phasorpy_component_fit.py +5 -3
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/applications/phasorpy_fret_efficiency.py +2 -2
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/applications/phasorpy_multidimensional.py +3 -1
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/applications/phasorpy_nadh_concentration.py +4 -4
- phasorpy-0.11/tutorials/applications/phasorpy_nadh_fraction.py +251 -0
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/misc/phasorpy_apps.py +9 -9
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/misc/phasorpy_phasor_from_signal.py +1 -1
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/phasorpy_introduction.py +1 -1
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/phasorpy_lfd_workshop.py +7 -2
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/phasorpy_lifetime_geometry.py +3 -3
- {phasorpy-0.10 → phasorpy-0.11}/LICENSE.txt +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/MANIFEST.in +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/_static/categorical.png +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/_static/custom-icons.js +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/_static/favicon.ico +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/_static/phasorpy_logo.png +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/_static/phasorpy_logo.svg +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/_static/srgb_spectrum.png +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/_phasorpy.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/_utils.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/cli.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/cluster.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/color.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/component.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/cursor.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/datasets.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/experimental.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/filter.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/io.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/lifetime.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/phasor.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/phasorpy.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/plot.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/api/utils.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/code_of_conduct.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/docs/license.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/setup.cfg +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/setup.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/__main__.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/_typing.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/conftest.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/experimental.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/plot/__init__.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy/py.typed +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy.egg-info/dependency_links.txt +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy.egg-info/entry_points.txt +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy.egg-info/not-zip-safe +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/src/phasorpy.egg-info/top_level.txt +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/conftest.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/io/_conftest.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/io/test_flimlabs.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/io/test_leica.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/io/test_simfcs.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/plot/test_functions.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/plot/test_lifetime_plots.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/plot/test_phasorplot.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/plot/test_phasorplot_fret.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test__phasorpy.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test__typing.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test__utils.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_cli.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_cluster.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_color.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_component.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_cursor.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_datasets.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_experimental.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_lifetime.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_nan.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_phasor.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_phasorpy.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tests/test_utils.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tools/build_manylinux.cmd +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tools/build_manylinux.sh +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tools/sha256.py +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/README.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/api/README.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/applications/README.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/misc/README.rst +0 -0
- {phasorpy-0.10 → phasorpy-0.11}/tutorials/misc/phasorpy_logo.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: phasorpy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11
|
|
4
4
|
Summary: Analysis of luminescence lifetime and hyperspectral images using the phasor approach
|
|
5
5
|
Author: PhasorPy Contributors
|
|
6
6
|
License-Expression: MIT
|
|
@@ -29,7 +29,7 @@ Requires-Dist: matplotlib>=3.9.0
|
|
|
29
29
|
Requires-Dist: pandas>=2.3.0
|
|
30
30
|
Requires-Dist: scikit-learn>=1.5.0
|
|
31
31
|
Requires-Dist: scipy>=1.14.0
|
|
32
|
-
Requires-Dist: tifffile>=
|
|
32
|
+
Requires-Dist: tifffile>=2026.5.2
|
|
33
33
|
Requires-Dist: xarray>=2024.6.0
|
|
34
34
|
Requires-Dist: click
|
|
35
35
|
Requires-Dist: pooch
|
|
@@ -37,12 +37,12 @@ Requires-Dist: tqdm
|
|
|
37
37
|
Provides-Extra: all
|
|
38
38
|
Requires-Dist: czifile>=2026.4.11; extra == "all"
|
|
39
39
|
Requires-Dist: fbdfile>=2025.9.18; extra == "all"
|
|
40
|
-
Requires-Dist: lfdfiles>=
|
|
40
|
+
Requires-Dist: lfdfiles>=2026.4.30; extra == "all"
|
|
41
41
|
Requires-Dist: liffile>=2025.2.10; extra == "all"
|
|
42
42
|
Requires-Dist: ptufile>=2024.9.14; extra == "all"
|
|
43
43
|
Requires-Dist: sdtfile>=2024.5.24; extra == "all"
|
|
44
44
|
Requires-Dist: pawflim>=1.0.4; extra == "all"
|
|
45
|
-
Requires-Dist: imagecodecs==2026.
|
|
45
|
+
Requires-Dist: imagecodecs==2026.6.6; (sys_platform == "darwin" and platform_machine == "x86_64") and extra == "all"
|
|
46
46
|
Dynamic: license-file
|
|
47
47
|
|
|
48
48
|
# <img src="https://www.phasorpy.org/_static/phasorpy_logo.svg" alt="○" width="48" height="48" align="left"/> PhasorPy
|
|
@@ -50,6 +50,19 @@ Dynamic: license-file
|
|
|
50
50
|
PhasorPy is an open-source Python library for the analysis of luminescence
|
|
51
51
|
lifetime and hyperspectral images using the phasor approach.
|
|
52
52
|
|
|
53
|
+
The phasor approach represents time-resolved and spectral signals as
|
|
54
|
+
phasor coordinates (normalized Fourier coefficients at harmonic frequencies)
|
|
55
|
+
for intuitive visualization and analysis.
|
|
56
|
+
|
|
57
|
+
PhasorPy enables reproducible phasor-based fluorescence lifetime imaging
|
|
58
|
+
(FLIM) and hyperspectral imaging (HSI) workflows in scientific Python.
|
|
59
|
+
It provides tools to read microscopy data in many file formats and to
|
|
60
|
+
calculate, calibrate, filter, visualize, and interconvert phasor coordinates,
|
|
61
|
+
lifetimes, and signals. Phasor coordinates can be exported to standard
|
|
62
|
+
formats and analyzed through cursor-based region-of-interest selection,
|
|
63
|
+
cluster detection, multi-component unmixing, FRET efficiency and concentration
|
|
64
|
+
estimation.
|
|
65
|
+
|
|
53
66
|
- [Homepage](https://www.phasorpy.org)
|
|
54
67
|
- [Documentation](https://www.phasorpy.org/docs/stable/)
|
|
55
68
|
- [Source code](https://github.com/phasorpy/phasorpy)
|
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
PhasorPy is an open-source Python library for the analysis of luminescence
|
|
4
4
|
lifetime and hyperspectral images using the phasor approach.
|
|
5
5
|
|
|
6
|
+
The phasor approach represents time-resolved and spectral signals as
|
|
7
|
+
phasor coordinates (normalized Fourier coefficients at harmonic frequencies)
|
|
8
|
+
for intuitive visualization and analysis.
|
|
9
|
+
|
|
10
|
+
PhasorPy enables reproducible phasor-based fluorescence lifetime imaging
|
|
11
|
+
(FLIM) and hyperspectral imaging (HSI) workflows in scientific Python.
|
|
12
|
+
It provides tools to read microscopy data in many file formats and to
|
|
13
|
+
calculate, calibrate, filter, visualize, and interconvert phasor coordinates,
|
|
14
|
+
lifetimes, and signals. Phasor coordinates can be exported to standard
|
|
15
|
+
formats and analyzed through cursor-based region-of-interest selection,
|
|
16
|
+
cluster detection, multi-component unmixing, FRET efficiency and concentration
|
|
17
|
+
estimation.
|
|
18
|
+
|
|
6
19
|
- [Homepage](https://www.phasorpy.org)
|
|
7
20
|
- [Documentation](https://www.phasorpy.org/docs/stable/)
|
|
8
21
|
- [Source code](https://github.com/phasorpy/phasorpy)
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
[
|
|
2
2
|
{
|
|
3
3
|
"name": "dev",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.12",
|
|
5
5
|
"url": "https://www.phasorpy.org/docs/dev/"
|
|
6
6
|
},
|
|
7
7
|
{
|
|
8
|
-
"name": "0.
|
|
9
|
-
"version": "0.
|
|
8
|
+
"name": "0.11 (stable)",
|
|
9
|
+
"version": "0.11",
|
|
10
10
|
"url": "https://www.phasorpy.org/docs/stable/",
|
|
11
11
|
"preferred": true
|
|
12
12
|
},
|
|
13
|
+
{
|
|
14
|
+
"name": "0.10",
|
|
15
|
+
"version": "0.10",
|
|
16
|
+
"url": "https://www.phasorpy.org/docs/v0.10/"
|
|
17
|
+
},
|
|
13
18
|
{
|
|
14
19
|
"name": "0.9",
|
|
15
20
|
"version": "0.9",
|
|
@@ -11,11 +11,11 @@ PhasorPy was inspired by the
|
|
|
11
11
|
`Globals for Images - SimFCS <https://www.lfd.uci.edu/globals/>`_ software by
|
|
12
12
|
Enrico Gratton.
|
|
13
13
|
|
|
14
|
-
This
|
|
14
|
+
This project was supported in part by the
|
|
15
15
|
`Essential Open Source Software for Science (EOSS)
|
|
16
16
|
<https://chanzuckerberg.com/eoss/>`_ program at
|
|
17
17
|
`Chan Zuckerberg Initiative <https://chanzuckerberg.com/>`_
|
|
18
|
-
(grant number 2022-252604
|
|
18
|
+
(grant number 2022-252604; 2022-2024).
|
|
19
19
|
|
|
20
20
|
.. _contributors:
|
|
21
21
|
|
|
@@ -32,7 +32,7 @@ and
|
|
|
32
32
|
User Community
|
|
33
33
|
--------------
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Thanks to the PhasorPy user community for their feedback, bug reports,
|
|
36
36
|
feature suggestions, and data files that have helped improve the library.
|
|
37
37
|
|
|
38
38
|
Citation
|
|
@@ -5,8 +5,8 @@ This documents the application programming and command-line interfaces of
|
|
|
5
5
|
the PhasorPy library version |version|.
|
|
6
6
|
|
|
7
7
|
.. note::
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
PhasorPy is still under active development, and changes in new releases
|
|
9
|
+
may require updates to existing code.
|
|
10
10
|
|
|
11
11
|
.. toctree::
|
|
12
12
|
:maxdepth: 3
|
|
@@ -13,6 +13,7 @@ sys.path.insert(0, os.path.dirname(__file__))
|
|
|
13
13
|
|
|
14
14
|
# remove the examples header from HTML tutorials
|
|
15
15
|
import sphinx_gallery.gen_rst
|
|
16
|
+
from sphinx_gallery.sorting import ExplicitOrder
|
|
16
17
|
|
|
17
18
|
sphinx_gallery.gen_rst.EXAMPLE_HEADER = (
|
|
18
19
|
sphinx_gallery.gen_rst.EXAMPLE_HEADER.replace(
|
|
@@ -63,7 +64,7 @@ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
|
|
63
64
|
# html_theme = 'sphinx_rtd_theme'
|
|
64
65
|
html_theme = 'pydata_sphinx_theme'
|
|
65
66
|
html_static_path = ['_static']
|
|
66
|
-
html_js_files = ['custom-icons.js']
|
|
67
|
+
html_js_files = [('custom-icons.js', {'defer': 'defer'})]
|
|
67
68
|
html_show_sourcelink = False
|
|
68
69
|
html_sidebars = {'**': ['sidebar-nav-bs']}
|
|
69
70
|
|
|
@@ -130,6 +131,13 @@ sphinx_gallery_conf = {
|
|
|
130
131
|
'filename_pattern': 'phasorpy_',
|
|
131
132
|
'examples_dirs': '../tutorials',
|
|
132
133
|
'gallery_dirs': 'tutorials',
|
|
134
|
+
'subsection_order': ExplicitOrder(
|
|
135
|
+
[
|
|
136
|
+
'../tutorials/applications',
|
|
137
|
+
'../tutorials/api',
|
|
138
|
+
'../tutorials/misc',
|
|
139
|
+
]
|
|
140
|
+
),
|
|
133
141
|
'reference_url': {'phasorpy': None},
|
|
134
142
|
'matplotlib_animations': True,
|
|
135
143
|
'within_subsection_order': 'conf.TutorialOrder',
|
|
@@ -151,22 +159,23 @@ class TutorialOrder:
|
|
|
151
159
|
'introduction',
|
|
152
160
|
'lifetime_geometry',
|
|
153
161
|
'lfd_workshop',
|
|
162
|
+
# applications
|
|
163
|
+
'component_fit',
|
|
164
|
+
'fret_efficiency',
|
|
165
|
+
'nadh_fraction',
|
|
166
|
+
'nadh_concentration',
|
|
167
|
+
'multidimensional',
|
|
154
168
|
# api
|
|
155
169
|
'io',
|
|
170
|
+
'lifetime_to_signal',
|
|
156
171
|
'phasor_from_lifetime',
|
|
157
|
-
'
|
|
172
|
+
'fret',
|
|
158
173
|
'filter',
|
|
174
|
+
'multi_harmonic',
|
|
159
175
|
'phasorplot',
|
|
160
176
|
'cursor',
|
|
161
177
|
'component',
|
|
162
|
-
'fret',
|
|
163
|
-
'lifetime_to_signal',
|
|
164
178
|
'pca',
|
|
165
|
-
# applications
|
|
166
|
-
'component_fit',
|
|
167
|
-
'fret_efficiency',
|
|
168
|
-
'nadh_concentration',
|
|
169
|
-
'multidimensional',
|
|
170
179
|
# misc
|
|
171
180
|
'logo',
|
|
172
181
|
'apps',
|
|
@@ -4,7 +4,7 @@ Contributing guide
|
|
|
4
4
|
As a community-maintained project, PhasorPy welcomes contributions in the form
|
|
5
5
|
of bug reports, bug fixes, feature implementations, documentation, datasets,
|
|
6
6
|
and enhancement proposals.
|
|
7
|
-
This
|
|
7
|
+
This guide explains how to contribute.
|
|
8
8
|
|
|
9
9
|
The :doc:`code_of_conduct` applies to everyone participating in the
|
|
10
10
|
PhasorPy community.
|
|
@@ -74,13 +74,13 @@ a GitHub repository at
|
|
|
74
74
|
`https://github.com/phasorpy/phasorpy <https://github.com/phasorpy/phasorpy>`_.
|
|
75
75
|
|
|
76
76
|
The repository is based on `git <https://git-scm.com/>`_, a distributed
|
|
77
|
-
version control
|
|
77
|
+
version control system for tracking changes in source code files and for
|
|
78
78
|
coordinating work among programmers collaboratively developing the code.
|
|
79
79
|
|
|
80
80
|
PhasorPy uses GitHub's `fork and pull collaborative development model
|
|
81
81
|
<https://docs.github.com/en/pull-requests/collaborating-with-pull-requests>`_.
|
|
82
82
|
All contributions to the PhasorPy source code and documentation should
|
|
83
|
-
be developed in personal forks
|
|
83
|
+
be developed in personal forks of the repository, and then submitted as
|
|
84
84
|
`pull requests <https://github.com/phasorpy/phasorpy/pulls>`_ (PRs).
|
|
85
85
|
|
|
86
86
|
The PhasorPy project loosely follows the
|
|
@@ -203,7 +203,6 @@ static type checker::
|
|
|
203
203
|
|
|
204
204
|
$ python -m mypy
|
|
205
205
|
|
|
206
|
-
|
|
207
206
|
The PhasorPy project follows the Scientific Python
|
|
208
207
|
`SPEC 0 - Minimum Supported Dependencies
|
|
209
208
|
<https://scientific-python.org/specs/spec-0000/>`_ recommendation
|
|
@@ -219,7 +218,7 @@ following the `numpydoc
|
|
|
219
218
|
standard.
|
|
220
219
|
|
|
221
220
|
Examples in docstrings must run and pass as
|
|
222
|
-
`doctests <https://docs.python.org/3/library/doctest.html>`_
|
|
221
|
+
`doctests <https://docs.python.org/3/library/doctest.html>`_::
|
|
223
222
|
|
|
224
223
|
$ python -m pytest -v src/phasorpy
|
|
225
224
|
|
|
@@ -232,7 +231,7 @@ to generate the documentation in HTML format published at
|
|
|
232
231
|
|
|
233
232
|
Sphinx documentation is written in the
|
|
234
233
|
`reStructuredText <https://docutils.sourceforge.io/rst.html>`_
|
|
235
|
-
markup language in
|
|
234
|
+
markup language in .rst files in the ``docs`` and ``tutorials`` folders.
|
|
236
235
|
|
|
237
236
|
All user-facing classes and functions should be included in the
|
|
238
237
|
``docs/api/*.rst`` files.
|
|
@@ -251,8 +250,8 @@ Examples in the .rst files must run and pass as doctests::
|
|
|
251
250
|
|
|
252
251
|
$ python -m pytest -v docs
|
|
253
252
|
|
|
254
|
-
Documentation in HTML format
|
|
255
|
-
and
|
|
253
|
+
Documentation can be built in HTML format from docstrings, .rst files,
|
|
254
|
+
and tutorials by running::
|
|
256
255
|
|
|
257
256
|
$ cd docs
|
|
258
257
|
$ make clean
|
|
@@ -263,7 +262,7 @@ Then open ``_build/html/index.html`` in a web browser.
|
|
|
263
262
|
Commit the changes
|
|
264
263
|
..................
|
|
265
264
|
|
|
266
|
-
Commit
|
|
265
|
+
Commit modified and new files to the local repository::
|
|
267
266
|
|
|
268
267
|
$ git add phasorpy/new_file.py
|
|
269
268
|
$ git commit -a -m "Summarize changes in 50 characters or less"
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
PhasorPy documentation
|
|
3
3
|
======================
|
|
4
4
|
|
|
5
|
-
Welcome to the documentation
|
|
5
|
+
Welcome to the documentation for PhasorPy version |version|.
|
|
6
6
|
|
|
7
7
|
PhasorPy is an open-source Python library for the analysis of luminescence
|
|
8
8
|
lifetime and hyperspectral images using the :doc:`phasor_approach`.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
Project guide
|
|
11
|
+
=============
|
|
12
12
|
|
|
13
13
|
The :doc:`tutorials/index` demonstrate how to use the library, from simple
|
|
14
14
|
examples to advanced applications.
|
|
@@ -16,8 +16,8 @@ examples to advanced applications.
|
|
|
16
16
|
The :doc:`api/index` contains detailed information about all functions and
|
|
17
17
|
classes of the library.
|
|
18
18
|
|
|
19
|
-
The :doc:`release/index` list recent bug fixes, feature enhancements,
|
|
20
|
-
and maintenance changes.
|
|
19
|
+
The :doc:`release/index` list recent bug fixes, feature enhancements,
|
|
20
|
+
documentation, and maintenance changes.
|
|
21
21
|
|
|
22
22
|
The :doc:`contributing` explains how to get support, report bugs,
|
|
23
23
|
submit fixes, and improve the documentation.
|
|
@@ -44,7 +44,7 @@ Sample data files used in tutorials and testing are available from the
|
|
|
44
44
|
Report issues with the code or documentation on the
|
|
45
45
|
`issue tracker on GitHub <https://github.com/phasorpy/phasorpy/issues>`_.
|
|
46
46
|
|
|
47
|
-
Questions about
|
|
47
|
+
Questions about using the PhasorPy library can be asked on the
|
|
48
48
|
`issue tracker on GitHub <https://github.com/phasorpy/phasorpy/issues>`_.
|
|
49
49
|
|
|
50
50
|
Please cite
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Phasor
|
|
1
|
+
Phasor approach
|
|
2
2
|
===============
|
|
3
3
|
|
|
4
4
|
"The phasor approach to fluorescence lifetime imaging, and more recently
|
|
@@ -140,23 +140,45 @@ Articles
|
|
|
140
140
|
Software
|
|
141
141
|
--------
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
Several software packages implement the phasor approach for analyzing
|
|
144
|
+
luminescence time-resolved or spectral images:
|
|
145
145
|
|
|
146
146
|
.. list-table::
|
|
147
147
|
:header-rows: 0
|
|
148
148
|
|
|
149
|
+
* - **Library**
|
|
150
|
+
- :ref:`PhasorPy <phasorpy>`,
|
|
151
|
+
:ref:`tttrlib <tttrlib>`,
|
|
152
|
+
:ref:`FLIMLib <flimlib>`:sup:`2`,
|
|
153
|
+
:ref:`BrightEyes <brighteyes>`:sup:`2`,
|
|
154
|
+
:ref:`FLIM_tools <flim_tools>`:sup:`2,4`,
|
|
155
|
+
:ref:`Cell-analysis-tools <cell_analysis_tools>`:sup:`2,4`
|
|
149
156
|
* - **Desktop**
|
|
150
|
-
- :ref:`SimFCS <simfcs
|
|
157
|
+
- :ref:`SimFCS <simfcs>`:sup:`3,4`,
|
|
158
|
+
:ref:`FLIM Playground <flim_playground>`:sup:`1`,
|
|
151
159
|
:ref:`FLUTE <flute>`,
|
|
152
160
|
:ref:`FLIMPA <flimpa>`,
|
|
153
161
|
:ref:`GSLab <gslab>`,
|
|
154
162
|
:ref:`AlliGator <alligator>`,
|
|
155
|
-
:ref:`
|
|
156
|
-
:ref:`
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
163
|
+
:ref:`HySP <hysp>`:sup:`3,4`,
|
|
164
|
+
:ref:`FlimFast <flimfast>`:sup:`3,4`
|
|
165
|
+
* - **Napari**
|
|
166
|
+
- :ref:`Napari-phasors <napari_phasors>`:sup:`1`,
|
|
167
|
+
:ref:`FLIMari <flimari>`:sup:`1`,
|
|
168
|
+
:ref:`Napari-flim-phasor-plotter <napari_flim_phasor_plotter>`,
|
|
169
|
+
:ref:`FLOPA <flopa>`:sup:`2`,
|
|
170
|
+
:ref:`Napari-live-flim <napari_live_flim>`:sup:`2,4`
|
|
171
|
+
* - **ImageJ**
|
|
172
|
+
- :ref:`Spectral/Time Gated Phasor PlugIns <phasor_plugins>`:sup:`4`
|
|
173
|
+
* - **Notebook**
|
|
174
|
+
- :ref:`PhasorAnalysis <phasor_analysis>`,
|
|
175
|
+
:ref:`PhasorIdentifier <phasor_identifier>`:sup:`4`,
|
|
176
|
+
:ref:`PhasorPlots for dummies <phasorplots_for_dummies>`:sup:`2,4`
|
|
177
|
+
* - **Matlab**
|
|
178
|
+
- :ref:`FLIMfit <flimfit>`:sup:`2`,
|
|
179
|
+
:ref:`PAM <pam>`:sup:`2`,
|
|
180
|
+
:ref:`Instant-FLIM-Analysis <instant_flim_analysis>`:sup:`4`
|
|
181
|
+
* - **Commercial**:sup:`3`
|
|
160
182
|
- :ref:`FLIM Studio <flim_studio>`,
|
|
161
183
|
:ref:`VistaVision <vistavision>`,
|
|
162
184
|
:ref:`SPCImage <spcimage>`,
|
|
@@ -164,29 +186,29 @@ approach to analyze fluorescence time-resolved or spectral images:
|
|
|
164
186
|
:ref:`Luminosa <luminosa>`,
|
|
165
187
|
:ref:`EzTime <eztime>`,
|
|
166
188
|
:ref:`LIFA <lifa>`
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
:ref:`FLIMari <flimari>`
|
|
173
|
-
* - **ImageJ**
|
|
174
|
-
- :ref:`Spectral/Time Gated Phasor PlugIns <phasor_plugins>`
|
|
175
|
-
* - **Matlab**
|
|
176
|
-
- :ref:`FLIMfit <flimfit>`,
|
|
177
|
-
:ref:`PAM <pam>`,
|
|
178
|
-
:ref:`Instant-FLIM-Analysis <instant_flim_analysis>`
|
|
179
|
-
* - **Library**
|
|
180
|
-
- :ref:`FLIMLib <flimlib>`,
|
|
181
|
-
:ref:`tttrlib <tttrlib>`,
|
|
182
|
-
:ref:`FLIM_tools <flim_tools>`,
|
|
183
|
-
:ref:`Cell-analysis-tools <cell_analysis_tools>`
|
|
184
|
-
* - **Notebook**
|
|
185
|
-
- :ref:`PhasorIdentifier <phasor_identifier>`,
|
|
186
|
-
:ref:`PhasorPlots for dummies <phasorplots_for_dummies>`
|
|
189
|
+
|
|
190
|
+
| :sup:`1` Uses PhasorPy internally.
|
|
191
|
+
| :sup:`2` GPL-licensed.
|
|
192
|
+
| :sup:`3` Proprietary or closed-source.
|
|
193
|
+
| :sup:`4` Legacy: no known maintenance activity for at least 2 years.
|
|
187
194
|
|
|
188
195
|
Details:
|
|
189
196
|
|
|
197
|
+
-
|
|
198
|
+
.. _phasorpy:
|
|
199
|
+
|
|
200
|
+
`PhasorPy <https://github.com/phasorpy/phasorpy/>`__
|
|
201
|
+
is an open-source Python library for the analysis of luminescence lifetime
|
|
202
|
+
and hyperspectral images using the phasor approach.
|
|
203
|
+
The library enables reproducible phasor-based FLIM and HSI workflows.
|
|
204
|
+
It provides tools to read microscopy data in many file formats and to
|
|
205
|
+
calculate, calibrate, filter, visualize, and interconvert phasor coordinates,
|
|
206
|
+
lifetimes, and signals. Phasor coordinates can be exported to standard
|
|
207
|
+
formats and analyzed through cursor-based region-of-interest selection,
|
|
208
|
+
cluster detection, multi-component unmixing, FRET efficiency and
|
|
209
|
+
concentration estimation.
|
|
210
|
+
It is distributed under the permissive MIT license.
|
|
211
|
+
|
|
190
212
|
-
|
|
191
213
|
.. _simfcs:
|
|
192
214
|
|
|
@@ -194,9 +216,8 @@ Details:
|
|
|
194
216
|
is a free, closed-source, Windows desktop application for fluorescence image
|
|
195
217
|
analysis, visualization, simulation, and acquisition.
|
|
196
218
|
The software was developed by Enrico Gratton during 1998-2022 at the
|
|
197
|
-
Laboratory for Fluorescence Dynamics. It provides
|
|
198
|
-
|
|
199
|
-
hyperspectral images.
|
|
219
|
+
Laboratory for Fluorescence Dynamics. It provides a broad set of features
|
|
220
|
+
for phasor analysis of fluorescence lifetime and hyperspectral images.
|
|
200
221
|
Many `tutorials <https://www.lfd.uci.edu/globals/tutorials/>`__ are
|
|
201
222
|
available.
|
|
202
223
|
|
|
@@ -226,7 +247,7 @@ Details:
|
|
|
226
247
|
.. _flopa:
|
|
227
248
|
|
|
228
249
|
`FLOPA <https://github.com/IMCF-Biocev/FLOPA>`__
|
|
229
|
-
is a napari plugin for FLIM data opening, processing and analysis.
|
|
250
|
+
is a napari plugin for FLIM data opening, processing, and analysis.
|
|
230
251
|
The plugin is distributed under the GPLv3 license.
|
|
231
252
|
|
|
232
253
|
-
|
|
@@ -257,7 +278,7 @@ Details:
|
|
|
257
278
|
.. _flimpa:
|
|
258
279
|
|
|
259
280
|
`FLIMPA <https://github.com/SofiaKapsiani/FLIMPA>`__
|
|
260
|
-
is an open-source GUI
|
|
281
|
+
is an open-source GUI application designed for phasor-plot analysis of
|
|
261
282
|
raw TCSPC-FLIM data. The software is written in Python and distributed
|
|
262
283
|
under the BSD-3-Clause license.
|
|
263
284
|
|
|
@@ -284,7 +305,7 @@ Details:
|
|
|
284
305
|
is a collection of open-source software for the acquisition, analysis,
|
|
285
306
|
and simulation of image-scanning microscopy data, including FLIM-phasor
|
|
286
307
|
analysis of time-resolved images. The software is written in Python/VHDL
|
|
287
|
-
by the lab of Giuseppe Vicidomini and distributed under the
|
|
308
|
+
by the lab of Giuseppe Vicidomini and distributed under the GPL v3 license.
|
|
288
309
|
|
|
289
310
|
-
|
|
290
311
|
.. _flim_playground:
|
|
@@ -301,7 +322,7 @@ Details:
|
|
|
301
322
|
`FLIM_tools <https://github.com/jayunruh/FLIM_tools>`__
|
|
302
323
|
is an open-source Python library for linear unmixing and phasor tools for
|
|
303
324
|
FLIM analysis developed by Jay Unruh. The library is distributed under
|
|
304
|
-
the
|
|
325
|
+
the GPL v2 license.
|
|
305
326
|
|
|
306
327
|
-
|
|
307
328
|
.. _tttrlib:
|
|
@@ -312,6 +333,14 @@ Details:
|
|
|
312
333
|
and correcting phasor coordinates. The library is distributed under the
|
|
313
334
|
BSD license.
|
|
314
335
|
|
|
336
|
+
-
|
|
337
|
+
.. _phasor_analysis:
|
|
338
|
+
|
|
339
|
+
`PhasorAnalysis <https://zenodo.org/records/15616954>`__
|
|
340
|
+
is a Jupyter notebook for the PhasorScope project, an open, integrated
|
|
341
|
+
platform for multiplexed bioluminescence microscopy. The notebook is
|
|
342
|
+
designed to run on Google Colab and is distributed under the MIT license.
|
|
343
|
+
|
|
315
344
|
-
|
|
316
345
|
.. _phasor_identifier:
|
|
317
346
|
|
|
@@ -350,7 +379,7 @@ Details:
|
|
|
350
379
|
.. _flimfit:
|
|
351
380
|
|
|
352
381
|
`FLIMfit <https://github.com/flimfit/FLIMfit>`__ is an open-source,
|
|
353
|
-
MATLAB-based tool to
|
|
382
|
+
MATLAB-based tool to analyze and visualize time-resolved data from FLIM
|
|
354
383
|
measurements including TCSPC and wide-field time-gated imaging.
|
|
355
384
|
It includes a segmentation tool based on the phasor approach.
|
|
356
385
|
The affiliated `FlimReader <https://github.com/flimfit/FlimReader>`__
|
|
@@ -362,7 +391,7 @@ Details:
|
|
|
362
391
|
|
|
363
392
|
`PAM <https://pam.readthedocs.io/en/latest/phasor.html>`__
|
|
364
393
|
is an open-source GUI-based MATLAB package for the analysis of fluorescence
|
|
365
|
-
experiments. The phasor analysis includes
|
|
394
|
+
experiments. The phasor analysis includes regions of interest, fractions,
|
|
366
395
|
triangular mixtures, and FRET estimation. PAM is licensed under the GPL v3.
|
|
367
396
|
|
|
368
397
|
-
|
|
@@ -385,7 +414,7 @@ Details:
|
|
|
385
414
|
.. _flim_studio:
|
|
386
415
|
|
|
387
416
|
`FLIM Studio <https://www.flimlabs.com/software/>`__
|
|
388
|
-
is
|
|
417
|
+
is commercial software by FLIM LABS, a vendor of portable devices for
|
|
389
418
|
fluorescence lifetime imaging and spectroscopy. The software provides
|
|
390
419
|
real-time FLIM phasor-plot analysis, AI-driven phasor-plot analysis
|
|
391
420
|
techniques, and an application programming interface. Python modules
|
|
@@ -395,7 +424,7 @@ Details:
|
|
|
395
424
|
.. _vistavision:
|
|
396
425
|
|
|
397
426
|
`VistaVision <https://iss.com/software/vistavision>`__
|
|
398
|
-
is a commercial Windows desktop
|
|
427
|
+
is a commercial Windows desktop application by ISS, Inc., for confocal
|
|
399
428
|
microscopy applications, including instrument control, data acquisition,
|
|
400
429
|
and data processing. It performs image segmentation of FLIM images via
|
|
401
430
|
the phasor plot.
|
|
@@ -404,7 +433,7 @@ Details:
|
|
|
404
433
|
.. _spcimage:
|
|
405
434
|
|
|
406
435
|
`SPCImage <https://www.becker-hickl.com/literature/documents/flim/spcimage-ng/>`__
|
|
407
|
-
is a commercial Windows desktop
|
|
436
|
+
is a commercial Windows desktop application by Becker & Hickl (tm) for
|
|
408
437
|
TCSPC-FLIM data analysis. It performs image segmentation of time-resolved
|
|
409
438
|
data via the phasor plot.
|
|
410
439
|
|
|
@@ -412,24 +441,24 @@ Details:
|
|
|
412
441
|
.. _lasx:
|
|
413
442
|
|
|
414
443
|
`LAS X <https://www.leica-microsystems.com/science-lab/phasor-analysis-for-flim-fluorescence-lifetime-imaging-microscopy/>`__
|
|
415
|
-
is a commercial Windows desktop
|
|
416
|
-
The software
|
|
417
|
-
select components
|
|
444
|
+
is a commercial Windows desktop application by Leica Microsystems.
|
|
445
|
+
The software uses phasors to track microenvironmental changes,
|
|
446
|
+
select components for signal multiplexing, and determine FRET efficiency.
|
|
418
447
|
|
|
419
448
|
-
|
|
420
449
|
.. _luminosa:
|
|
421
450
|
|
|
422
451
|
`Luminosa <https://www.picoquant.com/products/category/fluorescence-microscopes/luminosa-single-photon-counting-confocal-microscope#documents>`__
|
|
423
|
-
is a commercial Windows desktop
|
|
452
|
+
is a commercial Windows desktop application by PicoQuant GmbH, which includes
|
|
424
453
|
single molecule detection, FCS, and time-resolved imaging methods.
|
|
425
|
-
The InstaFLIM module
|
|
426
|
-
|
|
454
|
+
The InstaFLIM module supports simultaneous TCSPC and phasor analysis
|
|
455
|
+
for ROI determination.
|
|
427
456
|
|
|
428
457
|
-
|
|
429
458
|
.. _eztime:
|
|
430
459
|
|
|
431
460
|
`EzTime <https://www.horiba.com/int/scientific/products/detail/action/show/Product/eztime-software-6283/>`__
|
|
432
|
-
is
|
|
461
|
+
is commercial software by HORIBA Scientific. It allows real-time TCSPC
|
|
433
462
|
image analysis and visualization, including phasor plots, in conjunction
|
|
434
463
|
with the FLIMera wide-field camera.
|
|
435
464
|
|
|
@@ -437,14 +466,37 @@ Details:
|
|
|
437
466
|
.. _lifa:
|
|
438
467
|
|
|
439
468
|
`LIFA <https://lambertinstruments.com/lifa-software>`__
|
|
440
|
-
is
|
|
469
|
+
is commercial software by Lambert Instruments to record and analyze
|
|
441
470
|
fluorescence lifetime images, integrating all Lambert hardware.
|
|
442
471
|
|
|
443
472
|
-
|
|
444
473
|
.. _flimfast:
|
|
445
474
|
|
|
446
475
|
`FlimFast <https://www.cgohlke.com/flimfast/>`__
|
|
447
|
-
was a research-grade Windows desktop
|
|
476
|
+
was a research-grade Windows desktop application for frequency-domain,
|
|
448
477
|
full-field, fluorescence lifetime imaging at video rate, developed by
|
|
449
478
|
Christoph Gohlke during 2000-2002 at UIUC. It enabled phasor vs intensity
|
|
450
479
|
plots of FLIM images during real-time acquisition.
|
|
480
|
+
|
|
481
|
+
The following software packages are related to FLIM analysis but are primarily
|
|
482
|
+
fitting-based and therefore not included in the phasor-focused list above:
|
|
483
|
+
|
|
484
|
+
-
|
|
485
|
+
.. _flimj:
|
|
486
|
+
|
|
487
|
+
`FLIMJ <https://flimj.github.io/>`__
|
|
488
|
+
is an open-source ImageJ toolkit for fluorescence lifetime image data
|
|
489
|
+
analysis based on FLIMLib, licensed under the GPL v3.
|
|
490
|
+
|
|
491
|
+
-
|
|
492
|
+
.. _flimx:
|
|
493
|
+
|
|
494
|
+
`FLIMX <https://github.com/M-Klemm/FLIMX/>`__
|
|
495
|
+
is an open-source MATLAB package to determine and analyze the fluorescence
|
|
496
|
+
lifetime in time-resolved fluorescence data.
|
|
497
|
+
|
|
498
|
+
-
|
|
499
|
+
.. _flimview:
|
|
500
|
+
|
|
501
|
+
`FLIMVIEW <https://github.com/mgckind/flimview>`__ is an open-source,
|
|
502
|
+
lightweight Python package for FLIM image processing.
|