Hi all,
I know it's summer, but has anyone else had any thoughts on this in
between their holidays? I'd really like to understand what SPM is
doing properly.
Thanks again,
Susie
On 18/08/2007, Ged Ridgway <[log in to unmask]> wrote:
> Hi Tom, Susie, everyone,
>
> Thought I'd barge in here, Susie and I (Ged) have noticed that in
> practice the SVC button is only available after a first run through
> the results options, including specification of FWE/FDR/Unc and a
> corresponding ("whole-brain") alpha. This whole-brain threshold does
> seem to affect the subsequent search volume. What you suggest here:
>
> > Try running the results multiple times with different
> > uncorrected thresholds, each time clicking S.V.C.
> > If you specify the same mask/VOI in the SVC, you'll
> > see that the footer will show the same "Search vol"
>
> is what Susie and I expected to be the case, but not what appears to
> happen in practice. In Susie's first email, the difference in number
> of voxels searched was (we think) due to the first statistical
> thresholding at alpha = 0.99. So just to be completely clear about this:
>
> > I can only assume that in the 2nd instance, ROI as
> > explicit mask, you're including some voxels with
> > values less than 0.99 (and hence 122673 > 121424).
>
> This 0.99 is the alpha given in the fist (whole-brain) pass through
> the results options (I think Susie chose uncorrected here). It is not
> an absolute or relative threshold for the creation of the "analysis
> mask" created during the estimation stage. I'm fairly sure that with
> Susie's 2nd ROI-as-explicit analysis, no absolute or relative
> threshold masking was used. I believe she also only used an explicit
> GM mask in the 1st ("whole-brain") analysis too; but in any case,
> additional threshold masking in the first analysis could not increase
> the number of voxels considered. So again, our hypothesis is that
> SPM's SVC considers only the subset of voxels which are in both the
> chosen ROI and the set of voxels which survived the preliminary
> whole-brain alpha.
>
> > line 78 of spm_VOI, where you see that the original
> > analysis mask is consulted to build the list of
> > possible in-mask voxels).
>
> Indeed, the following lines (in SPM2's spm_VOI)
>
> 76 % voxels in entire search volume {mm}
> 77 %----------------------------------------------------------------
> 78 XYZmm = SPM.xVol.M(1:3,:)*[SPM.xVol.XYZ; ones(1, SPM.xVol.S)];
>
> suggest this. However, later on, this XYZmm variable is used for a set
> of voxels denoted k, while another another set, j, is constructed via
> the xSPM structure, which I believe is only created after the initial
> "whole-brain" alpha threshold, and which only contains supra-threshold
> voxels:
>
> 111 XYZ = D.mat \ [xSPM.XYZmm; ones(1, size(xSPM.XYZmm, 2))];
> 112 j = find(spm_sample_vol(D, XYZ(1,:), XYZ(2,:), XYZ(3,:),0) > 0);
> 113 XYZ = D.mat \ [ XYZmm; ones(1, size( XYZmm, 2))];
> 114 k = find(spm_sample_vol(D, XYZ(1,:), XYZ(2,:), XYZ(3,:),0) > 0);
>
> Then in order to create the structures passed to spm_list for the
> actual determination of the SVC p-values, k is used for the voxel-size
> of the search space, and for the sorted p-values that go into the FDR
> correction, but it is j -- the ROI-subset of voxels which survived the
> first analysis, that is used with the statistic itself, in xSPM.Z:
>
> 118 xSPM.S = length(k);
> 119 xSPM.R = spm_resels(FWHM,D,SPACE);
> 120 xSPM.Z = xSPM.Z(j);
> 121 xSPM.XYZ = xSPM.XYZ(:,j);
> 122 xSPM.XYZmm = xSPM.XYZmm(:,j);
> 123 xSPM.Ps = xSPM.Ps(k);
>
> Where again, this indicates that the new xSPM.Z (etc) is a subset of
> the previous xSPM.Z, unless I'm missing something elsewhere.
>
> If we assume for the moment that this interpretation is correct, and
> that SVC looks only within the subset, then my sequence of questions
> would be, firstly, whether this is deliberate/correct, secondly, if so
> why, and then finally, if there is a good reason, does the practice of
> choosing an alpha very near to one for the prelimary whole-brain
> threshold (as I believe Susie's quick survey of SVC-users suggested
> was quite common) violate that reason?
>
> Incidentally, Matthew Brett has a program:
> http://imaging.mrc-cbu.cam.ac.uk/imaging/VolCorr
> which has the ability to output corrected t-thresholds for an SVC. If
> these thresholds were then used with imcalc or similar on the original
> spmT image, then the effect would obviously be to consider all voxels
> within the SVC-ROI (against this SVC-t-threshold, but no other,
> earlier, whole-brain t-threshold) as you, me, and Susie, all thought
> would be what SPM did anyway. However, it appears that this would be
> different to what SPM actually does, again, raising the question of
> whether one is preferable to the other, for any reason.
>
> Finally, a quick glance at SPM5 () suggests to me that the behaviour
> is the same, and (apart from different line numbers) the code
> fragments above are the same, or at least similar, and include the
> important xSPM.Z = xSPM.Z(j); line. (My understanding is that this
> xSPM comes from spm_getSPM, see e.g. lines 455-465 where the
> "whole-brain" threshold is applied, and lines 507 and following, where
> the structure is built, including this thresholding.)
>
> Often when working on Saturday evenings though, I later find that I
> was completely insane, so it's quite possible that much of the above
> is non-sense. However, regardless of my (mis)interpretation of the
> code, I do have confidence in Susie's description of the problem as it
> appears in practice.
>
> Thanks from me too, for your very helpful earlier reply (the
> "knobliness" correction was particularly enlightening!), and thanks in
> advance for any more time you (or anyone else) can spare to look into
> this issue.
>
> Ged.
>
|