@@ -1136,7 +1136,7 @@ class VBMSegmentInputSpec(SPMCommandInputSpec):
1136
1136
False ,usedefault = True ,field = 'estwrite.output.GM.native' ,)
1137
1137
gm_normalized = traits .Bool (
1138
1138
False ,usedefault = True ,field = 'estwrite.output.GM.warped' ,)
1139
- gm_modulated_normalize = traits .Int (
1139
+ gm_modulated_normalized = traits .Int (
1140
1140
2 ,usedefault = True ,field = 'estwrite.output.GM.modulated' ,
1141
1141
desc = '0=none,1=affine+non-linear(SPM8 default),2=non-linear only' )
1142
1142
gm_dartel = traits .Int (
@@ -1147,7 +1147,7 @@ class VBMSegmentInputSpec(SPMCommandInputSpec):
1147
1147
False ,usedefault = True ,field = 'estwrite.output.WM.native' ,)
1148
1148
wm_normalized = traits .Bool (
1149
1149
False ,usedefault = True ,field = 'estwrite.output.WM.warped' ,)
1150
- wm_modulated_normalize = traits .Int (
1150
+ wm_modulated_normalized = traits .Int (
1151
1151
2 ,usedefault = True ,field = 'estwrite.output.WM.modulated' ,
1152
1152
desc = '0=none,1=affine+non-linear(SPM8 default),2=non-linear only' )
1153
1153
wm_dartel = traits .Int (
@@ -1158,7 +1158,7 @@ class VBMSegmentInputSpec(SPMCommandInputSpec):
1158
1158
False ,usedefault = True ,field = 'estwrite.output.CSF.native' ,)
1159
1159
csf_normalized = traits .Bool (
1160
1160
False ,usedefault = True ,field = 'estwrite.output.CSF.warped' ,)
1161
- csf_modulated_normalize = traits .Int (
1161
+ csf_modulated_normalized = traits .Int (
1162
1162
2 ,usedefault = True ,field = 'estwrite.output.CSF.modulated' ,
1163
1163
desc = '0=none,1=affine+non-linear(SPM8 default),2=non-linear only' )
1164
1164
csf_dartel = traits .Int (
@@ -1190,11 +1190,16 @@ class VBMSegmentInputSpec(SPMCommandInputSpec):
1190
1190
1191
1191
class VBMSegmentOuputSpec (TraitedSpec ):
1192
1192
1193
- native_class_images = traits .List (traits .List (File (exists = True )), desc = 'native space probability maps' )
1194
- dartel_input_images = traits .List (traits .List (File (exists = True )), desc = 'dartel imported class images' )
1195
- normalized_class_images = traits .List (traits .List (File (exists = True )), desc = 'normalized class images' )
1196
- modulated_class_images = traits .List (traits .List (File (exists = True )), desc = 'modulated+normalized class images' )
1197
- transformation_mat = OutputMultiPath (File (exists = True ), desc = 'Normalization transformation' )
1193
+ native_class_images = traits .List (traits .List (File (exists = True )),
1194
+ desc = 'native space probability maps' )
1195
+ dartel_input_images = traits .List (traits .List (File (exists = True )),
1196
+ desc = 'dartel imported class images' )
1197
+ normalized_class_images = traits .List (traits .List (File (exists = True )),
1198
+ desc = 'normalized class images' )
1199
+ modulated_class_images = traits .List (traits .List (File (exists = True )),
1200
+ desc = 'modulated+normalized class images' )
1201
+ transformation_mat = OutputMultiPath (File (exists = True ),
1202
+ desc = 'Normalization transformation' )
1198
1203
1199
1204
bias_corrected_images = OutputMultiPath (
1200
1205
File (exists = True ),
@@ -1221,6 +1226,12 @@ class VBMSegment(SPMCommand):
1221
1226
1222
1227
def _list_outputs (self ):
1223
1228
outputs = self ._outputs ().get ()
1229
+
1230
+ do_dartel = self .inputs .spatial_normalization
1231
+ dartel_px = ''
1232
+ if do_dartel :
1233
+ dartel_px = 'r'
1234
+
1224
1235
outputs ['native_class_images' ] = [[],[],[]]
1225
1236
outputs ['dartel_input_images' ] = [[],[],[]]
1226
1237
outputs ['normalized_class_images' ] = [[],[],[]]
@@ -1231,72 +1242,61 @@ def _list_outputs(self):
1231
1242
outputs ['bias_corrected_images' ] = []
1232
1243
outputs ['normalized_bias_corrected_images' ] = []
1233
1244
1234
- outputs ['native_bias_field_images' ] = []
1235
- outputs ['normalized_bias_field_images' ] = []
1236
-
1237
1245
outputs ['inverse_deformation_field' ] = []
1238
1246
outputs ['forward_deformation_field' ] = []
1239
1247
outputs ['jacobian_determinant_images' ] = []
1240
1248
1241
1249
outputs ['pve_label_native_images' ] = []
1242
1250
outputs ['pve_label_normalized_images' ] = []
1243
- outputs ['pve_label_normalized_images' ] = []
1244
-
1251
+ outputs ['pve_label_registered_images' ] = []
1245
1252
1246
1253
for filename in self .inputs .in_files :
1247
1254
pth , base , ext = split_filename (filename )
1248
1255
1249
1256
outputs ['transformation_mat' ].append (os .path .join (pth , "%s_seg8.mat" % base ))
1250
-
1251
- if self .inputs .gm_native :
1252
- outputs ['native_class_images' ][0 ].append (os .path .join (pth ,"p%d%s.nii" % (1 , base )))
1253
- if self .inputs .wm_native :
1254
- outputs ['native_class_images' ][1 ].append (os .path .join (pth ,"p%d%s.nii" % (2 , base )))
1255
- if self .inputs .csf_native :
1256
- outputs ['native_class_images' ][2 ].append (os .path .join (pth ,"p%d%s.nii" % (3 , base )))
1257
-
1258
- if self .inputs .gm_normalized :
1259
- outputs ['normalized_class_images' ][0 ].append (os .path .join (pth ,"wp%d%s.nii" % (1 , base )))
1260
- if self .inputs .wm_normalized :
1261
- outputs ['normalized_class_images' ][1 ].append (os .path .join (pth ,"wp%d%s.nii" % (2 , base )))
1262
- if self .inputs .csf_normalized :
1263
- outputs ['normalized_class_images' ][2 ].append (os .path .join (pth ,"wp%d%s.nii" % (3 , base )))
1264
-
1265
- if self .inputs .gm_modulated_normalize :
1266
- outputs ['modulated_class_images' ][0 ].append (os .path .join (pth ,"mm0wp%d%s.nii" % (1 , base )))
1267
- if self .inputs .wm_modulated_normalize :
1268
- outputs ['modulated_class_images' ][1 ].append (os .path .join (pth ,"mm0wp%d%s.nii" % (2 , base )))
1269
- if self .inputs .csf_modulated_normalize :
1270
- outputs ['modulated_class_images' ][2 ].append (os .path .join (pth ,"mmwp%d%s.nii" % (3 , base )))
1271
-
1272
- if self .inputs .gm_dartel == 1 :
1273
- outputs ['dartel_input_images' ][0 ].append (os .path .join (pth ,"rp%d%s.nii" % (1 , base )))
1274
- elif self .inputs .gm_dartel == 2 :
1275
- outputs ['dartel_input_images' ][0 ].append (os .path .join (pth ,"rp%d%s_affine.nii" % (1 , base )))
1276
- if self .inputs .wm_dartel == 1 :
1277
- outputs ['dartel_input_images' ][1 ].append (os .path .join (pth ,"rp%d%s.nii" % (2 , base )))
1278
- elif self .inputs .wm_dartel == 2 :
1279
- outputs ['dartel_input_images' ][1 ].append (os .path .join (pth ,"rp%d%s_affine.nii" % (2 , base )))
1280
- if self .inputs .csf_dartel == 1 :
1281
- outputs ['dartel_input_images' ][2 ].append (os .path .join (pth ,"rp%d%s.nii" % (3 , base )))
1282
- elif self .inputs .csf_dartel == 2 :
1283
- outputs ['dartel_input_images' ][2 ].append (os .path .join (pth ,"rp%d%s_affine.nii" % (3 , base )))
1257
+
1258
+ for i ,tis in enumerate (['gm' ,'wm' ,'csf' ]):
1259
+ # native space
1260
+
1261
+ if getattr (self .inputs ,'%s_native' % tis ):
1262
+ outputs ['native_class_images' ][i ].append (os .path .join (pth ,"p%d%s.nii" % (i + 1 , base )))
1263
+ if getattr (self .inputs ,'%s_dartel' % tis ) == 1 :
1264
+ outputs ['dartel_input_images' ][i ].append (os .path .join (pth ,"rp%d%s.nii" % (i + 1 , base )))
1265
+ elif getattr (self .inputs ,'%s_dartel' % tis ) == 2 :
1266
+ outputs ['dartel_input_images' ][i ].append (os .path .join (pth ,"rp%d%s_affine.nii" % (i + 1 , base )))
1267
+
1268
+ #normalized space
1269
+ if getattr (self .inputs ,'%s_normalized' % tis ):
1270
+ outputs ['normalized_class_images' ][i ].append (os .path .join (pth ,"w%sp%d%s.nii" % (dartel_px ,i + 1 , base )))
1271
+
1272
+ if getattr (self .inputs ,'%s_modulated_normalized' % tis )== 1 :
1273
+ outputs ['modulated_class_images' ][i ].append (os .path .join (pth ,"mw%sp%d%s.nii" % (dartel_px , i + 1 , base )))
1274
+ elif getattr (self .inputs ,'%s_modulated_normalized' % tis )== 2 :
1275
+ outputs ['normalized_class_images' ][i ].append (os .path .join (pth ,"m0w%sp%d%s.nii" % (dartel_px ,i + 1 , base )))
1276
+
1277
+
1278
+
1279
+ if self .inputs .pve_label_native :
1280
+ outputs ['pve_label_native_images' ].append (os .path .join (pth ,"p0%s_affine.nii" % (base )))
1281
+ if self .inputs .pve_label_normalized :
1282
+ outputs ['pve_label_normalized_images' ].append (os .path .join (pth ,"w%sp0%s_affine.nii" % (dartel_px ,base )))
1283
+ if self .inputs .pve_label_dartel == 1 :
1284
+ outputs ['pve_label_registered_images' ].append (os .path .join (pth ,"rp0%s.nii" % ( base )))
1285
+ elif self .inputs .pve_label_dartel == 2 :
1286
+ outputs ['pve_label_registered_images' ].append (os .path .join (pth ,"rp0%s_affine.nii" % ( base )))
1284
1287
1285
1288
1286
1289
if self .inputs .bias_corrected_native :
1287
1290
outputs ['bias_corrected_images' ].append (os .path .join (pth ,"m%s.nii" % (base )))
1288
1291
if self .inputs .bias_corrected_normalized :
1289
- if self .inputs .bias_corrected_affine :
1290
- outputs ['normalized_bias_corrected_images' ].append (os .path .join (pth ,"wm%s_affine.nii" % (base )))
1291
- else :
1292
- outputs ['normalized_bias_corrected_images' ].append (os .path .join (pth ,"wm%s.nii" % (base )))
1292
+ outputs ['normalized_bias_corrected_images' ].append (os .path .join (pth ,"wm%s%s_affine.nii" % (dartel_px , base )))
1293
1293
1294
1294
if self .inputs .deformation_field [0 ]:
1295
- outputs ['forward_deformation_field' ].append (os .path .join (pth ,"y_r%s .nii" % (base )))
1295
+ outputs ['forward_deformation_field' ].append (os .path .join (pth ,"y_%s%s .nii" % (dartel_px , base )))
1296
1296
if self .inputs .deformation_field [1 ]:
1297
- outputs ['inverse_deformation_field' ].append (os .path .join (pth ,"iy_r%s .nii" % (base )))
1297
+ outputs ['inverse_deformation_field' ].append (os .path .join (pth ,"iy_%s%s .nii" % (dartel_px , base )))
1298
1298
1299
- if self .inputs .jacobian_determinant :
1299
+ if self .inputs .jacobian_determinant and do_dartel :
1300
1300
outputs ['jacobian_determinant_images' ].append (os .path .join (pth ,"jac_wrp1%s.nii" % (base )))
1301
1301
return outputs
1302
1302
0 commit comments