Neuropixels probe channel configuration tool. Create IMRO files for SpikeGLX/OpenEphys and export probe configurations for Kilosort.
Problem: The OpenEphys Neuropixels Plugin can load SpikeGLX IMRO files but provides no tool to create them.
Solution: IMRO Generator lets you configure which electrodes to record from based on depth coverage, then export as IMRO files or Kilosort probe dictionaries.
The GUI lets you:
- Choose one or more recording depth ranges (0–44.16 mm) — several disjoint windows at once ("virtual banks")
- Select assignment mode (Mixed or Striped) for uniform electrode distribution
- Optionally export a partial map (only in-range channels, < 384)
- Configure gains, filters, and reference type
- Save IMRO files for OpenEphys/SpikeGLX
- Save JSON file for kilosort
- Load and modify existing IMRO configurations
For an isolated environment, create a separate conda environment, any python>3.8 (for example, 3.11) and name it for example imro
$ conda -n imro python==3.11
$ conda activate imro Installation using pip
$ pip install imro-neuropixelsRun the gui
$ imro-guiQuick Start Architecture Electrodes-channel assignment algorithm User Guide
Currently works fine with a single Neropixels1.0-NHP probe. The definitions are not hard-coded, but rather are defined in settings files. Need to add more probes to the settings/probes and test with other probes.
Don't have this functionality at the moment, but might be useful in future
example file 20mm.imro in action, as seen in OpenEphys Probe Viewer, when flashes of light (2Hz) are shown to a fixating subject, while Neuropixels1.0-NHP is inserted in a visual area.
Set boundaries according to what you Map -> Save as IMRO Map -> Save kilosort probe
- OpenEphys Neuropixels Plugin — GUI for recording with Neuropixels probes, loads IMRO files
- SpikeGLX IMRO Format — Complete IMRO specification and format documentation
- Kilosort Probe Dictionary — Format for probe configurations in Kilosort4
- Neuropixels Probe 1.0 NHP — Official probe specifications