WB_EEG_prepro is a specific and stable tool to perform standardized preprocessing of continuous EEG raw data to remove a kind of artifacts (e.g. resting state EEG data), and obtain clean EEG data with REST reference. It is supported to preprocess EEG raw data with single point, average or linked LM reference. Preprocessing EEG raw data consists of:
 Quality assessment of EEG raw data first. Noting that quality assessment (QA) do NOT change the EEG raw data. If the overall data quality (ODQ) exceed a threshold (default is 80), then the preprocessing could be continue;
 Passband and notch filtering, if applicable;
 Artifact removal: EOG regression;
 Artifact removal: residual artifact removal;
 Bad channel interpolation and re-referencing to REST;
 Quality assessment of preprocessed EEG data after artifact removal;
 Marking residual bad block with unusually high or low amplitude (>6) using z-scored STD across channels, and then clean EEG data with REST reference are obtained finally.
Fig. 3: Pipeline of standardized preprocessing of continuous EEG raw data. (1) Raw EEG data with artifacts such as eye blink, eye movement etc. (2) Quality assessment of EEG raw data, automatically. If the overall data quality (ODQ) exceed a threshold (ranging from 0 100, default is 80), then the preprocessing could be continue. The EEG raw data will be assessed by kinds of methods, and bad channels will be identified at same time. More details can be seen in WB_EEG_QA. (3) Passband and notch filtering (if applicable). The data can be filtered first using Hamming windowed sinc FIR filter. (4) Artifact removal: EOG regression. A linear regression model will be utilized to remove EOG artifacts using z scored EOG channels (5) Artifact removal: residual artifact removal. The residual artifacts will be removed using common used methods. Currently, a kind of 4 common used methods are provided in the WeBrain, including ICA based Multiple Artifact Rejection Algorithm (MARA), ICA based ADJUST, robust PCA and artifact subspace reconstruction (ASR) methods. (6) Bad channel interpolation and re referencing to REST. For interpolation, reference electrode standardization interpolation technique (RESIT) and spherical spline interpolation (SSI) are provided in the WeBrain. (7) Quality assessment of preprocessed EEG data after artifact removal. (8) Marking residual bad block with unusually high or low amplitude using z scored standard deviation (STD>6) across channels. Bad blocks will be marked as label 9999 using WB_EEG_Mark. (9) Clean EEG data with REST reference are obtained finally.
seleChanns: number with indices of the selected channels (e.g. ‘[1:4,7:30]’ or ‘all’). Default is ‘all’.
EOGchanns: number with indices of the EOG channels. Default is ‘’.
thre_ODQ: threshold of overall data quality (ODQ). If ODQ ≥ a threshold, then the preprocessing could be continue. Default is 80. Noting that the quality assessment (QA) would NOT change the EEG raw data, and some default QA parameters are fixed in the preprocessing tool (window size is 1 sec, lower edge of the frequency for high pass filtering is 1 Hz, cutoff fraction of bad windows is 0.4, Z-score cutoff for robust channel deviation is 5, Z-score cutoff for noise-to-signal rate is 3 and correlation threshold is 0.6).
passband: passband of filtering. Default is ‘[1,40]’.
PowerFrequency: power frequency. Default is 50 Hz (in Chinese). Noting that in USA, power frequency is 60Hz.
keepUnselectChannsFlag = 0: do not keep unselected channels (default); keepUnselectChannsFlag = 1: keep all channels.
badChannelInterploateFlag = 0: do NOT interpolate, and if have channel locations in EEG.chanlocs, then re-referencing to REST (Dong et al., 2017; Yao, 2001);
badChannelInterploateFlag = 1 (default): interpolate the bad channels rows of EEG.data using reference electrode standardization interpolation technique (RESIT); default is using RESIT (The bad channels will be interpolated with REST reference (Dong et al., 2017; Yao, 2001));
badChannelInterploateFlag = 2: interpolate the bad channels rows of EEG.data using spherical spline interpolation (SSI) (Perrin et al., 1989), and re-referencing to REST.
residualArtifactRemovalFlag = 0: no removal;
residualArtifactRemovalFlag = 1: ICA based MARA (Multiple Artifact Rejection Algorithm) (Winkler et al., 2011);
residualArtifactRemovalFlag = 2: ICA based ADJUST (Mognon et al., 2011);
residualArtifactRemovalFlag = 3: rPCA method (Lin et al., 2010);
residualArtifactRemovalFlag = 4: ASR method (Mullen et al., 2013).
MARA_thre: cuttoff posterior probability for each IC of being an artefact while using MARA method. Default is 0.7.
srate: sampling rate of EEG data. It can be automatically detected in EEG data. But for ASCII/Float .txt File or MATLAB .mat File, user should fill the sampling rate by hand. Default is ‘’.
(1)Noting that quality assessing EEG raw data would NOT change the raw data. If the overall data quality (ODQ) exceed a threshold (default is 80), then the preprocessing could be continue.
(2)EEG data will be imported as EEG structure of EEGLAB. Dimension of EEG.data must be channels × time points.
(3)If channel locations are not contained in EEG data or selected channels do not contain locations, methods required EEG channel coordinates are invalid (e.g. interpolation, ICA-based MARA, ICA-based ADJUST, and REST re-referencing etc.).
(4)It is suggested to use this tool to preprocess EEG raw data with single point/AVG/linked LM reference. It is not supported for the EEG raw data with a specific non-unipolar recording montage, such as the ipsilateral mastoid (IM) or the contralateral mastoid (CM).
For each subject, a zip file which contains the preprocessed EEG data will be generated (saved as *_prepro.set file which contains the clean EEG data (EEG.data with dimension channels × time points) and preprocessing info (parameters and results of each preprocessing step). The file can be further analyzed by WeBrain online or EEGLAB offline. Following fields will be further added in the *.set file.
EEG.preprocessed.PassbandFilter.check = ‘yes’ or ‘no’ for pass band filtering;
EEG.preprocessed.PassbandFilter.passband: pass band;
EEG.preprocessed.PassbandFilter.comments = ‘Hamming windowed sinc FIR filter’;
EEG.preprocessed.NotchFilter.check = ‘yes’ or ‘no’ for notch filtering;
EEG.preprocessed.NotchFilter.notchband: notch filtering band;
EEG.preprocessed.EOGregression.check = ‘yes’ or ‘no’ for EOG regression
EEG.preprocessed.EOGregression.EOGchanns = EOG channels;
EEG.preprocessed.residualArtifactRemoval.check = ‘no’: skip residual artifact removal;
EEG.preprocessed.residualArtifactRemoval.MARA.check = ‘yes’ : use ICA-based MARA method to remove residual artifacts; more details can be seen in I. Winkler, S. Haufe, and M. Tangermann, Automatic classification of artifactual ICA-components for artifact removal in EEG signals, Behavioral and Brain Functions, 7, 2011.
EEG.preprocessed.residualArtifactRemoval.MARA.ICs: number of ICA components to compute (default is 'pca' arg);
EEG.preprocessed.residualArtifactRemoval.MARA.ICANtrain: perform tanh() "extended-ICA" with sign estimation N training blocks; default is 0;
EEG.preprocessed.residualArtifactRemoval.MARA.ICAstop: ICA stop training when weight-change < this;
EEG.preprocessed.residualArtifactRemoval.MARA.ICAMaxSteps: max number of ICA training steps;
EEG.preprocessed.residualArtifactRemoval.MARA.ICAsphering: [‘on’/‘off’] flag sphering of data; default is ‘on’;
EEG.preprocessed.residualArtifactRemoval.MARA.artcomps: list of artifacted ICs detected by MARA;
EEG.preprocessed.residualArtifactRemoval.MARA.MARAinfo: structure containing more information about MARA classification;
MARAinfo.posterior_artefactprob: posterior probability for each IC of being an artefact.
MARAinfo.normfeats: <6 x nIC > features computed by MARA for each IC, normalized by the training data. The features are: (1) Current Density Norm, (2) Range in Pattern, (3) Local Skewness of the Time Series, (4) Lambda, (5) 8-13 Hz, (6) FitError.
EEG.preprocessed.residualArtifactRemoval.MARA.MARA_thre: cuttoff posterior probability for each IC of being an artefact while using MARA method;
EEG.preprocessed.residualArtifactRemoval.ADJUST.check = ‘yes’: use ICA-based ADJUST method to remove residual artifacts; More details about ADJUST can be seen in Mognon A, Jovicich J, Bruzzone L, Buiatti M, ADJUST: An Automatic EEG artifact Detector based on the Joint Use of Spatial and Temporal features. Psychophysiology 48 (2), 229-240 (2011).
EEG.preprocessed.residualArtifactRemoval.ADJUST.ICs: number of ICA components to compute (default is 'pca' arg);
EEG.preprocessed.residualArtifactRemoval.ADJUST.ICANtrain: perform tanh() "extended-ICA" with sign estimation N training blocks; default is 0;
EEG.preprocessed.residualArtifactRemoval.ADJUST.ICAstop: ICA stop training when weight-change < this;
EEG.preprocessed.residualArtifactRemoval.ADJUST.ICAMaxSteps: max number of ICA training steps;
EEG.preprocessed.residualArtifactRemoval.ADJUST.ICAsphering: ['on'/'off'] flag sphering of data; default is ‘on’;
EEG.preprocessed.residualArtifactRemoval.ADJUST.artcomps: list of artifacted ICs;
EEG.preprocessed.residualArtifactRemoval.ADJUST.horizcomps: list of horizontal eye movement (HEM) ICs;
EEG.preprocessed.residualArtifactRemoval.ADJUST.vertcomps: list of vertical eye movement (VEM) ICs;
EEG.preprocessed.residualArtifactRemoval.ADJUST.blinkcomps: list of eye blink (EB) ICs;
EEG.preprocessed.residualArtifactRemoval.ADJUST.disccomps: list of GD ICs;
EEG.preprocessed.residualArtifactRemoval.ADJUST.soglia_DV: SVD threshold;
EEG.preprocessed.residualArtifactRemoval.ADJUST.diff_var: SVD feature values;
EEG.preprocessed.residualArtifactRemoval.ADJUST.soglia_K: TK threshold;
EEG.preprocessed.residualArtifactRemoval.ADJUST.meanK: TK feature values;
EEG.preprocessed.residualArtifactRemoval.ADJUST.soglia_SED: SED threshold;
EEG.preprocessed.residualArtifactRemoval.ADJUST.SED: SED feature values;
EEG.preprocessed.residualArtifactRemoval.ADJUST.soglia_SAD: SAD threshold;
EEG.preprocessed.residualArtifactRemoval.ADJUST.SAD: SAD feature values;
EEG.preprocessed.residualArtifactRemoval.ADJUST.soglia_GDSF: GDSF threshold;
EEG.preprocessed.residualArtifactRemoval.ADJUST.GDSF: GDSF feature values;
EEG.preprocessed.residualArtifactRemoval.ADJUST.soglia_V: MEV threshold;
EEG.preprocessed.residualArtifactRemoval.ADJUST.nuovaV: MEV feature values;
EEG.preprocessed.residualArtifactRemoval.rPCA.check = ‘yes’: use robust PCA to remove residual artifacts;
EEG.preprocessed.residualArtifactRemoval.rPCA.lambda: weight on sparse error term in the cost function;
EEG.preprocessed.residualArtifactRemoval.rPCA.tol: tolerance for stopping criterion;
EEG.preprocessed.residualArtifactRemoval.rPCA.maxIter: maximum number of iterations;
EEG.preprocessed.residualArtifactRemoval.ASR.check = ‘yes’: use ASR method to remove residual artifacts; more details about ASR can be seen in the tool ‘clean_rawdata’;
EEG.preprocessed.residualArtifactRemoval.ASR.burst_crit: standard deviation cutoff for removal of bursts (via ASR).A quite conservative value is 5;
EEG.preprocessed.residualArtifactRemoval.ASR.burst_crit_refmaxbadchns: this number is the maximum tolerated (0.05-0.3) fraction of "bad" channels within a given time window of the recording that is considered acceptable for use as calibration data;
EEG.preprocessed.residualArtifactRemoval.ASR.burst_crit_reftolerances: these are the power tolerances outside of which a channel in a given time window is considered "bad", in standard deviations relative to a robust EEG power distribution (lower and upper bound). Together with the previous parameter this determines how ASR calibration data is be extracted from a recording. Can also be specified as 'off' to achieve the same effect as in the previous parameter. Default is [-3.5,5.5];
EEG.preprocessed.Interpolation.check = ‘no’: skip bad channel interpolation and re-referencing to REST only (if have channel locations);
EEG.preprocessed.Interpolation.comments = ‘re-referencing to REST based on 3-concentric spheres head model’;
EEG.preprocessed.RESITinterpolation.check = ‘yes’: use RESIT method to reconstruct bad channels;
EEG.preprocessed.RESITinterpolation.badchanns: list of bad channels;
EEG.preprocessed.RESITinterpolation.comments = ‘REST based on 3-concentric spheres head model’;
EEG.preprocessed.SphericalSplinesInterpolation.comments = ‘re-referencing to REST based on 3-concentric spheres head model’;
EEG.preprocessed.SphericalSplinesInterpolation.check = ‘yes’: use SSI method to reconstruct bad channels;
EEG.preprocessed.SphericalSplinesInterpolation.badchanns: list of bad channels;
EEG.preprocessed.QA.check = ‘yes’: QA after artifact removal;
EEG.preprocessed.QA.comments = ‘QA after artifact removal’;
EEG.preprocessed.QA.results: results of QA for artifact removed data;
EEG.preprocessed.MarkBadBlock.check = ‘yes’ or ‘no’: marking or no marking residual bad block with unusually high or low amplitude using zscored standard deviation;
EEG.preprocessed.MarkBadBlock.comments = ‘Marking residual bad block after artifact removal’;
EEG.preprocessed.MarkBadBlock.zscoredGFP: global field power of z-scored standard deviation across channels;
EEG.preprocessed.MarkBadBlock.STDthreshold: standard deviation threshold; it is equal to the Z-score cutoff for robust channel deviation in QA.
Some EEG preprocessing tools:
https://sccn.ucsd.edu/wiki/Artifact_Sub ... tion_(ASR)
Information and resources about the WeBrain tools
1 post • Page 1 of 1
Who is online
Users browsing this forum: No registered users and 1 guest