High-performance framework for neural spike sorting of electrophysiological data
Project description
SpeedSort: High-Performance Neural Spike Sorting Framework
Overview
SpeedSort is a high-performance framework for neural spike sorting, designed to handle various electrophysiology data formats with minimal configuration requirements. It supports GPU acceleration, adaptive dimensionality reduction, and integrated quality metrics for automated unit verification.
Features
- Universal data format handling with automatic detection
- GPU-accelerated preprocessing and clustering when available
- Adaptive dimensionality reduction and feature selection
- Parallelized processing for multi-channel recordings
- Integrated quality metrics with automated unit verification
- Minimal configuration with intelligent defaults
Installation
To run this project, you need to have Python 3.6 or higher installed. You can clone the repository and install the required dependencies using pip.
-
Clone the repository:
git clone https://github.com/NileshArnaiya/Speed-Spike-Sort.git cd speed-spike-sort
-
Install the required packages:
pip install -r requirements.txt
Make sure to install
pynwb,numpy,scipy,pandas, andscikit-learn. If you want to use GPU acceleration, installtorchandcupyas well.
Usage
To run the spike sorting process, you can use the provided spike-sort-run.py script. Here's how to execute it:
python feuapp/spike-sort-run.py --data <path_to_your_data_file> --sampling-rate <sampling_rate> --data-format <data_format>
Command Line Arguments
--data: Path to the input data file (required).--sampling-rate: Sampling rate in Hz (default: 30000).--data-format: Data format (options:numpy,binary,neo,nwb,mda,auto, default:auto).--use-gpu: Use GPU acceleration if available (optional).--jobs: Number of parallel jobs (default: number of CPU cores - 1).--filter-low: Low cutoff frequency in Hz (default: 300).--filter-high: High cutoff frequency in Hz (default: 6000).--detection-method: Spike detection method (default:threshold_dynamic).--max-clusters: Maximum number of clusters to detect (default: 50).--min-cluster-size: Minimum number of spikes per cluster (default: 30).--output: Path to save results (default:spike_sorting_results.pkl).
Example
python spike-sort-run.py --data test_data/random_numpy_data.npy --sampling-rate 30000 --max-clusters 5 --data-format nwb
Contributing
We welcome contributions to SpeedSort! If you would like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature/my-feature
- Make your changes and commit them:
git commit -m "Add some feature"
- Push your changes to your fork:
git push origin feature/my-feature
- Create a pull request describing your changes.
License
This project is licensed under the GNU Public License. See the LICENSE file for details.
Acknowledgments
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file speed_spike_sort-0.1.0.tar.gz.
File metadata
- Download URL: speed_spike_sort-0.1.0.tar.gz
- Upload date:
- Size: 32.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
291abda81159cd2e12f483530048cdfb8c472b789c397a4b3a8a98d94330afb6
|
|
| MD5 |
3cc4130d573df6bbf72cd120e2d3b77b
|
|
| BLAKE2b-256 |
131842d07e91cc412432145a82cc1020b44702874a96cd56f7434ba183fa517c
|
Provenance
The following attestation bundles were made for speed_spike_sort-0.1.0.tar.gz:
Publisher:
python-publish.yml on NileshArnaiya/Speed-Spike-Sort
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
speed_spike_sort-0.1.0.tar.gz -
Subject digest:
291abda81159cd2e12f483530048cdfb8c472b789c397a4b3a8a98d94330afb6 - Sigstore transparency entry: 185606440
- Sigstore integration time:
-
Permalink:
NileshArnaiya/Speed-Spike-Sort@dd31fda58b44279663d88be5d0b42e19bdeb5eb8 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/NileshArnaiya
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@dd31fda58b44279663d88be5d0b42e19bdeb5eb8 -
Trigger Event:
release
-
Statement type:
File details
Details for the file speed_spike_sort-0.1.0-py3-none-any.whl.
File metadata
- Download URL: speed_spike_sort-0.1.0-py3-none-any.whl
- Upload date:
- Size: 33.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a955e93a878d955c6fb63d49e374ec42af91231467c18c5333184a686e477668
|
|
| MD5 |
617a84c8d860ee2705972d13a2a1a769
|
|
| BLAKE2b-256 |
afcb6ff7d0aed31803ce2432c0e8a0102e66e8b7209621d74880555b71263a21
|
Provenance
The following attestation bundles were made for speed_spike_sort-0.1.0-py3-none-any.whl:
Publisher:
python-publish.yml on NileshArnaiya/Speed-Spike-Sort
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
speed_spike_sort-0.1.0-py3-none-any.whl -
Subject digest:
a955e93a878d955c6fb63d49e374ec42af91231467c18c5333184a686e477668 - Sigstore transparency entry: 185606445
- Sigstore integration time:
-
Permalink:
NileshArnaiya/Speed-Spike-Sort@dd31fda58b44279663d88be5d0b42e19bdeb5eb8 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/NileshArnaiya
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@dd31fda58b44279663d88be5d0b42e19bdeb5eb8 -
Trigger Event:
release
-
Statement type: