From 1bcebd5d16d30dd89d265800ec664f07049f8f32 Mon Sep 17 00:00:00 2001 From: Rafael Mannarelli Date: Tue, 5 Mar 2024 17:28:52 -0500 Subject: [PATCH 1/2] Correction: - Change the `nSS` variable type from a pandas DataFrame to a NumPy array - Update the codebase to replace DataFrame-specific operations with equivalent NumPy functions to maintain functionality. - This modification addresses compatibility issues and optimizes data manipulation processes --- pynacollada/eeg_processing/eeg_processing.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pynacollada/eeg_processing/eeg_processing.py b/pynacollada/eeg_processing/eeg_processing.py index 062d0ec..43e0bef 100644 --- a/pynacollada/eeg_processing/eeg_processing.py +++ b/pynacollada/eeg_processing/eeg_processing.py @@ -103,26 +103,27 @@ def detect_oscillatory_events(lfp, epoch, freq_band, thres_band, duration_band, nSS = (nSS - np.mean(nSS))/np.std(nSS) nSS = nap.Tsd(t = signal.index.values, d=nSS, time_support=epoch) - # Round1 : Detecting Oscillation Periods by thresholding normalized signal + # Round 1: Detecting Oscillation Periods by thresholding normalized signal nSS2 = nSS.threshold(thres_band[0], method='above') nSS3 = nSS2.threshold(thres_band[1], method='below') - # Round 2 : Excluding oscillation whose length < min_duration and greater than max_duration + # Round 2: Excluding oscillation whose length < min_duration and greater than max_duration osc_ep = nSS3.time_support osc_ep = osc_ep.drop_short_intervals(duration_band[0], time_units = 's') osc_ep = osc_ep.drop_long_intervals(duration_band[1], time_units = 's') - # Round 3 : Merging oscillation if inter-oscillation period is too short + # Round 3: Merging oscillation if inter-oscillation period is too short osc_ep = osc_ep.merge_close_intervals(min_inter_duration, time_units = 's') osc_ep = osc_ep.reset_index(drop=True) - # Extracting Oscillation peak + # Round 4: Extracting Oscillation peak osc_max = [] osc_tsd = [] - for s, e in osc_ep.values: - tmp = nSS.loc[s:e] - osc_tsd.append(tmp.idxmax()) - osc_max.append(tmp.max()) + for i in range(len(osc_ep)): + s,e=osc_ep.loc[i] + tmp = nSS[np.argmin(np.abs(nSS.t - s)):np.argmin(np.abs(nSS.t - e))] + osc_tsd.append(tmp.t[np.argmax(tmp)]) + osc_max.append(np.max(tmp)) osc_max = np.array(osc_max) osc_tsd = np.array(osc_tsd) From e55fbb1a6de709fe172392ac2708aa087cb368ce Mon Sep 17 00:00:00 2001 From: Rafael Mannarelli Date: Tue, 26 Mar 2024 12:33:17 -0400 Subject: [PATCH 2/2] Function fix in eeg_processing.py --- pynacollada/eeg_processing/eeg_processing.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pynacollada/eeg_processing/eeg_processing.py b/pynacollada/eeg_processing/eeg_processing.py index 43e0bef..ac8c2ef 100644 --- a/pynacollada/eeg_processing/eeg_processing.py +++ b/pynacollada/eeg_processing/eeg_processing.py @@ -119,9 +119,9 @@ def detect_oscillatory_events(lfp, epoch, freq_band, thres_band, duration_band, # Round 4: Extracting Oscillation peak osc_max = [] osc_tsd = [] - for i in range(len(osc_ep)): - s,e=osc_ep.loc[i] - tmp = nSS[np.argmin(np.abs(nSS.t - s)):np.argmin(np.abs(nSS.t - e))] + + for i in osc_ep.index.values: + tmp = nSS.restrict(osc_ep.loc[[i]]) osc_tsd.append(tmp.t[np.argmax(tmp)]) osc_max.append(np.max(tmp))