From 3a38bdbb182ca4aeea02fc7b8161d80508981751 Mon Sep 17 00:00:00 2001 From: rcassani Date: Mon, 2 Oct 2023 11:52:25 -0400 Subject: [PATCH] Bugfix: Prefer TPM.nii from SPM plugin when doing CAT12 segmentation --- doc/license.html | 2 +- doc/version.txt | 2 +- toolbox/core/bst_get.m | 13 +++++++++++-- toolbox/process/functions/process_segment_cat12.m | 10 ++++++---- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/doc/license.html b/doc/license.html index c60805796..5bddb9930 100644 --- a/doc/license.html +++ b/doc/license.html @@ -5,7 +5,7 @@

THERE IS NO UNDO BUTTON!
SET UP A BACKUP OF YOUR DATABASE


-Version: 3.230919 (19-Sep-2023)
+Version: 3.231002 (02-Oct-2023)
COPYRIGHT © 2000-2023 USC & McGill University.
diff --git a/doc/version.txt b/doc/version.txt index aea2e169c..61109fcc8 100644 --- a/doc/version.txt +++ b/doc/version.txt @@ -1,2 +1,2 @@ % Brainstorm -% v. 3.230919 (19-Sep-2023) \ No newline at end of file +% v. 3.231002 (02-Oct-2023) \ No newline at end of file diff --git a/toolbox/core/bst_get.m b/toolbox/core/bst_get.m index cd662778d..614baf34a 100644 --- a/toolbox/core/bst_get.m +++ b/toolbox/core/bst_get.m @@ -2804,16 +2804,22 @@ end case 'SpmTpmAtlas' + preferSpm = 0; + % CALL: bst_get('SpmTpmAtlas', 'SPM') + if (nargin >= 2) && strcmpi(varargin{2}, 'SPM') + preferSpm = 1; + end + % Get template file tpmUser = bst_fullfile(bst_get('BrainstormUserDir'), 'defaults', 'spm', 'TPM.nii'); - if file_exist(tpmUser) + if file_exist(tpmUser) && ~preferSpm argout1 = tpmUser; disp(['BST> SPM12 template found: ' tpmUser]); return; end % If it does not exist: check in brainstorm3 folder tpmDistrib = bst_fullfile(bst_get('BrainstormHomeDir'), 'defaults', 'spm', 'TPM.nii'); - if file_exist(tpmDistrib) + if file_exist(tpmDistrib) && ~preferSpm argout1 = tpmDistrib; disp(['BST> SPM12 template found: ' tpmDistrib]); return; @@ -2826,6 +2832,9 @@ argout1 = tpmSpm; disp(['BST> SPM12 template found: ' tpmSpm]); return; + elseif preferSpm + argout1 = bst_get('SpmTpmAtlas'); + return end else tpmSpm = ''; diff --git a/toolbox/process/functions/process_segment_cat12.m b/toolbox/process/functions/process_segment_cat12.m index f7ea79a35..bf8f8c3a6 100644 --- a/toolbox/process/functions/process_segment_cat12.m +++ b/toolbox/process/functions/process_segment_cat12.m @@ -117,11 +117,11 @@ else isCerebellum = 1; end - % TPM atlas + % % TPM atlas, preferably from SPM plugin if isfield(sProcess.options, 'tpmnii') && isfield(sProcess.options.tpmnii, 'Value') && ~isempty(sProcess.options.tpmnii.Value) && ~isempty(sProcess.options.tpmnii.Value{1}) TpmNii = sProcess.options.tpmnii.Value{1}; else - TpmNii = bst_get('SpmTpmAtlas'); + TpmNii = bst_get('SpmTpmAtlas', 'SPM'); end % Thickness maps if isfield(sProcess.options, 'extramaps') && isfield(sProcess.options.extramaps, 'Value') && ~isempty(sProcess.options.extramaps.Value) @@ -191,7 +191,8 @@ end % Check provided TPM.nii if isempty(TpmNii) - TpmNii = bst_get('SpmTpmAtlas'); + % TPM atlas, preferably from SPM plugin + TpmNii = bst_get('SpmTpmAtlas', 'SPM'); end % ===== GET SUBJECT ===== @@ -430,8 +431,9 @@ function ComputeInteractive(iSubject, iAnatomy) %#ok end % Open progress bar bst_progress('start', 'CAT12', 'CAT12 MRI segmentation...'); + % TPM atlas, preferably from SPM plugin + TpmNii = bst_get('SpmTpmAtlas', 'SPM'); % Run CAT12 - TpmNii = bst_get('SpmTpmAtlas'); isInteractive = 1; isSphReg = 1; isCerebellum = 0;