ysa-signal


Nameysa-signal JSON
Version 1.2.15 PyPI version JSON
download
home_pageNone
SummaryYSA Signal - Standalone signal analyzer for .brw/.h5 files
upload_time2025-10-09 16:43:49
maintainerNone
docs_urlNone
authorNone
requires_python>=3.6
licenseMIT
keywords signal processing neuroscience electrophysiology mea seizure detection
VCS
bugtrack_url
requirements numpy h5py pybind11 matplotlib
Travis-CI No Travis.
coveralls test coverage
            # YSA Signal

[![Post-Release Integration Test](https://github.com/ParrishLab/ysa-signal/actions/workflows/post-release-test.yml/badge.svg)](https://github.com/ParrishLab/ysa-signal/actions/workflows/post-release-test.yml)
[![PyPI version](https://badge.fury.io/py/ysa-signal.svg)](https://badge.fury.io/py/ysa-signal)

**Standalone signal analyzer for downsampled .brw files**

YSA Signal processes MEA recordings from downsampled .brw files, detects seizures and status epilepticus events, and saves the results in a compact HDF5 format.

**Supported Platforms**: macOS (Intel & Apple Silicon) • Windows (x64)

## Installation

```bash
pip install ysa-signal
```

## Usage

### GUI Mode

To run the GUI, just run this command after installation:
```bash
ysa-signal
```

The GUI provides two tabs:

- **Process Files**: Select input files, optionally enable seizure analysis, and save processed data
- **View Signals**: Load processed files and view signals in an interactive 64x64 channel grid

### CLI Mode

```bash
# Process without analysis (faster)
ysa-signal input.brw output_processed.h5

# Process with seizure analysis
ysa-signal input.brw output_processed.h5 --do-analysis
```

### Python API

```python
from ysa_signal import process_and_store, save_processed_data, load_processed_data

# Read in downsampled .brw file, process it, and store the results in memory (not on disk on a file)
processed_data = process_and_store('/path/to/file.brw', do_analysis=True)

# Save the processed data to an h5 file (on disk on a file you specify)
save_processed_data(processed_data, '/path/to/file_processed.h5')

# With already processed data saved to an h5 file, you can load it back into memory
loaded_data = load_processed_data('/path/to/file_processed.h5')

# Example: Accessing data for a specific channel (row, col)
row = loaded_data.active_channels[0][0]
col = loaded_data.active_channels[0][1]

# Access the signal and seizure times for the specified channel
channel_data = loaded_data.data[row - 1, col - 1]
signal = channel_data['signal']
sz_times = channel_data['SzTimes']
```

### Batch Processing Example

```python
from ysa_signal import process_and_store, save_processed_data
import glob

for brw_file in glob.glob('data/*.brw'):
    output_file = brw_file.replace('.brw', '_processed.h5')
    processed_data = process_and_store(brw_file, do_analysis=True)
    save_processed_data(processed_data, output_file)
```

## Support

- GitHub: [github.com/ParrishLab/ysa-signal](https://github.com/ParrishLab/ysa-signal/issues)
- Email: jacobbcahoon@gmail.com
- Phone: (385) 307-9925

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ysa-signal",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "signal processing, neuroscience, electrophysiology, MEA, seizure detection",
    "author": null,
    "author_email": "Jake Cahoon <jacobbcahoon@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/19/c3/78fbc3abede2ab73b1a1b69a3357243d6da80ec41320edf14f49e10bfcf2/ysa_signal-1.2.15.tar.gz",
    "platform": null,
    "description": "# YSA Signal\n\n[![Post-Release Integration Test](https://github.com/ParrishLab/ysa-signal/actions/workflows/post-release-test.yml/badge.svg)](https://github.com/ParrishLab/ysa-signal/actions/workflows/post-release-test.yml)\n[![PyPI version](https://badge.fury.io/py/ysa-signal.svg)](https://badge.fury.io/py/ysa-signal)\n\n**Standalone signal analyzer for downsampled .brw files**\n\nYSA Signal processes MEA recordings from downsampled .brw files, detects seizures and status epilepticus events, and saves the results in a compact HDF5 format.\n\n**Supported Platforms**: macOS (Intel & Apple Silicon) \u2022 Windows (x64)\n\n## Installation\n\n```bash\npip install ysa-signal\n```\n\n## Usage\n\n### GUI Mode\n\nTo run the GUI, just run this command after installation:\n```bash\nysa-signal\n```\n\nThe GUI provides two tabs:\n\n- **Process Files**: Select input files, optionally enable seizure analysis, and save processed data\n- **View Signals**: Load processed files and view signals in an interactive 64x64 channel grid\n\n### CLI Mode\n\n```bash\n# Process without analysis (faster)\nysa-signal input.brw output_processed.h5\n\n# Process with seizure analysis\nysa-signal input.brw output_processed.h5 --do-analysis\n```\n\n### Python API\n\n```python\nfrom ysa_signal import process_and_store, save_processed_data, load_processed_data\n\n# Read in downsampled .brw file, process it, and store the results in memory (not on disk on a file)\nprocessed_data = process_and_store('/path/to/file.brw', do_analysis=True)\n\n# Save the processed data to an h5 file (on disk on a file you specify)\nsave_processed_data(processed_data, '/path/to/file_processed.h5')\n\n# With already processed data saved to an h5 file, you can load it back into memory\nloaded_data = load_processed_data('/path/to/file_processed.h5')\n\n# Example: Accessing data for a specific channel (row, col)\nrow = loaded_data.active_channels[0][0]\ncol = loaded_data.active_channels[0][1]\n\n# Access the signal and seizure times for the specified channel\nchannel_data = loaded_data.data[row - 1, col - 1]\nsignal = channel_data['signal']\nsz_times = channel_data['SzTimes']\n```\n\n### Batch Processing Example\n\n```python\nfrom ysa_signal import process_and_store, save_processed_data\nimport glob\n\nfor brw_file in glob.glob('data/*.brw'):\n    output_file = brw_file.replace('.brw', '_processed.h5')\n    processed_data = process_and_store(brw_file, do_analysis=True)\n    save_processed_data(processed_data, output_file)\n```\n\n## Support\n\n- GitHub: [github.com/ParrishLab/ysa-signal](https://github.com/ParrishLab/ysa-signal/issues)\n- Email: jacobbcahoon@gmail.com\n- Phone: (385) 307-9925\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "YSA Signal - Standalone signal analyzer for .brw/.h5 files",
    "version": "1.2.15",
    "project_urls": {
        "Homepage": "https://github.com/ParrishLab/ysa-signal",
        "Issues": "https://github.com/ParrishLab/ysa-signal/issues",
        "Repository": "https://github.com/ParrishLab/ysa-signal"
    },
    "split_keywords": [
        "signal processing",
        " neuroscience",
        " electrophysiology",
        " mea",
        " seizure detection"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f2fedf0306c1323825c2c4b5624c5ca4adc7178af4b8c5178b937cc4b0e4a1ad",
                "md5": "8eee11d61337a64fa90e96e65a539947",
                "sha256": "fec13b2ac018654bb444a0fd4c73a8e0ebe905eb9691def471c0153e4b60aee4"
            },
            "downloads": -1,
            "filename": "ysa_signal-1.2.15-cp310-cp310-macosx_10_14_x86_64.macosx_15_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8eee11d61337a64fa90e96e65a539947",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 1684680,
            "upload_time": "2025-10-09T16:43:46",
            "upload_time_iso_8601": "2025-10-09T16:43:46.293832Z",
            "url": "https://files.pythonhosted.org/packages/f2/fe/df0306c1323825c2c4b5624c5ca4adc7178af4b8c5178b937cc4b0e4a1ad/ysa_signal-1.2.15-cp310-cp310-macosx_10_14_x86_64.macosx_15_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dd2293ce5d67b886de97183fed9cd28c10d90e019f973d903989dfa4d6fa28a9",
                "md5": "1490f6a3063b3d4a0f38d21028e6eb5a",
                "sha256": "3fc1d59e9108d01f953eeb4d2e38e7edde34349e4ad9538894ae56fd95c664a2"
            },
            "downloads": -1,
            "filename": "ysa_signal-1.2.15-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1490f6a3063b3d4a0f38d21028e6eb5a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 1935750,
            "upload_time": "2025-10-09T16:43:48",
            "upload_time_iso_8601": "2025-10-09T16:43:48.038378Z",
            "url": "https://files.pythonhosted.org/packages/dd/22/93ce5d67b886de97183fed9cd28c10d90e019f973d903989dfa4d6fa28a9/ysa_signal-1.2.15-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "19c378fbc3abede2ab73b1a1b69a3357243d6da80ec41320edf14f49e10bfcf2",
                "md5": "20cd761ecacab8f42d86b8fe79e9bb63",
                "sha256": "4a1f2551f42b3472463f501846a32793cbf7c8e319e4dd741616f893f384a72a"
            },
            "downloads": -1,
            "filename": "ysa_signal-1.2.15.tar.gz",
            "has_sig": false,
            "md5_digest": "20cd761ecacab8f42d86b8fe79e9bb63",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 39028,
            "upload_time": "2025-10-09T16:43:49",
            "upload_time_iso_8601": "2025-10-09T16:43:49.146235Z",
            "url": "https://files.pythonhosted.org/packages/19/c3/78fbc3abede2ab73b1a1b69a3357243d6da80ec41320edf14f49e10bfcf2/ysa_signal-1.2.15.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-09 16:43:49",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ParrishLab",
    "github_project": "ysa-signal",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.19.0"
                ]
            ]
        },
        {
            "name": "h5py",
            "specs": [
                [
                    ">=",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "pybind11",
            "specs": [
                [
                    ">=",
                    "2.6.0"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.3.0"
                ]
            ]
        }
    ],
    "lcname": "ysa-signal"
}
        
Elapsed time: 1.34303s