Hello everyone,
I am running an analysis using the SUIT toolbox. This is the most update to date version of SUIT (downloaded fresh about a month ago), ran on Matlab 2022a and SPM12.
I have so far ran the steps "Segmentation and Isolation", "Normalisation using DARTEL" and "Reslicing into atlas space (DARTEL)", all without errors. The resliced images look sensible and are in good alignment with the SUIT.nii template.
Attempting "Lobuli-ROI analysis with atlas" I get an error. The batch setup for this uses the resliced grey matter TPM as the sole image to summarise, has the default atlas image (Cerebellum-SUIT.nii), and all other options also set to defaults.
The error info in MATLAB is as follows:
16-Jun-2022 13:54:53 - Failed 'Summarize statistics by lobules'
Error using vararginoptions
unknown option:regionname
In file "C:\Program Files\MATLAB\R2022a\spm12\toolbox\suit\vararginoptions.m" (???), function "vararginoptions" at line 44.
In file "C:\Program Files\MATLAB\R2022a\spm12\toolbox\suit\suit_ROI_summarize.m" (???), function "suit_ROI_summarize" at line 52.
In file "C:\Program Files\MATLAB\R2022a\spm12\toolbox\suit\suit_lobuli_summarize.m" (???), function "suit_lobuli_summarize" at line 55.
In file "C:\Program Files\MATLAB\R2022a\spm12\toolbox\suit\suit_run_lobuli_summarize.m" (???), function "suit_run_lobuli_summarize" at line 11.
I recognise functions like vararginoptions, but am not familiar enough with these to be confident combing through the code itself. I'm wondering if there is a simple fix to anyone who knows this side of things better.
For reference the line in vararginoptions is part of an if function, embedded within various other else and if statements:
c=1;
while c<=length(options)
a=[];
if ~ischar(options{c})
error(sprintf('Options must be strings on argument %d',c));
end;
if checkflags
a=strmatch(options{c},allowed_flags);
end;
if ~isempty(a)
assignin('caller',options{c},1);
c=c+1;
else
if checkvars
a=strmatch(options{c},allowed_vars);
if (isempty(a))
error(['unknown option:' options{c}]); <<<<<<<<<<this is the highlighted line
end;
end;
if (c==length(options))
error(sprintf('Option %s must be followed by a argument',options{c}));
end;
p=strfind(options{c},'.');
if (~isempty(p))
structname=options{c}(1:p-1);
fieldname=options{c}(p+1:end);
if (evalin('caller',['exist(''' structname ''')']));
S=evalin('caller',structname);
else
S=[];
end;
S.(fieldname)=options{c+1};
assignin('caller',structname,S);
else
assignin('caller',options{c},options{c+1});
end;
c=c+2;
end;
end;
Thank you very much for any assistance.
Iain
|