Skip to content

Commit 38d6356

Browse files
[ENH] stl by seg tissue (#308)
* IsoSurface_tissues_pipe
1 parent b684bcd commit 38d6356

3 files changed

Lines changed: 143 additions & 10 deletions

File tree

macapype/pipelines/full_pipelines.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@
3434

3535
from .extract_brain import create_extract_pipe
3636

37-
from .surface import (create_nii2mesh_brain_pipe, create_IsoSurface_brain_pipe)
37+
from .surface import (create_nii2mesh_brain_pipe, create_IsoSurface_brain_pipe,
38+
create_IsoSurface_tissues_pipe)
3839

3940
from macapype.utils.misc import parse_key, list_input_files
4041

@@ -965,6 +966,10 @@ def create_full_ants_subpipes(
965966
"native_wmgm_mask",
966967
"wmgm_stl",
967968

969+
"csf_stl",
970+
"gm_stl",
971+
"wm_stl",
972+
968973
"stereo_to_native_trans",
969974
"native_to_stereo_trans"]),
970975
name='outputnode')
@@ -1513,6 +1518,30 @@ def create_full_ants_subpipes(
15131518
IsoSurface_brain_pipe, "outputnode.wmgm_nii",
15141519
outputnode, "native_wmgm_mask", params)
15151520

1521+
if "IsoSurface_tissues_pipe" in params["brain_segment_pipe"]:
1522+
1523+
IsoSurface_tissues_pipe = create_IsoSurface_tissues_pipe(
1524+
params=parse_key(params["brain_segment_pipe"],
1525+
"IsoSurface_tissues_pipe"))
1526+
1527+
seg_pipe.connect(brain_segment_pipe, "outputnode.threshold_csf",
1528+
IsoSurface_tissues_pipe, 'inputnode.threshold_csf')
1529+
1530+
seg_pipe.connect(brain_segment_pipe, "outputnode.threshold_wm",
1531+
IsoSurface_tissues_pipe, 'inputnode.threshold_wm')
1532+
1533+
seg_pipe.connect(brain_segment_pipe, "outputnode.threshold_gm",
1534+
IsoSurface_tissues_pipe, 'inputnode.threshold_gm')
1535+
1536+
seg_pipe.connect(IsoSurface_tissues_pipe, "outputnode.csf_stl",
1537+
outputnode, 'csf_stl')
1538+
1539+
seg_pipe.connect(IsoSurface_tissues_pipe, "outputnode.wm_stl",
1540+
outputnode, 'wm_stl')
1541+
1542+
seg_pipe.connect(IsoSurface_tissues_pipe, "outputnode.gm_stl",
1543+
outputnode, 'gm_stl')
1544+
15161545
return seg_pipe
15171546

15181547

macapype/pipelines/rename.py

Lines changed: 61 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -470,20 +470,20 @@ def rename_all_brain_derivatives(params, main_workflow, segment_pnh_pipe,
470470

471471
print("Renaming wmgm_stl file")
472472

473-
rename_stereo_wmgm_stl = pe.Node(
474-
niu.Rename(), name="rename_stereo_wmgm_stl")
475-
rename_stereo_wmgm_stl.inputs.format_string = \
473+
rename_csfwmgm_stl = pe.Node(
474+
niu.Rename(), name="rename_csfwmgm_stl")
475+
rename_csfwmgm_stl.inputs.format_string = \
476476
pref_deriv + "_desc-wmgm_mask"
477-
rename_stereo_wmgm_stl.inputs.parse_string = parse_str
478-
rename_stereo_wmgm_stl.inputs.keep_ext = True
477+
rename_csfwmgm_stl.inputs.parse_string = parse_str
478+
rename_csfwmgm_stl.inputs.keep_ext = True
479479

480480
main_workflow.connect(
481481
segment_pnh_pipe, 'outputnode.wmgm_stl',
482-
rename_stereo_wmgm_stl, 'in_file')
482+
rename_csfwmgm_stl, 'in_file')
483483

484484
main_workflow.connect(
485-
rename_stereo_wmgm_stl, 'out_file',
486-
datasink, '@stereo_wmgm_stl')
485+
rename_csfwmgm_stl, 'out_file',
486+
datasink, '@csfwmgm_stl')
487487

