Acquipix

Multi-stream data recorded while performing a visual or optogenetic experiment, can be difficult and laborious to process. If your data includes stimulation, multi-channel spiking, LFPs, running speed, and pupil tracking, you will likely already have to deal with 5 independent data streams that need to be synchronized (fig. 1). Moreover, keeping track of all these different files can be a pain. That’s why we created the Acquipix repository, which does all the synchronizing and synthesizing for you. All our code is modular, open source and fully customizable, but we made sure you can also run everything out-of-the-box using only graphical user interfaces without having to write a single line of code.

Overview of Acquipix data streams
Figure 1. Technical data flowchart showing a single recording. First column from left (MATLAB (exp control)): each recording consists of one or more stimulus blocks that contain onset/offset times and stimulus data that are generated using RunExperiment.m and its dependency functions. The stimulation scripts automatically record the time stamps of the national instruments (NI) I/O card and internal stimulus times (PC times) generated by Psychtoolbox. Second column (SpikeGLX): although the NI I/O streams and IMEC neuropixels (Npx) data may appear to be monolithic, they are entirely separate data streams with independent clock times. SpikeGLX produces data streams at three different sampling frequencies: the NI I/O data, the AP channels, and the downsampled LFP channels. To synchronize these data streams, you need common pulses; i.e., connect the IMEC pulse generator to an NI I/O stream. Third column (RunEyeTracker): optionally, you can use the eye-tracker program to perform online eye-tracking and automatically synchronize your pupil tracking movie to the rest of your data. While recording, the eye tracker program periodically queries SpikeGLX for NI data stream time stamps and saves a log file containing synchronous video time stamps and NI time stamps. Moreover, you can define an ROI for luminance-based high-resolution synchronization (LED pulses). Last column (Histology): by registering your histology slices to the Allen Brain Atlas using AP_histology, SHARP-track, or a similar pipeline, you can extract your probe’s approximate location. Using the coordinate adjustment GUI you can then fine-tune the coordinates based on electrophysiological markers, such as responsiveness to experimental treatment and the across-channel spiking correlation. The RecordingProcessor allows you to easily cluster your spikes with Kilosort (1), combine and synchronize data from multiple sources (2), adjust probe coordinates (3) and automatically extract which brain area each cell was located, using the ABA API (4).

You can download Acquipix here: https://github.com/JorritMontijn/Acquipix/