Neuropixel Utils is a toolkit written in Matlab for manipulating datasets collected by SpikeGLX (e.g. imec.ap.bin
files) and the results produced by Kilosort / Kilosort 2. Please note that some of this functionality is redundant with the tools found in the Cortex Lab's spikes repository, authored By Nick Steinmetz, Mush Okun, and others. Here, we prioritize an organized, easy to use, object-oriented approach to accessing, manipulating, and visualizing the data. This reduces the need to worry about metadata.
See full documentation at https://djoshea.github.io/neuropixel-utils.
Neuropixel Utils facilitates the following data processing steps:
- Load and visualize raw neuropixel data from
imec.ap.bin
andimec.lf.bin
files in Matlab - Write custom pre-processing functions to apply to raw data either by writing a copy of the raw file or modifying it in place, optionally removing specific problematic time windows in the file
- Concatenate multiple Imec data files together while matching the amplifier gains
- Run Kilosort/Kilosort2, and load the results back into Matlab after manual inspection in Phy
- Plot drift maps using code adapted from the spikes repository
- Extract waveforms for each cluster from the raw data, optionally cleaning the snippets by subtracting templates for other clusters spiking during the same time window
- Visualize cluster electrical spiking images in space and cluster locations on the probe
- Determine trial boundaries in the file, and efficiently segment Kilosort results into individual trials
Neuropixel Utils was authored by Daniel J O'Shea (@djoshea) to facilitate precision artifact removal and careful inspection of raw data traces before running Kilosort, as well as post-hoc verification that the artifacts were removed successfully.
To get started, clone the repo:
git clone https://github.com/djoshea/neuropixel-utils.git
And add it to your path in Matlab:
>> addpath('/path/to/neuropixel-utils')
Neuropixel Utils requires Matlab R2019b or later.