def test_meg_field_interpolation_helmet(): """Test interpolation of MEG field onto helmet """ evoked = read_evoked(evoked_fname, setno='Left Auditory') info = evoked.info surf = get_meg_helmet_surf(info) # let's reduce the number of channels by a bunch to speed it up info['bads'] = info['ch_names'][:200] # bad ch_type assert_raises(ValueError, make_surface_mapping, info, surf, 'foo') # bad mode assert_raises(ValueError, make_surface_mapping, info, surf, 'meg', mode='foo') # no picks evoked_eeg = pick_types_evoked(evoked, meg=False, eeg=True) assert_raises(RuntimeError, make_surface_mapping, evoked_eeg.info, surf, 'meg') # bad surface def nn = surf['nn'] del surf['nn'] assert_raises(KeyError, make_surface_mapping, info, surf, 'meg') surf['nn'] = nn cf = surf['coord_frame'] del surf['coord_frame'] assert_raises(KeyError, make_surface_mapping, info, surf, 'meg') surf['coord_frame'] = cf # now do it data = make_surface_mapping(info, surf, 'meg', mode='fast') assert_array_equal(data.shape, (304, 106)) # data onto surf
def test_helmet(): """Test loading helmet surfaces """ base_dir = op.join(op.dirname(__file__), '..', 'fiff') fname_raw = op.join(base_dir, 'tests', 'data', 'test_raw.fif') fname_kit_raw = op.join(base_dir, 'kit', 'tests', 'data', 'test_bin.fif') fname_bti_raw = op.join(base_dir, 'bti', 'tests', 'data', 'exported4D_linux.fif') fname_ctf_raw = op.join(base_dir, 'tests', 'data', 'test_ctf_raw.fif') fname_trans = op.join(base_dir, 'tests', 'data', 'sample-audvis-raw-trans.txt') trans = _get_mri_head_t_from_trans_file(fname_trans) for fname in [fname_raw, fname_kit_raw, fname_bti_raw, fname_ctf_raw]: helmet = get_meg_helmet_surf(read_info(fname), trans) assert_equal(len(helmet['rr']), 304) # they all have 304 verts assert_equal(len(helmet['rr']), len(helmet['nn']))
print(__doc__) import numpy as np import mne data_path = mne.datasets.sample.data_path() subjects_dir = data_path + '/subjects' evoked_fname = data_path + '/MEG/sample/sample_audvis-ave.fif' trans_fname = data_path + '/MEG/sample/sample_audvis_raw-trans.fif' setno = 'Left Auditory' trans = mne.read_trans(trans_fname) evoked = mne.fiff.read_evoked(evoked_fname, setno=setno, baseline=(-0.2, 0.0)) # let's do this in MRI coordinates so they're easy to plot helmet_surf = mne.get_meg_helmet_surf(evoked.info, trans) head_surf = mne.get_head_surface('sample', subjects_dir=subjects_dir) helmet_map = mne.make_surface_mapping(evoked.info, helmet_surf, 'meg', trans, n_jobs=-1) head_map = mne.make_surface_mapping(evoked.info, head_surf, 'eeg', trans, n_jobs=-1) # let's look at the N100 evoked.crop(0.09, 0.10) evoked_eeg = mne.fiff.pick_types_evoked(evoked, meg=False, eeg=True) evoked_meg = mne.fiff.pick_types_evoked(evoked, meg=True, eeg=False) helmet_data = np.dot(helmet_map, evoked_meg.data[:, 0]) head_data = np.dot(head_map, evoked_eeg.data[:, 0]) # Plot them