Rejection of Epoch and ICA

  • MNE-Python version: 0.22.0
  • operating system: Windows

Thanks for solving my last question about ICA in the previous post.
Now I got an EEG graph about comparing odd and normal P3 data!
However, the result seems not clear to me yet.

  1. The ICA result shows that there are no bad epochs and Zeroing out 0 ICA components when applying it. On the other hand, the epoch function dropped 614. I rejected some components when using ICA in MATLAB EEGLAB. So I’m a bit confused… In other questions, I saw setting Fp1,2 to EoG and use EOG_Epoch function. Will it solve this problem??
  • the Quick-20 EEG device I’m using doesn’t have EOG signals…
    ...
    Rejecting  epoch based on EEG : ['Fp1']
    Rejecting  epoch based on EEG : ['Fp1']
    Rejecting  epoch based on EEG : ['Fp1']
    Rejecting  epoch based on EEG : ['Fp1']
    Rejecting  epoch based on EEG : ['Fp1']
    Rejecting  epoch based on EEG : ['Fp1']
    Rejecting  epoch based on EEG : ['Fp1']
    Rejecting  epoch based on EEG : ['Fp1']
    Rejecting  epoch based on EEG : ['Fp1']
    Rejecting  epoch based on EEG : ['Fp1']
    Rejecting  epoch based on EEG : ['Fp1', 'FC6', 'Cz', 'PO8', 'PO3', 'PO4', 'O1', 'O2']
614 bad epochs dropped


Fitting ICA to data using 30 channels (please be patient, this may take a while)
<ipython-input-15-8aa56310aeb3>:1: DeprecationWarning: max_pca_components (30) is deprecated and will be removed in 0.23, use n_pca_components instead
  ica=ICA(n_components=30, max_pca_components=30, method='fastica', random_state=89).fit(epochs)#define the parameter of ica and fit it to epochs
Selecting by number: 30 components
Fitting ICA took 16.0s.
Not setting metadata
Not setting metadata
475 matching events found
No baseline correction applied
0 projection items activated
0 bad epochs dropped

Applying ICA to Epochs instance
    Transforming to ICA space (30 components)
    Zeroing out 0 ICA components
    Projecting back using 30 PCA components
  1. Also, in addition, I’m using Quick-20 EEG device. Therefore, I’m using read_raw_brainvision() to get the EEG data. However, this doesn’t have the sensor location data… I received .ced file from the manufacturer, but is it possible to import it into the MNE imported dataset??

If not possible, I’m thinking of using MATLAB to merge EEG data and .ced file and export it to .set and reimport it in MNE… (too much uncomfortable procedure…)

ICA doesn’t evaluate whether epochs are good or bad, neither does it reject epochs. So I’m not sure what you mean exactly, and it’s hard to tell without seeing your code. I would suggest you run your script step by step and observe the output to really get a feel as to which commands produce which output.

I don’t know what EOG_Epoch function is, but looking at the drop log it’s pretty clear that at least Fp1 is responsible for many rejected epochs. Fp1 and Fp2 pick up ocular signals, so you’ll most likely want to remove the reject parameter when creating your epochs, or at least up the limit considerably.

Then, when creating your EOG epochs, you need to specify Fp1 (or Fp2) as EOG channel explicitly: mne.preprocessing.create_eog_epochs(..., ch_name='Fp1')

I’m not familiar with CED files, so cannot give a clear answer here without looking at the file.

Since apparently you don’t have measured (“digitized”) sensor locations, you can also just start by applying one of the template montages that ship with MNE:

montage = mne.channels.make_standard_montage(kind='standard_1020')  # 10-20 system montage
raw.set_montage(montage)
raw.plot_sensors()

See mne.channels.make_standard_montage — MNE 0.22.0 documentation to find out which montages are included.