Skip to content

Commit b9a7ad0

Browse files
committed
♻️ Plug in ants guardrail
1 parent db3d555 commit b9a7ad0

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

CPAC/registration/registration.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ def apply_transform(wf_name, reg_tool, time_series=False, multi_input=False,
8787
apply_warp.inputs.dimension = 3
8888
apply_warp.interface.num_threads = int(num_ants_cores)
8989

90+
# Guardrail: check QC metrics
91+
guardrail = registration_guardrail_node()
92+
wf.connect(inputNode, 'reference', guardrail, 'reference')
93+
9094
if time_series:
9195
apply_warp.inputs.input_image_type = 3
9296

@@ -101,8 +105,7 @@ def apply_transform(wf_name, reg_tool, time_series=False, multi_input=False,
101105
interp_string.inputs.reg_tool = reg_tool
102106

103107
wf.connect(inputNode, 'interpolation', interp_string, 'interpolation')
104-
wf.connect(interp_string, 'interpolation',
105-
apply_warp, 'interpolation')
108+
wf.connect(interp_string, 'interpolation', apply_warp, 'interpolation')
106109

107110
ants_xfm_list = \
108111
pe.Node(util.Function(input_names=['transform'],
@@ -122,9 +125,9 @@ def apply_transform(wf_name, reg_tool, time_series=False, multi_input=False,
122125
chunk = pe.Node(util.Function(input_names=['func_file',
123126
'n_chunks',
124127
'chunk_size'],
125-
output_names=['TR_ranges'],
126-
function=chunk_ts,
127-
imports=chunk_imports),
128+
output_names=['TR_ranges'],
129+
function=chunk_ts,
130+
imports=chunk_imports),
128131
name=f'chunk_{wf_name}',
129132
mem_gb=2.5)
130133

@@ -138,9 +141,9 @@ def apply_transform(wf_name, reg_tool, time_series=False, multi_input=False,
138141
split_imports = ['import os', 'import subprocess']
139142
split = pe.Node(util.Function(input_names=['func_file',
140143
'tr_ranges'],
141-
output_names=['split_funcs'],
142-
function=split_ts_chunks,
143-
imports=split_imports),
144+
output_names=['split_funcs'],
145+
function=split_ts_chunks,
146+
imports=split_imports),
144147
name=f'split_{wf_name}',
145148
mem_gb=2.5)
146149

@@ -154,13 +157,14 @@ def apply_transform(wf_name, reg_tool, time_series=False, multi_input=False,
154157
mem_gb=2.5)
155158
func_concat.inputs.outputtype = 'NIFTI_GZ'
156159

157-
wf.connect(apply_warp, 'output_image', func_concat, 'in_files')
158-
160+
wf.connect(apply_warp, 'output_image', guardrail, 'registered')
161+
wf.connect(guardrail, 'registered', func_concat, 'in_files')
159162
wf.connect(func_concat, 'out_file', outputNode, 'output_image')
160163

161164
else:
162165
wf.connect(inputNode, 'input_image', apply_warp, 'input_image')
163-
wf.connect(apply_warp, 'output_image', outputNode, 'output_image')
166+
wf.connect(apply_warp, 'output_image', guardrail, 'registered')
167+
wf.connect(guardrail, 'registered', outputNode, 'output_image')
164168

165169
elif reg_tool == 'fsl':
166170

@@ -221,9 +225,9 @@ def apply_transform(wf_name, reg_tool, time_series=False, multi_input=False,
221225
split_imports = ['import os', 'import subprocess']
222226
split = pe.Node(util.Function(input_names=['func_file',
223227
'tr_ranges'],
224-
output_names=['split_funcs'],
225-
function=split_ts_chunks,
226-
imports=split_imports),
228+
output_names=['split_funcs'],
229+
function=split_ts_chunks,
230+
imports=split_imports),
227231
name=f'split_{wf_name}',
228232
mem_gb=2.5)
229233

@@ -243,8 +247,8 @@ def apply_transform(wf_name, reg_tool, time_series=False, multi_input=False,
243247
wf.connect(inputNode, 'input_image', apply_warp, 'in_file')
244248
wf.connect(apply_warp, 'out_file', guardrail, 'registered')
245249

246-
# Pass output through guardrail before continuing
247-
wf.connect(guardrail, 'registered', outputNode, 'output_image')
250+
# Pass output through guardrail before continuing
251+
wf.connect(guardrail, 'registered', outputNode, 'output_image')
248252

249253
return wf
250254

0 commit comments

Comments
 (0)