Introduction to MNE

MNE-python

import settings


In [1]:
import numpy as np
import mne
from mne.preprocessing import ICA
from mne.minimum_norm import (make_inverse_operator,
                              write_inverse_operator)
import os
# directories ISIS
subjects_dir = "/volatile/mje/training_data/fs_subjects_dir/"
data_path = "/volatile/mje/training_data/"

os.chdir(data_path)

n_jobs = 4 # number of processors to use

# epoch variables
tmin, tmax = -0.5, 0.5
baseline = (-0.5, -0.3)  # baseline time
reject = dict(mag=4e-12, grad=4000e-13)

fs_sub = "0003_WVZ"

# only for ipython notebook
%matplotlib inline

Maxfilter from python


In [ ]:
# file and log names

in_name = "sub_%d_%s-raw.fif" % (sub, session)
out_name = "sub_%d_%s-tsss-mc-autobad_ver_4.fif" % (sub, session)
tsss_mc_log = "sub_%d_%s-tsss-mc-autobad_ver_4.log" % (sub, session)
headpos_log = "sub_%d_%s-headpos_ver_4.log" % (sub, session)

# call to maxfilter

apply_maxfilter(in_fname=in_name,
       out_fname=out_name,
       frame='head',
       autobad="on",
       st=True,
       st_buflen=30,
       st_corr=0.95,
       mv_comp=True,
       mv_hp=headpos_log,
       cal='/projects/MINDLAB2011_24-MEG-readiness/misc/sss_cal_Mar11-May13.dat',
       ctc='/projects/MINDLAB2011_24-MEG-readiness/misc/ct_sparse_Mar11-May13.fif',
       overwrite=True,
       mx_args=' -v | tee %s' % tsss_mc_log,
       )

Processing raw files


In [2]:
raw = mne.fiff.Raw(data_path +
                          "sef_bilat-tsss-mc-autobad.fif", preload=True)

picks = mne.fiff.pick_types(raw.info, meg=True, eeg=False, eog=True,
                                   emg=True, ecg=True, exclude='bads')


Opening raw data file /volatile/mje/training_data/sef_bilat-tsss-mc-autobad.fif...
Current compensation grade : 0
    Range : 60000 ... 371999 =     60.000 ...   371.999 secs
Ready.
Adding average EEG reference projection.
Reading 0 ... 311999  =      0.000 ...   311.999 secs...
[done]

In [3]:
raw.info


Out[3]:
<Info | 26 non-empty fields
    acq_pars : unicode | 25238 items
    acq_stim : unicode | 11692 items
    bads : list | 0 items
    buffer_size_sec : numpy.float64 | 1.0
    ch_names : list | EOG001, ECG002, EOG003, EMG004, EMG005, EEG001, EEG002, ...
    chs : list | 410 items
    comps : list | 0 items
    description : unicode | 12 items
    dev_head_t : dict | 3 items
    dig : list | 272 items
    experimenter : unicode | 24 items
    file_id : dict | 4 items
    filename : str | /volatile/.../sef_bilat-tsss-mc-autobad.fif
    highpass : float | 0.10000000149
    line_freq : float | 50.0
    lowpass : float | 330.0
    meas_date : numpy.ndarray | 2014-03-18 13:47:23
    meas_id : dict | 4 items
    nchan : int | 410
    orig_blocks : list | 4 items
    orig_fid_str : instance | <StringIO.StringIO instance at 0x2924488>
    proj_id : numpy.ndarray | 1 items
    proj_name : unicode | 8 items
    projs : list | Average EEG reference: off
    sfreq : float | 1000.0
    subject_info : dict | 6 items
    ctf_head_t : NoneType
    dev_ctf_t : NoneType
>

Filter data


In [4]:
raw.filter(None, 40, method='iir', n_jobs=n_jobs)


Low-pass filtering at 40 Hz
[Parallel(n_jobs=4)]: Done   1 out of 380 | elapsed:    0.1s remaining:   22.6s
[Parallel(n_jobs=4)]: Done  74 out of 380 | elapsed:    1.0s remaining:    4.0s
[Parallel(n_jobs=4)]: Done 151 out of 380 | elapsed:    1.8s remaining:    2.8s
[Parallel(n_jobs=4)]: Done 228 out of 380 | elapsed:    2.7s remaining:    1.8s
[Parallel(n_jobs=4)]: Done 305 out of 380 | elapsed:    3.6s remaining:    0.9s
[Parallel(n_jobs=4)]: Done 380 out of 380 | elapsed:    4.5s finished

In [5]:
events = mne.find_events(raw, stim_channel='STI101')
event_ids = {"Left": 1, "Right": 2}  # check this is right

epochs = mne.Epochs(raw, events, event_ids, tmin, tmax,
                           picks=picks, baseline=(None, -0.2),
                           preload=True, reject=reject)


