diff --git a/skullTo3d/nodes/skull.py b/skullTo3d/nodes/skull.py index fb4c0cd..0e8377e 100644 --- a/skullTo3d/nodes/skull.py +++ b/skullTo3d/nodes/skull.py @@ -233,7 +233,7 @@ def calculate_mean(data): print("X max : ", np.max(X)) print("Round X max : ", np.round(np.max(X))) - nb_bins = (np.rint(np.max(X)/sample_bins)).astype(int) + nb_bins = (np.rint((np.max(X) - np.min(X))/sample_bins)).astype(int) print("Nb bins: ", nb_bins) f.write("X shape : {}\n".format(X.shape)) diff --git a/skullTo3d/pipelines/skull_pipe.py b/skullTo3d/pipelines/skull_pipe.py index ad74a28..01454e0 100644 --- a/skullTo3d/pipelines/skull_pipe.py +++ b/skullTo3d/pipelines/skull_pipe.py @@ -1778,51 +1778,43 @@ def create_skull_ct_pipe(name="skull_ct_pipe", params={}): else: # align_ct_on_T1 - align_ct_on_T1 = pe.Node( + aladin_CT_on_T1 = pe.Node( interface=RegAladin(), - name="align_ct_on_T1") + name="aladin_CT_on_T1") - align_ct_on_T1.inputs.rig_only_flag = True + aladin_CT_on_T1.inputs.rig_only_flag = True skull_ct_pipe.connect( inputnode, 'ct', - align_ct_on_T1, "flo_file") + aladin_CT_on_T1, "flo_file") skull_ct_pipe.connect( inputnode, "native_T1", - align_ct_on_T1, "ref_file") + aladin_CT_on_T1, "ref_file") - if "align_ct_on_T1_2" in params: - - # align_ct_on_T1 - align_ct_on_T1_2 = pe.Node( - interface=RegAladin(), - name="align_ct_on_T1_2") + # align_ct_on_T1 + aladin_CT_on_T1_2 = pe.Node( + interface=RegAladin(), + name="aladin_CT_on_T1_2") - align_ct_on_T1_2.inputs.rig_only_flag = True + aladin_CT_on_T1_2.inputs.rig_only_flag = True - skull_ct_pipe.connect( - align_ct_on_T1, 'res_file', - align_ct_on_T1_2, "flo_file") + skull_ct_pipe.connect( + aladin_CT_on_T1, 'res_file', + aladin_CT_on_T1_2, "flo_file") - skull_ct_pipe.connect( - inputnode, "native_T1", - align_ct_on_T1_2, "ref_file") + skull_ct_pipe.connect( + inputnode, "native_T1", + aladin_CT_on_T1_2, "ref_file") # align_ct_on_stereo_T1 align_ct_on_stereo_T1 = pe.Node( interface=RegResample(pad_val=0.0), name="align_ct_on_stereo_T1") - if "align_ct_on_T1_2" in params: - skull_ct_pipe.connect( - align_ct_on_T1_2, 'res_file', - align_ct_on_stereo_T1, "flo_file") - - else: - skull_ct_pipe.connect( - align_ct_on_T1, 'res_file', - align_ct_on_stereo_T1, "flo_file") + skull_ct_pipe.connect( + aladin_CT_on_T1_2, 'res_file', + align_ct_on_stereo_T1, "flo_file") skull_ct_pipe.connect( inputnode, 'native_to_stereo_trans', diff --git a/skullTo3d/utils/utils_params.py b/skullTo3d/utils/utils_params.py index 962a53e..338b381 100644 --- a/skullTo3d/utils/utils_params.py +++ b/skullTo3d/utils/utils_params.py @@ -2,7 +2,7 @@ def update_skull_params(ssoft, params): if "noheadmask" in ssoft: - print("Found nohead in soft") + print("Found noheadmask in soft") if "skull_petra_pipe" in params: spp = params["skull_petra_pipe"] @@ -62,7 +62,7 @@ def update_skull_params(ssoft, params): elif "noskullmask" in ssoft: - print("Found noskull in soft") + print("Found noskullmask in soft") if "skull_petra_pipe" in params: spp = params["skull_petra_pipe"] @@ -105,6 +105,31 @@ def update_skull_params(ssoft, params): print('deleting skullmask_ct_pipe') del spp["skullmask_ct_pipe"] + elif "nofullskullmask" in ssoft: + + print("Found nofullskullmask in soft") + + if "skull_petra_pipe" in params: + spp = params["skull_petra_pipe"] + + if "fullskullmask_petra_pipe" in spp: + print('deleting fullskullmask_petra_pipe') + del spp["fullskullmask_petra_pipe"] + + if "skull_megre_pipe" in params: + smp = params["skull_megre_pipe"] + + if "fullskullmask_megre_pipe" in smp: + print('deleting fullskullmask_megre_pipe') + del smp["fullskullmask_megre_pipe"] + + if "skull_t1_pipe" in params: + spp = params["skull_t1_pipe"] + + if "fullskullmask_t1_pipe" in spp: + print('deleting fullskullmask_t1_pipe') + del spp["fullskullmask_t1_pipe"] + # if no brain seg mask, removed fullskullmask if "noseg" in ssoft or "prep" in ssoft: diff --git a/workflows/params_segment_marmo_ants_4animal_skull.json b/workflows/params_segment_marmo_ants_4animal_skull.json index e1ddd09..b470049 100644 --- a/workflows/params_segment_marmo_ants_4animal_skull.json +++ b/workflows/params_segment_marmo_ants_4animal_skull.json @@ -301,7 +301,7 @@ "use_T2": { }, - "align_ct_on_T1_2": + "aladin_CT_on_T1": { }, "skullmask_ct_pipe": diff --git a/workflows/params_segment_marmo_ants_quick_skull.json b/workflows/params_segment_marmo_ants_quick_skull.json index 9271e39..a076f96 100644 --- a/workflows/params_segment_marmo_ants_quick_skull.json +++ b/workflows/params_segment_marmo_ants_quick_skull.json @@ -299,7 +299,7 @@ "use_T2": { }, - "align_ct_on_T1_2": + "aladin_CT_on_T1": { }, "skullmask_ct_pipe": diff --git a/workflows/params_segment_marmo_ants_skull.json b/workflows/params_segment_marmo_ants_skull.json index 5dd454d..a733db0 100644 --- a/workflows/params_segment_marmo_ants_skull.json +++ b/workflows/params_segment_marmo_ants_skull.json @@ -304,7 +304,7 @@ "use_T2": { }, - "align_ct_on_T1_2": + "aladin_CT_on_T1": { }, "skullmask_ct_pipe": diff --git a/workflows/segment_skull.py b/workflows/segment_skull.py index 584b509..6762f6a 100644 --- a/workflows/segment_skull.py +++ b/workflows/segment_skull.py @@ -180,11 +180,14 @@ def create_main_workflow(cmd, data_dir, process_dir, soft, species, subjects, if 'prep' in ssoft: new_ssoft.remove('prep') + if 'noheadmask' in ssoft: + new_ssoft.remove('noheadmask') + if 'noskullmask' in ssoft: new_ssoft.remove('noskullmask') - if 'noheadmask' in ssoft: - new_ssoft.remove('noheadmask') + if 'nofullskullmask' in ssoft: + new_ssoft.remove('nofullskullmask') if 'noseg' in ssoft: new_ssoft.remove('noseg')