SpikeGLX Download Page

Synchronized acquisition from imec neural probes and NI-DAQ devices.

  • Get compiled apps, support and help stuff on this page.
  • See what's new on the site here.
  • The source code repo is here.

This site supports prototype and currently shipping commercial products.
The latest commercial PXI-based components are:

  • Hardware: Neuropixels 1.0 probes (also called phase3B2).
  • Software: SpikeGLX 3.0 (also called phase30).

What Is SpikeGLX?

SpikeGLX is a recording system for extracellular neural probes. The emphasis is on concurrent synchronous recording from high channel count probes together with numerous auxiliary analog and digital channels:

  • Concurrent, synchronized acquisition from imec probes, Oneboxes and NI-DAQ devices.
  • Supports all Neuropixels probe generations and types.
  • Supports HHMI/Whisper system.
  • Flexible visualization, filtering and sorting tools.
  • Programmable triggering.
  • Remote control and extensibility via C++ or MATLAB.
  • Powerful offline viewing and editing.

System Requirements

(What to Buy)

Requirements differ according to platform:

Important!: The enclustra drivers required for PXI do not work with AMD-based computers. The PXI-based imec hardware can only run on computers using Intel CPUs and chipsets.

Important!: Older imec modules (shipped before Q2 2023) are programmed to work only in X4 and higher chassis slots. Learn more about this issue on the site's Firmware tab.

Latest Application Downloads

SpikeGLX 3.0 (PXI, all probe types later than 3A):

Latest release highlights:

  • Replaces all previous releases.
  • Supports all probes.
  • Does whole probe activity surveys.
  • Has cool graphical site selection tools.
  • Supports the (now separate) MATLAB and C++ remote SDKs.
  • Has many GUI enhancements and better help.

Important: Please read the README file for instructions regarding imec firmware versions.

Xilinx Kintex versions not covered by 3.0:

Suggested organization: Create folder 'SpikeGLX' on your desktop or C:\ then download/unzip associated stuff into it. It's fine to have several versions there as long as you run one at a time:


PXI Enclustra Drivers

These required driver files are not included in your SpikeGLX release.

  1. Click the link below for your Windows OS version.
  2. Unzip the folder into your local folder of SpikeGLX-related stuff.
  3. Follow the installation ReadMe in the download.

Terminology: 'Enclustra' is a company that markets other vendor's FPGAs along with development and support tools. There are several FPGAs used in the Neuropixels hardware, including a Xilinx Zynq model, often referred to as 'the enclustra'.

Important!: The enclustra drivers required for PXI do not work with AMD-based computers. The PXI-based imec hardware can only run on computers using Intel CPUs and chipsets.

Remote Control/Scripting SDK

SDK = Software Development Kit
API = Application Programming Interface

SpikeGLX can be driven in real time by your own remote Windows or Linux application. The API uses the TCP/IP protocol. Your custom application can run on a separate computer (on the same network as SpikeGLX) or on the same computer. The API allows you to:

  • Set/get parameters.
  • Start/stop runs.
  • Fetch data with low latency (<4 ms on same computer).
  • Do many things you can do from the SpikeGLX GUI.

There are two SDKs:

  • SpikeGLX-MATLAB-SDK : For MATLAB programs.
  • SpikeGLX-CPP-SDK : For C++, C, C#, Python.

Get these at the source code repo here.

HelloSGLX (Windows)

The above SDKs are full featured and support developers writing in MATLAB, C++, C, C# and Python. If you are writing in anything else, you can use HelloSGLX instead. This is a command-line application that stands in between your script and SpikeGLX. For each command or query, your script uses its shell commands to launch HelloSGLX as a separate process. This is too slow for real-time data interaction, but still supports easy integration of SpikeGLX into an automated workflow. You can get/set run parameters and start/stop runs and file writing. Get it here.

Note that all of these SDKs require SpikeGLX 20220101 or later.

Command-line Tool Installation

  • CatGT
  • TPrime
  • NIScaler
  • C_Waves
  • OverStrike

These come as zip files. To install one:

  1. Extract the contained folder to any destination you like.
  2. Keep the folder contents together, as you do with the SpikeGLX folder.
  3. Read the contained ReadMe.txt for instructions.
  4. Look at the runit.bat example batch script.


CatGT is a command-line tool that does the following offline operations on SpikeGLX output files (all probe types):

  • Optionally join trials with given run_name and index ranges [ga,gb] [ta,tb]...
  • ...Or run on any individual file.
  • Optionally apply demultiplexing corrections.
  • Optionally apply band-pass and CAR filters.
  • Optionally edit out saturation artifacts.
  • By default extract tables of sync waveform edge times to drive TPrime.
  • Optionally extract tables of other nonneural event times to be aligned with spikes.
  • Optionally join the above outputs across different runs (supercat feature).
  • CatGT: Tshift, CAR, Gfix


TPrime is a command-line tool that maps event times (all probe types):

  • Map time from one SpikeGLX data stream to any other.
  • Translate all events to a single common timeline.
  • Uses sync edges to achieve 1 to 2 sample accuracy.
  • Maps TTL events extracted using CatGT.
  • Maps spike times from any sorter.
  • Sync: Aligning with Edges.

Post-processing Tools

NIScaler command-line tool to calibrate/rescale NI analog voltages acquired with SpikeGLX versions earlier than 20220101. SpikeGLX versions 20220101 and later automatically acquire scaled data.

Note: Only the Windows NIScaler tool can scan NI hardware and create calibration files. Both tools can apply calibration files to existing runs.

Measured correction size: {6133=0%, 6363=5%, 6341=7%}.

MATLAB and Python tools for parsing SpikeGLX meta and binary datafiles (supports 3A, 3B1, 3B2, 20).

MATLAB and Python tools that augment SpikeGLX metadata:

  • Generates channel map files needed by Kilosort and JRClust (all SpikeGLX versions).
  • Makes SpikeGLX data compatible with SpikeInterface (needed for versions prior to 20230326).
  • Works for all probe types.

Average cluster waveforms and statistics command-line tool. This can be run separately like CatGT or used with ecephys_spike_sorting.

Jennifer Colonell's version of the Allen Institute ecephys_spike_sorting pipeline. This Python script-driven pipeline chains together: CatGT, KS2, Noise Cluster Tagging, C_Waves, QC metrics, TPrime.

Overwrite nasty parts of your binary data with zeros using OverStrike. This helps remove artifacts that are too tricky for CatGT.

Interesting Map Files


Related help:

Metadata Guides

Descriptions of metafile items for each phase:

Questions or Problems?

1) For general How-To questions please consult the help documents and videos on this site, or pose your question to the Neuropixels slack channel so everyone can learn together.

2) If the community can't help, try emailing me directly. I'm also happy to hear about new feature requests, and very eager to hear about suspected bugs. This is the best way to let me know there's a possible issue without causing alarm in the whole community. You can get my email from the About Box in the SpikeGLX application.

3) As a last resort you can register your observations of serious bugs/mistakes/errors using the SpikeGLX issue list on GitHub.


How-to Videos


Use is subject to Janelia Research Campus Software Copyright 1.2 license terms: http://license.janelia.org/license.

QLed components are subject to GNU Library GPL v2.0 terms, which are described here: https://github.com/billkarsh/SpikeGLX/blob/master/QLed-LGPLv2-LICENSE.txt.