320 events found
Events id: [1 2]
1 projection items activated
320 matching events found
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0121', 'MEG1411', 'MEG1421']
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0121', 'MEG1411', 'MEG1421']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG1411']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG1411']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG0131', 'MEG1411', 'MEG1421', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG0311', 'MEG1411', 'MEG1421', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG1411', 'MEG1421', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG0341', 'MEG1221', 'MEG1411', 'MEG1421', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG1411', 'MEG1421', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG1411', 'MEG1421']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG1411', 'MEG1421', 'MEG1441']
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG1411', 'MEG1421']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG0131', 'MEG0311', 'MEG0341', 'MEG1411', 'MEG1421', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG0131', 'MEG1221', 'MEG1411', 'MEG1421', 'MEG1431', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0121', 'MEG1411', 'MEG1421']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG0131', 'MEG1411', 'MEG1421', 'MEG1431', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG1421']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG0131', 'MEG0311', 'MEG0341', 'MEG1411', 'MEG1421', 'MEG1431', 'MEG1441']
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG0311', 'MEG1411', 'MEG1421', 'MEG1431', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG0131', 'MEG1221', 'MEG1411', 'MEG1421', 'MEG1431', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG0311', 'MEG1411', 'MEG1421', 'MEG1431', 'MEG1441']
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG0131', 'MEG0141', 'MEG0211', 'MEG0311', 'MEG0341', 'MEG1211', 'MEG1221', 'MEG1321', 'MEG1411', 'MEG1421', 'MEG1431', 'MEG1441', 'MEG2611', 'MEG2621']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG1411', 'MEG1421', 'MEG1441']
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG1411', 'MEG1421', 'MEG1441']
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0121', 'MEG1411', 'MEG1421']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG1411', 'MEG1421', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG1411', 'MEG1421']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG1411', 'MEG1421']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG1421']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG1411', 'MEG1421']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG1411', 'MEG1421']
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0121', 'MEG1411', 'MEG1421']
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG1411', 'MEG1421', 'MEG1441']
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG0111', 'MEG0121', 'MEG1411', 'MEG1421', 'MEG1431', 'MEG1441']
Applying baseline correction ... (mode: mean)
    Rejecting  epoch based on MAG : ['MEG1411']
Applying baseline correction ... (mode: mean)
35 bad epochs dropped

In [6]:
mne.viz.plot_drop_log(epochs.drop_log)


Out[6]:
10.9375

ICA


In [7]:
ica = ICA(n_components=0.90, n_pca_components=64,
          max_pca_components=100,
          noise_cov=None)

ica.decompose_epochs(epochs)

eog_scores_1_normal = ica.find_sources_epochs(epochs, target="EOG001",
                                              score_func="pearsonr")
eog_scores_2_normal = ica.find_sources_epochs(epochs, target="EOG003",
                                              score_func="pearsonr")

# get maximum correlation index for EOG
eog_source_idx_1_normal = np.abs(eog_scores_1_normal).argmax()
eog_source_idx_2_normal = np.abs(eog_scores_2_normal).argmax()


Computing signal decomposition on epochs. Please be patient, this may take some time
Selecting PCA components by explained variance.

In [8]:
source_idx = range(0, ica.n_components_)
ica.plot_topomap(source_idx, ch_type="mag")


/usr/local/common/anaconda/lib/python2.7/site-packages/mne-0.8.git-py2.7.egg/mne/viz.py:125: UserWarning: Matplotlib function 'tight_layout' is not supported by your backend: `module://IPython.kernel.zmq.pylab.backend_inline`. Skipping subpplot adjusment.
  warn(msg % case)
Out[8]:

In [9]:
# select ICA sources and reconstruct MEG signals, compute clean ERFs
# Add detected artefact sources to exclusion list
# We now add the eog artefacts to the ica.exclusion list
if eog_source_idx_1_normal == eog_source_idx_2_normal:
    ica.exclude += [eog_source_idx_1_normal]
elif eog_source_idx_1_normal != eog_source_idx_2_normal:
    ica.exclude += [eog_source_idx_1_normal, eog_source_idx_2_normal]

# remove ECG
ecg_ch_name = 'ECG002'
ecg_scores = ica.find_sources_epochs(epochs, target=ecg_ch_name,
                                     score_func='pearsonr')

# get the source most correlated with the ECG.
ecg_source_idx = np.argsort(np.abs(ecg_scores))[-1]
ica.exclude += [ecg_source_idx]



# Restore sensor space data
# plot spatial sensitivities of a few ICA components
# title = 'Spatial patterns of ICA components (Magnetometers)'
# source_idx = range(0, ica.n_components_)
# ica.plot_topomap(source_idx, ch_type='mag')
# plt.suptitle(title, fontsize=12)

epochs_ica = ica.pick_sources_epochs(epochs)
# epochs_ica.save("sef_bilat-tsss-mc-autobad-epochs.fif")

In [10]:
print epochs_ica
epochs_ica.info


<Epochs  |  n_events : 285 (all good), tmin : -0.5 (s), tmax : 0.5 (s), baseline : (None, -0.2),
 'Left': 144, 'Right': 141>
