[Eeglablist] Inquiries about some eeglab functions

Arnaud Delorme arno at ucsd.edu
Wed May 1 11:51:33 PDT 2019

Dear Amal,

> At first, thank you for this helpful toolbox! I have some questions about implementing some functions that I read about them and tried to find answers to my questions in the tutorial and online but I couldn't find the answers, so I'd be very grateful for your help.
> 1- Regarding epoching,  epoching is seemed to be applied well on the trial and a message has occurred in the command window that one epoch has been selected then generated (as expected by my case), but the eeg.epoch field in the resulted EEG dataset in matlab is empty, is it normal that epochs disappears from eeg.epoch field? although the xmin and xmax have been changed after epoching from [0 13] to [-5 8]. 

At this point, EEGLAB does not differentiate between a single epoch and continuous data. This is why EEG.epoch is empty.

> 2- Regarding checking the bad trials that have extreme values + or - 100 uV, we ere using the threshold value as 100 through the  pop_eegthresh() function, but then we noticed that there are no bad trials at all in the whole data. So, checking our file values, it seems that our valuesin the .exp signal files are very much lower than the threshold so we guessed that the values might be displayed as a volt format for the microvolt data, so we decided to make the threshold -+ (0.0001) instead of 100 to comply with the data format. Is it correct to do so? Does MotionMonitor changes the data format? 

The value is in the unit of your data (which you can see when you plot the raw EEG). It is usually microvolt. 100 uV is very large though. Try 20 to 50 and see what happens.

> 3- filtering function (once or cascading)?I'm applying filtering using the function pop_eegfiltnew(EEG, 0.5, 35), is that fine? or should I apply high-pass filtering first then low-pass filtering like this: 
> EEG = pop_eegfilt( EEG, 1, 0,[], [0]); %high pass filter OR EEG =% pop_eegfiltnew(EEG, 0.5,[]);EEG = pop_eegfilt( EEG, 0, 35,[],[0]); %low pass filter OR EEG =% pop_eegfiltnew(EEG, 0.5,[]);

It should be equivalent to do it in two steps or in one step (although there will be minor numerical difference), and is a matter of preference. I personally like to do it in two steps so I have more control over the filter (for example for low-pass filtering, I like to know the filter order).

> 4- error: dataset is empty, when bad trials found by pop_eegthresh?!

If you have one epoch and you remove it, then yes it is an empty dataset and EEGLAB will complain.

> 5- Is the raw data in the exported  .exp files of the recorded eeg signals in microvolt and displayed also in microvolt? Or is there any change happens to the data resolution or scale either in ActiveTwo biosemi or in MotionMonitor I used for recording the data? At first, we considered the data is in microvolt, but when we were validating the data by testing the percentage of the bad trials which have extreme values >100 uv or < -100 uv, all our trials' data is very much lower than the extreme values and so no bad trials have been found. So, we wanted to make sure that the data recorded by MotionMonitor and exported to .exp files is displayed as micro volt.  

Data is usually in microVolt (note for BIOSEMI that you need to select a reference when you import the data).

> * Overview of my data and preprocessing steps: - I'm applying preprocessing steps and checking extreme values trial by trial (on a single trial at a time). - My collected data of interest  is EEG signals while eyes-closed.- Our data is recorded by Biosemi ActiveTwo system and MotionMonitor software, so the data files are exported from he MotionMonitor as .exp files.- Each trial consists of 3 tasks: rest (5 s) => task-stimulus (5 s.) =>task-response(8 s.), the tasks are separated by event markers (pulses). My task of interest is the task-response duration of 8 s. and I want to use 500 ms from the rest period as a baseline.- I deleted the task-stimulus data from the EEG signals to only keep the rest and the task-response data, so the approximate length of trial became from ~ [0 13] - then defined one event in EEG started at the start of the visual imagery (task response), - then I epoched the EEG data from [-5 to the duration of response] i.e. ~ [-5 8] , - then I removed the baseline using pop_rmbase choosing this time period [-1000 -500].- I tested them using pop_eegthresh after applying these pre-processing steps: filtering (0.5 to 35 Hz) => Re-referencing (the 16 electrodes to Cz) => epoching => baseline correction

That sounds fine.

Best wishes,


More information about the eeglablist mailing list