def test_coreg_frame(): """Test CoregFrame.""" from mne.gui._coreg_gui import CoregFrame assert_raises(ValueError, CoregFrame, raw_path, 'Elvis', subjects_dir) with warnings.catch_warnings(record=True): # traits spews warnings warnings.simplefilter('always') # avoid modal dialog if SUBJECTS_DIR is set to a directory that does # not contain valid subjects frame = CoregFrame(subjects_dir='') frame.edit_traits() frame.model.mri.subjects_dir = subjects_dir frame.model.mri.subject = 'sample' assert_false(frame.model.mri.fid_ok) frame.model.mri.lpa = [[-0.06, 0, 0]] frame.model.mri.nasion = [[0, 0.05, 0]] frame.model.mri.rpa = [[0.08, 0, 0]] assert_true(frame.model.mri.fid_ok) frame.model.grow_hair = 4. frame.raw_src.file = raw_path
def test_coreg_gui(): """Test Coregistration GUI""" from mne.gui._coreg_gui import CoregFrame frame = CoregFrame() frame.edit_traits() frame.model.mri.subjects_dir = subjects_dir frame.model.mri.subject = 'sample' assert_false(frame.model.mri.fid_ok) frame.model.mri.lpa = [[-0.06, 0, 0]] frame.model.mri.nasion = [[0, 0.05, 0]] frame.model.mri.rpa = [[0.08, 0, 0]] assert_true(frame.model.mri.fid_ok)
def test_coreg_model(): """Test CoregModel""" from mne.gui._coreg_gui import CoregModel tempdir = _TempDir() trans_dst = os.path.join(tempdir, 'test-trans.fif') model = CoregModel() assert_raises(RuntimeError, model.save_trans, 'blah.fif') model.mri.subjects_dir = subjects_dir model.mri.subject = 'sample' assert_false(model.mri.fid_ok) model.mri.lpa = [[-0.06, 0, 0]] model.mri.nasion = [[0, 0.05, 0]] model.mri.rpa = [[0.08, 0, 0]] assert_true(model.mri.fid_ok) model.hsp.file = raw_path assert_allclose(model.hsp.lpa, [[-7.137e-2, 0, 5.122e-9]], 1e-4) assert_allclose(model.hsp.rpa, [[+7.527e-2, 0, 5.588e-9]], 1e-4) assert_allclose(model.hsp.nasion, [[+3.725e-9, 1.026e-1, 4.191e-9]], 1e-4) assert_true(model.has_fid_data) lpa_distance = model.lpa_distance nasion_distance = model.nasion_distance rpa_distance = model.rpa_distance avg_point_distance = np.mean(model.point_distance) model.fit_auricular_points() old_x = lpa_distance**2 + rpa_distance**2 new_x = model.lpa_distance**2 + model.rpa_distance**2 assert_true(new_x < old_x) model.fit_fiducials() old_x = lpa_distance**2 + rpa_distance**2 + nasion_distance**2 new_x = (model.lpa_distance**2 + model.rpa_distance**2 + model.nasion_distance**2) assert_true(new_x < old_x) model.fit_hsp_points() assert_true(np.mean(model.point_distance) < avg_point_distance) model.save_trans(trans_dst) trans = mne.read_trans(trans_dst) assert_allclose(trans['trans'], model.head_mri_trans) # test restoring trans x, y, z, rot_x, rot_y, rot_z = .1, .2, .05, 1.5, 0.1, -1.2 model.trans_x = x model.trans_y = y model.trans_z = z model.rot_x = rot_x model.rot_y = rot_y model.rot_z = rot_z trans = model.head_mri_trans model.reset_traits( ["trans_x", "trans_y", "trans_z", "rot_x", "rot_y", "rot_z"]) assert_equal(model.trans_x, 0) model.set_trans(trans) assert_almost_equal(model.trans_x, x) assert_almost_equal(model.trans_y, y) assert_almost_equal(model.trans_z, z) assert_almost_equal(model.rot_x, rot_x) assert_almost_equal(model.rot_y, rot_y) assert_almost_equal(model.rot_z, rot_z) # info assert_true(isinstance(model.fid_eval_str, string_types)) assert_true(isinstance(model.points_eval_str, string_types)) model.get_prepare_bem_model_job('sample') model.load_trans(fname_trans) from mne.gui._coreg_gui import CoregFrame x = CoregFrame(raw_path, 'sample', subjects_dir) os.environ['_MNE_GUI_TESTING_MODE'] = 'true' try: with warnings.catch_warnings(record=True): # traits spews warnings warnings.simplefilter('always') x._init_plot() finally: del os.environ['_MNE_GUI_TESTING_MODE']
def test_coreg_model(): """Test CoregModel""" from mne.gui._coreg_gui import CoregModel tempdir = _TempDir() trans_dst = os.path.join(tempdir, 'test-trans.fif') model = CoregModel() assert_raises(RuntimeError, model.save_trans, 'blah.fif') model.mri.use_high_res_head = False model.mri.subjects_dir = subjects_dir model.mri.subject = 'sample' assert_false(model.mri.fid_ok) model.mri.lpa = [[-0.06, 0, 0]] model.mri.nasion = [[0, 0.05, 0]] model.mri.rpa = [[0.08, 0, 0]] assert_true(model.mri.fid_ok) model.hsp.file = raw_path assert_allclose(model.hsp.lpa, [[-7.137e-2, 0, 5.122e-9]], 1e-4) assert_allclose(model.hsp.rpa, [[+7.527e-2, 0, 5.588e-9]], 1e-4) assert_allclose(model.hsp.nasion, [[+3.725e-9, 1.026e-1, 4.191e-9]], 1e-4) assert_true(model.has_fid_data) lpa_distance = model.lpa_distance nasion_distance = model.nasion_distance rpa_distance = model.rpa_distance avg_point_distance = np.mean(model.point_distance) model.fit_auricular_points() old_x = lpa_distance ** 2 + rpa_distance ** 2 new_x = model.lpa_distance ** 2 + model.rpa_distance ** 2 assert_true(new_x < old_x) model.fit_fiducials() old_x = lpa_distance ** 2 + rpa_distance ** 2 + nasion_distance ** 2 new_x = (model.lpa_distance ** 2 + model.rpa_distance ** 2 + model.nasion_distance ** 2) assert_true(new_x < old_x) model.fit_hsp_points() assert_true(np.mean(model.point_distance) < avg_point_distance) model.save_trans(trans_dst) trans = mne.read_trans(trans_dst) assert_allclose(trans['trans'], model.head_mri_trans) # test restoring trans x, y, z, rot_x, rot_y, rot_z = .1, .2, .05, 1.5, 0.1, -1.2 model.trans_x = x model.trans_y = y model.trans_z = z model.rot_x = rot_x model.rot_y = rot_y model.rot_z = rot_z trans = model.head_mri_trans model.reset_traits(["trans_x", "trans_y", "trans_z", "rot_x", "rot_y", "rot_z"]) assert_equal(model.trans_x, 0) model.set_trans(trans) assert_almost_equal(model.trans_x, x) assert_almost_equal(model.trans_y, y) assert_almost_equal(model.trans_z, z) assert_almost_equal(model.rot_x, rot_x) assert_almost_equal(model.rot_y, rot_y) assert_almost_equal(model.rot_z, rot_z) # info assert_true(isinstance(model.fid_eval_str, string_types)) assert_true(isinstance(model.points_eval_str, string_types)) # scaling job sdir, sfrom, sto, scale, skip_fiducials, bemsol = \ model.get_scaling_job('sample2', False, True) assert_equal(sdir, subjects_dir) assert_equal(sfrom, 'sample') assert_equal(sto, 'sample2') assert_equal(scale, model.scale) assert_equal(skip_fiducials, False) # find BEM files bems = set() for fname in os.listdir(os.path.join(subjects_dir, 'sample', 'bem')): match = re.match('sample-(.+-bem)\.fif', fname) if match: bems.add(match.group(1)) assert_equal(set(bemsol), bems) sdir, sfrom, sto, scale, skip_fiducials, bemsol = \ model.get_scaling_job('sample2', True, False) assert_equal(bemsol, []) assert_true(skip_fiducials) model.load_trans(fname_trans) from mne.gui._coreg_gui import CoregFrame x = CoregFrame(raw_path, 'sample', subjects_dir) os.environ['_MNE_GUI_TESTING_MODE'] = 'true' try: with warnings.catch_warnings(record=True): # traits spews warnings warnings.simplefilter('always') x._init_plot() finally: del os.environ['_MNE_GUI_TESTING_MODE']
def test_coreg_model(): """Test CoregModel""" from mne.gui._coreg_gui import CoregModel tempdir = _TempDir() trans_dst = os.path.join(tempdir, 'test-trans.fif') model = CoregModel() assert_raises(RuntimeError, model.save_trans, 'blah.fif') model.mri.subjects_dir = subjects_dir model.mri.subject = 'sample' assert_false(model.mri.fid_ok) model.mri.lpa = [[-0.06, 0, 0]] model.mri.nasion = [[0, 0.05, 0]] model.mri.rpa = [[0.08, 0, 0]] assert_true(model.mri.fid_ok) model.hsp.file = raw_path assert_allclose(model.hsp.lpa, [[-7.137e-2, 0, 5.122e-9]], 1e-4) assert_allclose(model.hsp.rpa, [[+7.527e-2, 0, 5.588e-9]], 1e-4) assert_allclose(model.hsp.nasion, [[+3.725e-9, 1.026e-1, 4.191e-9]], 1e-4) assert_true(model.has_fid_data) lpa_distance = model.lpa_distance nasion_distance = model.nasion_distance rpa_distance = model.rpa_distance avg_point_distance = np.mean(model.point_distance) model.fit_auricular_points() old_x = lpa_distance ** 2 + rpa_distance ** 2 new_x = model.lpa_distance ** 2 + model.rpa_distance ** 2 assert_true(new_x < old_x) model.fit_fiducials() old_x = lpa_distance ** 2 + rpa_distance ** 2 + nasion_distance ** 2 new_x = (model.lpa_distance ** 2 + model.rpa_distance ** 2 + model.nasion_distance ** 2) assert_true(new_x < old_x) model.fit_hsp_points() assert_true(np.mean(model.point_distance) < avg_point_distance) model.save_trans(trans_dst) trans = mne.read_trans(trans_dst) assert_allclose(trans['trans'], model.head_mri_trans) # test restoring trans x, y, z, rot_x, rot_y, rot_z = .1, .2, .05, 1.5, 0.1, -1.2 model.trans_x = x model.trans_y = y model.trans_z = z model.rot_x = rot_x model.rot_y = rot_y model.rot_z = rot_z trans = model.head_mri_trans model.reset_traits(["trans_x", "trans_y", "trans_z", "rot_x", "rot_y", "rot_z"]) assert_equal(model.trans_x, 0) model.set_trans(trans) assert_almost_equal(model.trans_x, x) assert_almost_equal(model.trans_y, y) assert_almost_equal(model.trans_z, z) assert_almost_equal(model.rot_x, rot_x) assert_almost_equal(model.rot_y, rot_y) assert_almost_equal(model.rot_z, rot_z) # info assert_true(isinstance(model.fid_eval_str, string_types)) assert_true(isinstance(model.points_eval_str, string_types)) model.get_prepare_bem_model_job('sample') model.load_trans(fname_trans) from mne.gui._coreg_gui import CoregFrame x = CoregFrame(raw_path, 'sample', subjects_dir) os.environ['_MNE_GUI_TESTING_MODE'] = 'true' try: with warnings.catch_warnings(record=True): # traits spews warnings warnings.simplefilter('always') x._init_plot() finally: del os.environ['_MNE_GUI_TESTING_MODE']