@@ -323,17 +323,20 @@ def _list_outputs(self):
323
323
nclasses = self .inputs .number_classes
324
324
# when using multichannel, results basename is based on last
325
325
# input filename
326
+ _gen_fname_opts = {}
326
327
if isdefined (self .inputs .out_basename ):
327
- basefile = self .inputs .out_basename
328
+ _gen_fname_opts ['basename' ] = self .inputs .out_basename
329
+ _gen_fname_opts ['cwd' ] = os .getcwd ()
328
330
else :
329
- basefile = self .inputs .in_files [- 1 ]
331
+ _gen_fname_opts ['basename' ] = self .inputs .in_files [- 1 ]
332
+ _gen_fname_opts ['cwd' ], _ , _ = split_filename (_gen_fname_opts ['basename' ])
330
333
331
- outputs ['tissue_class_map' ] = self ._gen_fname (basefile , suffix = '_seg' )
334
+ outputs ['tissue_class_map' ] = self ._gen_fname (suffix = '_seg' , ** _gen_fname_opts )
332
335
if self .inputs .segments :
333
336
outputs ['tissue_class_files' ] = []
334
337
for i in range (nclasses ):
335
338
outputs ['tissue_class_files' ].append (
336
- self ._gen_fname (basefile , suffix = '_seg_%d' % i ))
339
+ self ._gen_fname (suffix = '_seg_%d' % i , ** _gen_fname_opts ))
337
340
if isdefined (self .inputs .output_biascorrected ):
338
341
outputs ['restored_image' ] = []
339
342
if len (self .inputs .in_files ) > 1 :
@@ -342,22 +345,21 @@ def _list_outputs(self):
342
345
for val , f in enumerate (self .inputs .in_files ):
343
346
# image numbering is 1-based
344
347
outputs ['restored_image' ].append (
345
- self ._gen_fname (basefile ,
346
- suffix = '_restore_%d' % (val + 1 )))
348
+ self ._gen_fname (suffix = '_restore_%d' % (val + 1 ), ** _gen_fname_opts ))
347
349
else :
348
350
# single image segmentation has unnumbered output image
349
351
outputs ['restored_image' ].append (
350
- self ._gen_fname (basefile , suffix = '_restore' ))
352
+ self ._gen_fname (suffix = '_restore' , ** _gen_fname_opts ))
351
353
352
- outputs ['mixeltype' ] = self ._gen_fname (basefile , suffix = '_mixeltype' )
354
+ outputs ['mixeltype' ] = self ._gen_fname (suffix = '_mixeltype' , ** _gen_fname_opts )
353
355
if not self .inputs .no_pve :
354
356
outputs ['partial_volume_map' ] = self ._gen_fname (
355
- basefile , suffix = '_pveseg' )
357
+ suffix = '_pveseg' , ** _gen_fname_opts )
356
358
outputs ['partial_volume_files' ] = []
357
359
for i in range (nclasses ):
358
360
outputs [
359
361
'partial_volume_files' ].append (
360
- self ._gen_fname (basefile , suffix = '_pve_%d' % i ))
362
+ self ._gen_fname (suffix = '_pve_%d' % i , ** _gen_fname_opts ))
361
363
if self .inputs .output_biasfield :
362
364
outputs ['bias_field' ] = []
363
365
if len (self .inputs .in_files ) > 1 :
@@ -366,18 +368,17 @@ def _list_outputs(self):
366
368
for val , f in enumerate (self .inputs .in_files ):
367
369
# image numbering is 1-based
368
370
outputs ['bias_field' ].append (
369
- self ._gen_fname (basefile ,
370
- suffix = '_bias_%d' % (val + 1 )))
371
+ self ._gen_fname (suffix = '_bias_%d' % (val + 1 ), ** _gen_fname_opts ))
371
372
else :
372
373
# single image segmentation has unnumbered output image
373
374
outputs ['bias_field' ].append (
374
- self ._gen_fname (basefile , suffix = '_bias' ))
375
+ self ._gen_fname (suffix = '_bias' , ** _gen_fname_opts ))
375
376
376
377
if self .inputs .probability_maps :
377
378
outputs ['probability_maps' ] = []
378
379
for i in range (nclasses ):
379
380
outputs ['probability_maps' ].append (
380
- self ._gen_fname (basefile , suffix = '_prob_%d' % i ))
381
+ self ._gen_fname (suffix = '_prob_%d' % i , ** _gen_fname_opts ))
381
382
return outputs
382
383
383
384
0 commit comments