@@ -129,13 +129,12 @@ def _format_arg(self, name, trait_spec, value):
129
129
130
130
131
131
class MergeInputSpec (FSLCommandInputSpec ):
132
- in_files = traits .List (File (exists = True ), argstr = "%s" , position = 2 ,
133
- mandatory = True )
134
- dimension = traits .Enum ('t' , 'x' , 'y' , 'z' , 'a' , 'tr' , argstr = "-%s" , position = 0 ,
135
- desc = "dimension along which to merge, tr option requires setting tr input" ,
132
+ in_files = traits .List (File (exists = True ), argstr = "%s" , position = 2 , mandatory = True )
133
+ dimension = traits .Enum ('t' , 'x' , 'y' , 'z' , 'a' , argstr = "-%s" , position = 0 ,
134
+ desc = "dimension along which to merge, optionally set tr input when dimension is t" ,
136
135
mandatory = True )
137
136
tr = traits .Float (position = - 1 , argstr = '%.2f' ,
138
- desc = 'use to specify TR if dimension is set to tr' )
137
+ desc = 'use to specify TR in seconds (default is 1.00 sec), overrides dimension and sets it to tr' )
139
138
merged_file = File (argstr = "%s" , position = 1 , name_source = 'in_files' , name_template = '%s_merged' , hash_files = False )
140
139
141
140
@@ -149,32 +148,42 @@ class Merge(FSLCommand):
149
148
Images can be concatenated across time, x, y, or z dimensions. Across the time (t)
150
149
dimension the TR is set by default to 1 sec.
151
150
152
- Note: to set the TR to a different value, specify 'tr' for dimension and specify
153
- the TR value in seconds for the tr input.
151
+ Note: to set the TR to a different value, specify 't' for dimension and specify
152
+ the TR value in seconds for the tr input. The dimension will be automatically
153
+ updated to 'tr'.
154
154
155
155
Examples
156
156
--------
157
157
>>> from nipype.interfaces.fsl import Merge
158
158
>>> from nipype.testing import funcfile
159
159
>>> merger = Merge()
160
160
>>> merger.inputs.in_files = [funcfile, funcfile]
161
- >>> merger.inputs.dimension = 'tr'
162
- >>> merger.inputs.tr = 2.25
161
+ >>> merger.inputs.dimension = 't'
163
162
>>> merger.inputs.merged_file = "functional_merged.nii.gz"
164
- >>> merger.cmdline =='fslmerge -tr %s %s %.2f' % (merger.inputs.merged_file, ' '.join(merger.inputs.in_files), merger.inputs.tr)
163
+ >>> merger.cmdline =='fslmerge -t %s %s' % (merger.inputs.merged_file,
164
+ ... ' '.join(merger.inputs.in_files))
165
+ True
166
+ >>> merger.inputs.tr = 2.25
167
+ >>> merger.cmdline =='fslmerge -tr %s %s %.2f' % (merger.inputs.merged_file,
168
+ ... ' '.join(merger.inputs.in_files),
169
+ ... merger.inputs.tr)
165
170
True
166
171
"""
167
172
168
173
_cmd = 'fslmerge'
169
174
input_spec = MergeInputSpec
170
175
output_spec = MergeOutputSpec
171
176
172
- def _format_arg (self , name , spec , value ):
173
- if name == 'tr' :
174
- if self .inputs .dimension != 'tr' :
175
- raise ValueError ('When TR is specified, dimension has to be tr' )
176
- return spec .argstr % value
177
- return super (FSLMerge , self )._format_arg (name , spec , value )
177
+ def _format_arg (self , name , spec , value ):
178
+ if name == 'tr' :
179
+ if self .inputs .dimension != 't' :
180
+ raise ValueError ('When TR is specified, dimension must be t' )
181
+ return spec .argstr % value
182
+ if name == 'dimension' :
183
+ if isdefined (self .inputs .tr ):
184
+ return '-tr'
185
+ return spec .argstr % value
186
+ return super (Merge , self )._format_arg (name , spec , value )
178
187
179
188
180
189
class ExtractROIInputSpec (FSLCommandInputSpec ):
0 commit comments