def test_psf_ctf(): """Test computation of PSFs and CTFs for linear estimators """ forward = read_forward_solution(fname_fwd) labels = [mne.read_label(ss) for ss in fname_label] method = 'MNE' n_svd_comp = 2 # make sure it works for both types of inverses for fname_inv in (fname_inv_meg, fname_inv_meeg): inverse_operator = read_inverse_operator(fname_inv) # Test PSFs (then CTFs) for mode in ('sum', 'svd'): stc_psf, psf_ev = point_spread_function(inverse_operator, forward, method=method, labels=labels, lambda2=lambda2, pick_ori='normal', mode=mode, n_svd_comp=n_svd_comp, use_cps=True) n_vert, n_samples = stc_psf.shape should_n_vert = (inverse_operator['src'][1]['vertno'].shape[0] + inverse_operator['src'][0]['vertno'].shape[0]) if mode == 'svd': should_n_samples = len(labels) * n_svd_comp + 1 else: should_n_samples = len(labels) + 1 assert_true(n_vert == should_n_vert) assert_true(n_samples == should_n_samples) n_chan, n_samples = psf_ev.data.shape assert_true(n_chan == forward['nchan']) # Test CTFs for mode in ('sum', 'svd'): stc_ctf = cross_talk_function(inverse_operator, forward, labels, method=method, lambda2=lambda2, signed=False, mode=mode, n_svd_comp=n_svd_comp, use_cps=True) n_vert, n_samples = stc_ctf.shape should_n_vert = (inverse_operator['src'][1]['vertno'].shape[0] + inverse_operator['src'][0]['vertno'].shape[0]) if mode == 'svd': should_n_samples = len(labels) * n_svd_comp + 1 else: should_n_samples = len(labels) + 1 assert_true(n_vert == should_n_vert) assert_true(n_samples == should_n_samples)
def test_psf_ctf(): """Test computation of PSFs and CTFs for linear estimators """ inverse_operator = read_inverse_operator(fname_inv) forward = read_forward_solution(fname_fwd, force_fixed=False, surf_ori=True) forward = pick_types_forward(forward, meg=True, eeg=False) labels = [mne.read_label(ss) for ss in fname_label] method = 'MNE' n_svd_comp = 2 # Test PSFs (then CTFs) for mode in ('sum', 'svd'): stc_psf, psf_ev = point_spread_function(inverse_operator, forward, method=method, labels=labels, lambda2=lambda2, pick_ori='normal', mode=mode, n_svd_comp=n_svd_comp) n_vert, n_samples = stc_psf.shape should_n_vert = (inverse_operator['src'][1]['vertno'].shape[0] + inverse_operator['src'][0]['vertno'].shape[0]) if mode == 'svd': should_n_samples = len(labels) * n_svd_comp + 1 else: should_n_samples = len(labels) + 1 assert_true(n_vert == should_n_vert) assert_true(n_samples == should_n_samples) n_chan, n_samples = psf_ev.data.shape assert_true(n_chan == forward['nchan']) forward = read_forward_solution(fname_fwd, force_fixed=True, surf_ori=True) forward = pick_types_forward(forward, meg=True, eeg=False) # Test CTFs for mode in ('sum', 'svd'): stc_ctf = cross_talk_function(inverse_operator, forward, labels, method=method, lambda2=lambda2, signed=False, mode=mode, n_svd_comp=n_svd_comp) n_vert, n_samples = stc_ctf.shape should_n_vert = (inverse_operator['src'][1]['vertno'].shape[0] + inverse_operator['src'][0]['vertno'].shape[0]) if mode == 'svd': should_n_samples = len(labels) * n_svd_comp + 1 else: should_n_samples = len(labels) + 1 assert_true(n_vert == should_n_vert) assert_true(n_samples == should_n_samples)
# read label(s) labels = [mne.read_label(ss) for ss in fname_label] inverse_operator = read_inverse_operator(fname_inv) # regularisation parameter snr = 3.0 lambda2 = 1.0 / snr**2 mode = 'svd' n_svd_comp = 1 method = 'MNE' # can be 'MNE', 'dSPM', or 'sLORETA' stc_ctf_mne = cross_talk_function(inverse_operator, forward, labels, method=method, lambda2=lambda2, signed=False, mode=mode, n_svd_comp=n_svd_comp) method = 'dSPM' stc_ctf_dspm = cross_talk_function(inverse_operator, forward, labels, method=method, lambda2=lambda2, signed=False, mode=mode, n_svd_comp=n_svd_comp) time_label = "MNE %d"
forward = mne.read_forward_solution(fname_fwd) # read label(s) labels = [mne.read_label(ss) for ss in fname_label] inverse_operator = read_inverse_operator(fname_inv) # regularisation parameter snr = 3.0 lambda2 = 1.0 / snr ** 2 mode = 'svd' n_svd_comp = 1 method = 'MNE' # can be 'MNE', 'dSPM', or 'sLORETA' stc_ctf_mne = cross_talk_function( inverse_operator, forward, labels, method=method, lambda2=lambda2, signed=False, mode=mode, n_svd_comp=n_svd_comp) method = 'dSPM' stc_ctf_dspm = cross_talk_function( inverse_operator, forward, labels, method=method, lambda2=lambda2, signed=False, mode=mode, n_svd_comp=n_svd_comp) fmin = 0. time_label = "MNE %d" fmax = stc_ctf_mne.data[:, 0].max() fmid = fmax / 2. brain_mne = stc_ctf_mne.plot(surface='inflated', hemi='rh', subjects_dir=subjects_dir, time_label=time_label, fmin=fmin, fmid=fmid, fmax=fmax,