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.

using EegFun
# 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")

# 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