Abstract
Decoding algorithms provide a powerful tool for understanding the firing patterns that underlie cognitive processes such as motor control, learning, and recall. When implemented in the context of a real-time system, decoders also make it possible to deliver feedback based on the representational content of ongoing neural activity. That, in turn, allows experimenters to test hypotheses about the role of that content in driving downstream activity patterns and behaviors. While multiple real-time systems have been developed, they are typically implemented with a compiled programming language, making them more difficult for users to quickly adapt for new experiments. Here we present a software system written in the widely used Python programming language to facilitate rapid experimentation. Our solution implements the state space based clusterless decoding algorithm for an online, real-time environment. The parallelized application processes neural data with temporal resolution of 6 ms and median computational latency <50 ms for medium- to large-scale (32+ tetrodes) rodent hippocampus recordings without the need for spike sorting. It also executes auxiliary functions such as detecting sharp wave ripples from local field potential data. Even with an interpreted language, the performance is similar to state-of-the-art solutions that use compiled programming languages. We demonstrate this real-time decoder in a rat behavior experiment in which the decoder allowed closed-loop neurofeedback based on decoded hippocampal spatial representations. Overall this system provides a powerful and easy-to-modify tool for real-time feedback experiments.