def test_pick_forward_seeg(): """Test picking forward with SEEG """ fwd = read_forward_solution(test_forward.fname_meeg) counts = channel_indices_by_type(fwd["info"]) for key in counts.keys(): counts[key] = len(counts[key]) counts["meg"] = counts["mag"] + counts["grad"] fwd_ = pick_types_forward(fwd, meg=True, eeg=False, seeg=False) _check_fwd_n_chan_consistent(fwd_, counts["meg"]) fwd_ = pick_types_forward(fwd, meg=False, eeg=True, seeg=False) _check_fwd_n_chan_consistent(fwd_, counts["eeg"]) # should raise exception related to emptiness assert_raises(ValueError, pick_types_forward, fwd, meg=False, eeg=False, seeg=True) # change last chan from EEG to sEEG seeg_name = "OTp1" rename_channels(fwd["info"], {"EEG 060": seeg_name}) for ch in fwd["info"]["chs"]: if ch["ch_name"] == seeg_name: ch["kind"] = FIFF.FIFFV_SEEG_CH ch["coil_type"] = FIFF.FIFFV_COIL_EEG fwd["sol"]["row_names"][-1] = fwd["info"]["chs"][-1]["ch_name"] counts["eeg"] -= 1 counts["seeg"] += 1 # repick & check fwd_seeg = pick_types_forward(fwd, meg=False, eeg=False, seeg=True) assert_equal(fwd_seeg["sol"]["row_names"], [seeg_name]) assert_equal(fwd_seeg["info"]["ch_names"], [seeg_name]) # should work fine fwd_ = pick_types_forward(fwd, meg=True, eeg=False, seeg=False) _check_fwd_n_chan_consistent(fwd_, counts["meg"]) fwd_ = pick_types_forward(fwd, meg=False, eeg=True, seeg=False) _check_fwd_n_chan_consistent(fwd_, counts["eeg"]) fwd_ = pick_types_forward(fwd, meg=False, eeg=False, seeg=True) _check_fwd_n_chan_consistent(fwd_, counts["seeg"])
def test_pick_forward_seeg(): fwd = read_forward_solution(test_forward.fname_meeg) counts = channel_indices_by_type(fwd['info']) for key in counts.keys(): counts[key] = len(counts[key]) counts['meg'] = counts['mag'] + counts['grad'] fwd_ = pick_types_forward(fwd, meg=True, eeg=False, seeg=False) _check_fwd_n_chan_consistent(fwd_, counts['meg']) fwd_ = pick_types_forward(fwd, meg=False, eeg=True, seeg=False) _check_fwd_n_chan_consistent(fwd_, counts['eeg']) # should raise exception related to emptiness assert_raises(ValueError, pick_types_forward, fwd, meg=False, eeg=False, seeg=True) # change last chan from EEG to sEEG seeg_name = 'OTp1' rename_channels(fwd['info'], {'EEG 060': (seeg_name, 'seeg')}) fwd['sol']['row_names'][-1] = fwd['info']['chs'][-1]['ch_name'] counts['eeg'] -= 1 counts['seeg'] += 1 # repick & check fwd_seeg = pick_types_forward(fwd, meg=False, eeg=False, seeg=True) assert_equal(fwd_seeg['sol']['row_names'], [seeg_name]) assert_equal(fwd_seeg['info']['ch_names'], [seeg_name]) # should work fine fwd_ = pick_types_forward(fwd, meg=True, eeg=False, seeg=False) _check_fwd_n_chan_consistent(fwd_, counts['meg']) fwd_ = pick_types_forward(fwd, meg=False, eeg=True, seeg=False) _check_fwd_n_chan_consistent(fwd_, counts['eeg']) fwd_ = pick_types_forward(fwd, meg=False, eeg=False, seeg=True) _check_fwd_n_chan_consistent(fwd_, counts['seeg'])
def test_pick_forward_seeg_ecog(): """Test picking forward with SEEG and ECoG """ fwd = read_forward_solution(fname_meeg) counts = channel_indices_by_type(fwd['info']) for key in counts.keys(): counts[key] = len(counts[key]) counts['meg'] = counts['mag'] + counts['grad'] fwd_ = pick_types_forward(fwd, meg=True) _check_fwd_n_chan_consistent(fwd_, counts['meg']) fwd_ = pick_types_forward(fwd, meg=False, eeg=True) _check_fwd_n_chan_consistent(fwd_, counts['eeg']) # should raise exception related to emptiness assert_raises(ValueError, pick_types_forward, fwd, meg=False, seeg=True) assert_raises(ValueError, pick_types_forward, fwd, meg=False, ecog=True) # change last chan from EEG to sEEG, second-to-last to ECoG ecog_name = 'E1' seeg_name = 'OTp1' rename_channels(fwd['info'], {'EEG 059': ecog_name}) rename_channels(fwd['info'], {'EEG 060': seeg_name}) for ch in fwd['info']['chs']: if ch['ch_name'] == seeg_name: ch['kind'] = FIFF.FIFFV_SEEG_CH ch['coil_type'] = FIFF.FIFFV_COIL_EEG elif ch['ch_name'] == ecog_name: ch['kind'] = FIFF.FIFFV_ECOG_CH ch['coil_type'] = FIFF.FIFFV_COIL_EEG fwd['sol']['row_names'][-1] = fwd['info']['chs'][-1]['ch_name'] fwd['sol']['row_names'][-2] = fwd['info']['chs'][-2]['ch_name'] counts['eeg'] -= 2 counts['seeg'] += 1 counts['ecog'] += 1 # repick & check fwd_seeg = pick_types_forward(fwd, meg=False, seeg=True) assert_equal(fwd_seeg['sol']['row_names'], [seeg_name]) assert_equal(fwd_seeg['info']['ch_names'], [seeg_name]) # should work fine fwd_ = pick_types_forward(fwd, meg=True) _check_fwd_n_chan_consistent(fwd_, counts['meg']) fwd_ = pick_types_forward(fwd, meg=False, eeg=True) _check_fwd_n_chan_consistent(fwd_, counts['eeg']) fwd_ = pick_types_forward(fwd, meg=False, seeg=True) _check_fwd_n_chan_consistent(fwd_, counts['seeg']) fwd_ = pick_types_forward(fwd, meg=False, ecog=True) _check_fwd_n_chan_consistent(fwd_, counts['ecog'])