Source code for neurokit2.eog.eog_peaks

from ..signal import signal_formatpeaks
from .eog_findpeaks import eog_findpeaks


[docs] def eog_peaks(veog_cleaned, sampling_rate=None, method="mne", **kwargs): """**Locate EOG eye blinks** Parameters ---------- veog_cleaned : Union[list, np.array, pd.Series] The cleaned vertical EOG channel. Note that it must be positively oriented, i.e., blinks must appear as upward peaks. sampling_rate : int The signal sampling rate (in Hz, i.e., samples/second). Needed for method ``"blinker"`` or ``"jammes2008"``. method : str The peak detection algorithm. Can be one of ``"neurokit"``, ``"mne"`` (requires the MNE package to be installed), or ``"brainstorm"`` or ``"blinker"``. sampling_rate : int The sampling frequency of the EOG signal (in Hz, i.e., samples/second). Needs to be supplied if the method to be used is ``"blinker"``, otherwise defaults to ``None``. **kwargs Other arguments passed to functions. Returns ------- array Vector containing the samples at which EOG-peaks occur, See Also -------- eog_clean Examples -------- .. ipython:: python import neurokit2 as nk # Get data eog_signal = nk.data('eog_100hz') eog_cleaned = nk.eog_clean(eog_signal, sampling_rate=100) * **Example 1:** NeuroKit method .. ipython:: python signals, info_nk = nk.eog_peaks(eog_cleaned, sampling_rate=100, method="neurokit", threshold=0.33, show=True) @savefig p_eog_peaks1.png scale=100% nk.events_plot(info_nk["EOG_Blinks"], eog_cleaned) @suppress plt.close() * **Example 2:** MNE-method .. ipython:: python signals, info_mne = nk.eog_peaks(eog_cleaned, method="mne") @savefig p_eog_peaks2.png scale=100% nk.events_plot(info_mne["EOG_Blinks"], eog_cleaned) @suppress plt.close() * **Example 3:** brainstorm method .. ipython:: python signals, info_brainstorm = nk.eog_peaks(eog_cleaned, method="brainstorm") @savefig p_eog_peaks3.png scale=100% nk.events_plot(info_brainstorm["EOG_Blinks"], eog_cleaned) @suppress plt.close() * **Example 4:** blinker method .. ipython:: python signals, info_blinker = nk.eog_peaks(eog_cleaned, sampling_rate=100, method="blinker") @savefig p_eog_peaks4.png scale=100% nk.events_plot(info_blinker["EOG_Blinks"], eog_cleaned) @suppress plt.close() References ---------- * Agarwal, M., & Sivakumar, R. (2019). Blink: A Fully Automated Unsupervised Algorithm for Eye-Blink Detection in EEG Signals. In 2019 57th Annual Allerton Conference on Communication, Control, and Computing (Allerton) (pp. 1113-1121). IEEE. * Kleifges, K., Bigdely-Shamlo, N., Kerick, S. E., & Robbins, K. A. (2017). BLINKER: automated extraction of ocular indices from EEG enabling large-scale analysis. Frontiers in neuroscience, 11, 12. """ peaks = eog_findpeaks(veog_cleaned, sampling_rate=sampling_rate, method=method, **kwargs) info = {"EOG_Blinks": peaks} instant_peaks = signal_formatpeaks(info, desired_length=len(veog_cleaned), peak_indices=peaks) signals = instant_peaks info["sampling_rate"] = sampling_rate # Add sampling rate in dict info return signals, info