@@ -2906,6 +2906,8 @@ def register_ANTs_EPI_to_template(wf, cfg, strat_pool, pipe_num, opt=None):
29062906 ["desc-preproc_T1w" , "desc-reorient_T1w" , "T1w" ],
29072907 "space-T1w_desc-brain_mask" ,
29082908 "T1w-template" ,
2909+ "T1w-brain-template" ,
2910+ "T1w-brain-template-mask" ,
29092911 "from-T1w_to-template_mode-image_xfm" ,
29102912 "from-template_to-T1w_mode-image_xfm" ,
29112913 "space-template_desc-brain_T1w" ,
@@ -3063,23 +3065,38 @@ def overwrite_transform_anat_to_template(wf, cfg, strat_pool, pipe_num, opt=None
30633065
30643066 wf .connect (merge_inv_xfms_to_list , "out" , merge_inv_xfms , "in_files" )
30653067
3068+ # Match FOVs using flirt -in infile -ref MNI152_T1_1mm_resample.nii.gz -out my_T1w_resampled.nii.gz -applyxfm -usesqform
3069+ match_fovs_T1w = pe .Node (
3070+ interface = fsl .FLIRT (), name = f"match_fovs_T1w_{ pipe_num } "
3071+ )
3072+ match_fovs_T1w .inputs .apply_xfm = True
3073+ match_fovs_T1w .inputs .uses_qform = True
3074+
30663075 # applywarp --rel --interp=spline -i ${T1wRestore} -r ${Reference} -w ${OutputTransform} -o ${OutputT1wImageRestore}
30673076 fsl_apply_warp_t1_to_template = pe .Node (
30683077 interface = fsl .ApplyWarp (), name = f"FSL-ABCD_T1_to_template_{ pipe_num } "
30693078 )
30703079 fsl_apply_warp_t1_to_template .inputs .relwarp = True
30713080 fsl_apply_warp_t1_to_template .inputs .interp = "spline"
30723081
3073- node , out = strat_pool .get_data (["desc-restore_T1w" , "desc-preproc_T1w" ])
3074- wf .connect (node , out , fsl_apply_warp_t1_to_template , "in_file" )
3075-
30763082 node , out = strat_pool .get_data ("T1w-template" )
3083+ wf .connect (node , out , match_fovs_T1w , "reference" )
30773084 wf .connect (node , out , fsl_apply_warp_t1_to_template , "ref_file" )
30783085
3086+ node , out = strat_pool .get_data (["desc-restore_T1w" , "desc-preproc_T1w" ])
3087+ wf .connect (node , out , match_fovs_T1w , "in_file" )
3088+ wf .connect (match_fovs_T1w , "out_file" , fsl_apply_warp_t1_to_template , "in_file" )
3089+
30793090 wf .connect (
30803091 merge_xfms , "merged_file" , fsl_apply_warp_t1_to_template , "field_file"
30813092 )
30823093
3094+ match_fovs_T1w_brain = pe .Node (
3095+ interface = fsl .FLIRT (), name = f"match_fovs_T1w_brain_{ pipe_num } "
3096+ )
3097+ match_fovs_T1w_brain .inputs .apply_xfm = True
3098+ match_fovs_T1w_brain .inputs .uses_qform = True
3099+
30833100 # applywarp --rel --interp=nn -i ${T1wRestoreBrain} -r ${Reference} -w ${OutputTransform} -o ${OutputT1wImageRestoreBrain}
30843101 fsl_apply_warp_t1_brain_to_template = pe .Node (
30853102 interface = fsl .ApplyWarp (), name = f"FSL-ABCD_T1_brain_to_template_{ pipe_num } "
@@ -3088,16 +3105,29 @@ def overwrite_transform_anat_to_template(wf, cfg, strat_pool, pipe_num, opt=None
30883105 fsl_apply_warp_t1_brain_to_template .inputs .interp = "nn"
30893106
30903107 # TODO connect T1wRestoreBrain, check T1wRestoreBrain quality
3091- node , out = strat_pool .get_data ("desc-preproc_T1w" )
3092- wf .connect (node , out , fsl_apply_warp_t1_brain_to_template , "in_file" )
3108+ node , out = strat_pool .get_data (["desc-restore-brain_T1w" , "desc-preproc_T1w" ])
3109+ wf .connect (node , out , match_fovs_T1w_brain , "in_file" )
3110+ wf .connect (
3111+ match_fovs_T1w_brain ,
3112+ "out_file" ,
3113+ fsl_apply_warp_t1_brain_to_template ,
3114+ "in_file" ,
3115+ )
30933116
3094- node , out = strat_pool .get_data ("T1w-template" )
3117+ node , out = strat_pool .get_data ("T1w-brain-template" )
3118+ wf .connect (node , out , match_fovs_T1w_brain , "reference" )
30953119 wf .connect (node , out , fsl_apply_warp_t1_brain_to_template , "ref_file" )
30963120
30973121 wf .connect (
30983122 merge_xfms , "merged_file" , fsl_apply_warp_t1_brain_to_template , "field_file"
30993123 )
31003124
3125+ match_fovs_T1w_brain_mask = pe .Node (
3126+ interface = fsl .FLIRT (), name = f"match_fovs_T1w_brain_mask_{ pipe_num } "
3127+ )
3128+ match_fovs_T1w_brain_mask .inputs .apply_xfm = True
3129+ match_fovs_T1w_brain_mask .inputs .uses_qform = True
3130+
31013131 fsl_apply_warp_t1_brain_mask_to_template = pe .Node (
31023132 interface = fsl .ApplyWarp (),
31033133 name = f"FSL-ABCD_T1_brain_mask_to_template_{ pipe_num } " ,
@@ -3106,9 +3136,16 @@ def overwrite_transform_anat_to_template(wf, cfg, strat_pool, pipe_num, opt=None
31063136 fsl_apply_warp_t1_brain_mask_to_template .inputs .interp = "nn"
31073137
31083138 node , out = strat_pool .get_data ("space-T1w_desc-brain_mask" )
3109- wf .connect (node , out , fsl_apply_warp_t1_brain_mask_to_template , "in_file" )
3139+ wf .connect (node , out , match_fovs_T1w_brain_mask , "in_file" )
3140+ wf .connect (
3141+ match_fovs_T1w_brain_mask ,
3142+ "out_file" ,
3143+ fsl_apply_warp_t1_brain_mask_to_template ,
3144+ "in_file" ,
3145+ )
31103146
3111- node , out = strat_pool .get_data ("T1w-template" )
3147+ node , out = strat_pool .get_data ("T1w-brain-template-mask" )
3148+ wf .connect (node , out , match_fovs_T1w_brain_mask , "reference" )
31123149 wf .connect (node , out , fsl_apply_warp_t1_brain_mask_to_template , "ref_file" )
31133150
31143151 wf .connect (
0 commit comments