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!: Currently shipping imec modules 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: To use this release you must first update your module firmware, which is included in the download. Please read the README file for instructions.

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:

SpikeGLX\
    Release_v20201103-phase30.zip
    Release_v20200520-phase3B2.zip
    Release_v20201103-phase30\
    Release_v20200520-phase3B2\
    Drivers\
        Enclustra_Windows_10\
    Tools\
    Etc\

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

Note:
SDK = Software Development Kit
API = Application Programming Interface

SpikeGLX can be driven in real time by your own remote C++ or MATLAB 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 (<5 ms on same computer).
  • Do many things you can do from the SpikeGLX GUI.

Before SpikeGLX version 20220101 the MATLAB SDK was included in every SpikeGLX download package.

As of SpikeGLX version 20220101 the C++ and MATLAB SDKs have been made separate downloads available at the source code repo here.

Note that these SDKs require SpikeGLX 20220101 or later.


Command-line Tool Installation

  • CatGT
  • TPrime
  • C_Waves

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

CatGT is a command-line tool that does the following offline operations (all imec phases):

  • 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 global 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

CatGT 3.3 is the latest and greatest but uses a new command syntax for extractors.

CatGT 2.5 is the newest version that uses the old extraction syntax. CatGT 2.5 will be retired soon.


TPrime

TPrime is a command-line tool that maps event times (all imec phases):

  • 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 meta and binary datafiles (supports 3A, 3B1, 3B2, 20).

MATLAB tool that converts metadata to JRClust or Kilosort probe geometry data (supports 3A, 3B1, 3B2, 20).

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.


Interesting Map Files

<BR/>

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.


Help


How-to Videos


Licensing

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.

fin