Seizure Seeker ⚡

Pick an EEG file (.edf or .csv), then select Analyze. The algorithm scans each channel for periods of elevated signal energy. It uses short overlapping windows, a robust baseline, and a threshold you can set manually or let the algorithm choose per-channel. Channels can also be fused with K-of-N consensus to reduce single-lead artifacts.

(auto-suggested after load)

Cheat sheet (read this first)

Quick walkthrough (what you will do)

  1. Load your file - For CSV, set the sampling rate. For EDF, labels and rates are read automatically.
  2. Choose sensitivity - Start with Auto-Z (per-channel) at Balanced. If no segments appear, try Sensitive. If there are too many, use Conservative or raise Z after turning Auto-Z off.
  3. Decide on fusion - If there are multiple channels, enable Fuse (K-of-N). Use the suggested K first; increase K if artifacts remain.
  4. Run analysis - The table lists fused segments (if enabled) and per-channel segments.
  5. Export - Use Download as CSV to export start, end, and duration.

How the algorithm works

This tool and the algorithm were built by multiple students for research and learning. It helps locate EEG time ranges that warrant a closer look. It does not diagnose.

Files you can use

What a channel is

A channel is one electrode measured over time. Because true events may appear on some channels and not others, the algorithm analyzes channels separately and can optionally combine them later.

Under the hood (per channel)

  1. Windowing - One second windows with 0.5 second steps provide overlap so edges are not missed.
  2. Energy measure - Root-mean-square (RMS) is computed per window as a simple amplitude proxy.
  3. Robust baseline - The quietest half of RMS values is used to estimate a median and a median absolute deviation (MAD), which are stable to outliers.
  4. Threshold - threshold = median + Z x MAD. With Auto-Z, the algorithm selects Z so about 0.2-1% of frames exceed threshold (controlled by Aggressiveness).
  5. Segments - Consecutive above-threshold windows form runs. The algorithm merges runs separated by less than or equal to Merge gap and removes runs shorter than Min duration.

Optional: channel fusion (K-of-N)

Per-channel runs are mapped to a shared timeline and votes are counted. A time point is active only if at least K channels agree. Those voted frames are then converted back into segments using the same merge and duration rules.

Tuning tips

Reading the results

Notes and limitations