phasor-handler 2.2.0__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.
Files changed (48) hide show
  1. phasor_handler-2.2.0/CONTRIBUTING.md +73 -0
  2. phasor_handler-2.2.0/LICENSE.md +21 -0
  3. phasor_handler-2.2.0/MANIFEST.in +8 -0
  4. phasor_handler-2.2.0/PKG-INFO +134 -0
  5. phasor_handler-2.2.0/README.md +76 -0
  6. phasor_handler-2.2.0/environment.yml +219 -0
  7. phasor_handler-2.2.0/img/icons/chevron-down.svg +3 -0
  8. phasor_handler-2.2.0/img/icons/chevron-up.svg +3 -0
  9. phasor_handler-2.2.0/img/logo.ico +0 -0
  10. phasor_handler-2.2.0/phasor_handler/__init__.py +9 -0
  11. phasor_handler-2.2.0/phasor_handler/app.py +249 -0
  12. phasor_handler-2.2.0/phasor_handler/img/icons/chevron-down.svg +3 -0
  13. phasor_handler-2.2.0/phasor_handler/img/icons/chevron-up.svg +3 -0
  14. phasor_handler-2.2.0/phasor_handler/img/logo.ico +0 -0
  15. phasor_handler-2.2.0/phasor_handler/models/dir_manager.py +100 -0
  16. phasor_handler-2.2.0/phasor_handler/scripts/contrast.py +131 -0
  17. phasor_handler-2.2.0/phasor_handler/scripts/convert.py +155 -0
  18. phasor_handler-2.2.0/phasor_handler/scripts/meta_reader.py +467 -0
  19. phasor_handler-2.2.0/phasor_handler/scripts/plot.py +110 -0
  20. phasor_handler-2.2.0/phasor_handler/scripts/register.py +86 -0
  21. phasor_handler-2.2.0/phasor_handler/themes/__init__.py +8 -0
  22. phasor_handler-2.2.0/phasor_handler/themes/dark_theme.py +330 -0
  23. phasor_handler-2.2.0/phasor_handler/tools/__init__.py +1 -0
  24. phasor_handler-2.2.0/phasor_handler/tools/check_stylesheet.py +15 -0
  25. phasor_handler-2.2.0/phasor_handler/tools/misc.py +20 -0
  26. phasor_handler-2.2.0/phasor_handler/widgets/__init__.py +5 -0
  27. phasor_handler-2.2.0/phasor_handler/widgets/analysis/components/__init__.py +9 -0
  28. phasor_handler-2.2.0/phasor_handler/widgets/analysis/components/bnc.py +426 -0
  29. phasor_handler-2.2.0/phasor_handler/widgets/analysis/components/circle_roi.py +850 -0
  30. phasor_handler-2.2.0/phasor_handler/widgets/analysis/components/image_view.py +667 -0
  31. phasor_handler-2.2.0/phasor_handler/widgets/analysis/components/meta_info.py +481 -0
  32. phasor_handler-2.2.0/phasor_handler/widgets/analysis/components/roi_list.py +659 -0
  33. phasor_handler-2.2.0/phasor_handler/widgets/analysis/components/trace_plot.py +621 -0
  34. phasor_handler-2.2.0/phasor_handler/widgets/analysis/view.py +1735 -0
  35. phasor_handler-2.2.0/phasor_handler/widgets/conversion/view.py +83 -0
  36. phasor_handler-2.2.0/phasor_handler/widgets/registration/view.py +110 -0
  37. phasor_handler-2.2.0/phasor_handler/workers/__init__.py +2 -0
  38. phasor_handler-2.2.0/phasor_handler/workers/analysis_worker.py +0 -0
  39. phasor_handler-2.2.0/phasor_handler/workers/histogram_worker.py +55 -0
  40. phasor_handler-2.2.0/phasor_handler/workers/registration_worker.py +242 -0
  41. phasor_handler-2.2.0/phasor_handler.egg-info/PKG-INFO +134 -0
  42. phasor_handler-2.2.0/phasor_handler.egg-info/SOURCES.txt +46 -0
  43. phasor_handler-2.2.0/phasor_handler.egg-info/dependency_links.txt +1 -0
  44. phasor_handler-2.2.0/phasor_handler.egg-info/entry_points.txt +5 -0
  45. phasor_handler-2.2.0/phasor_handler.egg-info/requires.txt +15 -0
  46. phasor_handler-2.2.0/phasor_handler.egg-info/top_level.txt +1 -0
  47. phasor_handler-2.2.0/pyproject.toml +73 -0
  48. phasor_handler-2.2.0/setup.cfg +4 -0
