def test_make_field_map_eeg(): """Test interpolation of EEG field onto head """ evoked = read_evokeds(evoked_fname, condition='Left Auditory') evoked.info['bads'] = ['MEG 2443', 'EEG 053'] # add some bads surf = get_head_surf('sample', subjects_dir=subjects_dir) # we must have trans if surface is in MRI coords assert_raises(ValueError, _make_surface_mapping, evoked.info, surf, 'eeg') evoked = pick_types_evoked(evoked, meg=False, eeg=True) fmd = make_field_map(evoked, trans_fname=trans_fname, subject='sample', subjects_dir=subjects_dir) # trans is necessary for EEG only assert_raises(RuntimeError, make_field_map, evoked, trans_fname=None, subject='sample', subjects_dir=subjects_dir) fmd = make_field_map(evoked, trans_fname=trans_fname, subject='sample', subjects_dir=subjects_dir) assert_true(len(fmd) == 1) assert_array_equal(fmd[0]['data'].shape, (2562, 59)) # maps data onto surf assert_true(len(fmd[0]['ch_names']), 59)
def test_make_field_map_meg(): """Test interpolation of MEG field onto helmet | head """ evoked = read_evokeds(evoked_fname, condition='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 = evoked.pick_types(meg=False, eeg=True, copy=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 with make_field_map evoked.pick_types(meg=True, eeg=False) fmd = make_field_map(evoked, None, subject='sample', subjects_dir=subjects_dir) assert_true(len(fmd) == 1) assert_array_equal(fmd[0]['data'].shape, (304, 106)) # maps data onto surf assert_true(len(fmd[0]['ch_names']), 106) assert_raises(ValueError, make_field_map, evoked, ch_type='foobar') # now test the make_field_map on head surf for MEG evoked.pick_types(meg=True, eeg=False) fmd = make_field_map(evoked, trans_fname, meg_surf='head', subject='sample', subjects_dir=subjects_dir) assert_true(len(fmd) == 1) assert_array_equal(fmd[0]['data'].shape, (642, 106)) # maps data onto surf assert_true(len(fmd[0]['ch_names']), 106) assert_raises(ValueError, make_field_map, evoked, meg_surf='foobar', subjects_dir=subjects_dir, trans=trans_fname)
def test_field_map_ctf(): """Test that field mapping can be done with CTF data.""" raw = read_raw_fif(raw_ctf_fname).crop(0, 1) raw.apply_gradient_compensation(3) events = make_fixed_length_events(raw, duration=0.5) evoked = Epochs(raw, events).average() evoked.pick_channels(evoked.ch_names[:50]) # crappy mapping but faster # smoke test make_field_map(evoked, trans=trans_fname, subject='sample', subjects_dir=subjects_dir)
def test_make_field_map_meg(): """Test interpolation of MEG field onto helmet | head """ evoked = read_evokeds(evoked_fname, condition='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 = evoked.copy().pick_types(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 with make_field_map evoked.pick_types(meg=True, eeg=False) evoked.info.normalize_proj() # avoid projection warnings fmd = make_field_map(evoked, None, subject='sample', subjects_dir=subjects_dir) assert_true(len(fmd) == 1) assert_array_equal(fmd[0]['data'].shape, (304, 106)) # maps data onto surf assert_true(len(fmd[0]['ch_names']), 106) assert_raises(ValueError, make_field_map, evoked, ch_type='foobar') # now test the make_field_map on head surf for MEG evoked.pick_types(meg=True, eeg=False) evoked.info.normalize_proj() fmd = make_field_map(evoked, trans_fname, meg_surf='head', subject='sample', subjects_dir=subjects_dir) assert_true(len(fmd) == 1) assert_array_equal(fmd[0]['data'].shape, (642, 106)) # maps data onto surf assert_true(len(fmd[0]['ch_names']), 106) assert_raises(ValueError, make_field_map, evoked, meg_surf='foobar', subjects_dir=subjects_dir, trans=trans_fname)
def test_make_field_map_meeg(): """Test making a M/EEG field map onto helmet & head""" evoked = read_evokeds(evoked_fname, baseline=(-0.2, 0.0))[0] picks = pick_types(evoked.info, meg=True, eeg=True) picks = picks[::10] evoked.pick_channels([evoked.ch_names[p] for p in picks]) maps = make_field_map(evoked, trans_fname, subject='sample', subjects_dir=subjects_dir, n_jobs=1) assert_equal(maps[0]['data'].shape, (642, 6)) # EEG->Head assert_equal(maps[1]['data'].shape, (304, 31)) # MEG->Helmet # reasonable ranges for map_ in maps: assert_true(0.5 < map_['data'].max() < 2) assert_true(-2 < map_['data'].min() < -0.5) # calculated from correct looking mapping on 2015/12/26 assert_allclose(np.sqrt(np.sum(maps[0]['data']**2)), 16.6088, atol=1e-3, rtol=1e-3) assert_allclose(np.sqrt(np.sum(maps[1]['data']**2)), 20.1245, atol=1e-3, rtol=1e-3)
def test_make_field_map_meeg(): """Test making a M/EEG field map onto helmet & head.""" evoked = read_evokeds(evoked_fname, baseline=(-0.2, 0.0))[0] picks = pick_types(evoked.info, meg=True, eeg=True) picks = picks[::10] evoked.pick_channels([evoked.ch_names[p] for p in picks]) evoked.info.normalize_proj() maps = make_field_map(evoked, trans_fname, subject='sample', subjects_dir=subjects_dir, n_jobs=1, verbose='debug') assert_equal(maps[0]['data'].shape, (642, 6)) # EEG->Head assert_equal(maps[1]['data'].shape, (304, 31)) # MEG->Helmet # reasonable ranges maxs = (1.2, 2.0) # before #4418, was (1.1, 2.0) mins = (-0.8, -1.3) # before #4418, was (-0.6, -1.2) assert_equal(len(maxs), len(maps)) for map_, max_, min_ in zip(maps, maxs, mins): assert_allclose(map_['data'].max(), max_, rtol=5e-2) assert_allclose(map_['data'].min(), min_, rtol=5e-2) # calculated from correct looking mapping on 2015/12/26 assert_allclose( np.sqrt(np.sum(maps[0]['data']**2)), 19.0903, # 16.6088, atol=1e-3, rtol=1e-3) assert_allclose( np.sqrt(np.sum(maps[1]['data']**2)), 19.4748, # 20.1245, atol=1e-3, rtol=1e-3)
def test_make_field_map_eeg(): """Test interpolation of EEG field onto head """ evoked = read_evokeds(evoked_fname, condition="Left Auditory") evoked.info["bads"] = ["MEG 2443", "EEG 053"] # add some bads surf = get_head_surf("sample", subjects_dir=subjects_dir) # we must have trans if surface is in MRI coords assert_raises(ValueError, _make_surface_mapping, evoked.info, surf, "eeg") evoked.pick_types(meg=False, eeg=True) fmd = make_field_map(evoked, trans_fname, subject="sample", subjects_dir=subjects_dir) # trans is necessary for EEG only assert_raises(RuntimeError, make_field_map, evoked, None, subject="sample", subjects_dir=subjects_dir) fmd = make_field_map(evoked, trans_fname, subject="sample", subjects_dir=subjects_dir) assert_true(len(fmd) == 1) assert_array_equal(fmd[0]["data"].shape, (642, 59)) # maps data onto surf assert_true(len(fmd[0]["ch_names"]), 59)
def test_make_field_map_meg(): """Test interpolation of MEG field onto helmet | head """ evoked = read_evokeds(evoked_fname, condition="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 = evoked.pick_types(meg=False, eeg=True, copy=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 with make_field_map evoked.pick_types(meg=True, eeg=False) fmd = make_field_map(evoked, None, subject="sample", subjects_dir=subjects_dir) assert_true(len(fmd) == 1) assert_array_equal(fmd[0]["data"].shape, (304, 106)) # maps data onto surf assert_true(len(fmd[0]["ch_names"]), 106) assert_raises(ValueError, make_field_map, evoked, ch_type="foobar") # now test the make_field_map on head surf for MEG evoked.pick_types(meg=True, eeg=False) fmd = make_field_map(evoked, trans_fname, meg_surf="head", subject="sample", subjects_dir=subjects_dir) assert_true(len(fmd) == 1) assert_array_equal(fmd[0]["data"].shape, (642, 106)) # maps data onto surf assert_true(len(fmd[0]["ch_names"]), 106) assert_raises(ValueError, make_field_map, evoked, meg_surf="foobar", subjects_dir=subjects_dir, trans=trans_fname)
def test_make_field_map_eeg(): """Test interpolation of EEG field onto head.""" evoked = read_evokeds(evoked_fname, condition='Left Auditory') evoked.info['bads'] = ['MEG 2443', 'EEG 053'] # add some bads surf = get_head_surf('sample', subjects_dir=subjects_dir) # we must have trans if surface is in MRI coords pytest.raises(ValueError, _make_surface_mapping, evoked.info, surf, 'eeg') evoked.pick_types(meg=False, eeg=True) fmd = make_field_map(evoked, trans_fname, subject='sample', subjects_dir=subjects_dir) # trans is necessary for EEG only pytest.raises(RuntimeError, make_field_map, evoked, None, subject='sample', subjects_dir=subjects_dir) fmd = make_field_map(evoked, trans_fname, subject='sample', subjects_dir=subjects_dir) assert len(fmd) == 1 assert_array_equal(fmd[0]['data'].shape, (642, 59)) # maps data onto surf assert len(fmd[0]['ch_names']) == 59
def test_make_field_map_meeg(): """Test making a M/EEG field map onto helmet & head""" evoked = read_evokeds(evoked_fname, baseline=(-0.2, 0.0))[0] picks = pick_types(evoked.info, meg=True, eeg=True) picks = picks[::10] evoked.pick_channels([evoked.ch_names[p] for p in picks]) maps = make_field_map(evoked, trans_fname, subject='sample', subjects_dir=subjects_dir, n_jobs=1) assert_equal(maps[0]['data'].shape, (642, 6)) # EEG->Head assert_equal(maps[1]['data'].shape, (304, 31)) # MEG->Helmet # reasonable ranges for map_ in maps: assert_true(0.5 < map_['data'].max() < 2) assert_true(-2 < map_['data'].min() < -0.5) # calculated from correct looking mapping on 2015/12/26 assert_allclose(np.sqrt(np.sum(maps[0]['data'] ** 2)), 16.6088, atol=1e-3, rtol=1e-3) assert_allclose(np.sqrt(np.sum(maps[1]['data'] ** 2)), 20.1245, atol=1e-3, rtol=1e-3)
def test_make_field_map_meeg(): """Test making a M/EEG field map onto helmet & head.""" evoked = read_evokeds(evoked_fname, baseline=(-0.2, 0.0))[0] picks = pick_types(evoked.info, meg=True, eeg=True) picks = picks[::10] evoked.pick_channels([evoked.ch_names[p] for p in picks]) evoked.info.normalize_proj() maps = make_field_map(evoked, trans_fname, subject='sample', subjects_dir=subjects_dir, n_jobs=1, verbose='debug') assert_equal(maps[0]['data'].shape, (642, 6)) # EEG->Head assert_equal(maps[1]['data'].shape, (304, 31)) # MEG->Helmet # reasonable ranges maxs = (1.2, 2.0) # before #4418, was (1.1, 2.0) mins = (-0.8, -1.3) # before #4418, was (-0.6, -1.2) assert_equal(len(maxs), len(maps)) for map_, max_, min_ in zip(maps, maxs, mins): assert_allclose(map_['data'].max(), max_, rtol=5e-2) assert_allclose(map_['data'].min(), min_, rtol=5e-2) # calculated from correct looking mapping on 2015/12/26 assert_allclose(np.sqrt(np.sum(maps[0]['data'] ** 2)), 19.0903, # 16.6088, atol=1e-3, rtol=1e-3) assert_allclose(np.sqrt(np.sum(maps[1]['data'] ** 2)), 19.4748, # 20.1245, atol=1e-3, rtol=1e-3)