Skip to main content

Efficient spike detection and sorting for dense MEA

Project description

Herding Spikes 2

Build Status Gitter chat

Spikes


Update: 22 Oct 2021

This is the latest version 0.3.99, which introduces compatbility with SpikeInterface version 0.90+ (note version 0.10 is no longer supported). SpikeInterface wraps many spike sorters, can read almost any file format and contains other useful functionality into a single code base. We will soon transition to a version of Herding Spikes that fully integrates with SpikeInterface. The example notebooks in this repository illustrate the main HS2 functionality, but do not run at the moment as the data links have become stale.


Software for high density electrophysiology

This software provides functionality for the detection, localisation and clustering of spike data from dense multielectrode arrays based on the methods described in the following papers:

J.-O. Muthmann, H. Amin, E. Sernagor, A. Maccione, D. Panas, L. Berdondini, U.S. Bhalla, M.H. Hennig MH (2015). Spike detection for large neural populations using high density multielectrode arrays. Front. Neuroinform. 9:28. doi: 10.3389/fninf.2015.00028.

G. Hilgen, M. Sorbaro, S. Pirmoradian, J.-O. Muthmann, I. Kepiro, S. Ullo, C. Juarez Ramirez, A. Puente Encinas, A. Maccione, L. Berdondini, V. Murino, D. Sona, F. Cella Zanacchi, E. Sernagor, M.H. Hennig (2016). Unsupervised spike sorting for large scale, high density multielectrode arrays. Cell Reports 18, 2521–2532. bioRxiv: http://dx.doi.org/10.1101/048645.

This implementation is highly efficient, spike detection and localisation runs in real time on recordings from 4,096 channels at 7kHz on a desktop PC. Large recordings with millions of events can be sorted in minutes.

Since we believe publicly funded research code should be free and open, all code is released under GPL-3.0.

Supported systems

Contributors, alphabetical

Quick start

The code has been tested with Python version 3.6. It is essential numpy is available before installing. The other dependencies will be installed by the installer.

If your system does not have Python pre-installed, the Anaconda distribution may be used.

All operative systems - Installation via pip

We suggest you use Anaconda if you don't have a favourite Python installed yet. We also recommend installing the code in a virtual environment (see below in the "from source" sections).

A pip distribution is available and can be installed as follows:

pip install numpy scipy
pip install herdingspikes

Note: HerdingSpikes is tested on Python 3.5 and above. It may work on Python 3.0-3.4.

To install from source, clone this repository and follow the instructions below.

Linux/Mac - from source

We suggest you install the code in a virtual environment. You can create one by running

python3 -m venv --system-site-packages desired/location/HS2venv
source desired/location/HS2venv/bin/activate

You can omit --system-site-packages if you don't want to use the local versions of common Python libraries. You will need to activate whenever you're using the module.

The module can automatically be installed, including all dependencies, by running

pip install numpy scipy
python setup.py install

Windows - from source

1. Creating a Python virtual environment

Option 1: GUI

Once Anaconda is installed, create and activate a virtual environment called HS2env. This can be done with the Anaconda Navigator per mouse click. To make sure numpy and Cython are available, type

conda install -n C:\Users\HS2env numpy
Option 2: Command line (from source)

Alternatively, open the Anaconda Prompt and type:

conda search "^python$"

This will display a list of available python versions. Here we choose 3.6.5:

conda create -n C:\Users\HS2env python=3.6.5 anaconda

This environment should be activated every time HS2 is used with the command

conda activate C:\Users\HS2env

To make sure numpy is available, type

conda install -n C:\Users\HS2env numpy

2. Installing a C++ Compiler

HS2 contains fast C++ code, which requires a compiler. If you don't have a C++ compiler installed, the easiest solution is to download and install the Microsoft Visual Studio Build Tools: https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017.

3. Obtaining and installing HS2

Getting the code

Either download and uncompress: https://github.com/mhhennig/HS2/archive/master.zip

Or install git from https://git-scm.com/download/win. Then open a command prompt and type

git clone https://github.com/mhhennig/HS2.git

This will create a folder HS2 in the current directory. Note that updates can now be simply retrieved by typing git pull.

Install

To install, go to the HS2 directory, e.g.

cd HS2

and type

python setup.py install

Now HS2 will be available in the current virtual environment.

Example code

Example code for the different supported systems is in the folder notebooks. These can be run without installing HS2 system-wide, but requires to run python setup.py build_ext --inplace in the HS2 directory. Next, run jupyter notebook and navigate to the directory to try the code. Each notebook will download a short segment of raw data.

Go here for documentation. A worked example for Biocam data is here.

Contact

The herders are based at the School of Informatics, University of Edinburgh. Contact us here, we are happy to help.

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

herdingspikes-0.3.100.tar.gz (373.7 kB view details)

Uploaded Source

Built Distribution

herdingspikes-0.3.100-cp310-cp310-macosx_11_0_arm64.whl (381.6 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

File details

Details for the file herdingspikes-0.3.100.tar.gz.

File metadata

  • Download URL: herdingspikes-0.3.100.tar.gz
  • Upload date:
  • Size: 373.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.0

File hashes

Hashes for herdingspikes-0.3.100.tar.gz
Algorithm Hash digest
SHA256 81db14fffa0b565e98a2e009d0e59eb53bab0e7579a7d39c77de2017417b6cba
MD5 570c60cc444158f7724406e8f43bc19b
BLAKE2b-256 09252c7d23bf8f96f64dd81718454194012acb809ed20aabbdfbef783ef91370

See more details on using hashes here.

Provenance

File details

Details for the file herdingspikes-0.3.100-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

  • Download URL: herdingspikes-0.3.100-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 381.6 kB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.0

File hashes

Hashes for herdingspikes-0.3.100-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04e389a6ad5ff6fcabef2af9787a2d0198b59b7ce46a7dc4f40ef424581cfa48
MD5 8e27201eba49391288c45cf593b4efab
BLAKE2b-256 fb1c016523a8a222ce0b03ddb63648019176ba96aabb658ffba262898ab9ea09

See more details on using hashes here.

Provenance

Supported by

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