Analyze Electrooculography (EOG)#

This example can be referenced by citing the package.

This example shows how to use NeuroKit to analyze EOG data.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import neurokit2 as nk
# This "decorative" cell should be hidden from the docs once this is implemented:
# https://github.com/microsoft/vscode-jupyter/issues/1182 
plt.rcParams['figure.figsize'] = [15, 5]  # Bigger images
plt.rcParams['font.size']= 14

Explore the EOG signal#

Let’s load the example dataset corresponding to a vertical EOG signal.

eog_signal = nk.data('eog_100hz.csv')

nk.signal_plot(eog_signal)
../../_images/040ab47e64d799cb7876f5cb3db1f3ad7edc741d02b7e1ff0cd97b56432ed94a.png

Let’s zoom in to some areas where clear blinks are present.

nk.signal_plot(eog_signal[100:1700])
../../_images/256c261afa6d862460f36e4c0cbd001e476f1d7fc251159d5535ebe69fae5500.png

Clean the signal#

We can now filter the signal to remove some noise and trends.

eog_cleaned = nk.eog_clean(eog_signal, sampling_rate=100, method='neurokit')

Let’s visualize the same chunk and compare the clean version with the original signal.

nk.signal_plot([eog_signal[100:1700], eog_cleaned[100:1700]], 
               labels=["Raw Signal", "Cleaned Signal"])
../../_images/8a914754e87a58fbe40b1899af322ef16c8264410db011b676245d57735c3de9.png