Additional Detectors Specification v2.6.4
Version
Version: 2.6.4
Date: 2026-03-05
Depends on: v2.6.1 (
cogpy.detect.EventDetector), v2.6.0 (cogpy.events.EventCatalog)
Overview
v2.6.4 expands the detector library beyond BurstDetector by adding:
ThresholdDetector: generic threshold-crossing detector (interval events)RippleDetector: bandpass + Hilbert envelope + z-score + dual threshold (interval events)SpindleDetector(optional): spindle-band wrapper with longer duration constraints
All detectors return EventCatalog and are compatible with visualization frontends via the event stream export API.
Components
Detection utilities
File: cogpy/core/detect/utils.py
Shared helpers for:
bandpass filter (
bandpassx)Hilbert envelope (SciPy)
safe z-scoring
run/interval finding and merging
dual-threshold interval event extraction
ThresholdDetector
File: cogpy/core/detect/threshold.py
Produces interval events by finding contiguous runs above a threshold:
direction="positive":x >= abs(threshold)direction="negative":x <= -abs(threshold)(or<= thresholdif threshold is already negative)direction="both":abs(x) >= abs(threshold)
Supports:
optional bandpass filtering
optional Hilbert envelope
optional merging by
merge_gapfiltering by
min_duration
RippleDetector
File: cogpy/core/detect/ripple.py
Pipeline:
bandpass filter (
freq_range)Hilbert envelope
z-score
dual threshold (
threshold_low,threshold_high)duration constraints (
min_duration,max_duration)
SpindleDetector (optional)
Implemented as a wrapper over RippleDetector with default spindle-band parameters (11–16 Hz) and longer duration constraints (0.5–3.0 s).
Success Criteria
Detectors are importable from
cogpy.detect.Each detector returns a valid
EventCatalog(with intervals for ripple/spindle).Unit tests cover basic detection + serialization.
Example script demonstrates running multiple detectors.