Skip to content

Commit 8acfb2f

Browse files
committed
feat(t1t2): Generate fsLR myelinmap
1 parent cfe6c9c commit 8acfb2f

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

src/smriprep/workflows/anatomical.py

+49
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@
5757
import smriprep
5858

5959
from ..interfaces import DerivativesDataSink
60+
61+
from ..interfaces.calc import T1T2Ratio
6062
from ..utils.misc import apply_lut as _apply_bids_lut
6163
from ..utils.misc import fs_isRunning as _fs_isRunning
6264
from .fit.registration import init_register_template_wf
@@ -83,6 +85,7 @@
8385
init_hcp_morphometrics_wf,
8486
init_morph_grayords_wf,
8587
init_msm_sulc_wf,
88+
init_myelinmap_fsLR_wf,
8689
init_refinement_wf,
8790
init_resample_surfaces_wf,
8891
init_surface_derivatives_wf,
@@ -459,6 +462,52 @@ def init_anat_preproc_wf(
459462
]),
460463
]) # fmt:skip
461464

465+
if t2w:
466+
myelinmap_sources = pe.Node(niu.Merge(2), name='myelinmap_sources')
467+
t1t2_ratio = pe.Node(T1T2Ratio(), name='t1t2_ratio')
468+
myelinmap_fsLR_wf = init_myelinmap_fsLR_wf(
469+
grayord_density=cifti_output, omp_nthreads=omp_nthreads, mem_gb=1
470+
)
471+
ds_grayord_myelinmap_wf = init_ds_grayord_metrics_wf(
472+
bids_root=bids_root,
473+
output_dir=output_dir,
474+
metrics=['myelinmap'],
475+
cifti_output=cifti_output,
476+
)
477+
478+
workflow.connect([
479+
(anat_fit_wf, t1t2_ratio, [
480+
('outputnode.t1w_preproc', 't1w_file'),
481+
('outputnode.t2w_preproc', 't2w_file'),
482+
]),
483+
(t1t2_ratio, myelinmap_fsLR_wf, [('out_file', 'inputnode.in_file')]),
484+
(anat_fit_wf, myelinmap_fsLR_wf, [
485+
('outputnode.midthickness', 'inputnode.midthickness'),
486+
(
487+
f"outputnode.sphere_reg_{'msm' if msm_sulc else 'fsLR'}",
488+
'inputnode.sphere_reg_fsLR',
489+
),
490+
]),
491+
(hcp_morphometrics_wf, myelinmap_fsLR_wf, [
492+
('outputnode.thickness', 'inputnode.thickness'),
493+
('outputnode.roi', 'inputnode.cortex_mask'),
494+
]),
495+
(resample_surfaces_wf, myelinmap_fsLR_wf, [
496+
('outputnode.midthickness_fsLR', 'inputnode.midthickness_fsLR'),
497+
]),
498+
(anat_fit_wf, myelinmap_sources, [
499+
('outputnode.t1w_preproc', 'in1'),
500+
('outputnode.t2w_preproc', 'in2'),
501+
]),
502+
(myelinmap_sources, ds_grayord_myelinmap_wf, [
503+
('out', 'inputnode.source_files'),
504+
]),
505+
(myelinmap_fsLR_wf, ds_grayord_myelinmap_wf, [
506+
('outputnode.out_file', 'inputnode.myelinmap'),
507+
('outputnode.out_metadata', 'inputnode.myelinmap_metadata'),
508+
]),
509+
]) # fmt:skip
510+
462511
return workflow
463512

464513

0 commit comments

Comments
 (0)