3
3
from nipype .pipeline import engine as pe
4
4
from nipype .interfaces import utility as niu
5
5
6
- FMAP_PRIORITY = {" epi" : 0 , " fieldmap" : 1 , " phasediff" : 2 , " phase" : 3 , " syn" : 4 }
6
+ FMAP_PRIORITY = {' epi' : 0 , ' fieldmap' : 1 , ' phasediff' : 2 , ' phase' : 3 , ' syn' : 4 }
7
7
8
8
9
9
def init_sdc_prep_wf (
10
10
subject_id ,
11
11
fmaps ,
12
12
metadata ,
13
13
layout ,
14
- bet_mag_frac ,
14
+ bet_mag ,
15
15
#synb0,
16
- omp_nthreads = 1 ,
17
- fmap_bspline = False ,
16
+ omp_nthreads
18
17
):
19
18
20
- sdc_prep_wf = pe .Workflow (name = " sdc_prep_wf" )
19
+ sdc_prep_wf = pe .Workflow (name = ' sdc_prep_wf' )
21
20
22
21
inputnode = pe .Node (
23
- niu .IdentityInterface (fields = ["b0_stripped" ]), name = "inputnode"
24
- )
22
+ niu .IdentityInterface (fields = ['b0_stripped' ]), name = 'inputnode' )
25
23
26
24
outputnode = pe .Node (
27
25
niu .IdentityInterface (
28
26
fields = [
29
- " out_fmap" ,
30
- " out_topup" ,
31
- " bold_ref" ,
32
- " bold_mask" ,
33
- " bold_ref_brain" ,
34
- " out_warp" ,
35
- " syn_bold_ref" ,
36
- " method" ,
37
- " out_movpar" ,
38
- " out_enc_file" ,
27
+ ' out_fmap' ,
28
+ ' out_topup' ,
29
+ ' bold_ref' ,
30
+ ' bold_mask' ,
31
+ ' bold_ref_brain' ,
32
+ ' out_warp' ,
33
+ ' syn_bold_ref' ,
34
+ ' method' ,
35
+ ' out_movpar' ,
36
+ ' out_enc_file'
39
37
]
40
38
),
41
- name = " outputnode" ,
39
+ name = ' outputnode' ,
42
40
)
43
41
# if synb0:
44
42
# from .pepolar import init_synb0_wf
@@ -50,164 +48,103 @@ def init_sdc_prep_wf(
50
48
# (
51
49
# inputnode,
52
50
# synb0_wf,
53
- # [(" b0_stripped", " inputnode.b0_stripped" )],
51
+ # [(' b0_stripped', ' inputnode.b0_stripped' )],
54
52
# ),
55
53
# (
56
54
# synb0_wf,
57
55
# outputnode,
58
56
# [
59
- # (" outputnode.out_topup", " out_topup" ),
60
- # (" outputnode.out_movpar", " out_movpar" ),
61
- # (" outputnode.out_enc_file", " out_enc_file" ),
62
- # (" outputnode.out_fmap", " out_fmap" ),
57
+ # (' outputnode.out_topup', ' out_topup' ),
58
+ # (' outputnode.out_movpar', ' out_movpar' ),
59
+ # (' outputnode.out_enc_file', ' out_enc_file' ),
60
+ # (' outputnode.out_fmap', ' out_fmap' ),
63
61
# ],
64
62
# ),
65
63
# ]
66
64
# )
67
65
# else:
68
- fmaps .sort (key = lambda fmap : FMAP_PRIORITY [fmap [" suffix" ]])
66
+ fmaps .sort (key = lambda fmap : FMAP_PRIORITY [fmap [' suffix' ]])
69
67
fmap = fmaps [0 ]
70
68
71
- if fmap [" suffix" ] == " epi" :
69
+ if fmap [' suffix' ] == ' epi' :
72
70
from .pepolar import init_pepolar_wf
73
71
74
72
epi_fmaps = [
75
- (fmap_ [" epi" ], fmap_ [" metadata" ][ " PhaseEncodingDirection" ])
73
+ (fmap_ [' epi' ], fmap_ [' metadata' ][ ' PhaseEncodingDirection' ])
76
74
for fmap_ in fmaps
77
- if fmap_ [" suffix" ] == " epi"
75
+ if fmap_ [' suffix' ] == ' epi'
78
76
]
79
77
80
78
pepolar_wf = init_pepolar_wf (subject_id , metadata , epi_fmaps )
81
79
82
- sdc_prep_wf .connect (
83
- [
84
- (
85
- inputnode ,
86
- pepolar_wf ,
87
- [("b0_stripped" , "inputnode.b0_stripped" )],
88
- ),
89
- (
90
- pepolar_wf ,
91
- outputnode ,
92
- [
93
- ("outputnode.out_topup" , "out_topup" ),
94
- ("outputnode.out_movpar" , "out_movpar" ),
95
- ("outputnode.out_enc_file" , "out_enc_file" ),
96
- ("outputnode.out_fmap" , "out_fmap" ),
97
- ],
98
- ),
99
- ]
100
- )
80
+ sdc_prep_wf .connect ([
81
+ (inputnode , pepolar_wf , [('b0_stripped' , 'inputnode.b0_stripped' )]),
82
+ (pepolar_wf , outputnode , [('outputnode.out_topup' , 'out_topup' ),
83
+ ('outputnode.out_movpar' , 'out_movpar' ),
84
+ ('outputnode.out_enc_file' , 'out_enc_file' ),
85
+ ('outputnode.out_fmap' , 'out_fmap' )])
86
+ ])
101
87
102
- elif fmap [" suffix" ] == " fieldmap" :
88
+ elif fmap [' suffix' ] == ' fieldmap' :
103
89
from .fmap import init_fmap_wf
104
90
105
- fmap_wf = init_fmap_wf ()
106
- fmap_wf .inputs .inputnode .fieldmap = fmap ["fieldmap" ]
107
- fmap_wf .inputs .inputnode .magnitude = fmap ["magnitude" ]
108
-
109
- sdc_prep_wf .connect (
110
- [
111
- (
112
- inputnode ,
113
- fmap_wf ,
114
- [("b0_stripped" , "inputnode.b0_stripped" )],
115
- ),
116
- (
117
- fmap_wf ,
118
- outputnode ,
119
- [("outputnode.out_fmap" , "out_fmap" )],
120
- ),
121
- ]
122
- )
91
+ fmap_wf = init_fmap_wf (bet_mag )
92
+ fmap_wf .inputs .inputnode .fieldmap = fmap ['fieldmap' ]
93
+ fmap_wf .inputs .inputnode .magnitude = fmap ['magnitude' ]
94
+
95
+ sdc_prep_wf .connect ([
96
+ (inputnode , fmap_wf , [('b0_stripped' , 'inputnode.b0_stripped' )]),
97
+ (fmap_wf , outputnode , [('outputnode.out_fmap' , 'out_fmap' )])
98
+ ])
123
99
124
- elif fmap [" suffix" ] in (" phasediff" , " phase" ):
100
+ elif fmap [' suffix' ] in (' phasediff' , ' phase' ):
125
101
from .phasediff import init_phase_wf , init_phdiff_wf
126
102
from .fmap import init_fmap_wf
127
103
128
- if fmap ["suffix" ] == "phasediff" :
129
- phase_wf = init_phdiff_wf (bet_mag_frac )
130
- phase_wf .inputs .inputnode .phasediff = fmap ["phasediff" ]
131
-
104
+ if fmap ['suffix' ] == 'phasediff' :
105
+ phase_wf = init_phdiff_wf (bet_mag )
106
+ phase_wf .inputs .inputnode .phasediff = fmap ['phasediff' ]
132
107
phase_wf .inputs .inputnode .magnitude1 = [
133
108
fmap_
134
109
for key , fmap_ in sorted (fmap .items ())
135
- if key .startswith (" magnitude1" )
110
+ if key .startswith (' magnitude1' )
136
111
][0 ]
137
-
138
112
phase_wf .inputs .inputnode .phases_meta = layout .get_metadata (
139
- phase_wf .inputs .inputnode .phasediff
140
- )
141
- post_phase_wf = init_fmap_wf ()
142
-
143
- sdc_prep_wf .connect (
144
- [
145
- (
146
- inputnode ,
147
- post_phase_wf ,
148
- [("b0_stripped" , "inputnode.b0_stripped" )],
149
- ),
150
- (
151
- phase_wf ,
152
- post_phase_wf ,
153
- [("outputnode.out_fmap" , "inputnode.fieldmap" )],
154
- ),
155
- (
156
- phase_wf ,
157
- post_phase_wf ,
158
- [("outputnode.out_mag" , "inputnode.magnitude" )],
159
- ),
160
- (
161
- post_phase_wf ,
162
- outputnode ,
163
- [("outputnode.out_fmap" , "out_fmap" )],
164
- ),
165
- ]
166
- )
167
-
168
- elif fmap ["suffix" ] == "phase" :
169
- phase_wf = init_phase_wf (bet_mag_frac )
113
+ phase_wf .inputs .inputnode .phasediff )
114
+
115
+ fmap_wf = init_fmap_wf (bet_mag )
116
+
117
+ sdc_prep_wf .connect ([
118
+ (inputnode , fmap_wf , [('b0_stripped' , 'inputnode.b0_stripped' )]),
119
+ (phase_wf , fmap_wf , [('outputnode.out_fmap' , 'inputnode.fieldmap' )]),
120
+ (phase_wf , fmap_wf , [('outputnode.out_mag' , 'inputnode.magnitude' )]),
121
+ (fmap_wf , outputnode , [('outputnode.out_fmap' , 'out_fmap' )])
122
+ ])
123
+
124
+ elif fmap ['suffix' ] == 'phase' :
125
+ phase_wf = init_phase_wf (bet_mag )
170
126
phase_wf .inputs .inputnode .phasediff = [
171
- fmap [" phase1" ],
172
- fmap [" phase2" ],
127
+ fmap [' phase1' ],
128
+ fmap [' phase2' ]
173
129
]
174
-
175
130
phase_wf .inputs .inputnode .magnitude1 = [
176
131
fmap_
177
132
for key , fmap_ in sorted (fmap .items ())
178
- if key .startswith (" magnitude1" )
133
+ if key .startswith (' magnitude1' )
179
134
][0 ]
180
-
181
135
phase_wf .inputs .inputnode .phases_meta = [
182
136
layout .get_metadata (i )
183
137
for i in phase_wf .inputs .inputnode .phasediff
184
138
]
185
- post_phase_wf = init_fmap_wf ()
186
-
187
- sdc_prep_wf .connect (
188
- [
189
- (
190
- inputnode ,
191
- post_phase_wf ,
192
- [("b0_stripped" , "inputnode.b0_stripped" )],
193
- ),
194
- (
195
- phase_wf ,
196
- post_phase_wf ,
197
- [("outputnode.out_fmap" , "inputnode.fieldmap" )],
198
- ),
199
- (
200
- phase_wf ,
201
- post_phase_wf ,
202
- [("outputnode.out_mag" , "inputnode.magnitude" )],
203
- ),
204
- (
205
- post_phase_wf ,
206
- outputnode ,
207
- [("outputnode.out_fmap" , "out_fmap" )],
208
- ),
209
- ]
210
- )
139
+
140
+ fmap_wf = init_fmap_wf ()
141
+
142
+ sdc_prep_wf .connect ([
143
+ (inputnode , fmap_wf , [('b0_stripped' , 'inputnode.b0_stripped' )]),
144
+ (phase_wf , fmap_wf , [('outputnode.out_fmap' , 'inputnode.fieldmap' )]),
145
+ (phase_wf , fmap_wf , [('outputnode.out_mag' , 'inputnode.magnitude' )]),
146
+ (fmap_wf , outputnode , [('outputnode.out_fmap' , 'out_fmap' )])
147
+ ])
211
148
else :
212
- print (" No sdc correction" )
149
+ print (' No sdc correction' )
213
150
return sdc_prep_wf
0 commit comments