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)
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)
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)
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
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')
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')
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')
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
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")