workflows.dmri.fsl.tbss¶
create_tbss_1_preproc()
¶
Preprocess FA data for TBSS: erodes a little and zero end slicers and creates masks(for use in FLIRT & FNIRT from FSL). A pipeline that does the same as tbss_1_preproc script in FSL
Example¶
>>> from nipype.workflows.dmri.fsl import tbss
>>> tbss1 = tbss.create_tbss_1_preproc()
>>> tbss1.inputs.inputnode.fa_list = ['s1_FA.nii', 's2_FA.nii', 's3_FA.nii']
Inputs:
inputnode.fa_list
Outputs:
outputnode.fa_list
outputnode.mask_list
outputnode.slices
Graph¶
![digraph tbss_1_preproc{
label="tbss_1_preproc";
tbss_1_preproc_inputnode[label="inputnode (utility)"];
tbss_1_preproc_prepfa[label="prepfa (fsl)"];
tbss_1_preproc_slicer[label="slicer (fsl)"];
tbss_1_preproc_getmask1[label="getmask1 (fsl)"];
tbss_1_preproc_getmask2[label="getmask2 (fsl)"];
tbss_1_preproc_outputnode[label="outputnode (utility)"];
tbss_1_preproc_inputnode -> tbss_1_preproc_prepfa;
tbss_1_preproc_inputnode -> tbss_1_preproc_prepfa;
tbss_1_preproc_prepfa -> tbss_1_preproc_getmask1;
tbss_1_preproc_prepfa -> tbss_1_preproc_outputnode;
tbss_1_preproc_prepfa -> tbss_1_preproc_slicer;
tbss_1_preproc_slicer -> tbss_1_preproc_outputnode;
tbss_1_preproc_getmask1 -> tbss_1_preproc_getmask2;
tbss_1_preproc_getmask1 -> tbss_1_preproc_getmask2;
tbss_1_preproc_getmask2 -> tbss_1_preproc_outputnode;
}](../../_images/graphviz-b59cce472e276e62ec37ecbd4b927bbed581d302.png)
create_tbss_2_reg()
¶
TBSS nonlinear registration: A pipeline that does the same as ‘tbss_2_reg -t’ script in FSL. ‘-n’ option is not supported at the moment.
Example¶
>>> from nipype.workflows.dmri.fsl import tbss
>>> tbss2 = create_tbss_2_reg(name="tbss2")
>>> tbss2.inputs.inputnode.target = fsl.Info.standard_image("FMRIB58_FA_1mm.nii.gz")
>>> tbss2.inputs.inputnode.fa_list = ['s1_FA.nii', 's2_FA.nii', 's3_FA.nii']
>>> tbss2.inputs.inputnode.mask_list = ['s1_mask.nii', 's2_mask.nii', 's3_mask.nii']
Inputs:
inputnode.fa_list
inputnode.mask_list
inputnode.target
Outputs:
outputnode.field_list
Graph¶
![digraph tbss_2_reg{
label="tbss_2_reg";
tbss_2_reg_inputnode[label="inputnode (utility)"];
tbss_2_reg_flirt[label="flirt (fsl)"];
tbss_2_reg_fnirt[label="fnirt (fsl)"];
tbss_2_reg_outputnode[label="outputnode (utility)"];
tbss_2_reg_inputnode -> tbss_2_reg_flirt;
tbss_2_reg_inputnode -> tbss_2_reg_flirt;
tbss_2_reg_inputnode -> tbss_2_reg_flirt;
tbss_2_reg_inputnode -> tbss_2_reg_fnirt;
tbss_2_reg_inputnode -> tbss_2_reg_fnirt;
tbss_2_reg_inputnode -> tbss_2_reg_fnirt;
tbss_2_reg_flirt -> tbss_2_reg_fnirt;
tbss_2_reg_fnirt -> tbss_2_reg_outputnode;
}](../../_images/graphviz-bf194c88ee1250076cd9835fb4914acf247d992d.png)
create_tbss_3_postreg()
¶
Post-registration processing: derive mean_FA and mean_FA_skeleton from mean of all subjects in study. Target is assumed to be FMRIB58_FA_1mm. A pipeline that does the same as ‘tbss_3_postreg -S’ script from FSL Setting ‘estimate_skeleton to False will use precomputed FMRIB58_FA-skeleton_1mm skeleton (same as ‘tbss_3_postreg -T’).
Example¶
>>> from nipype.workflows.dmri.fsl import tbss
>>> tbss3 = tbss.create_tbss_3_postreg()
>>> tbss3.inputs.inputnode.fa_list = ['s1_wrapped_FA.nii', 's2_wrapped_FA.nii', 's3_wrapped_FA.nii']
Inputs:
inputnode.field_list
inputnode.fa_list
Outputs:
outputnode.groupmask
outputnode.skeleton_file
outputnode.meanfa_file
outputnode.mergefa_file
Graph¶
![digraph tbss_3_postreg{
label="tbss_3_postreg";
tbss_3_postreg_inputnode[label="inputnode (utility)"];
tbss_3_postreg_applywarp[label="applywarp (fsl)"];
tbss_3_postreg_mergefa[label="mergefa (fsl)"];
tbss_3_postreg_groupmask[label="groupmask (fsl)"];
tbss_3_postreg_maskgroup[label="maskgroup (fsl)"];
tbss_3_postreg_meanfa[label="meanfa (fsl)"];
tbss_3_postreg_makeskeleton[label="makeskeleton (fsl)"];
tbss_3_postreg_outputnode[label="outputnode (utility)"];
tbss_3_postreg_inputnode -> tbss_3_postreg_applywarp;
tbss_3_postreg_inputnode -> tbss_3_postreg_applywarp;
tbss_3_postreg_applywarp -> tbss_3_postreg_mergefa;
tbss_3_postreg_mergefa -> tbss_3_postreg_maskgroup;
tbss_3_postreg_mergefa -> tbss_3_postreg_groupmask;
tbss_3_postreg_groupmask -> tbss_3_postreg_maskgroup;
tbss_3_postreg_groupmask -> tbss_3_postreg_outputnode;
tbss_3_postreg_maskgroup -> tbss_3_postreg_meanfa;
tbss_3_postreg_maskgroup -> tbss_3_postreg_outputnode;
tbss_3_postreg_meanfa -> tbss_3_postreg_makeskeleton;
tbss_3_postreg_meanfa -> tbss_3_postreg_outputnode;
tbss_3_postreg_makeskeleton -> tbss_3_postreg_outputnode;
}](../../_images/graphviz-07907d874593b139afb1fdfab9a40832776a74ea.png)
create_tbss_4_prestats()
¶
- Post-registration processing:Creating skeleton mask using a threshold
- projecting all FA data onto skeleton.
A pipeline that does the same as tbss_4_prestats script from FSL
Example¶
>>> from nipype.workflows.dmri.fsl import tbss
>>> tbss4 = tbss.create_tbss_4_prestats(name='tbss4')
>>> tbss4.inputs.inputnode.skeleton_thresh = 0.2
Inputs:
inputnode.skeleton_thresh
inputnode.groupmask
inputnode.skeleton_file
inputnode.meanfa_file
inputnode.mergefa_file
Outputs:
outputnode.all_FA_skeletonised
outputnode.mean_FA_skeleton_mask
outputnode.distance_map
outputnode.skeleton_file
Graph¶
![digraph tbss_4_prestats{
label="tbss_4_prestats";
tbss_4_prestats_inputnode[label="inputnode (utility)"];
tbss_4_prestats_skeletonmask[label="skeletonmask (fsl)"];
tbss_4_prestats_invertmask[label="invertmask (fsl)"];
tbss_4_prestats_distancemap[label="distancemap (fsl)"];
tbss_4_prestats_projectfa[label="projectfa (fsl)"];
tbss_4_prestats_outputnode[label="outputnode (utility)"];
tbss_4_prestats_inputnode -> tbss_4_prestats_invertmask;
tbss_4_prestats_inputnode -> tbss_4_prestats_skeletonmask;
tbss_4_prestats_inputnode -> tbss_4_prestats_skeletonmask;
tbss_4_prestats_inputnode -> tbss_4_prestats_projectfa;
tbss_4_prestats_inputnode -> tbss_4_prestats_projectfa;
tbss_4_prestats_inputnode -> tbss_4_prestats_projectfa;
tbss_4_prestats_skeletonmask -> tbss_4_prestats_invertmask;
tbss_4_prestats_skeletonmask -> tbss_4_prestats_outputnode;
tbss_4_prestats_invertmask -> tbss_4_prestats_distancemap;
tbss_4_prestats_distancemap -> tbss_4_prestats_projectfa;
tbss_4_prestats_distancemap -> tbss_4_prestats_outputnode;
tbss_4_prestats_projectfa -> tbss_4_prestats_outputnode;
tbss_4_prestats_projectfa -> tbss_4_prestats_outputnode;
}](../../_images/graphviz-2f9e87373e252d7280ed73fc17d3499dbcd76c21.png)
create_tbss_all()
¶
Create a pipeline that combines create_tbss_* pipelines
Example¶
>>> from nipype.workflows.dmri.fsl import tbss
>>> tbss = tbss.create_tbss_all('tbss')
>>> tbss.inputs.inputnode.skeleton_thresh = 0.2
Inputs:
inputnode.fa_list
inputnode.skeleton_thresh
Outputs:
outputnode.meanfa_file
outputnode.projectedfa_file
outputnode.skeleton_file
outputnode.skeleton_mask
Graph¶
![digraph tbss_all{
label="tbss_all";
tbss_all_inputnode[label="inputnode (utility)"];
tbss_all_outputall_node[label="outputall_node (utility)"];
tbss_all_outputnode[label="outputnode (utility)"];
subgraph cluster_tbss_all_tbss1 {
label="tbss1";
tbss_all_tbss1_inputnode[label="inputnode (utility)"];
tbss_all_tbss1_prepfa[label="prepfa (fsl)"];
tbss_all_tbss1_getmask1[label="getmask1 (fsl)"];
tbss_all_tbss1_getmask2[label="getmask2 (fsl)"];
tbss_all_tbss1_slicer[label="slicer (fsl)"];
tbss_all_tbss1_outputnode[label="outputnode (utility)"];
tbss_all_tbss1_inputnode -> tbss_all_tbss1_prepfa;
tbss_all_tbss1_inputnode -> tbss_all_tbss1_prepfa;
tbss_all_tbss1_prepfa -> tbss_all_tbss1_slicer;
tbss_all_tbss1_prepfa -> tbss_all_tbss1_getmask1;
tbss_all_tbss1_prepfa -> tbss_all_tbss1_outputnode;
tbss_all_tbss1_getmask1 -> tbss_all_tbss1_getmask2;
tbss_all_tbss1_getmask1 -> tbss_all_tbss1_getmask2;
tbss_all_tbss1_getmask2 -> tbss_all_tbss1_outputnode;
tbss_all_tbss1_slicer -> tbss_all_tbss1_outputnode;
}
subgraph cluster_tbss_all_tbss2 {
label="tbss2";
tbss_all_tbss2_inputnode[label="inputnode (utility)"];
tbss_all_tbss2_flirt[label="flirt (fsl)"];
tbss_all_tbss2_fnirt[label="fnirt (fsl)"];
tbss_all_tbss2_outputnode[label="outputnode (utility)"];
tbss_all_tbss2_inputnode -> tbss_all_tbss2_flirt;
tbss_all_tbss2_inputnode -> tbss_all_tbss2_flirt;
tbss_all_tbss2_inputnode -> tbss_all_tbss2_flirt;
tbss_all_tbss2_inputnode -> tbss_all_tbss2_fnirt;
tbss_all_tbss2_inputnode -> tbss_all_tbss2_fnirt;
tbss_all_tbss2_inputnode -> tbss_all_tbss2_fnirt;
tbss_all_tbss2_flirt -> tbss_all_tbss2_fnirt;
tbss_all_tbss2_fnirt -> tbss_all_tbss2_outputnode;
}
subgraph cluster_tbss_all_tbss3 {
label="tbss3";
tbss_all_tbss3_inputnode[label="inputnode (utility)"];
tbss_all_tbss3_applywarp[label="applywarp (fsl)"];
tbss_all_tbss3_mergefa[label="mergefa (fsl)"];
tbss_all_tbss3_groupmask[label="groupmask (fsl)"];
tbss_all_tbss3_maskgroup[label="maskgroup (fsl)"];
tbss_all_tbss3_meanfa[label="meanfa (fsl)"];
tbss_all_tbss3_makeskeleton[label="makeskeleton (fsl)"];
tbss_all_tbss3_outputnode[label="outputnode (utility)"];
tbss_all_tbss3_inputnode -> tbss_all_tbss3_applywarp;
tbss_all_tbss3_inputnode -> tbss_all_tbss3_applywarp;
tbss_all_tbss3_applywarp -> tbss_all_tbss3_mergefa;
tbss_all_tbss3_mergefa -> tbss_all_tbss3_groupmask;
tbss_all_tbss3_mergefa -> tbss_all_tbss3_maskgroup;
tbss_all_tbss3_groupmask -> tbss_all_tbss3_outputnode;
tbss_all_tbss3_groupmask -> tbss_all_tbss3_maskgroup;
tbss_all_tbss3_maskgroup -> tbss_all_tbss3_meanfa;
tbss_all_tbss3_maskgroup -> tbss_all_tbss3_outputnode;
tbss_all_tbss3_meanfa -> tbss_all_tbss3_makeskeleton;
tbss_all_tbss3_meanfa -> tbss_all_tbss3_outputnode;
tbss_all_tbss3_makeskeleton -> tbss_all_tbss3_outputnode;
}
subgraph cluster_tbss_all_tbss4 {
label="tbss4";
tbss_all_tbss4_inputnode[label="inputnode (utility)"];
tbss_all_tbss4_skeletonmask[label="skeletonmask (fsl)"];
tbss_all_tbss4_invertmask[label="invertmask (fsl)"];
tbss_all_tbss4_distancemap[label="distancemap (fsl)"];
tbss_all_tbss4_projectfa[label="projectfa (fsl)"];
tbss_all_tbss4_outputnode[label="outputnode (utility)"];
tbss_all_tbss4_inputnode -> tbss_all_tbss4_projectfa;
tbss_all_tbss4_inputnode -> tbss_all_tbss4_projectfa;
tbss_all_tbss4_inputnode -> tbss_all_tbss4_projectfa;
tbss_all_tbss4_inputnode -> tbss_all_tbss4_invertmask;
tbss_all_tbss4_inputnode -> tbss_all_tbss4_skeletonmask;
tbss_all_tbss4_inputnode -> tbss_all_tbss4_skeletonmask;
tbss_all_tbss4_skeletonmask -> tbss_all_tbss4_invertmask;
tbss_all_tbss4_skeletonmask -> tbss_all_tbss4_outputnode;
tbss_all_tbss4_invertmask -> tbss_all_tbss4_distancemap;
tbss_all_tbss4_distancemap -> tbss_all_tbss4_projectfa;
tbss_all_tbss4_distancemap -> tbss_all_tbss4_outputnode;
tbss_all_tbss4_projectfa -> tbss_all_tbss4_outputnode;
tbss_all_tbss4_projectfa -> tbss_all_tbss4_outputnode;
}
tbss_all_tbss3_outputnode -> tbss_all_tbss4_inputnode;
tbss_all_tbss3_outputnode -> tbss_all_tbss4_inputnode;
tbss_all_tbss3_outputnode -> tbss_all_tbss4_inputnode;
tbss_all_tbss3_outputnode -> tbss_all_tbss4_inputnode;
tbss_all_tbss3_outputnode -> tbss_all_outputall_node;
tbss_all_tbss3_outputnode -> tbss_all_outputall_node;
tbss_all_tbss3_outputnode -> tbss_all_outputall_node;
tbss_all_tbss3_outputnode -> tbss_all_outputall_node;
tbss_all_tbss3_outputnode -> tbss_all_outputnode;
tbss_all_tbss3_outputnode -> tbss_all_outputnode;
tbss_all_tbss3_outputnode -> tbss_all_outputnode;
tbss_all_tbss3_outputnode -> tbss_all_outputnode;
tbss_all_tbss1_outputnode -> tbss_all_tbss3_inputnode;
tbss_all_tbss1_outputnode -> tbss_all_tbss2_inputnode;
tbss_all_tbss1_outputnode -> tbss_all_tbss2_inputnode;
tbss_all_tbss1_outputnode -> tbss_all_outputall_node;
tbss_all_tbss1_outputnode -> tbss_all_outputall_node;
tbss_all_inputnode -> tbss_all_tbss1_inputnode;
tbss_all_inputnode -> tbss_all_tbss4_inputnode;
tbss_all_tbss2_outputnode -> tbss_all_tbss3_inputnode;
tbss_all_tbss2_outputnode -> tbss_all_outputall_node;
tbss_all_tbss4_outputnode -> tbss_all_outputnode;
tbss_all_tbss4_outputnode -> tbss_all_outputnode;
tbss_all_tbss4_outputnode -> tbss_all_outputnode;
tbss_all_tbss4_outputnode -> tbss_all_outputnode;
tbss_all_tbss4_outputnode -> tbss_all_outputall_node;
tbss_all_tbss4_outputnode -> tbss_all_outputall_node;
tbss_all_tbss4_outputnode -> tbss_all_outputall_node;
}](../../_images/graphviz-ec89cf61e3cc6178d68721e1e2ae3a43bd555fa2.png)
create_tbss_non_FA()
¶
A pipeline that implement tbss_non_FA in FSL
Example¶
>>> from nipype.workflows.dmri.fsl import tbss
>>> tbss_MD = tbss.create_tbss_non_FA()
>>> tbss_MD.inputs.inputnode.file_list = []
>>> tbss_MD.inputs.inputnode.field_list = []
>>> tbss_MD.inputs.inputnode.skeleton_thresh = 0.2
>>> tbss_MD.inputs.inputnode.groupmask = './xxx'
>>> tbss_MD.inputs.inputnode.meanfa_file = './xxx'
>>> tbss_MD.inputs.inputnode.distance_map = []
>>> tbss_MD.inputs.inputnode.all_FA_file = './xxx'
Inputs:
inputnode.file_list
inputnode.field_list
inputnode.skeleton_thresh
inputnode.groupmask
inputnode.meanfa_file
inputnode.distance_map
inputnode.all_FA_file
Outputs:
outputnode.projected_nonFA_file
Graph¶
![digraph tbss_non_FA{
label="tbss_non_FA";
tbss_non_FA_inputnode[label="inputnode (utility)"];
tbss_non_FA_applywarp[label="applywarp (fsl)"];
tbss_non_FA_merge[label="merge (fsl)"];
tbss_non_FA_maskgroup[label="maskgroup (fsl)"];
tbss_non_FA_projectfa[label="projectfa (fsl)"];
tbss_non_FA_outputnode[label="outputnode (utility)"];
tbss_non_FA_inputnode -> tbss_non_FA_maskgroup;
tbss_non_FA_inputnode -> tbss_non_FA_applywarp;
tbss_non_FA_inputnode -> tbss_non_FA_applywarp;
tbss_non_FA_inputnode -> tbss_non_FA_projectfa;
tbss_non_FA_inputnode -> tbss_non_FA_projectfa;
tbss_non_FA_inputnode -> tbss_non_FA_projectfa;
tbss_non_FA_inputnode -> tbss_non_FA_projectfa;
tbss_non_FA_applywarp -> tbss_non_FA_merge;
tbss_non_FA_merge -> tbss_non_FA_maskgroup;
tbss_non_FA_maskgroup -> tbss_non_FA_projectfa;
tbss_non_FA_projectfa -> tbss_non_FA_outputnode;
}](../../_images/graphviz-39ab9653556d29ac0e4b4802c29b4567ba9714a0.png)