scientific-skills/neurokit2/references/eog.md
Electrooculography (EOG) measures eye movements and blinks by detecting electrical potential differences generated by eye position changes. EOG is used in sleep studies, attention research, reading analysis, and artifact correction for EEG.
Automated EOG signal processing pipeline.
signals, info = nk.eog_process(eog_signal, sampling_rate=500, method='neurokit')
Pipeline steps:
Returns:
signals: DataFrame with:
EOG_Clean: Filtered EOG signalEOG_Blinks: Binary blink markers (0/1)EOG_Rate: Instantaneous blink rate (blinks/min)info: Dictionary with blink indices and parametersMethods:
'neurokit': NeuroKit2 optimized approach (default)'agarwal2019': Agarwal et al. (2019) algorithm'mne': MNE-Python method'brainstorm': Brainstorm toolbox approach'kong1998': Kong et al. (1998) methodPrepare raw EOG signal for blink detection.
cleaned_eog = nk.eog_clean(eog_signal, sampling_rate=500, method='neurokit')
Methods:
'neurokit': Butterworth filtering optimized for EOG'agarwal2019': Alternative filtering'mne': MNE-Python preprocessing'brainstorm': Brainstorm approach'kong1998': Kong's methodTypical filtering:
EOG signal characteristics:
Detect eye blinks in EOG signal.
blinks, info = nk.eog_peaks(cleaned_eog, sampling_rate=500, method='neurokit',
threshold=0.33)
Methods:
'neurokit': Amplitude and duration criteria (default)'mne': MNE-Python blink detection'brainstorm': Brainstorm approach'blinker': BLINKER algorithm (Kleifges et al., 2017)Key parameters:
threshold: Amplitude threshold (fraction of max amplitude)
Returns:
'EOG_Blinks' key containing blink peak indicesBlink characteristics:
Low-level blink detection with multiple algorithms.
blinks_dict = nk.eog_findpeaks(cleaned_eog, sampling_rate=500, method='neurokit')
Use cases:
Extract characteristics of individual blinks.
features = nk.eog_features(signals, sampling_rate=500)
Computed features:
Use cases:
Compute blink frequency (blinks per minute).
blink_rate = nk.eog_rate(blinks, sampling_rate=500, desired_length=None)
Method:
Typical blink rates:
Automatically select event-related or interval-related analysis.
analysis = nk.eog_analyze(signals, sampling_rate=500)
Mode selection:
Analyze blink patterns relative to specific events.
results = nk.eog_eventrelated(epochs)
Computed metrics (per epoch):
EOG_Blinks_N: Number of blinks during epochEOG_Rate_Mean: Average blink rateEOG_Blink_Presence: Binary (any blinks occurred)Use cases:
Analyze blink patterns over extended periods.
results = nk.eog_intervalrelated(signals, sampling_rate=500)
Computed metrics:
EOG_Blinks_N: Total number of blinksEOG_Rate_Mean: Average blink rate (blinks/min)EOG_Rate_SD: Blink rate variabilityEOG_Duration_Mean: Average blink duration (if available)EOG_Amplitude_Mean: Average blink amplitude (if available)Use cases:
Visualize processed EOG signal and detected blinks.
nk.eog_plot(signals, info)
Displays:
Standard configurations:
Horizontal EOG (HEOG):
Vertical EOG (VEOG):
Sleep EOG:
EEG contamination removal:
Electrode issues:
Artifacts:
Saturation:
Standard workflow:
# 1. Clean signal
cleaned = nk.eog_clean(eog_raw, sampling_rate=500, method='neurokit')
# 2. Detect blinks
blinks, info = nk.eog_peaks(cleaned, sampling_rate=500, method='neurokit')
# 3. Extract features
features = nk.eog_features(signals, sampling_rate=500)
# 4. Comprehensive processing (alternative)
signals, info = nk.eog_process(eog_raw, sampling_rate=500)
# 5. Analyze
analysis = nk.eog_analyze(signals, sampling_rate=500)
EEG artifact correction workflow:
# Option 1: Regression-based removal
# Identify EOG components from cleaned EOG signal
# Regress out EOG from EEG channels
# Option 2: ICA-based removal (preferred)
# 1. Run ICA on EEG data including EOG channels
# 2. Identify ICA components correlated with EOG
# 3. Remove EOG components from EEG data
# NeuroKit2 integrates with MNE for this workflow
EEG artifact correction:
Sleep staging:
Attention and cognitive load:
Fatigue and drowsiness monitoring:
Reading and visual processing:
Neurological disorders:
Affective and social cognition:
Human-computer interaction:
Blinks:
Saccades:
Smooth pursuit:
Fixations:
Note: Detailed saccade/fixation analysis typically requires eye tracking (infrared, video-based). EOG useful for blinks and gross eye movements.
Blink rate:
Blink duration:
Blink amplitude:
Temporal patterns: