def test_watershed_bem(tmpdir): """Test mne watershed bem.""" check_usage(mne_watershed_bem) # Copy necessary files to tempdir tempdir = str(tmpdir) mridata_path = op.join(subjects_dir, 'sample', 'mri') subject_path_new = op.join(tempdir, 'sample') mridata_path_new = op.join(subject_path_new, 'mri') os.mkdir(op.join(tempdir, 'sample')) os.mkdir(mridata_path_new) if op.exists(op.join(mridata_path, 'T1')): shutil.copytree(op.join(mridata_path, 'T1'), op.join(mridata_path_new, 'T1')) if op.exists(op.join(mridata_path, 'T1.mgz')): shutil.copyfile(op.join(mridata_path, 'T1.mgz'), op.join(mridata_path_new, 'T1.mgz')) out_fnames = list() for kind in ('outer_skin', 'outer_skull', 'inner_skull'): out_fnames.append(op.join(subject_path_new, 'bem', 'inner_skull.surf')) assert not any(op.isfile(out_fname) for out_fname in out_fnames) with ArgvSetter(('-d', tempdir, '-s', 'sample', '-o'), disable_stdout=False, disable_stderr=False): mne_watershed_bem.run() for out_fname in out_fnames: _, tris = read_surface(out_fname) assert len(tris) == 20480
def test_watershed_bem(): """Test mne watershed bem.""" check_usage(mne_watershed_bem) # Copy necessary files to tempdir tempdir = _TempDir() mridata_path = op.join(subjects_dir, 'sample', 'mri') subject_path_new = op.join(tempdir, 'sample') mridata_path_new = op.join(subject_path_new, 'mri') os.mkdir(op.join(tempdir, 'sample')) os.mkdir(mridata_path_new) if op.exists(op.join(mridata_path, 'T1')): shutil.copytree(op.join(mridata_path, 'T1'), op.join(mridata_path_new, 'T1')) if op.exists(op.join(mridata_path, 'T1.mgz')): shutil.copyfile(op.join(mridata_path, 'T1.mgz'), op.join(mridata_path_new, 'T1.mgz')) out_fnames = list() for kind in ('outer_skin', 'outer_skull', 'inner_skull'): out_fnames.append(op.join(subject_path_new, 'bem', 'inner_skull.surf')) assert not any(op.isfile(out_fname) for out_fname in out_fnames) with ArgvSetter(('-d', tempdir, '-s', 'sample', '-o'), disable_stdout=False, disable_stderr=False): mne_watershed_bem.run() for out_fname in out_fnames: _, tris = read_surface(out_fname) assert len(tris) == 20480
def test_watershed_bem(tmpdir): """Test mne watershed bem.""" check_usage(mne_watershed_bem) # Copy necessary files to tempdir tempdir = str(tmpdir) mridata_path = op.join(subjects_dir, 'sample', 'mri') subject_path_new = op.join(tempdir, 'sample') mridata_path_new = op.join(subject_path_new, 'mri') os.makedirs(mridata_path_new) new_fname = op.join(mridata_path_new, 'T1.mgz') shutil.copyfile(op.join(mridata_path, 'T1.mgz'), new_fname) old_mode = os.stat(new_fname).st_mode os.chmod(new_fname, 0) args = ('-d', tempdir, '-s', 'sample', '-o') with pytest.raises(PermissionError, match=r'read permissions.*T1\.mgz'): with ArgvSetter(args): mne_watershed_bem.run() os.chmod(new_fname, old_mode) out_fnames = list() for kind in ('outer_skin', 'outer_skull', 'inner_skull'): out_fnames.append(op.join(subject_path_new, 'bem', 'inner_skull.surf')) assert not any(op.isfile(out_fname) for out_fname in out_fnames) with ArgvSetter(args): mne_watershed_bem.run() for out_fname in out_fnames: _, tris = read_surface(out_fname) assert len(tris) == 20480
def test_watershed_bem(): """Test mne watershed bem.""" check_usage(mne_watershed_bem) # Copy necessary files to tempdir tempdir = _TempDir() mridata_path = op.join(subjects_dir, "sample", "mri") mridata_path_new = op.join(tempdir, "sample", "mri") os.mkdir(op.join(tempdir, "sample")) os.mkdir(mridata_path_new) if op.exists(op.join(mridata_path, "T1")): shutil.copytree(op.join(mridata_path, "T1"), op.join(mridata_path_new, "T1")) if op.exists(op.join(mridata_path, "T1.mgz")): shutil.copyfile(op.join(mridata_path, "T1.mgz"), op.join(mridata_path_new, "T1.mgz")) with ArgvSetter(("-d", tempdir, "-s", "sample", "-o"), disable_stdout=False, disable_stderr=False): mne_watershed_bem.run()
def test_watershed_bem(): """Test mne watershed bem.""" check_usage(mne_watershed_bem) # Copy necessary files to tempdir tempdir = _TempDir() mridata_path = op.join(subjects_dir, 'sample', 'mri') mridata_path_new = op.join(tempdir, 'sample', 'mri') os.mkdir(op.join(tempdir, 'sample')) os.mkdir(mridata_path_new) if op.exists(op.join(mridata_path, 'T1')): shutil.copytree(op.join(mridata_path, 'T1'), op.join(mridata_path_new, 'T1')) if op.exists(op.join(mridata_path, 'T1.mgz')): shutil.copyfile(op.join(mridata_path, 'T1.mgz'), op.join(mridata_path_new, 'T1.mgz')) with ArgvSetter(('-d', tempdir, '-s', 'sample', '-o'), disable_stdout=False, disable_stderr=False): mne_watershed_bem.run()
def test_watershed_bem(): """Test mne watershed bem""" check_usage(mne_watershed_bem) # Copy necessary files to tempdir tempdir = _TempDir() mridata_path = op.join(subjects_dir, 'sample', 'mri') mridata_path_new = op.join(tempdir, 'sample', 'mri') os.mkdir(op.join(tempdir, 'sample')) os.mkdir(mridata_path_new) if op.exists(op.join(mridata_path, 'T1')): shutil.copytree(op.join(mridata_path, 'T1'), op.join(mridata_path_new, 'T1')) if op.exists(op.join(mridata_path, 'T1.mgz')): shutil.copyfile(op.join(mridata_path, 'T1.mgz'), op.join(mridata_path_new, 'T1.mgz')) with ArgvSetter(('-d', tempdir, '-s', 'sample', '-o'), disable_stdout=False, disable_stderr=False): mne_watershed_bem.run()
def test_watershed_bem(tmp_path): """Test mne watershed bem.""" check_usage(mne_watershed_bem) # from T1.mgz Mdc = np.array([[-1, 0, 0], [0, 0, -1], [0, 1, 0]]) Pxyz_c = np.array([-5.273613, 9.039085, -27.287964]) # Copy necessary files to tempdir tempdir = str(tmp_path) mridata_path = op.join(subjects_dir, 'sample', 'mri') subject_path_new = op.join(tempdir, 'sample') mridata_path_new = op.join(subject_path_new, 'mri') os.makedirs(mridata_path_new) new_fname = op.join(mridata_path_new, 'T1.mgz') shutil.copyfile(op.join(mridata_path, 'T1.mgz'), new_fname) old_mode = os.stat(new_fname).st_mode os.chmod(new_fname, 0) args = ('-d', tempdir, '-s', 'sample', '-o') with pytest.raises(PermissionError, match=r'read permissions.*T1\.mgz'): with ArgvSetter(args): mne_watershed_bem.run() os.chmod(new_fname, old_mode) for s in ('outer_skin', 'outer_skull', 'inner_skull'): assert not op.isfile(op.join(subject_path_new, 'bem', '%s.surf' % s)) with ArgvSetter(args): mne_watershed_bem.run() kwargs = dict(rtol=1e-5, atol=1e-5) for s in ('outer_skin', 'outer_skull', 'inner_skull'): rr, tris, vol_info = read_surface(op.join(subject_path_new, 'bem', '%s.surf' % s), read_metadata=True) assert_equal(len(tris), 20480) assert_equal(tris.min(), 0) assert_equal(rr.shape[0], tris.max() + 1) # compare the volume info to the mgz header assert_allclose(vol_info['xras'], Mdc[0], **kwargs) assert_allclose(vol_info['yras'], Mdc[1], **kwargs) assert_allclose(vol_info['zras'], Mdc[2], **kwargs) assert_allclose(vol_info['cras'], Pxyz_c, **kwargs)