def test_parrec2nii_save_load_qform_code(*args): # Tests that after parrec2nii saves file, it has the sform and qform 'code' # set to '1', which means 'scanner', so that other software, e.g. FSL picks # up the qform. parrec2nii.verbose.switch = False opts = Mock() opts.outdir = None opts.scaling = 'off' opts.minmax = [1, 1] opts.store_header = False opts.bvs = False opts.vol_info = False opts.dwell_time = False opts.compressed = False with InTemporaryDirectory() as pth: opts.outdir = pth for fname in [EG_PAR, VARY_PAR]: parrec2nii.proc_file(fname, opts) outfname = join(pth, basename(fname)).replace('.PAR', '.nii') assert_true(isfile(outfname)) img = nibabel.load(outfname) assert_almost_equal(img.affine, PAR_AFFINE, 4) assert_array_equal(img.header['qform_code'], 1) assert_array_equal(img.header['sform_code'], 1)
def test_parrec2nii_save_load_qform_code(): """Tests that after parrec2nii saves file, it has the qform 'code' set to '2', which means 'aligned', so that other software, e.g. FSL picks up the qform. """ imp.reload(parrec2nii) parrec2nii.verbose.switch = False opts = Mock() opts.outdir = None opts.scaling = 'off' opts.minmax = [1, 1] opts.store_header = False opts.bvs = False opts.vol_info = False opts.dwell_time = False opts.compressed = False with InTemporaryDirectory() as pth: opts.outdir = pth for fname in [EG_PAR, VARY_PAR]: parrec2nii.proc_file(fname, opts) outfname = join(pth, basename(fname)).replace('.PAR', '.nii') assert_true(isfile(outfname)) img = nibabel.load(outfname) assert_almost_equal(img.get_affine(), PAR_AFFINE, 4) assert_array_equal(img.header['qform_code'], 2) assert_array_equal(img.header['sform_code'], 2)
def test_parrec2nii_sets_qform_sform_code1(*args): # Check that set_sform(), set_qform() are called on the new header. parrec2nii.verbose.switch = False parrec2nii.io_orientation.return_value = [[0, 1], [1, 1], [2, 1]] # LAS+ nimg = Mock() nhdr = MagicMock() nimg.header = nhdr parrec2nii.nifti1.Nifti1Image.return_value = nimg pr_img = Mock() pr_hdr = Mock() pr_hdr.get_data_scaling.return_value = (npa([]), npa([])) pr_hdr.get_bvals_bvecs.return_value = (None, None) pr_hdr.get_affine.return_value = AN_OLD_AFFINE pr_img.header = pr_hdr parrec2nii.pr.load.return_value = pr_img opts = Mock() opts.outdir = None opts.scaling = 'off' opts.minmax = [1, 1] opts.store_header = False opts.bvs = False opts.vol_info = False opts.dwell_time = False infile = 'nonexistent.PAR' parrec2nii.proc_file(infile, opts) nhdr.set_qform.assert_called_with(AN_OLD_AFFINE, code=1) nhdr.set_sform.assert_called_with(AN_OLD_AFFINE, code=1)
def test_parrec2nii_sets_qform_sform_code1(*args): # Check that set_sform(), set_qform() are called on the new header. parrec2nii.verbose.switch = False parrec2nii.io_orientation.return_value = [[0, 1],[1, 1],[2, 1]] # LAS+ nimg = Mock() nhdr = MagicMock() nimg.header = nhdr parrec2nii.nifti1.Nifti1Image.return_value = nimg pr_img = Mock() pr_hdr = Mock() pr_hdr.get_data_scaling.return_value = (npa([]), npa([])) pr_hdr.get_bvals_bvecs.return_value = (None, None) pr_hdr.get_affine.return_value = AN_OLD_AFFINE pr_img.header = pr_hdr parrec2nii.pr.load.return_value = pr_img opts = Mock() opts.outdir = None opts.scaling = 'off' opts.minmax = [1, 1] opts.store_header = False opts.bvs = False opts.vol_info = False opts.dwell_time = False infile = 'nonexistent.PAR' parrec2nii.proc_file(infile, opts) nhdr.set_qform.assert_called_with(AN_OLD_AFFINE, code=1) nhdr.set_sform.assert_called_with(AN_OLD_AFFINE, code=1)