488488
print("Renaming wmgm_nii file")
489489
rename_stereo_wmgm_mask = pe.Node(
@@ -501,6 +501,59 @@ def rename_all_brain_derivatives(params, main_workflow, segment_pnh_pipe,
501501
rename_stereo_wmgm_mask, 'out_file',
502502
datasink, '@stereo_wmgm_mask')
503503

504+
if "IsoSurface_tissues_pipe" in params["brain_segment_pipe"]:
505+
506+
print("Renaming csf_stl file")
507+
508+
rename_csf_stl = pe.Node(
509+
niu.Rename(), name="rename_csf_stl")
510+
rename_csf_stl.inputs.format_string = \
511+
pref_deriv + "_desc-csf_mask"
512+
rename_csf_stl.inputs.parse_string = parse_str
513+
rename_csf_stl.inputs.keep_ext = True
514+
515+
main_workflow.connect(
516+
segment_pnh_pipe, 'outputnode.csf_stl',
517+
rename_csf_stl, 'in_file')
518+
519+
main_workflow.connect(
520+
rename_csf_stl, 'out_file',
521+
datasink, '@csf_stl')
522+
523+
print("Renaming wm_stl file")
524+
525+
rename_wm_stl = pe.Node(
526+
niu.Rename(), name="rename_wm_stl")
527+
rename_wm_stl.inputs.format_string = \
528+
pref_deriv + "_desc-wm_mask"
529+
rename_wm_stl.inputs.parse_string = parse_str
530+
rename_wm_stl.inputs.keep_ext = True
531+
532+
main_workflow.connect(
533+
segment_pnh_pipe, 'outputnode.wm_stl',
534+
rename_wm_stl, 'in_file')
535+
536+
main_workflow.connect(
537+
rename_wm_stl, 'out_file',
538+
datasink, '@wm_stl')
539+
540+
print("Renaming gm_stl file")
541+
542+
rename_gm_stl = pe.Node(
543+
niu.Rename(), name="rename_gm_stl")
544+
rename_gm_stl.inputs.format_string = \
545+
pref_deriv + "_desc-gm_mask"
546+
rename_gm_stl.inputs.parse_string = parse_str
547+
rename_gm_stl.inputs.keep_ext = True
548+
549+
main_workflow.connect(
550+
segment_pnh_pipe, 'outputnode.gm_stl',
551+
rename_gm_stl, 'in_file')
552+
553+
main_workflow.connect(
554+
rename_gm_stl, 'out_file',
555+
datasink, '@gm_stl')
556+
504557
elif "old_segment_pipe" in params.keys():
505558

506559
if "mask_from_seg_pipe" in params.keys():

macapype/pipelines/surface.py

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,7 @@ def create_IsoSurface_brain_pipe(params={},
710710
output_names=["mask_file"],
711711
function=merge_tissues),
712712
params=parse_key(params, "merge_brain_tissues"),
713-
name="keep_GCC_brain")
713+
name="merge_brain_tissues")
714714

715715
IsoSurface_brain_pipe.connect(inputnode, 'segmented_file',
716716
merge_brain_tissues, 'dseg_file')
@@ -744,3 +744,54 @@ def create_IsoSurface_brain_pipe(params={},
744744
outputnode, "wmgm_stl")
745745

746746
return IsoSurface_brain_pipe
747+
748+
749+
def create_IsoSurface_tissues_pipe(params={},
750+
name="IsoSurface_tissues_pipe"):
751+
752+
# creating pipeline
753+
IsoSurface_tissues_pipe = pe.Workflow(name=name)
754+
755+
# creating inputnode
756+
inputnode = pe.Node(
757+
niu.IdentityInterface(
758+
fields=["threshold_csf", "threshold_wm", "threshold_gm"]),
759+
name='inputnode')
760+
761+
# csf2mesh
762+
csf2mesh = pe.Node(interface=IsoSurface(),
763+
name="csf2mesh")
764+
765+
IsoSurface_tissues_pipe.connect(inputnode, 'threshold_csf',
766+
csf2mesh, "nii_file")
767+
768+
# wm2mesh
769+
wm2mesh = pe.Node(interface=IsoSurface(),
770+
name="wm2mesh")
771+
772+
IsoSurface_tissues_pipe.connect(inputnode, 'threshold_wm',
773+
wm2mesh, "nii_file")
774+
775+
# gm2mesh
776+
gm2mesh = pe.Node(interface=IsoSurface(),
777+
name="gm2mesh")
778+
779+
IsoSurface_tissues_pipe.connect(inputnode, 'threshold_gm',
780+
gm2mesh, "nii_file")
781+
782+
# outputnode
783+
outputnode = pe.Node(
784+
niu.IdentityInterface(
785+
fields=["csf_stl", "gm_stl", "wm_stl"]),
786+
name='outputnode')
787+
788+
IsoSurface_tissues_pipe.connect(csf2mesh, 'stl_file',
789+
outputnode, "csf_stl")
790+
791+
IsoSurface_tissues_pipe.connect(wm2mesh, 'stl_file',
792+
outputnode, "wm_stl")
793+
794+
IsoSurface_tissues_pipe.connect(gm2mesh, 'stl_file',
795+
outputnode, "gm_stl")
796+
797+
return IsoSurface_tissues_pipe

0 commit comments

Comments
 (0)