[Mne_analysis] Offline Re: EOG artifac correction with ICA

Denis-Alexander Engemann denis.engemann at gmail.com
Tue Aug 8 09:00:59 EDT 2017
Search archives:

Hi Maria,

I'm currently traveling. I'll get back to you later.

Denis

On Sat, Aug 5, 2017 at 12:21 PM Maria Hakonen <maria.hakonen at gmail.com>
wrote:

> Dear mne experts,
>
>
> Could someone please help me with two questions related to the EOG
> artifact removal from raw MEG data with ICA?
>
>
> I have created my script following this example:
> https://martinos.org/mne/stable/auto_tutorials/plot_artifacts_correction_ica.html?highlight=ica
>
>
> I tested the script with one EOG channel and got the following result:
>
>
> [image: ak_sentences16b_scores.png]
>
>
>
> Question 1: Why are components 5 and 12 marked with red even if there are
> other components with stronger (although negative) correlation (e.g. 13 and
> 16)?
>
>
> Thereafter, I tested the script with two EOG channels and got:
>
> [image: ak_sentences16b_scores2.png]
>
>
> Question 2: Why are the correlation values with EOG61 now different
> compared to the case when I only used EOG61 and not EOG62?
>
>
> I am using mne 0.14.1.
>
>
> Many thanks already in advance if you can help!
>
>
> Best,
>
> Maria
>
>
> Here is yet the code that I am using (I have used low threshold value for
> testing purposes, but will use higher threshold, e.g. 3, in the final
> analysis):
>
>
> import matplotlib
>
> matplotlib.use('Agg')
>
> import matplotlib.pyplot as plt
>
>
>
> import numpy as np
>
>
>
> import mne
>
>
>
> from mne.preprocessing import ICA
>
> from mne.preprocessing import create_eog_epochs
>
>
>
> subject = 'ak'
>
> session = 'sentences16b'
>
> data_path = '/m/nbe/scratch/braindata/mhhakone/intell/TaskIII/MEG-data/' +
> subject + '/'
>
> raw_fname = data_path + subject + '_' + session + '_raw_tsss.fif'
>
> raw = mne.io.read_raw_fif(raw_fname, preload=True)
>
> raw.filter(1, 40, n_jobs=2)
>
>
>
> picks_meg = mne.pick_types(raw.info, meg=True, eeg=False, eog=False,
>
>                            stim=False, exclude='bads')
>
>
>
> n_components = 25  # if float, select n_components by explained variance
> of PCA
>
> method = 'fastica'  # for comparison with EEGLAB try "extended-infomax"
> here
>
> decim = 3  # we need sufficient statistics, not all time points -> saves
> time
>
>
>
> # we will also set state of the random number generator - ICA is a
>
> # non-deterministic algorithm, but we want to have the same decomposition
>
> # and the same order of components each time this tutorial is run
>
> random_state = 23
>
>
>
> ica = ICA(n_components=n_components, method=method,
> random_state=random_state)
>
> print(ica)
>
>
>
> reject = dict(mag=5e-12, grad=4000e-13)
>
> ica.fit(raw, picks=picks_meg, decim=decim, reject=reject)
>
>
>
> #ica.save('my-ica.fif')
>
>
>
> eog_average = create_eog_epochs(raw,ch_name='EOG 061',
> reject=dict(mag=5e-12, grad=4000e-13),
>
>                                 picks=picks_meg).average()
>
>
>
> eog_epochs = create_eog_epochs(raw,ch_name='EOG 061',reject=reject)  # get
> single EOG trials
>
> eog_inds, scores = ica.find_bads_eog(eog_epochs,ch_name='EOG
> 061',threshold=1.2)  # find via correlation
>
>
>
> ica.plot_scores(scores, exclude=eog_inds)  # look at r scores of components
>
> file_end='_scores.png'
>
> filename = subject+'_'+session+file_end
>
> plt.savefig(data_path+filename)
>
> plt.close()
>
>
>
> ica.plot_sources(eog_average, exclude=eog_inds)  # look at source time
> course
>
> file_end='_sources.png'
>
> filename = subject+'_'+session+file_end
>
> plt.savefig(data_path+filename)
>
> plt.close()
>
>
>
> fig_list = ica.plot_properties(eog_epochs, picks=eog_inds,
> psd_args={'fmax': 35.},
>
>                     image_args={'sigma': 1.})
>
>
>
> for i in range(len(fig_list)):
>
>     file_end='_properties_component'+str(i)+'.png'
>
>     filename = subject+'_'+session+file_end
>
>     fig_list[i].savefig(data_path+filename)
>
>
>
> plt.close()
>
>
>
> ica.plot_overlay(eog_average, exclude=eog_inds, show=False)
>
> file_end='_overlay.png'
>
> filename = subject+'_'+session+file_end
>
> plt.savefig(data_path+filename)
>
> plt.close()
> _______________________________________________
> Mne_analysis mailing list
> Mne_analysis at nmr.mgh.harvard.edu
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>
>
> The information in this e-mail is intended only for the person to whom it
> is
> addressed. If you believe this e-mail was sent to you in error and the
> e-mail
> contains patient information, please contact the Partners Compliance
> HelpLine at
> http://www.partners.org/complianceline . If the e-mail was sent to you in
> error
> but does not contain patient information, please contact the sender and
> properly
> dispose of the e-mail.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20170808/492733c9/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ak_sentences16b_scores.png
Type: image/png
Size: 22051 bytes
Desc: not available
Url : http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20170808/492733c9/attachment-0002.png 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ak_sentences16b_scores2.png
Type: image/png
Size: 33927 bytes
Desc: not available
Url : http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20170808/492733c9/attachment-0003.png 


More information about the Mne_analysis mailing list