phasorpy 0.6__cp311-cp311-win_amd64.whl → 0.7__cp311-cp311-win_amd64.whl
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/__init__.py +1 -1
- phasorpy/_phasorpy.cp311-win_amd64.pyd +0 -0
- phasorpy/_phasorpy.pyx +281 -9
- phasorpy/_utils.py +101 -28
- phasorpy/cli.py +19 -1
- phasorpy/cluster.py +10 -16
- phasorpy/color.py +11 -7
- phasorpy/{components.py → component.py} +255 -32
- phasorpy/{cursors.py → cursor.py} +31 -33
- phasorpy/datasets.py +117 -7
- phasorpy/experimental.py +8 -10
- phasorpy/io/__init__.py +1 -0
- phasorpy/io/_flimlabs.py +20 -10
- phasorpy/io/_leica.py +3 -1
- phasorpy/io/_ometiff.py +2 -3
- phasorpy/io/_other.py +115 -7
- phasorpy/io/_simfcs.py +41 -16
- phasorpy/lifetime.py +2058 -0
- phasorpy/phasor.py +71 -1947
- phasorpy/plot/_functions.py +8 -2
- phasorpy/plot/_lifetime_plots.py +33 -23
- phasorpy/plot/_phasorplot.py +547 -159
- phasorpy/plot/_phasorplot_fret.py +11 -9
- phasorpy/utils.py +21 -10
- {phasorpy-0.6.dist-info → phasorpy-0.7.dist-info}/METADATA +2 -2
- phasorpy-0.7.dist-info/RECORD +35 -0
- phasorpy-0.6.dist-info/RECORD +0 -34
- {phasorpy-0.6.dist-info → phasorpy-0.7.dist-info}/WHEEL +0 -0
- {phasorpy-0.6.dist-info → phasorpy-0.7.dist-info}/entry_points.txt +0 -0
- {phasorpy-0.6.dist-info → phasorpy-0.7.dist-info}/licenses/LICENSE.txt +0 -0
- {phasorpy-0.6.dist-info → phasorpy-0.7.dist-info}/top_level.txt +0 -0
@@ -17,15 +17,17 @@ from matplotlib.lines import Line2D
|
|
17
17
|
from matplotlib.widgets import Slider
|
18
18
|
|
19
19
|
from .._utils import update_kwargs
|
20
|
-
from ..
|
20
|
+
from ..lifetime import (
|
21
21
|
phasor_from_fret_acceptor,
|
22
22
|
phasor_from_fret_donor,
|
23
23
|
phasor_from_lifetime,
|
24
24
|
phasor_semicircle,
|
25
|
+
)
|
26
|
+
from ..phasor import (
|
25
27
|
phasor_to_polar,
|
26
28
|
phasor_transform,
|
27
29
|
)
|
28
|
-
from ._phasorplot import
|
30
|
+
from ._phasorplot import CircleTicks, PhasorPlot, _semicircle_ticks
|
29
31
|
|
30
32
|
|
31
33
|
class PhasorPlotFret(PhasorPlot):
|
@@ -118,7 +120,7 @@ class PhasorPlotFret(PhasorPlot):
|
|
118
120
|
_acceptor_background_line: Line2D
|
119
121
|
_background_line: Line2D
|
120
122
|
|
121
|
-
_donor_semicircle_ticks:
|
123
|
+
_donor_semicircle_ticks: CircleTicks | None
|
122
124
|
|
123
125
|
def __init__(
|
124
126
|
self,
|
@@ -141,8 +143,8 @@ class PhasorPlotFret(PhasorPlot):
|
|
141
143
|
update_kwargs(
|
142
144
|
kwargs,
|
143
145
|
title='PhasorPy FRET phasor plot',
|
144
|
-
xlim=
|
145
|
-
ylim=
|
146
|
+
xlim=(-0.2, 1.1),
|
147
|
+
ylim=(-0.1, 0.8),
|
146
148
|
)
|
147
149
|
kwargs['allquadrants'] = False
|
148
150
|
kwargs['grid'] = False
|
@@ -211,8 +213,7 @@ class PhasorPlotFret(PhasorPlot):
|
|
211
213
|
|
212
214
|
if donor_fretting < 1.0 and donor_background == 0.0:
|
213
215
|
lines = self.line(
|
214
|
-
[donor_real, donor_fret_real],
|
215
|
-
[donor_imag, donor_fret_imag],
|
216
|
+
[donor_real, donor_fret_real], [donor_imag, donor_fret_imag]
|
216
217
|
)
|
217
218
|
else:
|
218
219
|
lines = self.line([0.0, 0.0], [0.0, 0.0])
|
@@ -304,6 +305,7 @@ class PhasorPlotFret(PhasorPlot):
|
|
304
305
|
self._background_line = lines[0]
|
305
306
|
|
306
307
|
if not interactive:
|
308
|
+
ax.legend()
|
307
309
|
return
|
308
310
|
|
309
311
|
# add sliders
|
@@ -444,6 +446,7 @@ class PhasorPlotFret(PhasorPlot):
|
|
444
446
|
valstep=0.01,
|
445
447
|
valinit=background_imag,
|
446
448
|
)
|
449
|
+
ax.legend()
|
447
450
|
self._background_imag_slider.on_changed(self._on_changed)
|
448
451
|
|
449
452
|
def _on_semicircle_changed(self, value: Any) -> None:
|
@@ -525,8 +528,7 @@ class PhasorPlotFret(PhasorPlot):
|
|
525
528
|
|
526
529
|
if donor_fretting < 1.0 and donor_background == 0.0:
|
527
530
|
self._donor_donor_line.set_data(
|
528
|
-
[donor_real, donor_fret_real],
|
529
|
-
[donor_imag, donor_fret_imag],
|
531
|
+
[donor_real, donor_fret_real], [donor_imag, donor_fret_imag]
|
530
532
|
)
|
531
533
|
else:
|
532
534
|
self._donor_donor_line.set_data([0.0, 0.0], [0.0, 0.0])
|
phasorpy/utils.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
"""Utility functions.
|
2
2
|
|
3
3
|
The ``phasorpy.utils`` module provides auxiliary and convenience functions
|
4
|
-
that do not naturally
|
4
|
+
that do not fit naturally into other modules.
|
5
5
|
|
6
6
|
"""
|
7
7
|
|
@@ -18,7 +18,18 @@ import os
|
|
18
18
|
|
19
19
|
|
20
20
|
def logger() -> logging.Logger:
|
21
|
-
"""Return
|
21
|
+
"""Return PhasorPy logger instance.
|
22
|
+
|
23
|
+
Returns
|
24
|
+
-------
|
25
|
+
logging.Logger
|
26
|
+
Logger instance for 'phasorpy' namespace.
|
27
|
+
|
28
|
+
Examples
|
29
|
+
--------
|
30
|
+
>>> logger().info('This is a log message')
|
31
|
+
|
32
|
+
"""
|
22
33
|
return logging.getLogger('phasorpy')
|
23
34
|
|
24
35
|
|
@@ -52,7 +63,7 @@ def number_threads(
|
|
52
63
|
>>> number_threads()
|
53
64
|
1
|
54
65
|
>>> number_threads(0) # doctest: +SKIP
|
55
|
-
8
|
66
|
+
8 # actual value depends on system
|
56
67
|
|
57
68
|
"""
|
58
69
|
if num_threads is None or num_threads < 0:
|
@@ -101,14 +112,14 @@ def versions(
|
|
101
112
|
-------
|
102
113
|
str
|
103
114
|
Formatted string containing version information.
|
104
|
-
Format: "<package><dash><version>[<space>(<path>)]<sep>"
|
115
|
+
Format: ``"<package><dash><version>[<space>(<path>)]<sep>"``
|
105
116
|
|
106
|
-
|
107
|
-
|
108
|
-
>>> print(versions())
|
109
|
-
Python-3
|
110
|
-
phasorpy-0
|
111
|
-
numpy
|
117
|
+
Examples
|
118
|
+
--------
|
119
|
+
>>> print(versions()) # doctest: +SKIP
|
120
|
+
Python-3.13.5
|
121
|
+
phasorpy-0.6
|
122
|
+
numpy-2.3.1
|
112
123
|
...
|
113
124
|
|
114
125
|
"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: phasorpy
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.7
|
4
4
|
Summary: Analysis of fluorescence lifetime and hyperspectral images using the phasor approach
|
5
5
|
Author: PhasorPy Contributors
|
6
6
|
License-Expression: MIT
|
@@ -24,7 +24,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
24
24
|
Requires-Python: >=3.11
|
25
25
|
Description-Content-Type: text/markdown
|
26
26
|
License-File: LICENSE.txt
|
27
|
-
Requires-Dist: numpy>=1.
|
27
|
+
Requires-Dist: numpy>=1.26.0
|
28
28
|
Requires-Dist: matplotlib>=3.8.0
|
29
29
|
Requires-Dist: scipy>=1.11.0
|
30
30
|
Requires-Dist: click
|
@@ -0,0 +1,35 @@
|
|
1
|
+
phasorpy/__init__.py,sha256=DLmv6dVmHfRp0yUz482irUH9Vs0g77vFkypTDGPUlGs,149
|
2
|
+
phasorpy/__main__.py,sha256=0u6C98HYfajV1RoUww8kAc0CxdsON0ijgEyTYExCSLM,149
|
3
|
+
phasorpy/_phasorpy.cp311-win_amd64.pyd,sha256=5rLkJT_VyyyE13CeuyiBBgbvL6Yu3U0TjOLpmf_WO7o,1025536
|
4
|
+
phasorpy/_phasorpy.pyx,sha256=I4eMejfkS_7xdGgzIXN--FZAJgns2XcbsqBRInT9XJ0,78536
|
5
|
+
phasorpy/_typing.py,sha256=ii-5-8KTs2BZq0Ytu3yJl8ejSQj1V06c1_Jcwa_2Snk,1324
|
6
|
+
phasorpy/_utils.py,sha256=8ch3zR0UTKBKEtx-nR4aMMQtrvH5p9_IDN9NeE0pYqo,23082
|
7
|
+
phasorpy/cli.py,sha256=WpmVkKbf9gtWmeip8PuewA2wLJZW4qvmCanAZRSdkXY,3692
|
8
|
+
phasorpy/cluster.py,sha256=xmV8YPkKsZfhFVFK5RV_mmqDR2klV9ideNBQ86zO028,6141
|
9
|
+
phasorpy/color.py,sha256=CGrV0qnZH_Oy2qGrWgkBvq8Bl99BDi9J9oYj-e3tp5I,17659
|
10
|
+
phasorpy/component.py,sha256=gpz-vaqnEk2VbVWz0Oq_lk57-6GijRwgA7bjODOlHWM,25338
|
11
|
+
phasorpy/conftest.py,sha256=0dCO8UZtEnhZv-JW1_vGvPZOmaihRLOo_Wc857socWI,976
|
12
|
+
phasorpy/cursor.py,sha256=NR-Lq57g4v-70zU3rETa03Vg7Jk1y8SLj-UzR__G8yU,15665
|
13
|
+
phasorpy/datasets.py,sha256=5cjUcu6jYpJQje1Qyt87p4cnAZtT7qL1vysZjo5zF0k,24972
|
14
|
+
phasorpy/experimental.py,sha256=bkQTvxtr3EU8_7f072E0VqeE6FLT9mCV9br_iTFOxZ4,9866
|
15
|
+
phasorpy/lifetime.py,sha256=lP9mD9Q6LqkwhLIt-j-2jvTPBAGZM1hLg7Eh5tw11W4,69238
|
16
|
+
phasorpy/phasor.py,sha256=HaNbbugZrgGEkyk-EBbwU_V6_v6aOB-ta1FlYpr26Xo,66892
|
17
|
+
phasorpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
18
|
+
phasorpy/utils.py,sha256=8EbA7iGzrKREud1dLorphCAMAmXzg3YvPdbCtpKIhLE,4707
|
19
|
+
phasorpy/io/__init__.py,sha256=5cARTMKEEQvvtotWJgIAOTvEtylOKn2bZRjgzowUqRc,4920
|
20
|
+
phasorpy/io/_flimlabs.py,sha256=gX1jgsrmq18vn7EhqBEqZS9uth5zCazMq4FadU3WylE,11084
|
21
|
+
phasorpy/io/_leica.py,sha256=bQw-dLanZukUnaJmOkF9Zib0guRXCMZ9-imaKufAyf8,11037
|
22
|
+
phasorpy/io/_ometiff.py,sha256=asWEPQdD7-vacUDC-M2cpPJNVXXfNACoyNKZYrSHTFQ,15840
|
23
|
+
phasorpy/io/_other.py,sha256=pa4aJy58SDTMO_TYNL4FZ1bjXBMB21Vp-EtgLlSWBmE,28083
|
24
|
+
phasorpy/io/_simfcs.py,sha256=2_e73ge3dsSCuWnlWp-ch2MxgAtCZgyEvK_w9tOp2ks,20177
|
25
|
+
phasorpy/plot/__init__.py,sha256=fUMe18wCkopcvWiNXSwd49bqt8EltfsxcnrBpBauK8M,793
|
26
|
+
phasorpy/plot/_functions.py,sha256=66V1ozTT9vKR8a3idsmYUdToHr8-e3HHmu9-XTIvs4I,22041
|
27
|
+
phasorpy/plot/_lifetime_plots.py,sha256=GV2-OtcEGCzYJFgDQzovKZ_LKUXaHJ2bg7OaRK_6zZ0,19313
|
28
|
+
phasorpy/plot/_phasorplot.py,sha256=6N5YmO33BO0RzNw-vebbWora8PX9iSxmC6KTH5YbMmY,53449
|
29
|
+
phasorpy/plot/_phasorplot_fret.py,sha256=mS_3ILXsjzS3f-G2XRXgzHGp6aHB-pEg2j_m8JDi73o,19722
|
30
|
+
phasorpy-0.7.dist-info/licenses/LICENSE.txt,sha256=KVzeDa0MBRSUYPFFNuo7Atn6v62TiJTgGzHigltEX0o,1104
|
31
|
+
phasorpy-0.7.dist-info/METADATA,sha256=IxYy-sGKrlX8ZomLASZpDihh9fT-vIn_4anl_iaf79I,3323
|
32
|
+
phasorpy-0.7.dist-info/WHEEL,sha256=JLOMsP7F5qtkAkINx5UnzbFguf8CqZeraV8o04b0I8I,101
|
33
|
+
phasorpy-0.7.dist-info/entry_points.txt,sha256=VRhsl3qGiIKwtMraKapmduchTMbdReUi1AoVTe9f3ss,47
|
34
|
+
phasorpy-0.7.dist-info/top_level.txt,sha256=4Y0uYzya5R2loleAxZ6s2n53_FysUbgFTfFaU0i9rbo,9
|
35
|
+
phasorpy-0.7.dist-info/RECORD,,
|
phasorpy-0.6.dist-info/RECORD
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
phasorpy/__init__.py,sha256=ojBobmhDI2NwrlfKLxINCSF7dMnsJQdjvrTOJoD9Bd8,149
|
2
|
-
phasorpy/__main__.py,sha256=0u6C98HYfajV1RoUww8kAc0CxdsON0ijgEyTYExCSLM,149
|
3
|
-
phasorpy/_phasorpy.cp311-win_amd64.pyd,sha256=7p1uW0jbO8fWuBMEihKKYSsmPwD73QU4FGifJ1vBFl0,972288
|
4
|
-
phasorpy/_phasorpy.pyx,sha256=DHSi_R5TWht2DFev51oULSI2uMRW6xCato_CMUE_eMI,69128
|
5
|
-
phasorpy/_typing.py,sha256=ii-5-8KTs2BZq0Ytu3yJl8ejSQj1V06c1_Jcwa_2Snk,1324
|
6
|
-
phasorpy/_utils.py,sha256=Zr33fJMBpLZg9wpWbSC-X8ci39PuVdjbqO62Aelfi7E,20763
|
7
|
-
phasorpy/cli.py,sha256=MDLAdXZvsKlNP5l7KnlTfp9OKQ4_7y4x_LEQqrbaj78,3082
|
8
|
-
phasorpy/cluster.py,sha256=_H9pzz_-8BeIgZlN0mv1tNEAtr-Z0xe6Mt-tKOSzS3M,6294
|
9
|
-
phasorpy/color.py,sha256=Y0XINGWDI5DxTUO9FnwYbf3oZq9IB2XagoJOdXhEsvQ,17378
|
10
|
-
phasorpy/components.py,sha256=jPC52Vs79drDp7GwSmSZemhz0RSz_OYkFn_Qg9JnT7A,17255
|
11
|
-
phasorpy/conftest.py,sha256=0dCO8UZtEnhZv-JW1_vGvPZOmaihRLOo_Wc857socWI,976
|
12
|
-
phasorpy/cursors.py,sha256=1KzsfZBD-kKLdjiMUC3ZIKjSnVtnUwggVlt883EmcRo,15571
|
13
|
-
phasorpy/datasets.py,sha256=EggCWJnpHIHuobRV7aEBNM44B79hMzInNA_lEnMZum8,20870
|
14
|
-
phasorpy/experimental.py,sha256=bXp1bWpzO2p2JpJw-SiQX6XFSdGyqRu2qq_XXZz1P7Y,9821
|
15
|
-
phasorpy/phasor.py,sha256=hY8pW6KgMZV-ik0kxEpdQR8M5u7d0LJ45t8U6vdPsko,130260
|
16
|
-
phasorpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
17
|
-
phasorpy/utils.py,sha256=RipcdjEeu8UnZE-iJZR7zaQQQ_5QxiU3223VT4VGupw,4470
|
18
|
-
phasorpy/io/__init__.py,sha256=JmMpGnJERf0CjkcB2SmxAKZ9Z2W-3BhOefj8ADbkLQc,4870
|
19
|
-
phasorpy/io/_flimlabs.py,sha256=2tNOHZfziATIBZaPE1_D8r1dDGn_e5h3hRZQzuhk9DU,10694
|
20
|
-
phasorpy/io/_leica.py,sha256=66Z9dAP1P9Y7hwqOKC80iNT-xm-yW-uGTxStPi543FQ,10922
|
21
|
-
phasorpy/io/_ometiff.py,sha256=ii5rf0bFV2EWD50Rt2Tm6MQ1Knwu1_AgyxA3s_or_Z4,15855
|
22
|
-
phasorpy/io/_other.py,sha256=nE40crsf7qbswoswr2pLBcHJoYzWjRRz2VAlr018C8k,24695
|
23
|
-
phasorpy/io/_simfcs.py,sha256=3kwEgeGfMrwF7IcVoa0Z1J7V0RWaEg-vbI5e6KVxHBo,18970
|
24
|
-
phasorpy/plot/__init__.py,sha256=fUMe18wCkopcvWiNXSwd49bqt8EltfsxcnrBpBauK8M,793
|
25
|
-
phasorpy/plot/_functions.py,sha256=iIlbnu4DB97sO8zT2v0rO-GqVED99XeCXC24y_Tk43c,21918
|
26
|
-
phasorpy/plot/_lifetime_plots.py,sha256=v0ZuSkwNlE6zSFPqjxPwHv_0woGllSG-ZJ45DX2SkDU,19125
|
27
|
-
phasorpy/plot/_phasorplot.py,sha256=aAWKOjrGahWcu0t3-B3uTbGSp6vKek3uq5yn5m4etRg,38004
|
28
|
-
phasorpy/plot/_phasorplot_fret.py,sha256=CFJNvFyZYxS9vPTe22F_l0Wigd3WGeN_gmDLP3TGWRU,19691
|
29
|
-
phasorpy-0.6.dist-info/licenses/LICENSE.txt,sha256=KVzeDa0MBRSUYPFFNuo7Atn6v62TiJTgGzHigltEX0o,1104
|
30
|
-
phasorpy-0.6.dist-info/METADATA,sha256=LRZ4kDprfLlHaZgtL6jyu3dBSKlJpLrM4jX_P-hkcF0,3323
|
31
|
-
phasorpy-0.6.dist-info/WHEEL,sha256=JLOMsP7F5qtkAkINx5UnzbFguf8CqZeraV8o04b0I8I,101
|
32
|
-
phasorpy-0.6.dist-info/entry_points.txt,sha256=VRhsl3qGiIKwtMraKapmduchTMbdReUi1AoVTe9f3ss,47
|
33
|
-
phasorpy-0.6.dist-info/top_level.txt,sha256=4Y0uYzya5R2loleAxZ6s2n53_FysUbgFTfFaU0i9rbo,9
|
34
|
-
phasorpy-0.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|