Пример #1
0
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'])
Пример #2
0
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'])
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
    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)
Пример #6
0
                                     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,