catniplab / NeurExpo

Visualizing neural spike trains and latent processes in real time.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NeurExpo

In neuroscience, many experimental settings call for real-time decoding of the latent processes emerging from a neural population's behavior. There exist many algorithms designed for this purpose, including online PCA, Kalman filtering, and variational joint filtering.

However, the output of these algorithms is usually high-dimensional, and restricting ourselves to visualizing the first 3 principal components is limiting. Further, raster plots of spike trains are cumbersome and difficult to interpret in the real-time setting. This software addresses these problems by allowing the user to adjust which 3 components of the latent trajectory are visualized and presenting a novel way of visualizing real-time spike trains.

Assuming there is a server-side program which reads from experimental hardware, sorts spikes, and infers a latent trajectory, we have designed a protocol for transmitting this data over a websocket and a portable browser-based GUI for visualizing it. The implementation of the server-side program will depend on the experimental hardware being used, but we have included some example scripts in python which demonstrate how to use our data transmission protocol.

Usage

Simply clone this repository and open client/home.html with your favorite browser.

You will likely have to write the server-side code yourself to fit your experimental hardware and whichever spike-sorting and latent trajectory inference algorithms you prefer. Compile and read manual/manual.tex for details on how to do this.

About

Visualizing neural spike trains and latent processes in real time.

License:MIT License


Languages

Language:JavaScript 49.2%Language:TypeScript 29.5%Language:TeX 12.9%Language:HTML 4.4%Language:Python 3.6%Language:CSS 0.4%