def test_eog_clean(): # test with exported csv eog_signal = nk.data("eog_200hz")["vEOG"] eog_cleaned = nk.eog_clean(eog_signal, sampling_rate=200) assert eog_cleaned.size == eog_signal.size # test with mne.io.Raw raw = mne.io.read_raw_fif(mne.datasets.sample.data_path() + "/MEG/sample/sample_audvis_raw.fif", preload=True) sampling_rate = raw.info["sfreq"] eog_channels = nk.mne_channel_extract(raw, what="EOG", name="EOG") eog_cleaned = nk.eog_clean(eog_channels, sampling_rate, method="agarwal2019") assert eog_cleaned.size == eog_channels.size # compare with mne filter eog_cleaned_mne = nk.eog_clean(eog_channels, sampling_rate, method="mne") mne_clean = mne.filter.filter_data( eog_channels, sfreq=sampling_rate, l_freq=1, h_freq=10, filter_length="10s", l_trans_bandwidth=0.5, h_trans_bandwidth=0.5, phase="zero-double", fir_window="hann", fir_design="firwin2", verbose=False, ) assert np.allclose((eog_cleaned_mne - mne_clean).mean(), 0)
def test_eog_findpeaks(): eog_signal = nk.data('eog_100hz') eog_cleaned = nk.eog_clean(eog_signal, sampling_rate=100) # Test with Neurokit nk_peaks = nk.eog_findpeaks(eog_cleaned, sampling_rate=100, method="neurokit", threshold=0.33, show=False) assert nk_peaks.size == 19 # Test with MNE mne_peaks = nk.eog_findpeaks(eog_cleaned, method="mne") assert mne_peaks.size == 44 # Test with brainstorm brainstorm_peaks = nk.eog_findpeaks(eog_cleaned, method="brainstorm") assert brainstorm_peaks.size == 28 blinker_peaks = nk.eog_findpeaks(eog_cleaned, method="blinker", sampling_rate=100) assert blinker_peaks.size == 14
columns=["loc", "a", "scale", "Participant", "Task"]) params_scr = pd.DataFrame( columns=["time_peak", "rise", "decay1", "decay2", "Participant", "Task"]) for i in range(4): print("Task: " + str(i)) data = pd.read_csv("../../data/eogdb/eogdb_task" + str(i + 1) + ".csv") for j, participant in enumerate(np.unique(data["Participant"])[1:3]): print(" - " + str(j + 1)) segment = data[data["Participant"] == participant] signal = segment["vEOG"] cleaned = nk.eog_clean(signal, sampling_rate=200, method='neurokit') blinks = nk.signal_findpeaks(cleaned, relative_height_min=1.5)["Peaks"] events = nk.epochs_create(cleaned, blinks, sampling_rate=200, epochs_start=-0.4, epochs_end=0.6) events = nk.epochs_to_array(events) # Convert to 2D array x = np.linspace(0, 100, num=len(events)) p_gamma = np.full((events.shape[1], 3), np.nan) p_bateman = np.full((events.shape[1], 3), np.nan) p_scr = np.full((events.shape[1], 4), np.nan)