phasor-handler


Namephasor-handler JSON
Version 2.2.2.post1 PyPI version JSON
download
home_pageNone
SummaryA PyQt6 GUI toolbox for processing two-photon phasor imaging data
upload_time2025-10-21 08:07:46
maintainerNone
docs_urlNone
authorNone
requires_python<3.10,>=3.9.23
licenseMIT License Copyright (c) 2025 Josia Shemuel Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords two-photon phasor imaging calcium neuroscience suite2p
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Phasor-Handler v2.0 (Windows)

Phasor Handler is a toolbox for processing raw two-photon phasor imaging data: **convert → register → explore → extract calcium traces**.  
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.

> ⚠️ **Platform:** Windows 10/11 only  
> 🧪 Status: actively developed (Brightness & Contrast dialog is WIP)

---

## Features

- Load **registered TIFF** (`Ch1-reg.tif`, `Ch2-reg.tif`) or **raw NPY** fallbacks (`ImageData_Ch0_TP0000000.npy`, `ImageData_Ch1_TP0000000.npy`)
- Linear and non-linear motion-correct **TIFF images** using Suite2p
- Automated cell detection using Suite2p
- Channel switching (Ch1/Ch2) and **Composite (G/R)**
- **Z-projections**: standard deviation, max, mean
- **ROI tools**: draw elliptical ROIs, translate or rotate ROIs, save/load as JSON, quick-select saved ROIs
- **Stimulus overlay**: show stimulated ROI locations from experiment metadata and add to the saved ROIs
- **Trace plotting**: configurable formula, custom y-limits, frame/time (s) x-axis
- **Export**: write per-ROI traces for all frames to `.txt` (tab-separated)
- 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

---

## Input data layout

For each dataset directory, Phasor Handler looks for any of:

- Ch1-reg.tif
- Ch2-reg.tif                 # optional
- ImageData_Ch0_TP0000000.npy # raw fallback for Ch1
- ImageData_Ch1_TP0000000.npy # optional raw fallback for Ch2
- experiment_summary.pkl      # optional metadata (or .json)

Registered TIFFs are preferred when available; raw NPYs are used as fallback.

---

## Installation (Windows, Conda)

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.

### 1) Install Conda/Mamba (if needed)
- Install **Miniconda** or **Mambaforge** on Windows.
- (Optional) Add mamba for faster solves:
  ```powershell
  conda install -n base -c conda-forge mamba

### 2) Get the code
- Clone the repo and change it into
  ```powershell
  git clone https://github.com/joshemuel/Phasor-Handler.git
  chdir Phasor-Handler
- Alternatively, you can download the entire project as a zip file, unzip it, then open that directory in **Miniconda**
  cd Phasor-Handler

### 3) Create the environment
- Using mamba:
  ```powershell
  mamba env create -f environment.yml
- Using conda:
  ```powershell
  conda env create -f environment.yml

