GUI for Neuropixels preprocessing, curation, quality metrics, and post-processing.
- Add AP
.binfiles by drag/drop, file picker, or folder scan. - Queue-based execution with live log/progress.
- Integrated
ecephys_spike_sortingmodules:catGT_helper(with retry logic and failure gating)ks4_helper/kilosort_helperkilosort_postprocessingnoise_templatesmean_waveformsquality_metricstPrime_helper
- Auto-generated input/output JSON per run.
- CatGT success is enforced before downstream ecephys spike sorting when CatGT is enabled.
- Built-in CatGT and TPrime string builders so users can generate common command fragments, including analog/digital and bit-field CatGT extractors, from structured inputs instead of typing raw flags.
- Launch
phy template-gui params.py. - Bombcell thresholds editor with:
- live preview of labels
- histogram view of selected metric + threshold lines
Apply settings+ optional live update- auto quality-metrics computation if
metrics.csvis missing Run py_bombcellto compute BombCell metrics + plots (bombcell/templates._bc_qMetrics.csv)
- Run/re-run quality metrics.
- Optional
Run py_bombcellbackend for BombCell-native quality metrics and plots. - Interactive table + filter + metric histogram.
- Auto-compute and auto-plot workflow (no separate compute buttons).
- Unit list with filters and
Show good units only. - Export selected dataset units to nested HDF5 (
all unitsorgood units only). - Unit quality side panel (labels + key metrics).
- Unit basics:
- raster for selected units
- optional instantaneous firing-rate overlay
- mean waveform with
mean +/- SEM
- Raw explorer with settings-driven refresh and channel/depth Y-axis modes.
- Correlogram with histogram + alternate line-style cross-correlogram view.
- Condition PSTH and Network views auto-refresh on relevant changes.
- App-level controls:
- Light/Dark plot theme
- Grid on/off
- Applied across curation, quality metrics, and post-processing plots.
Core Python packages are listed in requirements.txt:
PySide6pyqtgraph>=0.14.0,<0.15numpypandasscipymatplotlibtqdmnumbascikit-learnimbalanced-learnstatsmodelsnetworkxpsutiljoblibh5pyseaborncachecacheupsetplotpyarrowipythoncmcrameripillow
GPU-backed filtering/whitening in npyx also needs CuPy. For NVIDIA systems with a CUDA 12 driver/runtime, install:
conda install -c conda-forge cupy cuda-version=12
Or, in an existing environment:
python -m pip install cupy-cuda12x
Example with conda:
conda create -n neuropygui python=3.10 -y
conda activate neuropyguiOr from the bundled environment file:
conda env create -f environment.yml
conda activate neuropyguiFrom the project root (this folder):
pip install -r requirements.txtIf you are installing into an older Python 3.9 environment such as ks4_ece, keep in mind that pyqtgraph 0.14 requires Python 3.10+. The bundled environment.yml already targets Python 3.10 and is the recommended path for rebuilding the app or packaging a new .exe.
If you want full preprocessing/curation stack:
pip install phyecephys_spike_sorting and py_bombcell are bundled inside this app folder.
No external source checkout is required.
External tool dependencies that must still be installed separately:
CatGTTPrimeC_Waves-winKilosort4(Python package/runtime and compatible environment)
Configure these paths in the Preprocessing tab:
CatGT executable dirTPrime executable dirC_Waves executable dirKS4 repository dirKilosort temp dir
From the project root (this folder):
python main.pyIf you have multiple Python installations on PATH, prefer:
conda run -n ks4_ece python main.py- Preprocessing expects SpikeGLX-style AP files (
*.imecX.ap.bin). - For curation previews,
metrics.csvis loaded from the selected Kilosort folder. - For post-processing quality columns and good-unit filtering, labels are read from:
bombcell_labels.csv(preferred)cluster_group.tsv(fallback)
