[Eeglablist] Problems with epoch rejection

ANA BUJAN ana.bujan at gmail.com
Fri Jan 24 02:17:45 PST 2020


Dear Makoto,

thanks for your answer.

I would be delighted to pay your invoice, your pipeline and code are really
useful for someone not good at programming... :)

Regarding data, they are not continuous but epoched (89 epochs). The thing
is that when these 89 epochs are marked and rejected by the first rejection
method (threshold), the set changes automatically and the data seem
continuous (1 epoch).

Cheers,


El vie., 24 ene. 2020 9:39, Makoto Miyakoshi <mmiyakoshi at ucsd.edu> escribió:

> Dear Ana,
>
> > based on Makoto's pipeline
>
> You will receive an invoice from me.
>
> > 0/1 trial(s) marked for rejection
>
> The first guess I had was whether this is by any chance continuous data.
>
> Makoto
>
>
>
> On Tue, Jan 21, 2020 at 11:46 AM ANA BUJAN <ana.bujan at gmail.com> wrote:
>
> >   Dear all,
> >
> > I have been trying to reject raw epochs (no ICA) through a handmade
> script
> > based on Makoto's pipeline with some changes. I would like to perform
> > rejection of epochs by all methods of rejection as the last
> pre-processing
> > step. However, each way I have tried, I got an error. I'm not a
> proficient
> > person programming and relatively new with EEGlab. So, it is almost for
> > sure I'm doing something wrong but I'm not able to see it...
> > So, I will make clear my point in order for you to be able to figure out
> > what I'm doing wrong. These the steps of the script:
> >
> > 1. Import Biosig data.
> > 2. Set channel locs
> > 3. Remove baseline and filters (0.5-40)
> > 4. Bad channels rejection through pop_rejchan
> > 5. Remove bad data segments with ASR
> > 6. ICA and IC label for correction of artifacts (by the way, sometimes,
> no
> > always, EEG = pop_iclabel in the script doesn't work, the error is :
> >
> > Undefined function or variable 'pop_iclabel'.
> > Error in rs_batchcode_superpose (line 45)
> >     EEG = pop_iclabel(EEG, 'default')
> > 7. Interpolation of removed channels and average reference
> > 8. Epochs extraction
> > 9. Epochs rejection
> >
> > So, this last step is where I'm having trouble. I've tried three options:
> >
> > OPTION 1. Mark the bad epochs, then superpose, then reject
> >
> >     EEG = pop_eegthresh(EEG,1,[1:64] ,-100,100,0,1.998,2,0);
> >     EEG = pop_rejtrend(EEG,1,[1:64] ,1024,75,0.3,2,0);
> >     EEG = pop_jointprob(EEG,1,[1:64] ,5,5,0,0,0,[],0);
> >     EEG = pop_rejkurt(EEG,1,[1:64] ,5,5,0,0,0,[],0);
> >     EEG = pop_rejspec( EEG, 1,'elecrange',[1:64]
> > ,'method','multitaper','threshold',[-50 50;-100 25],'freqlimits',[0 2;20
> > 40],0,0);
> >     EEG = eeg_rejsuperpose( EEG, 1, 1, 1, 1, 1, 1, 1, 1);
> >     EEG = pop_rejepoch( EEG, [EEG.reject.rejglobal] ,0);
> >
> > This way the code got staked at pop_rejspec, so it never finishes, and I
> > don' understand why.... I copied the code from the history file....
> >
> > When I try this same option but erasing the rejection for spectra, I got
> > his error:
> >
> >
> *******************************************************************************************
> > 64 channel selected
> > 0/86 trials marked for rejection
> > Selecting trials...
> > 64 channel(s) selected
> > 0/86 trial(s) marked for rejection
> > The following trials have been marked for rejection
> >
> > Computing joint probability for channels...
> > Computing all-channel probability...
> > 3/86 trials marked for rejection
> > 3 trials marked for rejection
> > Computing kurtosis for channels...
> > Computing all-channel kurtosis...
> > 6/86 trials marked for rejection
> > 6 trials marked for rejection
> > Error using  |
> > Matrix dimensions must agree.
> >
> > Error in eeg_rejsuperpose>rejarray (line 135)
> > dest = dest | ori;
> >
> > Error in eeg_rejsuperpose (line 81)
> > rejglobalE = rejarray( rejglobalE, EEG.reject.rejconstE);
> >
> > Error in rs_batchcode_superpose (line 105)
> >     EEG = eeg_rejsuperpose( EEG, 1, 1, 1, 1, 1, 1, 1, 1);
> >
> > >>
> >
> >
> >
> ****************************************************************************************
> >
> > OPTION 2: Marked bad epochs (without pop_rejspec, because there is no
> > variable for this in the EEG > reject), reject the marked ones
> >
> >     EEG = pop_eegthresh(EEG,1,[1:64] ,-100,100,0,1.998,0,0);
> >     EEG = pop_rejtrend(EEG,1,[1:64],1024,75,0.3,0,0);
> >     EEG = pop_jointprob(EEG,1,[1:64],5,5,0,0,0,[],0);
> >     EEG = pop_rejkurt(EEG,1,[1:64],5,5,0,0,0,[],0);
> >
> >     EEG = pop_rejepoch( EEG,[EEG.reject.rejthresh, EEG.reject.rejkurt,
> > EEG.reject.rejconst, EEG.reject.rejfreq],0);
> >
> > In this case, the epochs are marked, but when the first rejection is
> > performed (by threshold), the epochs info is not longer then, and the set
> > has just 1 epoch... Of course, after this, the rest of the rejections is
> > not performed...
> >
> >
> *******************************************************************************************
> > 64 channel selected
> > 11/89 trials marked for rejection
> > Selecting trials...
> > 64 channel(s) selected
> > 1/89 trial(s) marked for rejection
> > The following trials have been marked for rejection
> > 1
> > Computing joint probability for channels...
> > Computing all-channel probability...
> > 2/89 trials marked for rejection
> > 2 trials marked for rejection
> > Computing kurtosis for channels...
> > Computing all-channel kurtosis...
> > 8/89 trials marked for rejection
> > 8 trials marked for rejection
> > 20/89 trials rejected
> > Removing 11 trial(s)...
> > Pop_select: removing 22 unreferenced events
> > eeg_checkset note: data array made 3-D
> > eeg_checkset warning: 3rd dimension size of data (1) does not match the
> > number of epochs (78), corrected
> > eeg_checkset note: upper time limit (xmax) adjusted so
> (xmax-xmin)*srate+1
> > = number of frames
> >
> >
> *********************************************************************************************************************************
> > OPTION 3: Reject the epochs directly instead of marking them.
> >
> >     EEG = pop_eegthresh(EEG,1,[1:64],-100,100,0,1.998,0,1);
> >     EEG = pop_rejtrend(EEG,1,[1:64],1024,75,0.3,0,1);
> >     EEG = pop_jointprob(EEG,1,[1:64] ,5,5,0,1,0,[],0);
> >     EEG = pop_rejkurt(EEG,1,[1:64] ,5,5,0,1,0,[],0);
> >     EEG = pop_rejspec( EEG, 1,'elecrange',[1:64]
> > ,'method','multitaper','threshold',[-50 50;-100 100],'freqlimits',[0 2;20
> > 40],'eegplotcom','','eegplotplotallrej',0,'eegplotreject',1);
> >
> > It happens the same as in the previous option: after the first rejection
> id
> > made, there are no longer epochs. This is the error:
> >
> >
> **********************************************************************************************************************************
> > 64 channel(s) selected
> > 0/1 trial(s) marked for rejection
> > The following trials have been marked for rejection
> >
> > 0/1 trials rejected
> > Computing joint probability for channels...
> > Computing all-channel probability...
> > 0/1 trials marked for rejection
> > 0 trials marked for rejection
> > 0/1 trials rejected
> > Computing kurtosis for channels...
> > Computing all-channel kurtosis...
> > 1/1 trials marked for rejection
> > 1 trials marked for rejection
> > 1/1 trials rejected
> > Error using pop_select (line 227)
> > Error: dataset is empty
> >
> > Error in pop_rejepoch (line 96)
> > EEG = pop_select( EEG, 'notrial', tmprej);
> >
> > Error in pop_rejkurt (line 269)
> >         EEG = pop_rejepoch(EEG, rej, 0);
> >
> > Error in proof_rejall (line 104)
> >     EEG = pop_rejkurt(EEG,1,[1:64] ,5,5,0,1,0,[],0);
> >
> >
> **********************************************************************************************************
> > I apologize for the long message, but I wanted to make clear all the
> things
> > I checked. So, this is all, let me know if you need more info or files to
> > replicate the errors or whatever.
> >
> > Many thanks for a great job.
> >
> > Ana Buján
> > _______________________________________________
> > 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
> _______________________________________________
> 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