Out[10]:
<Info | 26 non-empty fields
    acq_pars : unicode | 25238 items
    acq_stim : unicode | 11692 items
    bads : list | 0 items
    buffer_size_sec : numpy.float64 | 1.0
    ch_names : list | EOG001, ECG002, EOG003, EMG004, EMG005, MEG0111, ...
    chs : list | 311 items
    comps : list | 0 items
    description : unicode | 12 items
    dev_head_t : dict | 3 items
    dig : list | 272 items
    experimenter : unicode | 24 items
    file_id : dict | 4 items
    filename : str | /volatile/.../sef_bilat-tsss-mc-autobad.fif
    highpass : float | 0.10000000149
    line_freq : float | 50.0
    lowpass : float | 40.0
    meas_date : numpy.ndarray | 2014-03-18 13:47:23
    meas_id : dict | 4 items
    nchan : int | 311
    orig_blocks : list | 4 items
    orig_fid_str : instance | <StringIO.StringIO instance at 0xaefa1b8>
    proj_id : numpy.ndarray | 1 items
    proj_name : unicode | 8 items
    projs : list | Average EEG reference: on
    sfreq : float | 1000.0
    subject_info : dict | 6 items
    ctf_head_t : NoneType
    dev_ctf_t : NoneType
>

Evoked data


In [11]:
evoked_left = epochs_ica["Left"].average()
evoked_right = epochs_ica["Right"].average()

In [13]:
print "plot evoked for Left"
evoked_left.plot()

print "plot evoked for Right"
evoked_right.plot()


plot evoked for Left
plot evoked for Right
Out[13]:

Estimate noise covariance


In [14]:
cov = mne.compute_covariance(epochs, tmin=None, tmax=-0.2)
mne.viz.plot_cov(cov, raw.info, colorbar=True, proj=True)

# save noise cov
# cov.save("sef_bilat-tsss-mc-autobad.fif")


Number of samples used : 85785
[done]
    The projection vectors do not apply to these channels.
Out[14]:
(<matplotlib.figure.Figure at 0x5128c50>,
 <matplotlib.figure.Figure at 0xdcd6910>)

Make forward model (in bash)

Run the mne_do_forward_model from a termninal

load forward model


In [15]:
mri = data_path + "sef_bilat-tsss-mc-autobad-epochs.fif"
fwd = mne.read_forward_solution("sef_bilat-tsss-mc-autobad-fwd.fif")

# convert to surface orientation for better visualization
fwd = mne.convert_forward_solution(fwd, surf_ori=True)


Reading forward solution from sef_bilat-tsss-mc-autobad-fwd.fif...
    Reading a source space...
    [done]
    Reading a source space...
    [done]
    2 source spaces read
    Desired named matrix (kind = 3523) not available
    Read MEG forward solution (8194 sources, 306 channels, free orientations)
    Source spaces transformed to the forward solution coordinate frame
    Cartesian source orientations...
[done]
    Converting to surface-based source orientations...
[done]

Compute inverse solution


In [16]:
# inversion variables
snr = 1.0
lambda2 = 1.0 / snr ** 2
methods = ["dSPM", "MNE"]

for method in methods:
    """ loop over methods to make inverse operator for each method
    """
    inv_op = make_inverse_operator(raw.info, forward=fwd,
                                          noise_cov=cov,
                                          loose=0.2, depth=0.8)
#    write_inverse_operator(
#        "sef_bilat-tsss-mc-autobad%s-inv.fif"
#        % (method), inv_op_normal)


Computing inverse operator with 306 channels.
Setting small MEG eigenvalues to zero.
Not doing PCA for MEG.
Total rank is 69
Creating the depth weighting matrix...
    204 planar channels
    limit = 6017/8194 = 10.001825
    scale = 1.39465e-07 exp = 0.8
Computing inverse operator with 306 channels.
Creating the source covariance matrix
Applying loose dipole orientations. Loose value of 0.2.
Whitening the forward solution.
Adjusting source covariance matrix.
Computing SVD of whitened and weighted lead field matrix.
    largest singular value = 2.64615
    scaling factor to adjust the trace = 1.48552e+19
Computing inverse operator with 306 channels.
Setting small MEG eigenvalues to zero.
Not doing PCA for MEG.
Total rank is 69
Creating the depth weighting matrix...
    204 planar channels
    limit = 6017/8194 = 10.001825
    scale = 1.39465e-07 exp = 0.8
Computing inverse operator with 306 channels.
Creating the source covariance matrix
Applying loose dipole orientations. Loose value of 0.2.
Whitening the forward solution.
Adjusting source covariance matrix.
Computing SVD of whitened and weighted lead field matrix.
    largest singular value = 2.64615
    scaling factor to adjust the trace = 1.48552e+19

In [ ]:

Bits


In [ ]:
events = mne.find_events(raw, stim_channel='STI101')
event_ids = {"press": 1}
events_classic = []
events_interupt = []

for i in range(len(events)):
    if i > 0:
        if events[i, 2] == 1 and events[i - 1, 2] == 1:
            events_classic.append(i)
        elif events[i, 2] == 1 and events[i - 1, 2] == 2:
            events_interupt.append(i)