I'm using SPM8 revision 5236.
I've got a script that may or may not have the potential to work properly in its own right. However, while debugging the script, I found the following inconsistency:
Calling spm('defaults', 'fmri') and then looking at the global variable, 'defaults', I see that defaults has the following field:
defaults.stats.fmri.fmri_t
(Without my intervention, this default value was set to 16)
However, the spm script spm_hrf.m begins with:
global defaults
if ~isempty(defaults),
fMRI_T = defaults.stats.fmri.t;
else,
fMRI_T = 16;
end;
Consequently, when I debug my script and follow it down the rabbit hole, it throws an error when it executes
fMRI_T = defaults.stats.fmri.t;
The obvious fix is to edit spm_hrf.m so that it instead looks for defaults.stats.fmri.fmri_t, and then maybe do a recursive search on the rest of the spm code to proactively fix any other references to fmri.t. Doing a grep of my version of spm, I find:
stats.fmri.fmri.t appears in
spm_dcm_create.m
spm_eeg_inv_fmripriors.m
spm_get_ons.m; spm_hrf.m
and
stats.fmri.fmri_t appears in
spm_defaults.m
spm_fMRI_design.m
So I was wondering whether this inconsistency is intentional, or if a change in the variable name was not propagated to all the dependent scripts?
Cheers,
Chris
|