33
33
class FieldMapInputSpec (SPMCommandInputSpec ):
34
34
jobtype = traits .Enum ('calculatevdm' , 'applyvdm' , usedefault = True ,
35
35
desc = 'one of: calculatevdm, applyvdm' )
36
- phase = File (mandatory = True , exists = True , copyfile = False ,
36
+ phase_file = File (mandatory = True , exists = True , copyfile = False ,
37
37
field = 'subj.data.presubphasemag.phase' ,
38
38
desc = 'presubstracted phase file' )
39
- magnitude = File (mandatory = True , exists = True , copyfile = False ,
39
+ magnitude_file = File (mandatory = True , exists = True , copyfile = False ,
40
40
field = 'subj.data.presubphasemag.magnitude' ,
41
41
desc = 'presubstracted magnitude file' )
42
- et = traits .Tuple (traits .Float , traits .Float , mandatory = True ,
42
+ echo_times = traits .Tuple (traits .Float , traits .Float , mandatory = True ,
43
43
field = 'subj.defaults.defaultsval.et' ,
44
44
desc = 'short and long echo times' )
45
45
maskbrain = traits .Bool (True , usedefault = True ,
46
46
field = 'subj.defaults.defaultsval.maskbrain' ,
47
47
desc = 'masking or no masking of the brain' )
48
- blipdir = traits .Enum (1 , - 1 , mandatory = True ,
48
+ blip_direction = traits .Enum (1 , - 1 , mandatory = True ,
49
49
field = 'subj.defaults.defaultsval.blipdir' ,
50
50
desc = 'polarity of the phase-encode blips' )
51
- tert = traits .Float (mandatory = True ,
51
+ total_readout_time = traits .Float (mandatory = True ,
52
52
field = 'subj.defaults.defaultsval.tert' ,
53
53
desc = 'total EPI readout time' )
54
54
epifm = traits .Bool (False , usedefault = True ,
55
55
field = 'subj.defaults.defaultsval.epifm' ,
56
56
desc = 'epi-based field map' );
57
- ajm = traits .Bool (False , usedefault = True ,
57
+ jacobian_modulation = traits .Bool (False , usedefault = True ,
58
58
field = 'subj.defaults.defaultsval.ajm' ,
59
59
desc = 'jacobian modulation' );
60
60
# Unwarping defaults parameters
61
61
method = traits .Enum ('Mark3D' , 'Mark2D' , 'Huttonish' , usedefault = True ,
62
62
desc = 'One of: Mark3D, Mark2D, Huttonish' ,
63
63
field = 'subj.defaults.defaultsval.uflags.method' );
64
- fwhm = traits .Range (low = 0 , value = 10 , usedefault = True ,
64
+ unwarp_fwhm = traits .Range (low = 0 , value = 10 , usedefault = True ,
65
65
field = 'subj.defaults.defaultsval.uflags.fwhm' ,
66
66
desc = 'gaussian smoothing kernel width' );
67
67
pad = traits .Range (low = 0 , value = 0 , usedefault = True ,
@@ -74,7 +74,7 @@ class FieldMapInputSpec(SPMCommandInputSpec):
74
74
template = File (copyfile = False , exists = True ,
75
75
field = 'subj.defaults.defaultsval.mflags.template' ,
76
76
desc = 'template image for brain masking' );
77
- fwhm = traits .Range (low = 0 , value = 5 , usedefault = True ,
77
+ mask_fwhm = traits .Range (low = 0 , value = 5 , usedefault = True ,
78
78
field = 'subj.defaults.defaultsval.mflags.fwhm' ,
79
79
desc = 'gaussian smoothing kernel width' );
80
80
nerode = traits .Range (low = 0 , value = 2 , usedefault = True ,
@@ -90,7 +90,7 @@ class FieldMapInputSpec(SPMCommandInputSpec):
90
90
field = 'subj.defaults.defaultsval.mflags.reg' ,
91
91
desc = 'regularization value used in the segmentation' );
92
92
# EPI unwarping for quality check
93
- epi = File (copyfile = False , exists = True , mandatory = True ,
93
+ epi_file = File (copyfile = False , exists = True , mandatory = True ,
94
94
field = 'subj.session.epi' ,
95
95
desc = 'EPI to unwarp' );
96
96
matchvdm = traits .Bool (True , usedefault = True ,
@@ -102,7 +102,7 @@ class FieldMapInputSpec(SPMCommandInputSpec):
102
102
writeunwarped = traits .Bool (False , usedefault = True ,
103
103
field = 'subj.writeunwarped' ,
104
104
desc = 'write unwarped EPI' );
105
- anat = File (copyfile = False , exists = True ,
105
+ anat_file = File (copyfile = False , exists = True ,
106
106
field = 'subj.anat' ,
107
107
desc = 'anatomical image for comparison' );
108
108
matchanat = traits .Bool (True , usedefault = True ,
@@ -127,12 +127,12 @@ class FieldMap(SPMCommand):
127
127
--------
128
128
>>> from nipype.interfaces.spm import FieldMap
129
129
>>> fm = FieldMap()
130
- >>> fm.inputs.phase = 'phase.nii'
131
- >>> fm.inputs.magnitude = 'magnitude.nii'
132
- >>> fm.inputs.et = [ 5.19, 7.65]
133
- >>> fm.inputs.blipdir = 1
134
- >>> fm.inputs.tert = 15.6
135
- >>> fm.inputs.epi = 'bold.nii'
130
+ >>> fm.inputs.phase_file = 'phase.nii'
131
+ >>> fm.inputs.magnitude_file = 'magnitude.nii'
132
+ >>> fm.inputs.echo_times = ( 5.19, 7.65)
133
+ >>> fm.inputs.blip_direction = 1
134
+ >>> fm.inputs.total_readout_time = 15.6
135
+ >>> fm.inputs.epi_file = 'bold.nii'
136
136
>>> fm.run() # doctest: +SKIP
137
137
138
138
"""
@@ -145,7 +145,7 @@ class FieldMap(SPMCommand):
145
145
def _format_arg (self , opt , spec , val ):
146
146
"""Convert input to appropriate format for spm
147
147
"""
148
- if opt in ['phase ' , 'magnitude ' , 'anat ' , 'epi ' ]:
148
+ if opt in ['phase_file ' , 'magnitude_file ' , 'anat_file ' , 'epi_file ' ]:
149
149
return scans_for_fname (filename_to_list (val ))
150
150
151
151
return super (FieldMap , self )._format_arg (opt , spec , val )
@@ -154,17 +154,13 @@ def _parse_inputs(self):
154
154
"""validate spm fieldmap options if set to None ignore
155
155
"""
156
156
einputs = super (FieldMap , self )._parse_inputs ()
157
- jobtype = self .inputs .jobtype
158
- return [{'%s' % (jobtype ): einputs [0 ]}]
157
+ return [{self .inputs .jobtype : einputs [0 ]}]
159
158
160
159
def _list_outputs (self ):
161
160
outputs = self ._outputs ().get ()
162
161
jobtype = self .inputs .jobtype
163
162
if jobtype == "calculatevdm" :
164
- outputs ['vdm' ] = []
165
- for phase in filename_to_list (self .inputs .phase ):
166
- outputs ['vdm' ].append (fname_presuffix (phase , prefix = 'vdm5_sc' ))
167
- outputs ['vdm' ] = list_to_filename (outputs ['vdm' ])
163
+ outputs ['vdm' ] = fname_presuffix (self .inputs .phase_file , prefix = 'vdm5_sc' )
168
164
169
165
return outputs
170
166
0 commit comments