13
13
from copy import deepcopy
14
14
15
15
from nipype .pipeline import engine as pe
16
- from .dwi import init_dwi_preproc_wf , init_output_wf
17
-
18
-
19
- def init_dmriprep_wf (parameters ):
16
+ from .dwi import init_dwi_preproc_wf , init_dwi_derivatives_wf
17
+
18
+
19
+ def init_dmriprep_wf (
20
+ subject_list ,
21
+ layout ,
22
+ output_dir ,
23
+ work_dir ,
24
+ ignore ,
25
+ b0_thresh ,
26
+ output_resolution ,
27
+ bet_dwi ,
28
+ bet_mag ,
29
+ omp_nthreads ,
30
+ synb0_dir
31
+ ):
20
32
"""
21
33
This workflow organizes the execusion of dMRIPrep, with a sub-workflow for
22
34
each subject.
@@ -31,18 +43,27 @@ def init_dmriprep_wf(parameters):
31
43
32
44
"""
33
45
dmriprep_wf = pe .Workflow (name = "dmriprep_wf" )
34
- dmriprep_wf .base_dir = parameters . work_dir
46
+ dmriprep_wf .base_dir = work_dir
35
47
36
- for subject_id in parameters . subject_list :
48
+ for subject_id in subject_list :
37
49
38
50
single_subject_wf = init_single_subject_wf (
39
51
subject_id = subject_id ,
40
52
name = "single_subject_" + subject_id + "_wf" ,
41
- parameters = parameters
53
+ layout = layout ,
54
+ output_dir = output_dir ,
55
+ work_dir = work_dir ,
56
+ ignore = ignore ,
57
+ b0_thresh = b0_thresh ,
58
+ output_resolution = output_resolution ,
59
+ bet_dwi = bet_dwi ,
60
+ bet_mag = bet_mag ,
61
+ omp_nthreads = omp_nthreads ,
62
+ synb0_dir = synb0_dir
42
63
)
43
64
44
65
single_subject_wf .config ["execution" ]["crashdump_dir" ] = os .path .join (
45
- parameters . output_dir , "dmriprep" , "sub-" + subject_id , "log"
66
+ output_dir , "dmriprep" , "sub-" + subject_id , "log"
46
67
)
47
68
single_subject_wf .config ["execution" ]["remove_unnecessary_outputs" ] = False
48
69
single_subject_wf .config ["execution" ]["keep_inputs" ] = True
@@ -56,7 +77,20 @@ def init_dmriprep_wf(parameters):
56
77
return dmriprep_wf
57
78
58
79
59
- def init_single_subject_wf (subject_id , name , parameters ):
80
+ def init_single_subject_wf (
81
+ subject_id ,
82
+ name ,
83
+ layout ,
84
+ output_dir ,
85
+ work_dir ,
86
+ ignore ,
87
+ b0_thresh ,
88
+ output_resolution ,
89
+ bet_dwi ,
90
+ bet_mag ,
91
+ omp_nthreads ,
92
+ synb0_dir
93
+ ):
60
94
"""
61
95
This workflow organizes the preprocessing pipeline for a single subject.
62
96
It collects and reports information about the subject, and prepares
@@ -77,7 +111,7 @@ def init_single_subject_wf(subject_id, name, parameters):
77
111
78
112
"""
79
113
80
- dwi_files = parameters . layout .get (
114
+ dwi_files = layout .get (
81
115
subject = subject_id ,
82
116
datatype = "dwi" ,
83
117
suffix = "dwi" ,
@@ -94,40 +128,49 @@ def init_single_subject_wf(subject_id, name, parameters):
94
128
subject_wf = pe .Workflow (name = name )
95
129
96
130
for dwi_file in dwi_files :
97
- entities = parameters . layout .parse_file_entities (dwi_file )
131
+ entities = layout .parse_file_entities (dwi_file )
98
132
if "session" in entities :
99
133
session_id = entities ["session" ]
100
134
else :
101
135
session_id = None
102
- metadata = parameters . layout .get_metadata (dwi_file )
136
+ metadata = layout .get_metadata (dwi_file )
103
137
dwi_preproc_wf = init_dwi_preproc_wf (
104
138
subject_id = subject_id ,
105
139
dwi_file = dwi_file ,
106
140
metadata = metadata ,
107
- parameters = parameters
141
+ layout = layout ,
142
+ output_dir = output_dir ,
143
+ work_dir = work_dir ,
144
+ ignore = ignore ,
145
+ b0_thresh = b0_thresh ,
146
+ output_resolution = output_resolution ,
147
+ bet_dwi = bet_dwi ,
148
+ bet_mag = bet_mag ,
149
+ omp_nthreads = omp_nthreads ,
150
+ synb0_dir = synb0_dir
108
151
)
109
- datasink_wf = init_output_wf (
152
+ datasink_wf = init_dwi_derivatives_wf (
110
153
subject_id = subject_id ,
111
154
session_id = session_id ,
112
- output_folder = parameters . output_dir
155
+ output_folder = output_dir
113
156
)
114
157
115
158
dwi_preproc_wf .base_dir = os .path .join (
116
- os .path .abspath (parameters . work_dir ), subject_id
159
+ os .path .abspath (work_dir ), subject_id
117
160
)
118
161
119
162
inputspec = dwi_preproc_wf .get_node ("inputnode" )
120
163
inputspec .inputs .subject_id = subject_id
121
164
inputspec .inputs .dwi_file = dwi_file
122
165
inputspec .inputs .dwi_meta = metadata
123
- inputspec .inputs .bvec_file = parameters . layout .get_bvec (dwi_file )
124
- inputspec .inputs .bval_file = parameters . layout .get_bval (dwi_file )
125
- inputspec .inputs .out_dir = os .path .abspath (parameters . output_dir )
166
+ inputspec .inputs .bvec_file = layout .get_bvec (dwi_file )
167
+ inputspec .inputs .bval_file = layout .get_bval (dwi_file )
168
+ inputspec .inputs .out_dir = os .path .abspath (output_dir )
126
169
127
170
ds_inputspec = datasink_wf .get_node ("inputnode" )
128
171
ds_inputspec .inputs .subject_id = subject_id
129
172
ds_inputspec .inputs .session_id = session_id
130
- ds_inputspec .inputs .output_folder = parameters . output_dir
173
+ ds_inputspec .inputs .output_folder = output_dir
131
174
ds_inputspec .inputs .metadata = metadata
132
175
133
176
if session_id :
0 commit comments