Skip to main content

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.

  1. Clone the repository:

    git clone https://github.com/NileshArnaiya/Speed-Spike-Sort.git
    cd speed-spike-sort
    
  2. Install the required packages:

    pip install -r requirements.txt
    

    Make sure to install pynwb, numpy, scipy, pandas, and scikit-learn. If you want to use GPU acceleration, install torch and cupy as 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:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix:
    git checkout -b feature/my-feature
    
  3. Make your changes and commit them:
    git commit -m "Add some feature"
    
  4. Push your changes to your fork:
    git push origin feature/my-feature
    
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

speed_spike_sort-0.1.0.tar.gz (32.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

speed_spike_sort-0.1.0-py3-none-any.whl (33.5 kB view details)

Uploaded Python 3

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

Hashes for speed_spike_sort-0.1.0.tar.gz
Algorithm Hash digest
SHA256 291abda81159cd2e12f483530048cdfb8c472b789c397a4b3a8a98d94330afb6
MD5 3cc4130d573df6bbf72cd120e2d3b77b
BLAKE2b-256 131842d07e91cc412432145a82cc1020b44702874a96cd56f7434ba183fa517c

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file speed_spike_sort-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for speed_spike_sort-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a955e93a878d955c6fb63d49e374ec42af91231467c18c5333184a686e477668
MD5 617a84c8d860ee2705972d13a2a1a769
BLAKE2b-256 afcb6ff7d0aed31803ce2432c0e8a0102e66e8b7209621d74880555b71263a21

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page