@@ -373,27 +373,26 @@ class DwiToolInputSpec(CommandLineInputSpec):
373
373
bvec_file = traits .File (position = 3 ,
374
374
exists = True ,
375
375
desc = desc ,
376
- argstr = '-bvec %s' ,
377
- mandatory = True )
376
+ argstr = '-bvec %s' )
378
377
b0_file = traits .File (position = 4 ,
379
378
exists = True ,
380
379
desc = 'The B0 image corresponding to the source DWI' ,
381
- argstr = '-b0 %s' ,
382
- mandatory = True )
380
+ argstr = '-b0 %s' )
383
381
mask_file = traits .File (position = 5 ,
384
382
exists = True ,
385
383
desc = 'The image mask' ,
386
- argstr = '-mask %s' ,
387
- mandatory = True )
384
+ argstr = '-mask %s' )
388
385
389
386
# Output options, with templated output names based on the source image
390
387
desc = 'Filename of multi-compartment model parameter map \
391
388
(-ivim,-ball,-nod)'
392
389
mcmap_file = traits .File (desc = desc ,
393
390
argstr = '-mcmap %s' ,
394
391
genfile = True )
395
- syn_file = traits .File (desc = 'Filename of synthetic image' ,
392
+ desc = 'Filename of synthetic image. Requires: bvec_file/b0_file.'
393
+ syn_file = traits .File (desc = desc ,
396
394
argstr = '-syn %s' ,
395
+ requires = ['bvec_file' , 'b0_file' ],
397
396
genfile = True )
398
397
mdmap_file = traits .File (desc = 'Filename of MD map/ADC' ,
399
398
argstr = '-mdmap %s' ,
@@ -404,11 +403,11 @@ class DwiToolInputSpec(CommandLineInputSpec):
404
403
v1map_file = traits .File (desc = 'Filename of PDD map [x,y,z]' ,
405
404
argstr = '-v1map %s' ,
406
405
genfile = True )
407
- rgbmap_file = traits .File (desc = 'Filename of colour FA map' ,
406
+ rgbmap_file = traits .File (desc = 'Filename of colour FA map. ' ,
408
407
argstr = '-rgbmap %s' ,
409
408
requires = ['dti_flag' ],
410
409
genfile = True )
411
- logdti_file = traits .File (desc = 'Filename of output logdti map' ,
410
+ logdti_file = traits .File (desc = 'Filename of output logdti map. ' ,
412
411
argstr = '-logdti2 %s' ,
413
412
requires = ['dti_flag' ],
414
413
genfile = True )
@@ -512,7 +511,7 @@ class DwiTool(NiftyFitCommand):
512
511
-mask mask.nii.gz -dti -famap .../dwi_famap.nii.gz \
513
512
-logdti2 .../dwi_logdti2.nii.gz -mcmap .../dwi_mcmap.nii.gz \
514
513
-mdmap .../dwi_mdmap.nii.gz -rgbmap rgb_map.nii.gz -syn .../dwi_syn.nii.gz \
515
- -v1map .../dwi_v1map.nii.gz '
514
+ -v1map .../dwi_v1map.nii.gz'
516
515
517
516
"""
518
517
_cmd = get_custom_path ('dwi_tool' )
@@ -525,8 +524,9 @@ def _format_arg(self, name, trait_spec, value):
525
524
if not isdefined (self .inputs .bvec_file ) or \
526
525
not isdefined (self .inputs .b0_file ):
527
526
return ""
528
- else :
529
- return trait_spec .argstr % value
527
+ if name in ['logdti_file' , 'rgbmap_file' ] and \
528
+ not isdefined (self .inputs .dti_flag ):
529
+ return ""
530
530
return super (DwiTool , self )._format_arg (name , trait_spec , value )
531
531
532
532
def _gen_filename (self , name ):
@@ -561,10 +561,12 @@ def _list_outputs(self):
561
561
else :
562
562
outputs ['mcmap_file' ] = self ._gen_filename ('mcmap_file' )
563
563
564
- if isdefined (self .inputs .syn_file ):
565
- outputs ['syn_file' ] = self .inputs .syn_file
566
- else :
567
- outputs ['syn_file' ] = self ._gen_filename ('syn_file' )
564
+ if isdefined (self .inputs .bvec_file ) and \
565
+ isdefined (self .inputs .b0_file ):
566
+ if isdefined (self .inputs .syn_file ):
567
+ outputs ['syn_file' ] = self .inputs .syn_file
568
+ else :
569
+ outputs ['syn_file' ] = self ._gen_filename ('syn_file' )
568
570
569
571
if isdefined (self .inputs .mdmap_file ):
570
572
outputs ['mdmap_file' ] = self .inputs .mdmap_file
@@ -581,14 +583,15 @@ def _list_outputs(self):
581
583
else :
582
584
outputs ['v1map_file' ] = self ._gen_filename ('v1map_file' )
583
585
584
- if isdefined (self .inputs .rgbmap_file ):
585
- outputs ['rgbmap_file' ] = self .inputs .rgbmap_file
586
- else :
587
- outputs ['rgbmap_file' ] = self ._gen_filename ('rgbmap_file' )
586
+ if isdefined (self .inputs .dti_flag ):
587
+ if isdefined (self .inputs .rgbmap_file ):
588
+ outputs ['rgbmap_file' ] = self .inputs .rgbmap_file
589
+ else :
590
+ outputs ['rgbmap_file' ] = self ._gen_filename ('rgbmap_file' )
588
591
589
- if isdefined (self .inputs .logdti_file ):
590
- outputs ['logdti_file' ] = self .inputs .logdti_file
591
- else :
592
- outputs ['logdti_file' ] = self ._gen_filename ('logdti_file' )
592
+ if isdefined (self .inputs .logdti_file ):
593
+ outputs ['logdti_file' ] = self .inputs .logdti_file
594
+ else :
595
+ outputs ['logdti_file' ] = self ._gen_filename ('logdti_file' )
593
596
594
597
return outputs
0 commit comments