Skip to content

Commit 757cf51

Browse files
committed
ENH: Add --initcost option to BBRegister
1 parent a6f5218 commit 757cf51

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

nipype/interfaces/freesurfer/preprocess.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1159,6 +1159,8 @@ class BBRegisterInputSpec(FSTraitedSpec):
11591159
desc="write the transformation matrix in LTA format")
11601160
registered_file = traits.Either(traits.Bool, File, argstr='--o %s',
11611161
desc='output warped sourcefile either True or filename')
1162+
init_cost_file = traits.Either(traits.Bool, File, argstr='--initcost %s',
1163+
desc='output initial registration cost file')
11621164

11631165

11641166
class BBRegisterInputSpec6(BBRegisterInputSpec):
@@ -1172,10 +1174,11 @@ class BBRegisterInputSpec6(BBRegisterInputSpec):
11721174

11731175
class BBRegisterOutputSpec(TraitedSpec):
11741176
out_reg_file = File(exists=True, desc='Output registration file')
1175-
out_fsl_file = File(desc='Output FLIRT-style registration file')
1176-
out_lta_file = File(desc='Output LTA-style registration file')
1177+
out_fsl_file = File(exists=True, desc='Output FLIRT-style registration file')
1178+
out_lta_file = File(exists=True, desc='Output LTA-style registration file')
11771179
min_cost_file = File(exists=True, desc='Output registration minimum cost file')
1178-
registered_file = File(desc='Registered and resampled source file')
1180+
init_cost_file = File(exists=True, desc='Output initial registration cost file')
1181+
registered_file = File(exists=True, desc='Registered and resampled source file')
11791182

11801183

11811184
class BBRegister(FSCommand):
@@ -1242,17 +1245,19 @@ def _list_outputs(self):
12421245
else:
12431246
outputs['out_fsl_file'] = op.abspath(_in.out_fsl_file)
12441247

1248+
if isdefined(_in.init_cost_file):
1249+
if isinstance(_in.out_fsl_file, bool):
1250+
outputs['init_cost_file'] = outputs['out_reg_file'] + '.initcost'
1251+
else:
1252+
outputs['init_cost_file'] = op.abspath(_in.init_cost_file)
1253+
12451254
outputs['min_cost_file'] = outputs['out_reg_file'] + '.mincost'
12461255
return outputs
12471256

12481257
def _format_arg(self, name, spec, value):
1249-
1250-
if name in ['registered_file', 'out_fsl_file', 'out_lta_file']:
1251-
if isinstance(value, bool):
1252-
fname = self._list_outputs()[name]
1253-
else:
1254-
fname = value
1255-
return spec.argstr % fname
1258+
if name in ('registered_file', 'out_fsl_file', 'out_lta_file',
1259+
'init_cost_file') and isinstance(value, bool):
1260+
value = self._list_outputs()[name]
12561261
return super(BBRegister, self)._format_arg(name, spec, value)
12571262

12581263
def _gen_filename(self, name):

nipype/interfaces/freesurfer/tests/test_BBRegister.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ def test_BBRegister_inputs():
1212
fsldof=dict(argstr='--fsl-dof %d',),
1313
ignore_exception=dict(nohash=True, usedefault=True,),
1414
init=dict(argstr='--init-%s', mandatory=True, xor=['init_reg_file'],),
15+
init_cost_file=dict(argstr='--initcost %s',),
1516
init_reg_file=dict(argstr='--init-reg %s', mandatory=True, xor=['init'],),
1617
intermediate_file=dict(argstr='--int %s',),
1718
out_fsl_file=dict(argstr='--fslmat %s',),
@@ -36,6 +37,7 @@ def test_BBRegister_inputs():
3637
ignore_exception=dict(nohash=True, usedefault=True,),
3738
init=dict(argstr='--init-%s', xor=['init_reg_file'],),
3839
init_reg_file=dict(argstr='--init-reg %s', xor=['init'],),
40+
init_cost_file=dict(argstr='--initcost %s',),
3941
intermediate_file=dict(argstr='--int %s',),
4042
out_fsl_file=dict(argstr='--fslmat %s',),
4143
out_lta_file=dict(argstr='--lta %s', min_ver='5.2.0',),
@@ -62,7 +64,8 @@ def test_BBRegister_inputs():
6264

6365

6466
def test_BBRegister_outputs():
65-
output_map = dict(min_cost_file=dict(),
67+
output_map = dict(init_cost_file=dict(),
68+
min_cost_file=dict(),
6669
out_fsl_file=dict(),
6770
out_lta_file=dict(),
6871
out_reg_file=dict(),

0 commit comments

Comments
 (0)