Skip to content

Plot Triggers ​

This demo demonstrates visualizing event markers and triggers in continuous EEG data to verify timing and event sequences.

What are Triggers? ​

Triggers (also called event markers or stimulus codes) are time-stamped codes that mark when experimental events occurred during recording:

  • Stimulus presentations

  • Participant responses

  • Experimental conditions

  • Trial boundaries

  • Hardware events

  • etc.

Trigger Cleaning ​

EegFun automatically cleans triggers by default removing consecutive duplicates. For example, the raw sequence 0 0 1 1 0 0 2 2 2 0 becomes 0 0 1 0 0 0 2 0 0 0. This ensures each trigger represents a single event rather than a sustained hardware signal.

Trigger Visualization Functions ​

trigger_count:

  • Summary statistics of all trigger codes

  • Counts of each trigger type

  • Identifies missing or unexpected triggers

plot_trigger_overview:

  • Visual representation of trigger occurrences

  • Color-coded by trigger type

  • Shows distribution across recording

plot_trigger_timing:

  • Inter-trigger intervals (ITIs)

  • Timing precision verification

Use Cases ​

Quality control:

  • Verify triggers were recorded correctly

  • Confirm expected trigger counts

  • Identify missing or duplicate triggers

Timing analysis:

  • Check inter-stimulus intervals

  • Verify experimental timing

Troubleshooting:

  • Identify spurious triggers

  • Find timing drift or jitter

Filtering Triggers ​

Use ignore_triggers to exclude specific codes:

  • Filter out hardware markers

  • Remove boundary codes

  • Focus on experimental events only

Workflow Summary ​

This demo shows trigger visualization workflows:

Count Triggers ​

  • Load raw data

  • Count triggers before processing

  • Verify expected trigger codes exist

Create Data Structure ​

  • Load layout and create EegFun structure

  • Count triggers again to verify preservation

Visualize Overview ​

  • Plot trigger distribution

  • Optionally ignore certain trigger codes

  • Assess trigger patterns

Analyze Timing ​

  • Plot inter-trigger intervals

  • Verify timing consistency

  • Identify timing issues

Code Examples ​

Show Code
julia
# Demo: Trigger Visualization
# Shows trigger/event marker visualization in continuous data.

# Note: EegFun.example_path() resolves bundled example data paths.
# When using your own data, simply pass the file path directly, e.g.:
# dat = EegFun.read_raw_data("/path/to/your/data.bdf")

using EegFun
using GLMakie

# read raw data
dat = EegFun.read_raw_data(EegFun.example_path("data/bdf/example1.bdf"));

# basic trigger count from raw file
count = EegFun.trigger_count(dat)

# read and prepare layout file
layout = EegFun.read_layout(EegFun.example_path("layouts/biosemi/biosemi72.csv"));

# create EegFun data structure (EegFun.ContinuousData)
dat = EegFun.create_eegfun_data(dat, layout);

# basic trigger count from EegFun data structure
count = EegFun.trigger_count(dat)

# trigger overview
EegFun.plot_trigger_overview(dat)

# trigger overview with ignored triggers
EegFun.plot_trigger_overview(dat; ignore_triggers = [3, 253])

# trigger timing i.e, when did each trigger occur and interval between triggers
EegFun.plot_trigger_timing(dat)

# trigger timing with ignored triggers (timing interval is updated)
EegFun.plot_trigger_timing(dat; ignore_triggers = [3])

See Also ​