Skip to content

Commit 34cd1e2

Browse files
committed
enh: use *NiWorkflows*' EPI-reference workflow
Replaces our workflows under ``dmriprep.workflows.dwi.util``.
1 parent c5ae564 commit 34cd1e2

File tree

2 files changed

+18
-309
lines changed

2 files changed

+18
-309
lines changed

dmriprep/workflows/dwi/base.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,16 @@ def init_dwi_preproc_wf(dwi_file, has_fieldmap=False):
6464
6565
See Also
6666
--------
67-
* :py:func:`~dmriprep.workflows.dwi.util.init_dwi_reference_wf`
6867
* :py:func:`~dmriprep.workflows.dwi.outputs.init_dwi_derivatives_wf`
6968
* :py:func:`~dmriprep.workflows.dwi.outputs.init_reportlets_wf`
7069
7170
"""
7271
from niworkflows.interfaces.reportlets.registration import (
7372
SimpleBeforeAfterRPT as SimpleBeforeAfter,
7473
)
74+
from niworkflows.workflows.epi.refmap import init_epi_reference_wf
75+
7576
from ...interfaces.vectors import CheckGradientTable
76-
from .util import init_dwi_reference_wf
7777
from .outputs import init_dwi_derivatives_wf, init_reportlets_wf
7878
from .eddy import init_eddy_wf
7979

@@ -143,21 +143,22 @@ def init_dwi_preproc_wf(dwi_file, has_fieldmap=False):
143143

144144
gradient_table = pe.Node(CheckGradientTable(), name="gradient_table")
145145

146-
dwi_reference_wf = init_dwi_reference_wf(
147-
mem_gb=config.DEFAULT_MEMORY_MIN_GB, omp_nthreads=config.nipype.omp_nthreads
146+
dwi_reference_wf = init_epi_reference_wf(
147+
omp_nthreads=config.nipype.omp_nthreads,
148+
name="dwi_reference_wf",
148149
)
149150

150151
dwi_derivatives_wf = init_dwi_derivatives_wf(output_dir=str(config.execution.output_dir))
151152

152153
# MAIN WORKFLOW STRUCTURE
153154
# fmt: off
154155
workflow.connect([
156+
(inputnode, dwi_derivatives_wf, [("dwi_file", "inputnode.source_file")]),
155157
(inputnode, gradient_table, [("dwi_file", "dwi_file"),
156158
("in_bvec", "in_bvec"),
157159
("in_bval", "in_bval")]),
158-
(inputnode, dwi_reference_wf, [("dwi_file", "inputnode.dwi_file")]),
159-
(inputnode, dwi_derivatives_wf, [("dwi_file", "inputnode.source_file")]),
160-
(gradient_table, dwi_reference_wf, [("b0_ixs", "inputnode.b0_ixs")]),
160+
(inputnode, dwi_reference_wf, [(("dwi_file", _aslist), "inputnode.in_files")]),
161+
(gradient_table, dwi_reference_wf, [(("b0_mask", _aslist), "inputnode.t_masks")]),
161162
(gradient_table, outputnode, [("out_rasb", "gradients_rasb")]),
162163
(outputnode, dwi_derivatives_wf, [
163164
("dwi_reference", "inputnode.dwi_ref"),
@@ -205,7 +206,7 @@ def _bold_reg_suffix(fallback):
205206
(inputnode, ds_report_reg, [("dwi_file", "source_file")]),
206207
# BBRegister
207208
(dwi_reference_wf, bbr_wf, [
208-
("outputnode.ref_image", "inputnode.in_file")
209+
("outputnode.epi_ref_file", "inputnode.in_file")
209210
]),
210211
(bbr_wf, ds_report_reg, [
211212
('outputnode.out_report', 'in_file'),
@@ -247,7 +248,7 @@ def _bold_reg_suffix(fallback):
247248
("in_bvec", "inputnode.in_bvec"),
248249
("in_bval", "inputnode.in_bval")
249250
]),
250-
(dwi_reference_wf, eddy_report, [("outputnode.ref_image", "before")]),
251+
(dwi_reference_wf, eddy_report, [("outputnode.epi_ref_file", "before")]),
251252
(eddy_wf, eddy_report, [('outputnode.eddy_ref_image', 'after')]),
252253
(dwi_reference_wf, ds_report_eddy, [("outputnode.dwi_file", "source_file")]),
253254
(eddy_report, ds_report_eddy, [("out_report", "in_file")]),
@@ -275,8 +276,7 @@ def _bold_reg_suffix(fallback):
275276
if not has_fieldmap:
276277
# fmt: off
277278
workflow.connect([
278-
(dwi_reference_wf, outputnode, [("outputnode.ref_image", "dwi_reference"),
279-
("outputnode.dwi_mask", "dwi_mask")]),
279+
(dwi_reference_wf, outputnode, [("outputnode.epi_ref_file", "dwi_reference")]),
280280
])
281281
# fmt: on
282282
return workflow
@@ -328,12 +328,11 @@ def _bold_reg_suffix(fallback):
328328
("fmap_coeff", "inputnode.fmap_coeff"),
329329
("fmap_mask", "inputnode.fmap_mask")]),
330330
(dwi_reference_wf, coeff2epi_wf, [
331-
("outputnode.ref_image", "inputnode.target_ref"),
332-
("outputnode.dwi_mask", "inputnode.target_mask")]),
333-
(dwi_reference_wf, unwarp_wf, [("outputnode.ref_image", "inputnode.distorted")]),
331+
("outputnode.epi_ref_file", "inputnode.target_ref")]),
332+
(dwi_reference_wf, unwarp_wf, [("outputnode.epi_ref_file", "inputnode.distorted")]),
334333
(coeff2epi_wf, unwarp_wf, [
335334
("outputnode.fmap_coeff", "inputnode.fmap_coeff")]),
336-
(dwi_reference_wf, sdc_report, [("outputnode.ref_image", "before")]),
335+
(dwi_reference_wf, sdc_report, [("outputnode.epi_ref_file", "before")]),
337336
(unwarp_wf, sdc_report, [("outputnode.corrected", "after"),
338337
("outputnode.corrected_mask", "wm_seg")]),
339338
(sdc_report, reportlets_wf, [("out_report", "inputnode.sdc_report")]),
@@ -363,3 +362,7 @@ def _get_wf_name(filename):
363362
fname = Path(filename).name.rpartition(".nii")[0].replace("_dwi", "_wf")
364363
fname_nosub = "_".join(fname.split("_")[1:])
365364
return f"dwi_preproc_{fname_nosub.replace('.', '_').replace(' ', '').replace('-', '_')}"
365+
366+
367+
def _aslist(value):
368+
return [value]

dmriprep/workflows/dwi/util.py

Lines changed: 0 additions & 294 deletions
This file was deleted.

0 commit comments

Comments
 (0)