@@ -36,7 +36,8 @@ def _none():
36
36
DEFAULT_DTYPES = defaultdict (_none , (
37
37
("mask" , "uint8" ),
38
38
("dseg" , "int16" ),
39
- ("probseg" , "float32" ))
39
+ ("probseg" , "float32" ),
40
+ ("boldref" , "source" ))
40
41
)
41
42
42
43
@@ -252,7 +253,8 @@ class _DerivativesDataSinkInputSpec(DynamicTraitedSpec, BaseInterfaceInputSpec):
252
253
in_file = InputMultiObject (File (exists = True ), mandatory = True ,
253
254
desc = 'the object to be saved' )
254
255
keep_dtype = traits .Bool (False , usedefault = True , desc = 'keep datatype suffix' )
255
- data_dtype = Str (desc = 'NumPy datatype to coerce NIfTI data to' )
256
+ data_dtype = Str (desc = 'NumPy datatype to coerce NIfTI data to, or `source` to'
257
+ 'match the input file dtype' )
256
258
meta_dict = traits .DictStrAny (desc = 'an input dictionary containing metadata' )
257
259
source_file = File (exists = False , mandatory = True , desc = 'the input func file' )
258
260
space = Str ('' , usedefault = True , desc = 'Label for space field' )
@@ -521,6 +523,8 @@ def _run_interface(self, runtime):
521
523
if self .inputs .check_hdr :
522
524
# load updated NIfTI
523
525
nii = nb .load (out_file , mmap = False )
526
+ if data_dtype == 'source' : # match source dtype
527
+ data_dtype = nb .load (self .inputs .source_file ).get_data_dtype ()
524
528
data_dtype = np .dtype (data_dtype )
525
529
if nii .get_data_dtype () != data_dtype :
526
530
nii .set_data_dtype (data_dtype )
0 commit comments