3
3
4
4
"""
5
5
The ASL module of niftyfit, which wraps the fitting methods in NiftyFit.
6
+
7
+ Change directory to provide relative paths for doctests
8
+ >>> import os
9
+ >>> filepath = os.path.dirname( os.path.realpath( __file__ ) )
10
+ >>> datadir = os.path.realpath(os.path.join(filepath, '../../testing/data'))
11
+ >>> os.chdir(datadir)
6
12
"""
7
13
8
14
from ..base import TraitedSpec , traits , isdefined , CommandLineInputSpec
@@ -37,19 +43,19 @@ class FitAslInputSpec(CommandLineInputSpec):
37
43
m0mape = traits .File (exists = True , argstr = '-m0mape %s' , desc = desc )
38
44
desc = 'Filename of a [1,2,5]s Inversion Recovery volume (T1/M0 fitting \
39
45
carried out internally).'
40
- IRvolume = traits .File (exists = True , argstr = '-IRvolume %s' , desc = desc )
46
+ ir_volume = traits .File (exists = True , argstr = '-IRvolume %s' , desc = desc )
41
47
desc = 'Output of [1,2,5]s Inversion Recovery fitting.'
42
- IRoutput = traits .File (exists = True , argstr = '-IRoutput %s' , desc = desc )
48
+ ir_output = traits .File (exists = True , argstr = '-IRoutput %s' , desc = desc )
43
49
44
50
# *** Experimental options (Choose those suitable for the model!):
45
51
mask = traits .File (position = 2 ,
46
52
exists = True ,
47
53
desc = 'Filename of image mask.' ,
48
54
argstr = '-mask %s' )
49
- T1a = traits .Float (desc = 'T1 of arterial component [1650ms].' ,
50
- argstr = '-T1a %f' )
55
+ t1_art_cmp = traits .Float (desc = 'T1 of arterial component [1650ms].' ,
56
+ argstr = '-T1a %f' )
51
57
desc = 'Single plasma/tissue partition coefficient [0.9ml/g].'
52
- L = traits .Float (desc = desc , argstr = '-L %f' )
58
+ plasma_coeff = traits .Float (desc = desc , argstr = '-L %f' )
53
59
desc = 'Labelling efficiency [0.99 (pasl), 0.85 (pcasl)], ensure any \
54
60
background suppression pulses are included in -eff'
55
61
eff = traits .Float (desc = desc , argstr = '-eff %f' )
@@ -58,32 +64,32 @@ class FitAslInputSpec(CommandLineInputSpec):
58
64
out = traits .Float (desc = desc , argstr = '-out %f' )
59
65
60
66
# *** PCASL options (Choose those suitable for the model!):
61
- PLD = traits .Float (desc = 'Post Labelling Delay [2000ms].' , argstr = '-PLD %f' )
62
- LDD = traits .Float (desc = 'Labelling Duration [1800ms].' , argstr = '-LDD %f' )
67
+ pld = traits .Float (desc = 'Post Labelling Delay [2000ms].' , argstr = '-PLD %f' )
68
+ ldd = traits .Float (desc = 'Labelling Duration [1800ms].' , argstr = '-LDD %f' )
63
69
desc = 'Difference in labelling delay per slice [0.0 ms/slice.'
64
- dPLD = traits .Float (desc = desc , argstr = '-dPLD %f' )
70
+ dpld = traits .Float (desc = desc , argstr = '-dPLD %f' )
65
71
66
72
# *** PASL options (Choose those suitable for the model!):
67
- Tinv1 = traits .Float (desc = 'Saturation pulse time [800ms].' ,
68
- argstr = '-Tinv1 %f' )
69
- Tinv2 = traits .Float (desc = 'Inversion time [2000ms].' , argstr = '-Tinv2 %f' )
73
+ t_inv1 = traits .Float (desc = 'Saturation pulse time [800ms].' ,
74
+ argstr = '-Tinv1 %f' )
75
+ t_inv2 = traits .Float (desc = 'Inversion time [2000ms].' , argstr = '-Tinv2 %f' )
70
76
desc = 'Difference in inversion time per slice [0ms/slice].'
71
- dTinv2 = traits .Float (desc = desc , argstr = '-dTinv2 %f' )
77
+ dt_inv2 = traits .Float (desc = desc , argstr = '-dTinv2 %f' )
72
78
73
79
# *** Other experimental assumptions:
74
80
75
81
# Not programmed yet
76
82
# desc = 'Slope and intercept for Arterial Transit Time.'
77
83
# ATT = traits.Float(desc=desc, argstr='-ATT %f')
78
84
79
- gmT1 = traits .Float (desc = 'T1 of GM [1150ms].' , argstr = '-gmT1 %f' )
80
- gmL = traits .Float (desc = 'Plasma/GM water partition [0.95ml/g].' ,
81
- argstr = '-gmL %f' )
82
- gmTTT = traits .Float (desc = 'Time to GM [ATT+0ms].' , argstr = '-gmTTT %f' )
83
- wmT1 = traits .Float (desc = 'T1 of WM [800ms].' , argstr = '-wmT1 %f' )
84
- wmL = traits .Float (desc = 'Plasma/WM water partition [0.82ml/g].' ,
85
- argstr = '-wmL %f' )
86
- wmTTT = traits .Float (desc = 'Time to WM [ATT+0ms].' , argstr = '-wmTTT %f' )
85
+ gm_t1 = traits .Float (desc = 'T1 of GM [1150ms].' , argstr = '-gmT1 %f' )
86
+ gm_plasma = traits .Float (desc = 'Plasma/GM water partition [0.95ml/g].' ,
87
+ argstr = '-gmL %f' )
88
+ gm_ttt = traits .Float (desc = 'Time to GM [ATT+0ms].' , argstr = '-gmTTT %f' )
89
+ wm_t1 = traits .Float (desc = 'T1 of WM [800ms].' , argstr = '-wmT1 %f' )
90
+ wm_plasma = traits .Float (desc = 'Plasma/WM water partition [0.82ml/g].' ,
91
+ argstr = '-wmL %f' )
92
+ wm_ttt = traits .Float (desc = 'Time to WM [ATT+0ms].' , argstr = '-wmTTT %f' )
87
93
88
94
# *** Segmentation options:
89
95
desc = 'Filename of the 4D segmentation (in ASL space) for L/T1 \
@@ -103,7 +109,7 @@ class FitAslInputSpec(CommandLineInputSpec):
103
109
mulgm = traits .Bool (desc = 'Multiply CBF by segmentation [Off].' ,
104
110
argstr = '-sig' )
105
111
desc = 'Set PV threshold for switching off LSQR [O.05].'
106
- pvthreshold = traits .Bool (desc = desc , argstr = '-pvthreshold' )
112
+ pv_threshold = traits .Bool (desc = desc , argstr = '-pvthreshold' )
107
113
segstyle = traits .Bool (desc = 'Set CBF as [gm,wm] not [wm,gm].' ,
108
114
argstr = '-segstyle' )
109
115
@@ -130,11 +136,11 @@ class FitAsl(NiftyFitCommand):
130
136
131
137
Examples
132
138
--------
133
- >>> from nipype.interfaces.niftyfit import FitAsl
134
- >>> node = FitAsl()
135
- >>> node.inputs.source_file = " asl.nii.gz" # doctest: +SKIP
139
+ >>> from nipype.interfaces import niftyfit
140
+ >>> node = niftyfit. FitAsl()
141
+ >>> node.inputs.source_file = ' asl.nii.gz'
136
142
>>> node.cmdline # doctest: +SKIP
137
- 'fit_asl -source asl.nii -cbf asl_cbf.nii.gz -error asl_error.nii.gz \
143
+ 'fit_asl -source asl.nii.gz -cbf asl_cbf.nii.gz -error asl_error.nii.gz \
138
144
-syn asl_syn.nii.gz'
139
145
140
146
"""
0 commit comments