@@ -0,0 +1,73 @@
1
+ # Contributing to Phasor-Handler
2
+
3
+ Thanks for your interest in improving Phasor-Handler\! This document explains how to set up a dev environment, coding standards, and how to submit issues/PRs.
4
+
5
+ > **Platform:** Windows 10/11 only
6
+ > **Primary stack:** Python 3.9, PyQt6, NumPy/SciPy, tifffile/tifftools, Suite2p, Matplotlib
7
+ > **Env manager:** Conda/Mamba (Windows)
8
+
9
+ -----
10
+
11
+ ## Development Environment Setup
12
+
13
+ ### 1\. Prerequisites
14
+
15
+ Before you begin, ensure you have the following installed:
16
+
17
+ * [Git](https://git-scm.com/downloads)
18
+ * [Conda](https://www.anaconda.com/products/distribution) (or Miniforge/Mamba for a faster experience)
19
+
20
+ ### 2\. Fork and Clone the Repository
21
+
22
+ First, create your own copy (a "fork") of the Phasor-Handler repository by clicking the **Fork** button on the GitHub page.
23
+
24
+ Next, clone your forked repository to your local machine.
25
+
26
+ ```powershell
27
+ # Replace <your-username> with your GitHub username
28
+ git clone https://github.com/<your-username>/Phasor-Handler.git
29
+
30
+ # Navigate into the project directory
31
+ cd Phasor-Handler
32
+ ```
33
+
34
+ ### 3\. Create and Activate the Conda Environment
35
+
36
+ The `environment.yml` file contains all the necessary dependencies. Create the environment using Mamba (recommended for speed) or Conda.
37
+
38
+ **Using Mamba:**
39
+
40
+ ```powershell
41
+ mamba env create -f environment.yml
42
+ ```
43
+
44
+ **Or, using Conda:**
45
+
46
+ ```powershell
47
+ conda env create -f environment.yml
48
+ ```
49
+
50
+ Once the installation is complete, activate the new environment. The environment name is specified inside the `.yml` file (let's assume it's `phasor-handler`).
51
+
52
+ ```powershell
53
+ conda activate phasor-handler
54
+ ```
55
+
56
+ ### 4\. Install the Application in Editable Mode
57
+
58
+ To ensure that changes you make to the code are immediately reflected when you run the app, install it in "editable" mode.
59
+
60
+ ```powershell
61
+ # This links the package to your source code
62
+ pip install -e .
63
+ ```
64
+
65
+ ### 5\. Run the Application
66
+
67
+ You are now ready to run the application from the root of the project directory.
68
+
69
+ ```powershell
70
+ python app.py
71
+ ```
72
+
73
+ The application window should now appear. You're all set to start developing\!
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Josia Shemuel
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,8 @@
1
+ include README.md
2
+ include LICENSE.md
3
+ include CONTRIBUTING.md
4
+ include environment.yml
5
+ recursive-include img *.ico *.svg
6
+ recursive-include phasor_handler *.py
7
+ global-exclude __pycache__
8
+ global-exclude *.py[co]
@@ -0,0 +1,134 @@
1
+ Metadata-Version: 2.4
2
+ Name: phasor-handler
3
+ Version: 2.2.0
4
+ Summary: A PyQt6 GUI toolbox for processing two-photon phasor imaging data
5
+ Author-email: Josia Shemuel <joshemuel@users.noreply.github.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2025 Josia Shemuel
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+ Project-URL: Homepage, https://github.com/joshemuel/Phasor-Handler
28
+ Project-URL: Repository, https://github.com/joshemuel/Phasor-Handler
29
+ Project-URL: Issues, https://github.com/joshemuel/Phasor-Handler/issues
30
+ Keywords: two-photon,phasor,imaging,calcium,neuroscience,suite2p
31
+ Classifier: Development Status :: 4 - Beta
32
+ Classifier: Intended Audience :: Science/Research
33
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
34
+ Classifier: Topic :: Scientific/Engineering :: Image Processing
35
+ Classifier: License :: OSI Approved :: MIT License
36
+ Classifier: Programming Language :: Python :: 3
37
+ Classifier: Programming Language :: Python :: 3.9
38
+ Classifier: Operating System :: Microsoft :: Windows
39
+ Classifier: Environment :: X11 Applications :: Qt
40
+ Requires-Python: <3.10,>=3.9.23
41
+ Description-Content-Type: text/markdown
42
+ License-File: LICENSE.md
43
+ Requires-Dist: PyQt6>=6.4.0
44
+ Requires-Dist: numpy<2.0.0,>=1.21.0
45
+ Requires-Dist: matplotlib>=3.5.0
46
+ Requires-Dist: tifffile>=2021.11.2
47
+ Requires-Dist: pyyaml>=6.0
48
+ Requires-Dist: suite2p>=0.14.0
49
+ Requires-Dist: pyqtdarktheme>=1.0.0
50
+ Requires-Dist: Pillow>=9.0.0
51
+ Requires-Dist: scikit-image>=0.19.0
52
+ Requires-Dist: scipy>=1.7.0
53
+ Provides-Extra: dev
54
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
55
+ Requires-Dist: black>=22.0.0; extra == "dev"
56
+ Requires-Dist: flake8>=4.0.0; extra == "dev"
57
+ Dynamic: license-file
58
+
59
+ # Phasor-Handler v2.0 (Windows)
60
+
61
+ Phasor Handler is a toolbox for processing raw two-photon phasor imaging data: **convert → register → explore → extract calcium traces**.
62
+ It provides a PyQt6 GUI for viewing registered or raw stacks (Ch1/Ch2), z-projections (std/max/mean), drawing/storing ROIs, overlaying stimulated ROIs from metadata, and exporting ROI traces.
63
+
64
+ > ⚠️ **Platform:** Windows 10/11 only
65
+ > 🧪 Status: actively developed (Brightness & Contrast dialog is WIP)
66
+
67
+ ---
68
+
69
+ ## Features
70
+
71
+ - Load **registered TIFF** (`Ch1-reg.tif`, `Ch2-reg.tif`) or **raw NPY** fallbacks (`ImageData_Ch0_TP0000000.npy`, `ImageData_Ch1_TP0000000.npy`)
72
+ - Linear and non-linear motion-correct **TIFF images** using Suite2p
73
+ - Automated cell detection using Suite2p
74
+ - Channel switching (Ch1/Ch2) and **Composite (G/R)**
75
+ - **Z-projections**: standard deviation, max, mean
76
+ - **ROI tools**: draw elliptical ROIs, translate or rotate ROIs, save/load as JSON, quick-select saved ROIs
77
+ - **Stimulus overlay**: show stimulated ROI locations from experiment metadata and add to the saved ROIs
78
+ - **Trace plotting**: configurable formula, custom y-limits, frame/time (s) x-axis
79
+ - **Export**: write per-ROI traces for all frames to `.txt` (tab-separated)
80
+ - Keyboard: `R` save/add ROI, `Delete` remove selected ROI, `Esc` clear selection, `Alt+S` load stimulated ROIs, `Right Click + drag` translate selected ROI, `Y` toggle right click to rotation mode
81
+
82
+ ---
83
+
84
+ ## Input data layout
85
+
86
+ For each dataset directory, Phasor Handler looks for any of:
87
+
88
+ - Ch1-reg.tif
89
+ - Ch2-reg.tif # optional
90
+ - ImageData_Ch0_TP0000000.npy # raw fallback for Ch1
91
+ - ImageData_Ch1_TP0000000.npy # optional raw fallback for Ch2
92
+ - experiment_summary.pkl # optional metadata (or .json)
93
+
94
+ Registered TIFFs are preferred when available; raw NPYs are used as fallback.
95
+
96
+ ---
97
+
98
+ ## Installation (Windows, Conda)
99
+
100
+ This project provides an `environment.yml` for Windows. The environment is large (GUI, image I/O, napari/suite2p), so **mamba** is recommended, but `conda` works too.
101
+
102
+ ### 1) Install Conda/Mamba (if needed)
103
+ - Install **Miniconda** or **Mambaforge** on Windows.
104
+ - (Optional) Add mamba for faster solves:
105
+ ```powershell
106
+ conda install -n base -c conda-forge mamba
107
+
108
+ ### 2) Get the code
109
+ - Clone the repo and change it into
110
+ ```powershell
111
+ git clone https://github.com/joshemuel/Phasor-Handler.git
112
+ chdir Phasor-Handler
113
+ - Alternatively, you can download the entire project as a zip file, unzip it, then open that directory in **Miniconda**
114
+ cd Phasor-Handler
115
+
116
+ ### 3) Create the environment
117
+ - Using mamba:
118
+ ```powershell
119
+ mamba env create -f environment.yml
120
+ - Using conda:
121
+ ```powershell
122
+ conda env create -f environment.yml
123
+
124
+ # 4) Activate and run
125
+ - Before running the toolbox, activate the environment
126
+ ```powershell
127
+ conda activate suite2p
128
+ python app.py
129
+ ## Update (Windows, Conda)
130
+
131
+ ### 1) Go to your local repo and pull the latest code from the branch you use
132
+ ```powershell
133
+ chdir Phasor-Handler
134
+ git pull --ff-only
@@ -0,0 +1,76 @@
1
+ # Phasor-Handler v2.0 (Windows)
2
+
3
+ Phasor Handler is a toolbox for processing raw two-photon phasor imaging data: **convert → register → explore → extract calcium traces**.
4
+ It provides a PyQt6 GUI for viewing registered or raw stacks (Ch1/Ch2), z-projections (std/max/mean), drawing/storing ROIs, overlaying stimulated ROIs from metadata, and exporting ROI traces.
5
+
6
+ > ⚠️ **Platform:** Windows 10/11 only
7
+ > 🧪 Status: actively developed (Brightness & Contrast dialog is WIP)
8
+
9
+ ---
10
+
11
+ ## Features
12
+
13
+ - Load **registered TIFF** (`Ch1-reg.tif`, `Ch2-reg.tif`) or **raw NPY** fallbacks (`ImageData_Ch0_TP0000000.npy`, `ImageData_Ch1_TP0000000.npy`)
14
+ - Linear and non-linear motion-correct **TIFF images** using Suite2p
15
+ - Automated cell detection using Suite2p
16
+ - Channel switching (Ch1/Ch2) and **Composite (G/R)**
17
+ - **Z-projections**: standard deviation, max, mean
18
+ - **ROI tools**: draw elliptical ROIs, translate or rotate ROIs, save/load as JSON, quick-select saved ROIs
19
+ - **Stimulus overlay**: show stimulated ROI locations from experiment metadata and add to the saved ROIs
20
+ - **Trace plotting**: configurable formula, custom y-limits, frame/time (s) x-axis
21
+ - **Export**: write per-ROI traces for all frames to `.txt` (tab-separated)
22
+ - Keyboard: `R` save/add ROI, `Delete` remove selected ROI, `Esc` clear selection, `Alt+S` load stimulated ROIs, `Right Click + drag` translate selected ROI, `Y` toggle right click to rotation mode
23
+
24
+ ---
25
+
26
+ ## Input data layout
27
+
28
+ For each dataset directory, Phasor Handler looks for any of:
29
+
30
+ - Ch1-reg.tif
31
+ - Ch2-reg.tif # optional
32
+ - ImageData_Ch0_TP0000000.npy # raw fallback for Ch1
33
+ - ImageData_Ch1_TP0000000.npy # optional raw fallback for Ch2
34
+ - experiment_summary.pkl # optional metadata (or .json)
35
+
36
+ Registered TIFFs are preferred when available; raw NPYs are used as fallback.
37
+
38
+ ---
39
+
40
+ ## Installation (Windows, Conda)
41
+
42
+ This project provides an `environment.yml` for Windows. The environment is large (GUI, image I/O, napari/suite2p), so **mamba** is recommended, but `conda` works too.
43
+
44
+ ### 1) Install Conda/Mamba (if needed)
45
+ - Install **Miniconda** or **Mambaforge** on Windows.
46
+ - (Optional) Add mamba for faster solves:
47
+ ```powershell
48
+ conda install -n base -c conda-forge mamba
49
+
50
+ ### 2) Get the code
51
+ - Clone the repo and change it into
52
+ ```powershell
53
+ git clone https://github.com/joshemuel/Phasor-Handler.git
54
+ chdir Phasor-Handler
55
+ - Alternatively, you can download the entire project as a zip file, unzip it, then open that directory in **Miniconda**
56
+ cd Phasor-Handler
57
+
58
+ ### 3) Create the environment
59
+ - Using mamba:
60
+ ```powershell
61
+ mamba env create -f environment.yml
62
+ - Using conda:
63
+ ```powershell
64
+ conda env create -f environment.yml
65
+
66
+ # 4) Activate and run
67
+ - Before running the toolbox, activate the environment
68
+ ```powershell
69
+ conda activate suite2p
70
+ python app.py
71
+ ## Update (Windows, Conda)
72
+
73
+ ### 1) Go to your local repo and pull the latest code from the branch you use
74
+ ```powershell
75
+ chdir Phasor-Handler
76
+ git pull --ff-only
@@ -0,0 +1,219 @@
1
+ name: suite2p
2
+ channels:
3
+ - conda-forge
4
+ - defaults
5
+ - https://repo.anaconda.com/pkgs/main
6
+ - https://repo.anaconda.com/pkgs/r
7
+ - https://repo.anaconda.com/pkgs/msys2
8
+ dependencies:
9
+ - asttokens=3.0.0=pyhd8ed1ab_1
10
+ - bzip2=1.0.8=h2bbff1b_6
11
+ - ca-certificates=2025.8.3=h4c7d964_0
12
+ - colorama=0.4.6=pyhd8ed1ab_1
13
+ - comm=0.2.3=pyhe01879c_0
14
+ - cpython=3.9.23=py39hd8ed1ab_0
15
+ - debugpy=1.8.16=py39h1f3cc84_0
16
+ - decorator=5.2.1=pyhd8ed1ab_0
17
+ - exceptiongroup=1.3.0=pyhd8ed1ab_0
18
+ - executing=2.2.0=pyhd8ed1ab_0
19
+ - expat=2.7.1=h8ddb27b_0
20
+ - importlib-metadata=8.7.0=pyhe01879c_1
21
+ - ipykernel=6.30.1=pyh3521513_0
22
+ - ipython=8.18.1=pyh7428d3b_3
23
+ - jedi=0.19.2=pyhd8ed1ab_1
24
+ - jupyter_client=8.6.3=pyhd8ed1ab_1
25
+ - jupyter_core=5.8.1=pyh5737063_0
26
+ - krb5=1.21.3=hdf4eb48_0
27
+ - libffi=3.4.4=hd77b12b_1
28
+ - libsodium=1.0.20=hc70643c_0
29
+ - matplotlib-inline=0.1.7=pyhd8ed1ab_1
30
+ - nest-asyncio=1.6.0=pyhd8ed1ab_1
31
+ - openjdk=8.0.412=h57928b3_2
32
+ - openssl=3.5.2=h725018a_0
33
+ - packaging=25.0=pyh29332c3_1
34
+ - parso=0.8.4=pyhd8ed1ab_1
35
+ - pickleshare=0.7.5=pyhd8ed1ab_1004
36
+ - pip=25.1=pyhc872135_2
37
+ - platformdirs=4.3.8=pyhe01879c_0
38
+ - prompt-toolkit=3.0.51=pyha770c72_0
39
+ - psutil=7.0.0=py39ha55e580_0
40
+ - pure_eval=0.2.3=pyhd8ed1ab_1
41
+ - pygments=2.19.2=pyhd8ed1ab_0
42
+ - python=3.9.23=h716150d_0
43
+ - python-dateutil=2.9.0.post0=pyhe01879c_2
44
+ - python_abi=3.9=2_cp39
45
+ - pywin32=311=py39h5fb4b08_0
46
+ - pyzmq=27.0.1=py39h248659b_0
47
+ - setuptools=78.1.1=py39haa95532_0
48
+ - six=1.17.0=pyhe01879c_1
49
+ - sqlite=3.50.2=hda9a48d_1
50
+ - stack_data=0.6.3=pyhd8ed1ab_1
51
+ - tk=8.6.15=hf199647_0
52
+ - tornado=6.5.2=py39h0802e32_0
53
+ - traitlets=5.14.3=pyhd8ed1ab_1
54
+ - typing_extensions=4.14.1=pyhe01879c_0
55
+ - ucrt=10.0.22621.0=haa95532_0
56
+ - vc=14.3=h2df5915_10
57
+ - vc14_runtime=14.44.35208=h4927774_10
58
+ - vs2015_runtime=14.44.35208=ha6b5a95_10
59
+ - wcwidth=0.2.13=pyhd8ed1ab_1
60
+ - wheel=0.45.1=py39haa95532_0
61
+ - xz=5.6.4=h4754444_1
62
+ - zeromq=4.3.5=ha9f60a1_7
63
+ - zipp=3.23.0=pyhd8ed1ab_0
64
+ - zlib=1.2.13=h8cc25b3_1
65
+ - pip:
66
+ - alabaster==0.7.16
67
+ - annotated-types==0.7.0
68
+ - app-model==0.3.2
69
+ - appdirs==1.4.4
70
+ - attrs==25.3.0
71
+ - babel==2.17.0
72
+ - bcrypt==4.3.0
73
+ - build==1.3.0
74
+ - cachey==0.2.1
75
+ - cellpose==3.1.1.2
76
+ - certifi==2025.8.3
77
+ - cffi==1.17.1
78
+ - charset-normalizer==3.4.3
79
+ - cjdk==0.4.1
80
+ - click==8.1.8
81
+ - cloudpickle==3.1.1
82
+ - contourpy==1.3.0
83
+ - cryptography==45.0.6
84
+ - cycler==0.12.1
85
+ - darkdetect==0.7.1
86
+ - dask==2024.8.0
87
+ - dcimg==0.6.0.post1
88
+ - docstring-parser==0.17.0
89
+ - docutils==0.21.2
90
+ - fastremap==1.17.2
91
+ - filelock==3.19.1
92
+ - fill-voids==2.1.0
93
+ - flexcache==0.3
94
+ - flexparser==0.4
95
+ - fonttools==4.59.1
96
+ - freetype-py==2.5.1
97
+ - fsspec==2025.7.0
98
+ - h5py==3.14.0
99
+ - hdmf==4.1.0
100
+ - heapdict==1.0.1
101
+ - hsluv==5.0.4
102
+ - idna==3.10
103
+ - ij==0.0.6
104
+ - imagecodecs==2024.12.30
105
+ - imageio==2.37.0
106
+ - imagesize==1.4.1
107
+ - imglyb==2.1.0
108
+ - importlib-resources==6.5.2
109
+ - in-n-out==0.2.1
110
+ - invoke==2.2.0
111
+ - ipywidgets==8.1.7
112
+ - jgo==1.0.6
113
+ - jinja2==3.1.6
114
+ - joblib==1.5.1
115
+ - jpype1==1.6.0
116
+ - jsonschema==4.25.1
117
+ - jsonschema-specifications==2025.4.1
118
+ - jupyterlab-widgets==3.0.15
119
+ - kiwisolver==1.4.7
120
+ - labeling==0.1.14
121
+ - lazy-loader==0.4
122
+ - llvmlite==0.43.0
123
+ - locket==1.0.0
124
+ - magicgui==0.10.1
125
+ - markdown-it-py==3.0.0
126
+ - markupsafe==3.0.2
127
+ - matplotlib==3.9.4
128
+ - mdurl==0.1.2
129
+ - mpmath==1.3.0
130
+ - napari==0.5.6
131
+ - napari-console==0.1.3
132
+ - napari-plugin-engine==0.2.0
133
+ - napari-svg==0.2.1
134
+ - natsort==8.4.0
135
+ - nd2==0.10.3
136
+ - networkx==3.2.1
137
+ - npe2==0.7.9
138
+ - numba==0.60.0
139
+ - numpy==2.0.2
140
+ - numpydoc==1.9.0
141
+ - ome-types==0.6.1
142
+ - opencv-python-headless==4.12.0.88
143
+ - pandas==2.3.1
144
+ - paramiko==4.0.0
145
+ - partd==1.4.2
146
+ - pillow==11.3.0
147
+ - pint==0.24.4
148
+ - pooch==1.8.2
149
+ - progressbar2==4.5.0
150
+ - psygnal==0.14.1
151
+ - pyconify==0.2.1
152
+ - pycparser==2.22
153
+ - pydantic==2.11.7
154
+ - pydantic-compat==0.1.2
155
+ - pydantic-core==2.33.2
156
+ - pydantic-extra-types==2.10.5
157
+ - pyimagej==1.7.0
158
+ - pynacl==1.5.0
159
+ - pynwb==3.1.2
160
+ - pyopengl==3.1.10
161
+ - pyparsing==3.2.3
162
+ - pyproject-hooks==1.2.0
163
+ - pyqt6==6.9.1
164
+ - pyqt6-qt6==6.9.1
165
+ - pyqt6-sip==13.10.2
166
+ - pyqtdarktheme==2.1.0
167
+ - pyqtgraph==0.13.7
168
+ - python-utils==3.9.1
169
+ - pytz==2025.2
170
+ - pyyaml==6.0.2
171
+ - qdarkstyle==3.2.3
172
+ - qtconsole==5.6.1
173
+ - qtpy==2.4.3
174
+ - rastermap==1.0
175
+ - referencing==0.36.2
176
+ - requests==2.32.5
177
+ - resource-backed-dask-array==0.1.0
178
+ - rich==14.1.0
179
+ - roifile==2024.9.15
180
+ - rpds-py==0.27.0
181
+ - ruamel-yaml==0.18.15
182
+ - ruamel-yaml-clib==0.2.12
183
+ - sbxreader==0.2.2
184
+ - scanimage-tiff-reader==1.4.1.4
185
+ - scikit-image==0.24.0
186
+ - scikit-learn==1.6.1
187
+ - scipy==1.13.1
188
+ - scyjava==1.12.1
189
+ - shellingham==1.5.4
190
+ - snowballstemmer==3.0.1
191
+ - sphinx==7.4.7
192
+ - sphinxcontrib-applehelp==2.0.0
193
+ - sphinxcontrib-devhelp==2.0.0
194
+ - sphinxcontrib-htmlhelp==2.1.0
195
+ - sphinxcontrib-jsmath==1.0.1
196
+ - sphinxcontrib-qthelp==2.0.0
197
+ - sphinxcontrib-serializinghtml==2.0.0
198
+ - suite2p==0.14.5
199
+ - superqt==0.7.6
200
+ - sympy==1.14.0
201
+ - threadpoolctl==3.6.0
202
+ - tifffile==2024.8.30
203
+ - tifftools==1.6.1
204
+ - tomli==2.2.1
205
+ - tomli-w==1.2.0
206
+ - toolz==1.0.0
207
+ - torch==2.8.0
208
+ - tqdm==4.67.1
209
+ - typer==0.17.4
210
+ - typing-inspection==0.4.1
211
+ - tzdata==2025.2
212
+ - urllib3==2.5.0
213
+ - vispy==0.14.3
214
+ - widgetsnbextension==4.0.14
215
+ - wrapt==1.17.3
216
+ - xarray==2024.7.0
217
+ - xmltodict==0.14.2
218
+ - xsdata==24.3.1
219
+ prefix: C:\Users\user\anaconda3\envs\suite2p
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+ <path fill="white" d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6z"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+ <path fill="white" d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"/>
3
+ </svg>
Binary file
@@ -0,0 +1,9 @@
1
+ """
2
+ Phasor Handler - Two-Photon Phasor Imaging Data Processor
3
+
4
+ A PyQt6 GUI toolbox for processing two-photon phasor imaging data.
5
+ """
6
+
7
+ __version__ = "2.2.0"
8
+ __author__ = "Josia Shemuel"
9
+ __all__ = ["app", "widgets", "workers", "models", "scripts", "tools", "themes"]