JaneliaSciComp / spoke

Live display of neural spike data for SpikeGLX software
Other
1 stars 1 forks source link

Spoke

Spoke is a MATLAB app for live selective display of neural data from high-channel-count recording systems. It offers multiple experimenter-optimized display modes based on data reduction of high-channel-count data streams. It currently supports the Neuropixels (Phase 3A and 3b) and Whisper extracellular recording systems steered by the Harris Lab at HHMI/Janelia Research Campus.

Spoke is developed & maintained by the Scientific Computing team at HHMI/Janelia, under the auspices of the Harris Lab.

Release Information

The active beta version can be accessed from the master branch. A v1.0 release is expected soon.

System Requirements

Launching Spoke

  1. Launch SpikeGLX
  2. Establish connection between Spoke to SpikeGLX
    A. Open SpikeGLX dialog 'Options/Command Server Settings...'.
    B. Click 'Enable Remote Command Server' and then click 'My Address'.
    C. (If Spoke is on separate machine) Write down the IP address; you'll need to type that into the MATLAB client code.
  3. Launch MATLAB
    A. If not done already, add root folder and subfolders to MATLAB path
  4. Launch Spoke
    A. If Spoke is on same machine; enter spoke on the MATLAB command line
    B. If Spoke is on separate machine; enter spoke('XXX.XXX.X.XXX') on the MATLAB command line

Running Spoke

Spoke currently has three modes of selective data display:

To run Spoke:

About the Implementation

Spoke is a consumer of the SpikeGLX data production software for Whisper neural recordings systems. Spoke retrieves data from SpikeGLX via its remote command interface over TCP/IP.

Spoke uses a MATLAB Timer object to process the SpikeGLX data stream one batch at a time, at a regular interval. It processes the data, reducing it and then displaying the reduced data.

See Processing Pipeline for an overview and description of the processing pipeline for each of the three modes of data reduction and display.

Spoke seeks to be as memoryless as possible. In other words, raw data is discarded as soon as it is no longer needed, i.e. not a part of the reduced data structure or needed for processing in a subsequent timer period.

Acknowledgements

We acknowledge the following important contributions beyond the GitHub records. Vijay Iyer developed the initial "alpha" version prior to GitHub tracking. Bill Karsh added an SDK to SpikeGLX to allow MATLAB applications like Spoke to access its data stream, and actively supported Spoke as a use case. Several Janelia researchers provided invaluable initial feedback and testing time for this software.