Surface-based MVPA with The Decoding Toolbox

Hi experts,

question: is it possible to use The Decoding Toolbox (TDT) to run an MVPA analysis on surface data?

some background: I followed this thread to convert the gifti output of fMRIprep in a format that is accepted by SPM, and I run a GLM in SPM to obtain beta images. The GLM does just fine with the gifti format, and I am able to open and visualise the beta images, but if I try to import the images in TDT I get an error:

getting betas from C:\Users\45027900\Desktop\gii_spm\derivatives\SPM_fv\sub-02
Checking that == SPM12 is available
Error using decoding_describe_data (line 154)
No img/nii-files starting with ‘beta’ found in C:\Users\45027900\Desktop\gii_spm\derivatives\SPM_fv\sub-02

Does anyone know if there is a way to import these betas in TDT or, more in general, if TDT supports gifti images? Each beta is a .gii file (1 KB size), and there is a .dat file for each image (e.g., beta_0001.gii, beta_0001.dat).


Hi Andrea,

unfortunately, TDT can’t deal with gifti or cifti, sorry about that! We never got to develop surface-based searchlight MVPA since the demand was too low to justify the requests (over the last 7 years, you are the second person asking), and whenever we compared the results they looked largely similar if not better for volume-based analyses. It’s mostly useful if you have neighboring brain regions you want to keep separate in a searchlight analysis. It’s probably not very hard to implement an alpha version if you would be happy with operating at the voxel level rather than the surface level (i.e. defining each searchlight based on a voxel but the searchlight sphere based on the surface). This is the resolution of the data anyway. We would just need to implement a flexible searchlight definition for each time step which would take the voxel-to-surface mapping into account. If you have a function that does that in Matlab, I might be able to code something up but not before the end of May due to current obligations. Check out this code, they might have what you need.

Oh, and if it’s ROI rather than searchlight, it’s really easy: just convert the surface ROI to voxel space in Freesurfer, save it as nifti and work on the resulting mask.