Esempio n. 1
1
def visualise(exp_num,main_title,*args):
    layout = find_layout(info, ch_type='grad')
    number_of_heads = len(args)
    tmp = [list(l) for l in zip(*args)]
    titles = tmp[0]
    data = tmp[1]
    max_row_lenght = 5 #depends from monitor length (:
    fig,axes=plt.subplots(-(-number_of_heads//max_row_lenght),min(max_row_lenght,number_of_heads),figsize=(20, 20))
    fig.suptitle(main_title, fontsize=14)
    min_value = np.array(map(lambda x:x.min(),data)).min()
    max_value = np.array(map(lambda x:x.max(),data)).max()
    for i in range(number_of_heads):
        axes[np.unravel_index(i,axes.shape)].set_title(titles[i])
        if data[i].any():
            im,_ = plot_topomap(data[i],layout.pos,axes=axes[np.unravel_index(i,axes.shape)],
                                vmin=min_value,vmax=max_value,show=False)
    fig.colorbar(im,ax=axes.ravel().tolist(),shrink=0.3,fraction=0.025)
    save_fig(exp_num,main_title,fig)
Esempio n. 2
0
    def __init__(self, sensor_type='mag'):
        # @sensor_type "mag" or "grad"
        sensor_type = sensor_type
        code_dir = os.path.dirname(os.path.realpath(__file__))
        info_path = os.path.join(code_dir, 'neuromag_info')
        if (sensor_type == 'mag'):
            neighboring_filename = os.path.join(info_path,
                                                'neuromag306mag_neighb.mat')
        if (sensor_type == 'grad'):
            neighboring_filename = os.path.join(
                info_path, 'neuromag306planar_neighb.mat')
        neuromag = read_raw_fif(sample.data_path() +
                                '/MEG/sample/sample_audvis_raw.fif')
        self.topography_2D = find_layout(neuromag.info,
                                         ch_type=sensor_type).pos
        topography_3D = np.array([
            ch['loc'][:3] for ch in neuromag.info['chs']
            if (ch['ch_name'][-1] == '1') & (ch['ch_name'][0:3] == 'MEG')
        ])

        neighboring, ch_names = read_ch_connectivity(
            neighboring_filename,
            picks=None)  #ch. names written  in 'MEG1111' format
        neighboring = neighboring.toarray()
        num_channels = len(ch_names)
        Convolutions.__init__(self, neighboring, topography_3D, ch_names,
                              num_channels)
Esempio n. 3
0
    def __init__(self,sensor_type = 'mag'):
        # sensor_type - mag or grad. Grad not yet implemented

        code_dir = os.path.dirname(os.path.realpath(__file__))
        info_path = os.path.join(code_dir, 'neuromag_info')
        neuromag = read_raw_fif(sample.data_path() +
                                '/MEG/sample/sample_audvis_raw.fif')
        topography_2D = find_layout(neuromag.info, ch_type=sensor_type).pos[:,:2]
        if (sensor_type == 'mag'):
            topography_3D = np.array([ch['loc'][:3] for ch in neuromag.info['chs'] if
                                      (ch['ch_name'][-1] == '1') &
                                      (ch['ch_name'][0:3] == 'MEG')]) #Numbers of mag sensors ended by '1'

            neighboring_filename = os.path.join(info_path, 'neuromag306mag_neighb.mat')

        if (sensor_type == 'grad'):
            topography_3D = np.array([ch['loc'][:3] for ch in neuromag.info['chs'] if
                                      ((ch['ch_name'][-1] == '2') | (ch['ch_name'][-1] == '3')) &
                                      (ch['ch_name'][0:3] == 'MEG')])  # Numbers of grad sensors ended by '2' or '3'
            neighboring_filename = os.path.join(info_path, 'neuromag306planar_neighb.mat')

        neighboring, ch_names = read_ch_connectivity(neighboring_filename,
                                                     picks=None)  # ch. names written  in 'MEG1111' format
        neighboring = neighboring.toarray()
        num_channels = len(ch_names)
        self.sensor_type = sensor_type
        Device.__init__(self,ch_names, topography_3D, topography_2D, neighboring, num_channels)
Esempio n. 4
0
def visualise(t_data, p_data, sensor_type, freq):
    #reseives t-values (and optionaly p-values) as vectors [channel x 1]
    layout = find_layout(info, ch_type=sensor_type.lower())
    im, _ = plot_topomap(data=t_data,
                         pos=layout.pos,
                         show=False,
                         vmin=-4.5,
                         vmax=4.5)
    plt.colorbar(im)
    title = 'fq=%d_min_p=%0.4f' % (freq, p_data.min())
    plt.title(title)
    return title
Esempio n. 5
0
def test_find_layout():
    """Test finding layout."""
    pytest.raises(ValueError, find_layout, _get_test_info(), ch_type='meep')

    sample_info = read_info(fif_fname)
    grads = pick_types(sample_info, meg='grad')
    sample_info2 = pick_info(sample_info, grads)

    mags = pick_types(sample_info, meg='mag')
    sample_info3 = pick_info(sample_info, mags)

    # mock new convention
    sample_info4 = copy.deepcopy(sample_info)
    for ii, name in enumerate(sample_info4['ch_names']):
        new = name.replace(' ', '')
        sample_info4['chs'][ii]['ch_name'] = new

    eegs = pick_types(sample_info, meg=False, eeg=True)
    sample_info5 = pick_info(sample_info, eegs)

    lout = find_layout(sample_info, ch_type=None)
    assert lout.kind == 'Vectorview-all'
    assert all(' ' in k for k in lout.names)

    lout = find_layout(sample_info2, ch_type='meg')
    assert_equal(lout.kind, 'Vectorview-all')

    # test new vector-view
    lout = find_layout(sample_info4, ch_type=None)
    assert_equal(lout.kind, 'Vectorview-all')
    assert all(' ' not in k for k in lout.names)

    lout = find_layout(sample_info, ch_type='grad')
    assert_equal(lout.kind, 'Vectorview-grad')
    lout = find_layout(sample_info2)
    assert_equal(lout.kind, 'Vectorview-grad')
    lout = find_layout(sample_info2, ch_type='grad')
    assert_equal(lout.kind, 'Vectorview-grad')
    lout = find_layout(sample_info2, ch_type='meg')
    assert_equal(lout.kind, 'Vectorview-all')

    lout = find_layout(sample_info, ch_type='mag')
    assert_equal(lout.kind, 'Vectorview-mag')
    lout = find_layout(sample_info3)
    assert_equal(lout.kind, 'Vectorview-mag')
    lout = find_layout(sample_info3, ch_type='mag')
    assert_equal(lout.kind, 'Vectorview-mag')
    lout = find_layout(sample_info3, ch_type='meg')
    assert_equal(lout.kind, 'Vectorview-all')

    lout = find_layout(sample_info, ch_type='eeg')
    assert_equal(lout.kind, 'EEG')
    lout = find_layout(sample_info5)
    assert_equal(lout.kind, 'EEG')
    lout = find_layout(sample_info5, ch_type='eeg')
    assert_equal(lout.kind, 'EEG')
    # no common layout, 'meg' option not supported

    lout = find_layout(read_info(fname_ctf_raw))
    assert_equal(lout.kind, 'CTF-275')

    fname_bti_raw = op.join(bti_dir, 'exported4D_linux_raw.fif')
    lout = find_layout(read_info(fname_bti_raw))
    assert_equal(lout.kind, 'magnesWH3600')

    raw_kit = read_raw_kit(fname_kit_157)
    lout = find_layout(raw_kit.info)
    assert_equal(lout.kind, 'KIT-157')

    raw_kit.info['bads'] = ['MEG 013', 'MEG 014', 'MEG 015', 'MEG 016']
    raw_kit.info._check_consistency()
    lout = find_layout(raw_kit.info)
    assert_equal(lout.kind, 'KIT-157')
    # fallback for missing IDs
    for val in (35, 52, 54, 1001):
        raw_kit.info['kit_system_id'] = val
        lout = find_layout(raw_kit.info)
        assert lout.kind == 'custom'

    raw_umd = read_raw_kit(fname_kit_umd)
    lout = find_layout(raw_umd.info)
    assert_equal(lout.kind, 'KIT-UMD-3')

    # Test plotting
    lout.plot()
    lout.plot(picks=np.arange(10))
    plt.close('all')
Esempio n. 6
0
def test_find_layout():
    """Test finding layout"""
    assert_raises(ValueError, find_layout, test_info, ch_type='meep')

    sample_info = Raw(fif_fname).info
    grads = pick_types(sample_info, meg='grad')
    sample_info2 = pick_info(sample_info, grads)

    mags = pick_types(sample_info, meg='mag')
    sample_info3 = pick_info(sample_info, mags)

    # mock new convention
    sample_info4 = copy.deepcopy(sample_info)
    for ii, name in enumerate(sample_info4['ch_names']):
        new = name.replace(' ', '')
        sample_info4['ch_names'][ii] = new
        sample_info4['chs'][ii]['ch_name'] = new

    eegs = pick_types(sample_info, meg=False, eeg=True)
    sample_info5 = pick_info(sample_info, eegs)

    lout = find_layout(sample_info, ch_type=None)
    assert_true(lout.kind == 'Vectorview-all')
    assert_true(all(' ' in k for k in lout.names))

    lout = find_layout(sample_info2, ch_type='meg')
    assert_true(lout.kind == 'Vectorview-all')

    # test new vector-view
    lout = find_layout(sample_info4, ch_type=None)
    assert_true(lout.kind == 'Vectorview-all')
    assert_true(all(' ' not in k for k in lout.names))

    lout = find_layout(sample_info, ch_type='grad')
    assert_true(lout.kind == 'Vectorview-grad')
    lout = find_layout(sample_info2)
    assert_true(lout.kind == 'Vectorview-grad')
    lout = find_layout(sample_info2, ch_type='grad')
    assert_true(lout.kind == 'Vectorview-grad')
    lout = find_layout(sample_info2, ch_type='meg')
    assert_true(lout.kind == 'Vectorview-all')

    lout = find_layout(sample_info, ch_type='mag')
    assert_true(lout.kind == 'Vectorview-mag')
    lout = find_layout(sample_info3)
    assert_true(lout.kind == 'Vectorview-mag')
    lout = find_layout(sample_info3, ch_type='mag')
    assert_true(lout.kind == 'Vectorview-mag')
    lout = find_layout(sample_info3, ch_type='meg')
    assert_true(lout.kind == 'Vectorview-all')

    lout = find_layout(sample_info, ch_type='eeg')
    assert_true(lout.kind == 'EEG')
    lout = find_layout(sample_info5)
    assert_true(lout.kind == 'EEG')
    lout = find_layout(sample_info5, ch_type='eeg')
    assert_true(lout.kind == 'EEG')
    # no common layout, 'meg' option not supported

    fname_bti_raw = op.join(bti_dir, 'exported4D_linux_raw.fif')
    lout = find_layout(Raw(fname_bti_raw).info)
    assert_true(lout.kind == 'magnesWH3600')

    lout = find_layout(Raw(fname_ctf_raw).info)
    assert_true(lout.kind == 'CTF-275')

    lout = find_layout(read_raw_kit(fname_kit_157).info)
    assert_true(lout.kind == 'KIT-157')
Esempio n. 7
0
def test_find_layout():
    """Test finding layout"""
    import matplotlib.pyplot as plt
    assert_raises(ValueError, find_layout, _get_test_info(), ch_type='meep')

    sample_info = read_info(fif_fname)
    grads = pick_types(sample_info, meg='grad')
    sample_info2 = pick_info(sample_info, grads)

    mags = pick_types(sample_info, meg='mag')
    sample_info3 = pick_info(sample_info, mags)

    # mock new convention
    sample_info4 = copy.deepcopy(sample_info)
    for ii, name in enumerate(sample_info4['ch_names']):
        new = name.replace(' ', '')
        sample_info4['chs'][ii]['ch_name'] = new

    eegs = pick_types(sample_info, meg=False, eeg=True)
    sample_info5 = pick_info(sample_info, eegs)

    lout = find_layout(sample_info, ch_type=None)
    assert_equal(lout.kind, 'Vectorview-all')
    assert_true(all(' ' in k for k in lout.names))

    lout = find_layout(sample_info2, ch_type='meg')
    assert_equal(lout.kind, 'Vectorview-all')

    # test new vector-view
    lout = find_layout(sample_info4, ch_type=None)
    assert_equal(lout.kind, 'Vectorview-all')
    assert_true(all(' ' not in k for k in lout.names))

    lout = find_layout(sample_info, ch_type='grad')
    assert_equal(lout.kind, 'Vectorview-grad')
    lout = find_layout(sample_info2)
    assert_equal(lout.kind, 'Vectorview-grad')
    lout = find_layout(sample_info2, ch_type='grad')
    assert_equal(lout.kind, 'Vectorview-grad')
    lout = find_layout(sample_info2, ch_type='meg')
    assert_equal(lout.kind, 'Vectorview-all')

    lout = find_layout(sample_info, ch_type='mag')
    assert_equal(lout.kind, 'Vectorview-mag')
    lout = find_layout(sample_info3)
    assert_equal(lout.kind, 'Vectorview-mag')
    lout = find_layout(sample_info3, ch_type='mag')
    assert_equal(lout.kind, 'Vectorview-mag')
    lout = find_layout(sample_info3, ch_type='meg')
    assert_equal(lout.kind, 'Vectorview-all')

    lout = find_layout(sample_info, ch_type='eeg')
    assert_equal(lout.kind, 'EEG')
    lout = find_layout(sample_info5)
    assert_equal(lout.kind, 'EEG')
    lout = find_layout(sample_info5, ch_type='eeg')
    assert_equal(lout.kind, 'EEG')
    # no common layout, 'meg' option not supported

    lout = find_layout(read_info(fname_ctf_raw))
    assert_equal(lout.kind, 'CTF-275')

    fname_bti_raw = op.join(bti_dir, 'exported4D_linux_raw.fif')
    lout = find_layout(read_info(fname_bti_raw))
    assert_equal(lout.kind, 'magnesWH3600')

    raw_kit = read_raw_kit(fname_kit_157)
    lout = find_layout(raw_kit.info)
    assert_equal(lout.kind, 'KIT-157')

    raw_kit.info['bads'] = ['MEG  13', 'MEG  14', 'MEG  15', 'MEG  16']
    lout = find_layout(raw_kit.info)
    assert_equal(lout.kind, 'KIT-157')

    raw_umd = read_raw_kit(fname_kit_umd)
    lout = find_layout(raw_umd.info)
    assert_equal(lout.kind, 'KIT-UMD-3')

    # Test plotting
    lout.plot()
    lout.plot(picks=np.arange(10))
    plt.close('all')
Esempio n. 8
0
def test_find_layout():
    """Test finding layout"""
    import matplotlib.pyplot as plt
    assert_raises(ValueError, find_layout, _get_test_info(), ch_type='meep')

    sample_info = Raw(fif_fname).info
    grads = pick_types(sample_info, meg='grad')
    sample_info2 = pick_info(sample_info, grads)

    mags = pick_types(sample_info, meg='mag')
    sample_info3 = pick_info(sample_info, mags)

    # mock new convention
    sample_info4 = copy.deepcopy(sample_info)
    for ii, name in enumerate(sample_info4['ch_names']):
        new = name.replace(' ', '')
        sample_info4['chs'][ii]['ch_name'] = new

    eegs = pick_types(sample_info, meg=False, eeg=True)
    sample_info5 = pick_info(sample_info, eegs)

    lout = find_layout(sample_info, ch_type=None)
    assert_equal(lout.kind, 'Vectorview-all')
    assert_true(all(' ' in k for k in lout.names))

    lout = find_layout(sample_info2, ch_type='meg')
    assert_equal(lout.kind, 'Vectorview-all')

    # test new vector-view
    lout = find_layout(sample_info4, ch_type=None)
    assert_equal(lout.kind, 'Vectorview-all')
    assert_true(all(' ' not in k for k in lout.names))

    lout = find_layout(sample_info, ch_type='grad')
    assert_equal(lout.kind, 'Vectorview-grad')
    lout = find_layout(sample_info2)
    assert_equal(lout.kind, 'Vectorview-grad')
    lout = find_layout(sample_info2, ch_type='grad')
    assert_equal(lout.kind, 'Vectorview-grad')
    lout = find_layout(sample_info2, ch_type='meg')
    assert_equal(lout.kind, 'Vectorview-all')

    lout = find_layout(sample_info, ch_type='mag')
    assert_equal(lout.kind, 'Vectorview-mag')
    lout = find_layout(sample_info3)
    assert_equal(lout.kind, 'Vectorview-mag')
    lout = find_layout(sample_info3, ch_type='mag')
    assert_equal(lout.kind, 'Vectorview-mag')
    lout = find_layout(sample_info3, ch_type='meg')
    assert_equal(lout.kind, 'Vectorview-all')

    lout = find_layout(sample_info, ch_type='eeg')
    assert_equal(lout.kind, 'EEG')
    lout = find_layout(sample_info5)
    assert_equal(lout.kind, 'EEG')
    lout = find_layout(sample_info5, ch_type='eeg')
    assert_equal(lout.kind, 'EEG')
    # no common layout, 'meg' option not supported

    lout = find_layout(Raw(fname_ctf_raw).info)
    assert_equal(lout.kind, 'CTF-275')

    fname_bti_raw = op.join(bti_dir, 'exported4D_linux_raw.fif')
    lout = find_layout(Raw(fname_bti_raw).info)
    assert_equal(lout.kind, 'magnesWH3600')

    raw_kit = read_raw_kit(fname_kit_157)
    lout = find_layout(raw_kit.info)
    assert_equal(lout.kind, 'KIT-157')

    raw_kit.info['bads'] = ['MEG  13', 'MEG  14', 'MEG  15', 'MEG  16']
    lout = find_layout(raw_kit.info)
    assert_equal(lout.kind, 'KIT-157')

    raw_umd = read_raw_kit(fname_kit_umd)
    lout = find_layout(raw_umd.info)
    assert_equal(lout.kind, 'KIT-UMD-3')

    # Test plotting
    lout.plot()
    plt.close('all')
##############################################################################
# The results of these mass univariate analyses can be visualised by plotting
# :class:`mne.Evoked` objects as images (via :class:`mne.Evoked.plot_image`)
# and masking points for significance.
# Here, we group channels by Regions of Interest to facilitate localising
# effects on the head.

# We need an evoked object to plot the image to be masked
evoked = mne.combine_evoked([long.average(), -short.average()],
                            weights='equal')  # calculate difference wave
time_unit = dict(time_unit="s")
evoked.plot_joint(title="Long vs. short words", ts_args=time_unit,
                  topomap_args=time_unit)  # show difference wave

# Create ROIs by checking channel labels
pos = find_layout(epochs.info).pos
rois = dict()
for pick, channel in enumerate(epochs.ch_names):
    last_char = channel[-1]  # for 10/20, last letter codes the hemisphere
    roi = ("Midline" if last_char in "z12" else
           ("Left" if int(last_char) % 2 else "Right"))
    rois[roi] = rois.get(roi, list()) + [pick]

# sort channels from front to center
# (y-coordinate of the position info in the layout)
rois = {roi: np.array(picks)[pos[picks, 1].argsort()]
        for roi, picks in rois.items()}

# Visualize the results
fig, axes = plt.subplots(nrows=3, figsize=(8, 8))
vmax = np.abs(evoked.data).max() * 1e6
Esempio n. 10
0
def test_find_layout():
    """Test finding layout"""
    import matplotlib.pyplot as plt

    assert_raises(ValueError, find_layout, _get_test_info(), ch_type="meep")

    sample_info = Raw(fif_fname).info
    grads = pick_types(sample_info, meg="grad")
    sample_info2 = pick_info(sample_info, grads)

    mags = pick_types(sample_info, meg="mag")
    sample_info3 = pick_info(sample_info, mags)

    # mock new convention
    sample_info4 = copy.deepcopy(sample_info)
    for ii, name in enumerate(sample_info4["ch_names"]):
        new = name.replace(" ", "")
        sample_info4["chs"][ii]["ch_name"] = new

    eegs = pick_types(sample_info, meg=False, eeg=True)
    sample_info5 = pick_info(sample_info, eegs)

    lout = find_layout(sample_info, ch_type=None)
    assert_true(lout.kind == "Vectorview-all")
    assert_true(all(" " in k for k in lout.names))

    lout = find_layout(sample_info2, ch_type="meg")
    assert_true(lout.kind == "Vectorview-all")

    # test new vector-view
    lout = find_layout(sample_info4, ch_type=None)
    assert_true(lout.kind == "Vectorview-all")
    assert_true(all(" " not in k for k in lout.names))

    lout = find_layout(sample_info, ch_type="grad")
    assert_true(lout.kind == "Vectorview-grad")
    lout = find_layout(sample_info2)
    assert_true(lout.kind == "Vectorview-grad")
    lout = find_layout(sample_info2, ch_type="grad")
    assert_true(lout.kind == "Vectorview-grad")
    lout = find_layout(sample_info2, ch_type="meg")
    assert_true(lout.kind == "Vectorview-all")

    lout = find_layout(sample_info, ch_type="mag")
    assert_true(lout.kind == "Vectorview-mag")
    lout = find_layout(sample_info3)
    assert_true(lout.kind == "Vectorview-mag")
    lout = find_layout(sample_info3, ch_type="mag")
    assert_true(lout.kind == "Vectorview-mag")
    lout = find_layout(sample_info3, ch_type="meg")
    assert_true(lout.kind == "Vectorview-all")

    lout = find_layout(sample_info, ch_type="eeg")
    assert_true(lout.kind == "EEG")
    lout = find_layout(sample_info5)
    assert_true(lout.kind == "EEG")
    lout = find_layout(sample_info5, ch_type="eeg")
    assert_true(lout.kind == "EEG")
    # no common layout, 'meg' option not supported

    fname_bti_raw = op.join(bti_dir, "exported4D_linux_raw.fif")
    lout = find_layout(Raw(fname_bti_raw).info)
    assert_true(lout.kind == "magnesWH3600")

    lout = find_layout(Raw(fname_ctf_raw).info)
    assert_true(lout.kind == "CTF-275")

    lout = find_layout(read_raw_kit(fname_kit_157).info)
    assert_true(lout.kind == "KIT-157")
    # Test plotting
    lout.plot()
    plt.close("all")