def test_emg_eventrelated(): emg = nk.emg_simulate(duration=20, sampling_rate=1000, burst_number=3) emg_signals, info = nk.emg_process(emg, sampling_rate=1000) epochs = nk.epochs_create(emg_signals, events=[3000, 6000, 9000], sampling_rate=1000, epochs_start=-0.1, epochs_end=1.9) emg_eventrelated = nk.emg_eventrelated(epochs) # Test amplitude features no_activation = np.where(emg_eventrelated["EMG_Activation"] == 0)[0][0] assert int( pd.DataFrame(emg_eventrelated.values[no_activation]).isna().sum()) == 4 assert np.alltrue( np.nansum(np.array(emg_eventrelated["EMG_Amplitude_Mean"])) < np.nansum(np.array(emg_eventrelated["EMG_Amplitude_Max"]))) assert len(emg_eventrelated["Label"]) == 3 assert len(emg_eventrelated.columns) == 7 assert all(elem in [ "EMG_Activation", "EMG_Amplitude_Mean", "EMG_Amplitude_Max", "EMG_Amplitude_Max_Time", "EMG_Bursts", "Label", "Event_Onset" ] for elem in np.array(emg_eventrelated.columns.values, dtype=str))
def test_emg_eventrelated(): emg = nk.emg_simulate(duration=20, sampling_rate=1000, burst_number=3) emg_signals, info = nk.emg_process(emg, sampling_rate=1000) epochs = nk.epochs_create(emg_signals, events=[3000, 6000, 9000], sampling_rate=1000, epochs_start=-0.1, epochs_end=1.9) emg_eventrelated = nk.emg_eventrelated(epochs) # Test amplitude features no_activation = np.where(emg_eventrelated["EMG_Activation"] == 0)[0][0] assert int( pd.DataFrame(emg_eventrelated.values[no_activation]).isna().sum()) == 4 assert np.alltrue( np.nansum(np.array(emg_eventrelated["EMG_Amplitude_Mean"])) < np.nansum(np.array(emg_eventrelated["EMG_Amplitude_Max"]))) assert len(emg_eventrelated["Label"]) == 3 # Test warning on missing columns with pytest.warns(nk.misc.NeuroKitWarning, match=r".*does not have an `EMG_Onsets`.*"): first_epoch_key = list(epochs.keys())[0] first_epoch_copy = epochs[first_epoch_key].copy() del first_epoch_copy["EMG_Onsets"] nk.emg_eventrelated({**epochs, first_epoch_key: first_epoch_copy}) with pytest.warns(nk.misc.NeuroKitWarning, match=r".*does not have an `EMG_Activity`.*"): first_epoch_key = list(epochs.keys())[0] first_epoch_copy = epochs[first_epoch_key].copy() del first_epoch_copy["EMG_Activity"] nk.emg_eventrelated({**epochs, first_epoch_key: first_epoch_copy}) with pytest.warns(nk.misc.NeuroKitWarning, match=r".*does not have an.*`EMG_Amplitude`.*"): first_epoch_key = list(epochs.keys())[0] first_epoch_copy = epochs[first_epoch_key].copy() del first_epoch_copy["EMG_Amplitude"] nk.emg_eventrelated({**epochs, first_epoch_key: first_epoch_copy})