[Eeglablist] Large Unexplained Differences in Power Values
Cedric Cannard
ccannard at protonmail.com
Fri Mar 12 11:52:23 PST 2021
Hi,
> clean = clean_artifacts(EEG, 'ChannelCriterion', 'off');
You should have other inputs here. I don't it rejects anything with this code.
This is the default line when using the GUI:
EEG = pop_clean_rawdata(EEG, 'FlatlineCriterion',5,'ChannelCriterion',0.8,'LineNoiseCriterion',4,'Highpass','off','BurstCriterion',20,'WindowCriterion',0.25,'BurstRejection','on','Distance','Euclidian','WindowCriterionTolerances',[-Inf 7] );
After running your code and this default line on some Biosemi data, I get the power values below. This data was already pretty clean with one bad channel and some eye blinks.
Before cleaning:
deltaPower =
25.1085
thetaPower =
13.4117
alphaPower =
3.4356
betaPower =
1.2257
gammaPower =
31.7254
After cleaning:
deltaPower =
9.4691
thetaPower =
7.5258
alphaPower =
1.7914
betaPower =
1.0055
gammaPower =
7.5847
> Looking at the plot from vis_artifacts suggests that the cleaning has removed some very noisy sections with large amplitude changes. Do you think this is enough to be causing the 10^3 difference in magnitude in the obtained power values?
Yes if your data had huge artifacts and bad channels before cleaning it, it likely explains the big difference in power values. Use the lines above and play with parameters to find satisfying thresholds for your data. Your power values after cleaning look pretty normal, inpsect the red lines displayed with vis_artifacts, there must be some big artifacts in your raw data.
Note that dB values (returned by default) are generally preferred as they are less affected by artifacts and more stable to compare across subjects and studies.
I hope this helps,
Cedric
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, March 9, 2021 1:55 AM, Naomi Heffer <nrh31 at bath.ac.uk> wrote:
> Hi there,
>
> I have been trying to calculate power in different frequency bands but I find that whether or not I clean the data using clean_artifacts before running the analysis has a very large impact on the magnitude of the power values.
>
> Here is my code below, along with the absolute power values in each of the frequency bands when (a) I clean the data before running the analysis and (b) I don't use the clean_artifacts function to clean the data. Do you have any idea why I am seeing such massive differences in magnitude? And can you suggest which of the two sets of values is likely to be more realistic?
>
> Many thanks
>
> Naomi
>
> %% 1. Opening & Importing to EEGLAB
> % Get data from .easy to EEGLAB .set/.fdt format
>
> EEG = pop_easy(filename, 1, 0,[]);
>
> % Setting the right channel locations. Reading montage file
> EEG = pop_chanedit(EEG, 'load',config,'save','mychans.loc');
>
> %% 2. Filtering
>
> % Filter data between 0.1 and 40Hz
> % High-pass filter
> EEG = pop_eegfiltnew(EEG, 0.5,[], 1690, 0, [], 0);
> % Low-pass filter
> EEG = pop_eegfiltnew(EEG, [], 35, 86, 0, [], 0);
>
> %% 3.Cleaning of continuous data
>
> clean = clean_artifacts(EEG, 'ChannelCriterion', 'off');
> vis_artifacts(clean, EEG)
>
> %% 4. Spectral Analysis
>
> [spectra,freqs] = spectopo(EEG.data(:,:,:), 0, EEG.srate, 'freqrange', [1 80], 'plotmean', 'on', 'overlap', 250);
>
> % delta=1-4, theta=4-8, alpha=8-13, beta=13-30, gamma=30-80
> deltaIdx = find(freqs>1 & freqs<4);
> thetaIdx = find(freqs>4 & freqs<8);
> alphaIdx = find(freqs>8 & freqs<13);
> betaIdx = find(freqs>13 & freqs<30);
> gammaIdx = find(freqs>30 & freqs<80);
>
> % compute absolute power
> deltaPower = mean(10.^(spectra(deltaIdx)/10))
> thetaPower = mean(10.^(spectra(thetaIdx)/10))
> alphaPower = mean(10.^(spectra(alphaIdx)/10))
> betaPower = mean(10.^(spectra(betaIdx)/10))
> gammaPower = mean(10.^(spectra(gammaIdx)/10))
>
> 1. Values with cleaning:
> deltaPower = 3.2846
> thetaPower = 2.4440
> alphaPower = 8.9593
> betaPower = 6.9579
> gammaPower = 3.3659
>
> 2. Values without cleaning:
> deltaPower = 1.5560e+03
> thetaPower = 1.3541e+03
> alphaPower = 2.7626e+03
> betaPower = 1.0275e+03
> gammaPower = 97.3422
>
>
> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.ucsd.edu
> For digest mode, send an email with the subject "set digest mime" to eeglablist-request at sccn.ucsd.edu
More information about the eeglablist
mailing list