# 4) Activate and run
- Before running the toolbox, activate the environment
  ```powershell
  conda activate suite2p
  python app.py
## Update (Windows, Conda)

### 1) Go to your local repo and pull the latest code from the branch you use
```powershell
chdir Phasor-Handler
git pull --ff-only

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "phasor-handler",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.10,>=3.9.23",
    "maintainer_email": null,
    "keywords": "two-photon, phasor, imaging, calcium, neuroscience, suite2p",
    "author": null,
    "author_email": "Josia Shemuel <joshemuel@users.noreply.github.com>",
    "download_url": "https://files.pythonhosted.org/packages/a9/ff/7ee74143d8889fbb0c4450b406189418d756fe913bf042965f8502f9a3aa/phasor_handler-2.2.2.post1.tar.gz",
    "platform": null,
    "description": "# Phasor-Handler v2.0 (Windows)\r\n\r\nPhasor Handler is a toolbox for processing raw two-photon phasor imaging data: **convert \u2192 register \u2192 explore \u2192 extract calcium traces**.  \r\nIt 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.\r\n\r\n> \u26a0\ufe0f **Platform:** Windows 10/11 only  \r\n> \ud83e\uddea Status: actively developed (Brightness & Contrast dialog is WIP)\r\n\r\n---\r\n\r\n## Features\r\n\r\n- Load **registered TIFF** (`Ch1-reg.tif`, `Ch2-reg.tif`) or **raw NPY** fallbacks (`ImageData_Ch0_TP0000000.npy`, `ImageData_Ch1_TP0000000.npy`)\r\n- Linear and non-linear motion-correct **TIFF images** using Suite2p\r\n- Automated cell detection using Suite2p\r\n- Channel switching (Ch1/Ch2) and **Composite (G/R)**\r\n- **Z-projections**: standard deviation, max, mean\r\n- **ROI tools**: draw elliptical ROIs, translate or rotate ROIs, save/load as JSON, quick-select saved ROIs\r\n- **Stimulus overlay**: show stimulated ROI locations from experiment metadata and add to the saved ROIs\r\n- **Trace plotting**: configurable formula, custom y-limits, frame/time (s) x-axis\r\n- **Export**: write per-ROI traces for all frames to `.txt` (tab-separated)\r\n- 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\r\n\r\n---\r\n\r\n## Input data layout\r\n\r\nFor each dataset directory, Phasor Handler looks for any of:\r\n\r\n- Ch1-reg.tif\r\n- Ch2-reg.tif                 # optional\r\n- ImageData_Ch0_TP0000000.npy # raw fallback for Ch1\r\n- ImageData_Ch1_TP0000000.npy # optional raw fallback for Ch2\r\n- experiment_summary.pkl      # optional metadata (or .json)\r\n\r\nRegistered TIFFs are preferred when available; raw NPYs are used as fallback.\r\n\r\n---\r\n\r\n## Installation (Windows, Conda)\r\n\r\nThis 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.\r\n\r\n### 1) Install Conda/Mamba (if needed)\r\n- Install **Miniconda** or **Mambaforge** on Windows.\r\n- (Optional) Add mamba for faster solves:\r\n  ```powershell\r\n  conda install -n base -c conda-forge mamba\r\n\r\n### 2) Get the code\r\n- Clone the repo and change it into\r\n  ```powershell\r\n  git clone https://github.com/joshemuel/Phasor-Handler.git\r\n  chdir Phasor-Handler\r\n- Alternatively, you can download the entire project as a zip file, unzip it, then open that directory in **Miniconda**\r\n  cd Phasor-Handler\r\n\r\n### 3) Create the environment\r\n- Using mamba:\r\n  ```powershell\r\n  mamba env create -f environment.yml\r\n- Using conda:\r\n  ```powershell\r\n  conda env create -f environment.yml\r\n\r\n# 4) Activate and run\r\n- Before running the toolbox, activate the environment\r\n  ```powershell\r\n  conda activate suite2p\r\n  python app.py\r\n## Update (Windows, Conda)\r\n\r\n### 1) Go to your local repo and pull the latest code from the branch you use\r\n```powershell\r\nchdir Phasor-Handler\r\ngit pull --ff-only\r\n",
    "bugtrack_url": null,
    "license": "MIT License\r\n        \r\n        Copyright (c) 2025 Josia Shemuel\r\n        \r\n        Permission is hereby granted, free of charge, to any person obtaining a copy\r\n        of this software and associated documentation files (the \"Software\"), to deal\r\n        in the Software without restriction, including without limitation the rights\r\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n        copies of the Software, and to permit persons to whom the Software is\r\n        furnished to do so, subject to the following conditions:\r\n        \r\n        The above copyright notice and this permission notice shall be included in all\r\n        copies or substantial portions of the Software.\r\n        \r\n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n        SOFTWARE.",
    "summary": "A PyQt6 GUI toolbox for processing two-photon phasor imaging data",
    "version": "2.2.2.post1",
    "project_urls": {
        "Homepage": "https://github.com/joshemuel/Phasor-Handler",
        "Issues": "https://github.com/joshemuel/Phasor-Handler/issues",
        "Repository": "https://github.com/joshemuel/Phasor-Handler"
    },
    "split_keywords": [
        "two-photon",
        " phasor",
        " imaging",
        " calcium",
        " neuroscience",
        " suite2p"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d9856559c4ec31fa085ab26615a769e8c44cd5df5c299ac2c94f9cc4b3d7c5d7",
                "md5": "90f4531d4c774b7d8ffc92c4af1dd693",
                "sha256": "fb4a6f9b93769d72dc72e412397d2a948df23b02c2db10412240c209fd6160ec"
            },
            "downloads": -1,
            "filename": "phasor_handler-2.2.2.post1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "90f4531d4c774b7d8ffc92c4af1dd693",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.10,>=3.9.23",
            "size": 94802,
            "upload_time": "2025-10-21T08:07:44",
            "upload_time_iso_8601": "2025-10-21T08:07:44.965536Z",
            "url": "https://files.pythonhosted.org/packages/d9/85/6559c4ec31fa085ab26615a769e8c44cd5df5c299ac2c94f9cc4b3d7c5d7/phasor_handler-2.2.2.post1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a9ff7ee74143d8889fbb0c4450b406189418d756fe913bf042965f8502f9a3aa",
                "md5": "27649769cfbcc2ea3147f4b33ff549dc",
                "sha256": "b24ddf1f9260c6e74835bfcd7f2d0d848db39b1858685d93ad0663d2a0271f4d"
            },
            "downloads": -1,
            "filename": "phasor_handler-2.2.2.post1.tar.gz",
            "has_sig": false,
            "md5_digest": "27649769cfbcc2ea3147f4b33ff549dc",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.10,>=3.9.23",
            "size": 90216,
            "upload_time": "2025-10-21T08:07:46",
            "upload_time_iso_8601": "2025-10-21T08:07:46.102076Z",
            "url": "https://files.pythonhosted.org/packages/a9/ff/7ee74143d8889fbb0c4450b406189418d756fe913bf042965f8502f9a3aa/phasor_handler-2.2.2.post1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-21 08:07:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "joshemuel",
    "github_project": "Phasor-Handler",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "phasor-handler"
}
        
Elapsed time: 1.93423s