[Mne_analysis] permutation clustering test using TFCE

Laetitia Grabot laetitia.grabot at gmail.com
Mon Aug 4 11:22:26 EDT 2014
Search archives:

>
> >> >> On Thu, Jul 31, 2014 at 10:03 AM, Laetitia Grabot <
> >> >> laetitia.grabot at gmail.com>
> >> >> wrote:
> >> >> >
> >> >> > Hi Denis,
> >> >> >
> >> >> > I tried the spatio-temporal clustering with TFCE
> >> >> (spatio_temporal_cluster_1samp_test) on alpha power data (size of
> epoch :
> >> >> 2s; decimation = 4 (so 501 time points)) with n_jobs = 6 and the
> default
> >> >> TFCE parameter (dict(start = 0, step = 0.2)).
> >> >>
> >> >>
> >> >> I think we need to improve the documentation on TFCE a bit. A good
> default
> >> >> range is probably
> >> >>
> >> >> dict(start=2, step=0.2)
> >> >>
> >> >> >
> >> >> > According to script output, 48 thresholds were used from 0 to 9.4.
> >> >> > After 5h (!!), 10262484 clusters were found and finally after some
> >> >> others
> >> >> hours the script crashed before the end ("cannot allocate memory")...
> >> >> >
> >> >>
> >> >> For TFCE N clusters equals N features. Howver if you do not scan the
> >> >> enitre
> >> >> range of the test statistic you wont have to wait thast long.
> >> >>
> >> >>
> >> > I tried dict(start=2, step=0.2) and dict(start=2, step=0.5), but I
> still
> >> > had 5 120 000 clusters (15 threshold for step =0.5). How can I not
> scan the
> >> > entire range of the test, as you suggested ? I didn't understand what
> you
> >> > mean by "features"...
> >> >
> >> >
> >>
> >> samples : subjects or trials or observations
> >> feaures : measured value at time t, location l, condition c, frequency
> f,
> >> etc.
> >>
> >> dict(start=2, step=0.2) would not scan the entire range since you start
> at
> >> a value of 2. It depends on your effect size and your test statistic.
> with
> >> an f-test you might want to start at 4 (roughly the point where values
> form
> >> an f-dist are considered significant). Also if the maximum of your
> primary
> >> test statistic is rather high, e.g. 80,  you might want to jump in steps
> of
> >> .05 or even 1.
> >>
> >> I'm currently using it like that (dict(start=4, step=0.5) in sensor
> space
> >> analysis and with 17640 clusters,  7 jobs and I'm waiting about 6-7
> minutes
> >> for a result using a repated measures anova as stat function (slower
> than
> >> t-test) .
> >>
> >
> > Ok thanks, it's clearer! So, I tried dict(start=4, step=0.5), I got 5 120
> 000 clusters, 14 thresholds and I got no significant clusters.
>
> Note. You'll always get as many clusters in TFCE as your ndarrays has
> cells, or in other words X.size if X is an array. The speed will then
> depend on the number of thresholds you visit and the size of the 'clusters'
> in that range.
>
>
Yes, I get that, my 5 210 000 corresponds to n_vertices*epoch_duration.


> > And I didn't find the cluster I found with p = 0.01 in classical
> analysis...
>
> In my experience TFCE is significantly more sensitive than clustering with
> classical thresholding. If you do not happen to find a cluster you should
> compare your start value to the actual threshold computed. Maybe you
> excluded the range in which your effect resides (smaller than 4 in that
> case?).
>
>
You're totally right, my t_threshold in classical analysis was 3.49, so
smaller than 4. I'll try with that.
Again thanks a lot!


> > The computation lasted 84min, so that remains quite long.
>
> It's expected to last long since you have more clusters. This is a
> consequence of method.
> I haven't run simulations but I'd expect the TFCE to scale linearly to the
> number of permutations and the number of clusters and of course to their
> sizes within the thresholds.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20140804/1e6d51cd/attachment.html 


More information about the Mne_analysis mailing list