Unmatched evoked activity from plot output

mne version: 0.21.dev
OS: Windows 10


Hi there,

Both plots above are showing the evoked activity on one sensor (Top) and across all gradiometers (Bottom). While it looks like the one sensor plot is normalised to mean (as zero), the gradiometer plot does it a little differently. I would like to ask if it is possible for one condition to show stronger evoked response over the other across the entire time frame (as shown in the bottom plot)? Or is this the result of an error somewhere either from my data or a plotting issue?

The plots were generated by:


# blanks3_all and blanks5_all are lists of evoked data of all my participants, acquired from mne.read_evokeds. 
grand_blanks3_data = mne.grand_average(blanks3_all, interpolate_bads=True, drop_bads=True)
grand_blanks5_data = mne.grand_average(blanks5_all, interpolate_bads=True, drop_bads=True)

grand_blanks3_data.crop(-0.2, 0.5)
grand_blanks5_data.crop(-0.2, 0.5)
 
grand_blanks3_data.filter(8.,70.)
grand_blanks5_data.filter(8.,70.)

evokeds = {'blank_3': grand_blanks3_data, 'blank_5': grand_blanks5_data}
 
# ch_name is the name of the single sensor for the single plot, and swapped to 'grad' for the gradiometer plot
mne.viz.plot_compare_evokeds(evokeds, colors={'blanks_5': (0,1,0), 'blanks_3': (0,0.5,0)},  picks=ch_name);

Bump. Any kind insights from anyone?

Hi – my guess is you are missing some kind of baseline correction. Did you take that into account?

Mainak

Thanks for your input! I added:

grand_blanks3_data.apply_baseline(baseline=[1.75,2.75])
grand_blanks5_data.apply_baseline(baseline=[1.75,2.75])

between cropping and filtering based on the codes above but unfortunately didn’t make any difference.

Could you try again with MNE 0.22?

Hi Richard, thanks. I’ve just updated it but unfortunately, the problem still exist.

I should add that this outlier condition is an artificially generated condition that I created based on the existing data - by sampling random intervals of an existing condition data file. All I did was create time stamps and append it onto a fresh array that follows the format of a standard events output (ie.

np.array([event time, stim chn before event, event_id])

. I did not think that this would affect the evoked output in anyway since the evoked data was not manipulated in this process. Rather, this array guides the extraction process of the evoked activity during these time stamps from the actual raw data.