@@ -126,7 +126,7 @@ def merge_and_mean(name='mm'):
126
126
127
127
def bedpostx_parallel (name = 'bedpostx_parallel' ,
128
128
compute_all_outputs = True ,
129
- params = {} ):
129
+ params = None ):
130
130
"""
131
131
Does the same as :func:`.create_bedpostx_pipeline` by splitting
132
132
the input dMRI in small ROIs that are better suited for parallel
@@ -161,19 +161,24 @@ def bedpostx_parallel(name='bedpostx_parallel',
161
161
inputnode = pe .Node (niu .IdentityInterface (fields = ['dwi' , 'mask' ,
162
162
'bvecs' , 'bvals' ]), name = 'inputnode' )
163
163
slice_dwi = pe .Node (misc .SplitROIs (roi_size = (5 , 5 , 1 )), name = 'slice_dwi' )
164
- xfib_if = fsl .XFibres5 (** params )
164
+ if params is not None :
165
+ xfib_if = fsl .XFibres5 (** params )
166
+ else :
167
+ xfib_if = fsl .XFibres5 ()
165
168
xfibres = pe .MapNode (xfib_if , name = 'xfibres' ,
166
169
iterfield = ['dwi' , 'mask' ])
167
170
168
171
mrg_dyads = pe .MapNode (misc .MergeROIs (), name = 'Merge_dyads' ,
169
172
iterfield = ['in_files' ])
170
173
mrg_fsamp = pe .MapNode (misc .MergeROIs (), name = 'Merge_mean_fsamples' ,
171
174
iterfield = ['in_files' ])
172
- out_fields = ['dyads' , 'mean_fsamples ' ]
175
+ out_fields = ['dyads' , 'fsamples ' ]
173
176
174
177
if compute_all_outputs :
175
178
out_fields += ['dyads_disp' , 'thsamples' , 'phsamples' ,
176
- 'fsamples' , 'mean_thsamples' , 'mean_phsamples' ]
179
+ 'mean_fsamples' , 'mean_thsamples' , 'mean_phsamples' ,
180
+ 'merged_fsamples' , 'merged_thsamples' ,
181
+ 'merged_phsamples' ]
177
182
178
183
outputnode = pe .Node (niu .IdentityInterface (fields = out_fields ),
179
184
name = 'outputnode' )
@@ -193,22 +198,22 @@ def bedpostx_parallel(name='bedpostx_parallel',
193
198
(xfibres , mrg_fsamp , [(('mean_fsamples' , transpose ), 'in_files' )]),
194
199
(slice_dwi , mrg_fsamp , [('out_index' , 'in_index' )]),
195
200
(mrg_dyads , outputnode , [('merged_file' , 'dyads' )]),
196
- (mrg_fsamp , outputnode , [('merged_file' , 'mean_fsamples ' )])
201
+ (mrg_fsamp , outputnode , [('merged_file' , 'fsamples ' )])
197
202
])
198
203
199
204
if compute_all_outputs :
200
205
make_dyads = pe .MapNode (fsl .MakeDyadicVectors (), name = "Make_dyads" ,
201
206
iterfield = ['theta_vol' , 'phi_vol' ])
202
207
208
+ wf .connect ([(inputnode , make_dyads , [('mask' , 'mask' )])])
203
209
mms = {}
204
210
for k in ['thsamples' , 'phsamples' , 'fsamples' ]:
205
211
mms [k ] = merge_and_mean_parallel (k )
206
212
wf .connect ([
207
- (inputnode , make_dyads , [('mask' , 'mask' )]),
208
213
(slice_dwi , mms [k ], [('out_index' , 'inputnode.in_index' )]),
209
214
(inputnode , mms [k ], [('mask' , 'inputnode.in_reference' )]),
210
215
(xfibres , mms [k ], [(k , 'inputnode.in_files' )]),
211
- (mms [k ], outputnode , [('outputnode.merged' , k ),
216
+ (mms [k ], outputnode , [('outputnode.merged' , 'merged_%s' % k ),
212
217
('outputnode.mean' , 'mean_%s' % k )])
213
218
214
219
])
0 commit comments