SpikeGLX
Highlights, hints and tips
UCL Course 10/22/2025
Outline
Today: 11 year anniversary since took over ‘SpikeGL’ from Calin Culianu.
Thanks Calin for great head start!!!
Not an introductory talk in 2025, rather:
Point to great introductory talk from 2024
Point to great introductory tutorials, videos and docs online
Show some new stuff
Site selection (IMRO tables)
How/where to choose boxes effectively
On the agenda
SpikeGLX Ecosystem (download page)
SpikeGLX Acquisition, Offline FileViewer
Remote SDKs Remote control / scripting
Postprocessing tools maintained with SpikeGLX; aware of all SpikeGLX formats, settings, probe types.
CatGT Filter, Remove artifacts, Join/split runs, Extract TTL events => Feed TPrime
TPrime Aligner = Translate event time from stream to stream
OverStrike Zero out artifacts
C_Waves Fast mean waveform calculator
DateFile_Tools Roll your own analysis
MetaToCoords Channel maps for Kilosort, SpikeInterface, JRClust
ecephys Pipeline that runs the above and Kilosort in one package
Jennifer Colonell modified Allen Inst (Josh Siegle) version of ecephys for SpikeGLX data
Resources (all free, open source)
Download page, its all here: https://billkarsh.github.io/SpikeGLX/
Get the latest versions: bug fixes, improvements
Quick-ref: tour all the main features
Tutorials: new!
Videos
Manuals and help documents
Metadata guides
https://billkarsh.github.io/SpikeGLX/
Hardware help:
Soldering, Sharpening
Setup/install docs (Quickstarts):
PXI, OneBox, Quadbase
Intro to SpikeGLX:
Tutorials, UCL Course 2024, Sync with edges
Go deeper:
UserManual, Dirs and Files, Metadata
CatGT:
New ReadMe table of contents
Help me:
Slack channel invite link
New Stuff Quicker Browsing
Gone: Propagate y-scale to all channels
v20250930
Immediately play on click
New Stuff Waveplayer
Mini program language to create/save stim
waveforms:
Basic elements: level, ramp, sine
Loop any sequence
Nested loops
Load (waveplan or any binary) and play:
Control using remote script
Play from OneBox
Play from NI
Aside: Scripting SDKs (Software Development Kit)
C++
C
C#
Python
MATLAB
Control everything
Get real-time data, extend SpikeGLX feature set
Note: C++ SDK includes {C, C#, Python}
Mean 4.8 Mean 3.6
New Stuff Survey Mode Enhancement
Controls:
Disable gbldmx
Only apply to rows [0..N]
Better visualization of tissue/buffer boundary
CatGT can do this with maxZ option.
Cleaner activity sampling: farther from bank transition regions.
Better LFP measurement: account for 1/F filter hysteresis.
Programmable initial settle time.
Export any heatmap as a text table.
New Stuff Error Notifications
If the computer is under stress (POP error), or a connector is
loose {COUNT, SYNC}, error flags are set at that time.
SpikeGLX has always recorded these as bits in the SY word of
{probe, OneBox} data streams.
Since 2023 SpikeGLX records error flag totals in metadata and
shows this in the Metrics window (if you choose to look).
Now we actively notify you of these errors:
Metrics window automatically opens if they occur.
FileViewer logs a message if you open a run with errors.
CatGT also makes log messages.
New Stuff Missed Samples
Some of these error types cause missing samples but not in a
tidy 1-1 way. Rather, we now monitor sample timestamps to
identify gaps, and take the following actions:
We invent a new SY flag (bit-11) signifying missed samples.
We replace any gaps with zeros to keep the length right.
We tabulate insertions of zeros in a new file type.
If there are missed samples, these are noted in a file at the
top-level data directory named:
runname.missed_samples.imecj.txt (probe-j)
runname.missed_samples.obxj.txt (OneBox ADC stream-j)
Each entry in the file records the start sample# of a run of
zeros, and how many zeros are inserted there.
New Stuff Tech”
Components classified by tech.
Tech = {STD, QB, OPTO, NXT}.
{Basestation, firmware, headstage, probe} -- all get a tech label.
SpikeGLX ensures you are matching tech correctly:
Firmware dialog
Detect
How to Select Sites
Double-click here to open the IMRO editor
1. Set rows/box
2. Set width {full, half} shank
3. Click to place centers of boxes
4. Resize; shift-click to remove box
5. When sum = rqd, save as a file
But this is much cooler
when you can see the
activity on the shank…
And you can…
1. Online in ShankViewer
2. Offline in FileViewer
ShankViewer Edit tab!!
IMRO Editor
Green boxes
select sites
for readout
Important:
You can load an
IMRO; previously
created with
meaningful context
Right-click to see
more commands
Note:
Anatomy simulated for
illustration purposes
Anatomy
stuff is on the
ShankViewer
Viewtab.
Survey Run
This samples the whole probe bank by bank
and writes a single run file with all data
appended. In offline FileViewer, review
activity hotspots and save optimized IMRO
File for new runs.
1. Check box
2. Allow amplifier settling time
3. How long per bank
4. Run
5. Open with FileViewer
Note: You can perform stimulation and
record TTL events during the data
collection. Use FileViewer Link feature to
time-lock these data to the neural survey.
Scroll
Select:
Average current window
Scroll through time. If desired,
link to other streams (Ctrl+L).
The current bank in the survey is
the non-grey area on the Shank
Viewer.
Integrate
1. ‘Sample whole survey
2. Click Update
Activity of selected type is shown
for whole probe.
Click on the Shank Viewer to
scroll graphs to that section of
the survey.
Agenda
Site selection:
More ways to select sites in the editor
View more of the shank at one time
Split survey into spike-sortable segments
Opto-tagging survey run
PSTH viewer
Many more features
More probes: NXT, OPTO, …