Cross-decoding question

Hi TDT community,

I’d like to run a cross-decoding analysis, but am unsure how to set-up the design properly. I have 3 conditions and would like to train on condition1 vs condition2 and test on condition1 vs condition 3. Is there a way to run this design with the current version of the toolbox? I’ve tried the following:

labelnames = {‘condition1’; ‘condition2’: ‘condition3’;}

cfg = decoding_describe_data(cfg, labelnames,[1 -1 0],regressor_names,beta_loc,[1 0 2]);

cfg.design = make_design_xclass(cfg);

cfg.files.twoway= 1;

But I obviously run into the error message that make_design_xclass only accepts one training and one test set. If I understand correctly, I can combine designs to perform one decoding analysis like so;

cfg1 = decoding_describe_data(cfg,…
labelnames1,…
[1 -1],…
regressor_names,…
beta_loc);

cfg2 = decoding_describe_data(cfg,…
labelnames2,…
[1 -1],…
regressor_names,…
beta_loc);

cfg1.design = make_design_cv(cfg1);
cfg2.design = make_design_cv(cfg2);
cfg = combine_designs(cfg1,cfg2);

But, this won’t test whether the activation patterns from design1 generalize to design2, correct?

Thank you in advance for the assistance.

Best,
Heather

Hi Heather,

I think the easiest approach would be to model both conditions 1 and conditions 2 as one condition and then run the GLM again, which would turn it into a simple cross decoding. I hope this makes sense. Note that it is possible that either condition 1 OR condition 2 is then driving the effect on condition 3, and it’s not exactly clear which one it is. There are more complicated ways of doing this, but this might be the most straightforward way!

Hope this helps!
Martin

Hi Martin,

Thanks for the speedy response! Yes, your solution is straightforward and makes sense. Would you suggest randomly discarding half of the trials in conditions 1 and 2 when re-running the GLM so that the number of trials is matched with condition 3 and the classifier is balanced?

Best,
Heather