@@ -21,6 +21,10 @@ class DTIInputSpec(DipyBaseInterfaceInputSpec):
21
21
22
22
class DTIOutputSpec (TraitedSpec ):
23
23
out_file = File (exists = True )
24
+ fa_file = File (exists = True )
25
+ md_file = File (exists = True )
26
+ rd_file = File (exists = True )
27
+ ad_file = File (exists = True )
24
28
25
29
26
30
class DTI (DipyDiffusionInterface ):
@@ -55,16 +59,28 @@ def _run_interface(self, runtime):
55
59
# Fit it
56
60
tenmodel = dti .TensorModel (gtab )
57
61
ten_fit = tenmodel .fit (data , mask )
58
- lower_triangular = tenfit .lower_triangular ()
62
+ lower_triangular = ten_fit .lower_triangular ()
59
63
img = nifti1_symmat (lower_triangular , affine )
60
64
out_file = self ._gen_filename ('dti' )
61
65
nb .save (img , out_file )
62
66
IFLOGGER .info ('DTI parameters image saved as {i}' .format (i = out_file ))
67
+
68
+ #FA MD RD and AD
69
+ for metric in ["fa" , "md" , "rd" , "ad" ]:
70
+ data = getattr (ten_fit ,metric ).astype ("float32" )
71
+ out_name = self ._gen_filename (metric )
72
+ nb .Nifti1Image (data , affine ).to_filename (out_name )
73
+ IFLOGGER .info ('DTI {metric} image saved as {i}' .format (i = out_name , metric = metric ))
74
+
63
75
return runtime
64
76
65
77
def _list_outputs (self ):
66
78
outputs = self ._outputs ().get ()
67
79
outputs ['out_file' ] = self ._gen_filename ('dti' )
80
+
81
+ for metric in ["fa" , "md" , "rd" , "ad" ]:
82
+ outputs ["{}_file" .format (metric )] = self ._gen_filename (metric )
83
+
68
84
return outputs
69
85
70
86
0 commit comments