-
Notifications
You must be signed in to change notification settings - Fork 1
Home
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. Currently, three modes of data reduction and display are supported.
See Processing Pipeline for an overview and description of the processing pipeline.
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.
Spoke's internal processing uses data buffers that use one or both of the following indexing modes:
- Local Indexing Local Indexing occurs when arrays in Spoke use zero offsets in the buffer. That is, the first element in the buffer is equal to "zero time" relative to the current operation in the code.
- Global Indexing To understand Global Indexing, you must know that SpikeGLX transmits information to Spoke using a global data counter, where t=0 is equal to the time at which the acquisition was started. In these cases, the first element in a globally-indexed buffer is equal to the time at which that data was acquired by SpikeGLX.
For example, if array fullDataBuffer has 1000 elements, and its first element was captured at SpikeGLX's counter value of 10000, the first element has a Local Index of 1 (since MATLAB is 1-indexed), while its Global Index is 10000.