Temporal aspect on TDT

Dear Martin et al.

I have a new question about your TDT toolbox.

  • For my design:
    It is a block-design, with 2 run.
    Each miniblock is made of 8 stimuli of the same condition.
    There are 16 conditions.
    Within each run, there are 4 “big blocks” with the 16 conditions within each, with the same stimuli, but the order the conditions are presented with is randomly defined within each “big block”.
    To summarize: (16+16+16+16) then (16+16+16+16) again. So each condition is presented 4 times across one run, but for the univariate analysis, I have 1 Beta for each condition per run (estimated from the 4 times the condition was presented).

  • For the TDT and MVPA: I have artificially divided each run into 4 chunks for the decoding (then it is like (16+16+16+16+16+16+16+16), so I have 4 Beta per condition per run, 8 in total, actually like if I had 8 runs (it seemed better for the decoding design to have 8 chunks than 2). So the classifier trains on 7 chunks, and tests on the 8th.

My questions are:

  • First, is it possible to give the functional EPI to the toolbox to train and test on, instead of the Beta maps?

  • Second, since the beta map I get represents the mean activation during a whole condition (so 8 stimuli for a miniblock), I am wondering whether it could be interesting to modify once again my model, and divide each miniblock in a kind of event-design, with one Beta for each stimuli, so I would have for the condition A within the each chunk 8 Beta. If I do so, will the toolbox be able to look within the searchlight for each Beta (so kind of a discrete repartition over the time of my activation pattern) or will it juste look within the searchlight for a mean pattern activation across the 8 Beta?

  • Third point, but which results from the previous ones, would it be possible to get this discrete look of my activation pattern over time for the functional volumes instead of the Beta maps?

  • Last question but totally different, for decoding methods, there is the classification_kernel, classification and regression. Where could I find some explanations about them? Is it a SVM for the 2 classifications and logistic regression for ‘regression’? I am sorry, I am not quite familiar with fMRI statistics.

Thanks for your help, I am not sure I have been clear enough, don’t hesitate if any precisions are needed.

I have a few more questions:

  • how are calculated the AUC results ? is it the AUC of the accuracy curve?? is a kernel trick systematically applied for MVPA in voxels?
  • Plus, I have tried the regression method on my data, and it give the exact opposite AUC map than the one I get with the kernel classification. Should I take both into accounts? For example, in some voxels, I have a value of ~-40, this would mean it decodes badly 90% of the time, it is far different from just hasard, so we could imagine it actually decodes in a proper way? this value becomes ~+40 with the regression results, couldn’t we imagine we should merge the 2 maps to look at voxels with a value>30 for example?

Thanks a lot for your answers,

Hi Fabien,

AUC is calculated using the decision values of the classifier and sorting them relative to the class of the classifier. So, you move along decision values from low to high and see how many cases have been classified as belong to class 1 and how many to class -1.

Regarding the regression method, I’m sorry I didn’t get back to you about this. Here is a good read on doing MVPA with regression-based methods: https://www.frontiersin.org/articles/10.3389/fnins.2011.00075/full
You want to use the output corr or zcorr to look at your results and your analysis should be using continuous variables as inputs, not classes. I generally recommend not to use these approaches unless you really know what you are doing, because there are a lot of things that can go wrong regarding imbalances between training and test sets. Here is a paper of ours using this method if you really want to look into it: https://academic.oup.com/cercor/article-abstract/26/1/118/2366355

Splitting up the data as you did can be ok as long as you make sure each run contains the same amount of data for each condition.

Hope that helps,