def test_robustregister(): filelist, outdir, cwd = create_files_in_directory() reg = freesurfer.RobustRegister() # make sure command gets called yield assert_equal, reg.cmd, 'mri_robust_register' # test raising error with mandatory args absent yield assert_raises, ValueError, reg.run # .inputs based parameters setting reg.inputs.source_file = filelist[0] reg.inputs.target_file = filelist[1] reg.inputs.auto_sens = True yield assert_equal, reg.cmdline, ( 'mri_robust_register ' '--satit --lta %s_robustreg.lta --mov %s --dst %s' % (filelist[0][:-4], filelist[0], filelist[1])) # constructor based parameter setting reg2 = freesurfer.RobustRegister(source_file=filelist[0], target_file=filelist[1], outlier_sens=3.0, out_reg_file='foo.lta', half_targ=True) yield assert_equal, reg2.cmdline, ( 'mri_robust_register --halfdst %s_halfway.nii --lta foo.lta ' '--sat 3.0000 --mov %s --dst %s' % (os.path.join(outdir, filelist[1][:-4]), filelist[0], filelist[1])) clean_directory(outdir, cwd)
def test_robustregister(create_files_in_directory): filelist, outdir = create_files_in_directory reg = freesurfer.RobustRegister() cwd = os.getcwd() # make sure command gets called assert reg.cmd == "mri_robust_register" # test raising error with mandatory args absent with pytest.raises(ValueError): reg.run() # .inputs based parameters setting reg.inputs.source_file = filelist[0] reg.inputs.target_file = filelist[1] reg.inputs.auto_sens = True assert reg.cmdline == ("mri_robust_register --satit --lta " "%s/%s_robustreg.lta --mov %s --dst %s" % (cwd, filelist[0][:-4], filelist[0], filelist[1])) # constructor based parameter setting reg2 = freesurfer.RobustRegister( source_file=filelist[0], target_file=filelist[1], outlier_sens=3.0, out_reg_file="foo.lta", half_targ=True, ) assert reg2.cmdline == ( "mri_robust_register --halfdst %s_halfway.nii --lta foo.lta " "--sat 3.0000 --mov %s --dst %s" % (os.path.join(outdir, filelist[1][:-4]), filelist[0], filelist[1]))
def create_align_to_anatomy_workflow(name='align_to_anatomy', format_string='inplane_to_anatomy'): align_to_anatomy = pe.Workflow(name=name) inputs = pe.Node(interface=util.IdentityInterface( fields=['inplane_file', 'anatomy_file']), name='inputs') strip = pe.Node(interface=fs.ReconAll(), name='strip') #FIXME: reconall interface barfs if rerun strip.inputs.directive = 'autorecon1' strip.inputs.flags = '-nowsgcaatlas' register = pe.Node(interface=fs.RobustRegister(), name='register') register.inputs.auto_sens = True #register.inputs.init_orient = True #FIXME: disabled due to bug in binary convert_xfm = pe.Node(interface=nmutil.LtaToXfm(), name='convert_xfm') rename_xfm = pe.Node(interface=util.Rename(format_string), name='rename_xfm') rename_xfm.inputs.keep_ext = True outputs = pe.Node( interface=util.IdentityInterface(fields=['xfm_file', 'strip_file']), name='outputs') align_to_anatomy.connect(inputs, 'inplane_file', strip, 'T1_files') align_to_anatomy.connect(strip, 'brainmask', register, 'source_file') align_to_anatomy.connect(inputs, 'anatomy_file', register, 'target_file') align_to_anatomy.connect(register, 'out_reg_file', convert_xfm, 'in_file') align_to_anatomy.connect(convert_xfm, 'out_file', rename_xfm, 'in_file') align_to_anatomy.connect(rename_xfm, 'out_file', outputs, 'xfm_file') align_to_anatomy.connect(strip, 'brainmask', outputs, 'strip_file') return align_to_anatomy