def test_average_forward_solution(): """Test averaging forward solutions """ fwd = read_forward_solution(fname) # input not a list assert_raises(TypeError, average_forward_solutions, 1) # list is too short assert_raises(ValueError, average_forward_solutions, []) # negative weights assert_raises(ValueError, average_forward_solutions, [fwd, fwd], [-1, 0]) # all zero weights assert_raises(ValueError, average_forward_solutions, [fwd, fwd], [0, 0]) # weights not same length assert_raises(ValueError, average_forward_solutions, [fwd, fwd], [0, 0, 0]) # list does not only have all dict() assert_raises(TypeError, average_forward_solutions, [1, fwd]) # try an easy case fwd_copy = average_forward_solutions([fwd]) assert_array_equal(fwd['sol']['data'], fwd_copy['sol']['data']) # modify a fwd solution, save it, use MNE to average with old one fwd_copy['sol']['data'] *= 0.5 fname_copy = op.join(temp_dir, 'fwd.fif') write_forward_solution(fname_copy, fwd_copy, overwrite=True) cmd = ('mne_average_forward_solutions', '--fwd', fname, '--fwd', fname_copy, '--out', fname_copy) run_subprocess(cmd) # now let's actually do it, with one filename and one fwd fwd_ave = average_forward_solutions([fwd, fwd_copy]) assert_array_equal(0.75 * fwd['sol']['data'], fwd_ave['sol']['data'])
def test_average_forward_solution(): """Test averaging forward solutions """ temp_dir = _TempDir() fwd = read_forward_solution(fname_meeg) # input not a list assert_raises(TypeError, average_forward_solutions, 1) # list is too short assert_raises(ValueError, average_forward_solutions, []) # negative weights assert_raises(ValueError, average_forward_solutions, [fwd, fwd], [-1, 0]) # all zero weights assert_raises(ValueError, average_forward_solutions, [fwd, fwd], [0, 0]) # weights not same length assert_raises(ValueError, average_forward_solutions, [fwd, fwd], [0, 0, 0]) # list does not only have all dict() assert_raises(TypeError, average_forward_solutions, [1, fwd]) # try an easy case fwd_copy = average_forward_solutions([fwd]) assert_true(isinstance(fwd_copy, Forward)) assert_array_equal(fwd["sol"]["data"], fwd_copy["sol"]["data"]) # modify a fwd solution, save it, use MNE to average with old one fwd_copy["sol"]["data"] *= 0.5 fname_copy = op.join(temp_dir, "copy-fwd.fif") write_forward_solution(fname_copy, fwd_copy, overwrite=True) cmd = ("mne_average_forward_solutions", "--fwd", fname_meeg, "--fwd", fname_copy, "--out", fname_copy) run_subprocess(cmd) # now let's actually do it, with one filename and one fwd fwd_ave = average_forward_solutions([fwd, fwd_copy]) assert_array_equal(0.75 * fwd["sol"]["data"], fwd_ave["sol"]["data"]) # fwd_ave_mne = read_forward_solution(fname_copy) # assert_array_equal(fwd_ave_mne['sol']['data'], fwd_ave['sol']['data']) # with gradient fwd = read_forward_solution(fname_meeg_grad) fwd_ave = average_forward_solutions([fwd, fwd]) compare_forwards(fwd, fwd_ave)
def test_average_forward_solution(): """Test averaging forward solutions.""" temp_dir = _TempDir() fwd = read_forward_solution(fname_meeg) # input not a list pytest.raises(TypeError, average_forward_solutions, 1) # list is too short pytest.raises(ValueError, average_forward_solutions, []) # negative weights pytest.raises(ValueError, average_forward_solutions, [fwd, fwd], [-1, 0]) # all zero weights pytest.raises(ValueError, average_forward_solutions, [fwd, fwd], [0, 0]) # weights not same length pytest.raises(ValueError, average_forward_solutions, [fwd, fwd], [0, 0, 0]) # list does not only have all dict() pytest.raises(TypeError, average_forward_solutions, [1, fwd]) # try an easy case fwd_copy = average_forward_solutions([fwd]) assert (isinstance(fwd_copy, Forward)) assert_array_equal(fwd['sol']['data'], fwd_copy['sol']['data']) # modify a fwd solution, save it, use MNE to average with old one fwd_copy['sol']['data'] *= 0.5 fname_copy = op.join(temp_dir, 'copy-fwd.fif') write_forward_solution(fname_copy, fwd_copy, overwrite=True) cmd = ('mne_average_forward_solutions', '--fwd', fname_meeg, '--fwd', fname_copy, '--out', fname_copy) run_subprocess(cmd) # now let's actually do it, with one filename and one fwd fwd_ave = average_forward_solutions([fwd, fwd_copy]) assert_array_equal(0.75 * fwd['sol']['data'], fwd_ave['sol']['data']) # fwd_ave_mne = read_forward_solution(fname_copy) # assert_array_equal(fwd_ave_mne['sol']['data'], fwd_ave['sol']['data']) # with gradient fwd = read_forward_solution(fname_meeg_grad) fwd_ave = average_forward_solutions([fwd, fwd]) compare_forwards(fwd, fwd_ave)
mne.write_forward_solution("{dir}nc_{meg}_limb_mix_3-fwd.fif".format( dir=meg_dir, meg=meg), fwd_a, overwrite=True) fwd_b = mne.make_forward_solution(epo_b.info, trans=trans, src=src, bem=bem, meg=True, mindist=5.0, n_jobs=4) mne.write_forward_solution("{dir}nc_{meg}_limb_mix_4-fwd.fif".format( dir=meg_dir, meg=meg), fwd_b, overwrite=True) # clear up memory del src, rest, ton, epo_a, epo_b # build averaged forward models for baseline comps (rest vs. ton) and experimental analyses (ton,exp blocks a+b) fwd_base = mne.average_forward_solutions([fwd_rest, fwd_ton], weights=None) mne.write_forward_solution("{dir}nc_{meg}_limb_mix_base-fwd.fif".format( dir=meg_dir, meg=meg), fwd_base, overwrite=True) del fwd_rest fwd_exp = mne.average_forward_solutions([fwd_ton, fwd_a, fwd_b], weights=None) mne.write_forward_solution("{dir}nc_{meg}_limb_mix_exp-fwd.fif".format( dir=meg_dir, meg=meg), fwd_exp, overwrite=True)
n_jobs=n_jobs) mne.write_forward_solution( "{dir}nc_{sub}_{run}_{spacing}-fwd.fif".format(dir=proc_dir, sub=v, run=run, spacing=spacing), fwd, overwrite=True) del src, bem, fwd fwds = [] for run in runs: fwds.append( mne.read_forward_solution( "{dir}nc_{sub}_{run}_{spacing}-fwd.fif".format( dir=proc_dir, sub=v, run=run, spacing=spacing))) avg_fwd = mne.average_forward_solutions(fwds) del fwds mne.write_forward_solution("{dir}nc_{sub}_{spacing}-fwd.fif".format( dir=proc_dir, sub=v, spacing=spacing), avg_fwd, overwrite=True) avg_fwd = mne.read_forward_solution( "{dir}nc_{sub}_{spacing}-fwd.fif".format(dir=proc_dir, sub=v, spacing=spacing)) sen = mne.sensitivity_map(avg_fwd, ch_type="mag", mode="fixed") m_to_fs = mne.compute_source_morph(sen, subject_from=k, subject_to="fsaverage", spacing=int(spacing[-1]), subjects_dir=subjects_dir,