|
| 1 | + |
| 2 | +### Group Statistics on Source Reconstructions |
| 3 | + |
| 4 | +Now we have a new set of 16$\times$<!-- -->3 GIfTI images for the power |
| 5 | +between 10-20Hz and 100-250ms for each subject for each condition after |
| 6 | +group-inversion, we can put them into the same repeated-measures ANOVA |
| 7 | +that we used above, i.e., the `batch_stats_rmANOVA_job.m` file. This can |
| 8 | +be scripted as (i.e, simply changing the output directories at the start |
| 9 | +from, e.g, `IndMSPStats` to `GrpMSPStats`). |
| 10 | + |
| 11 | +```matlab |
| 12 | +srcstatsdir{1} = fullfile(outpth,'MEEG','GrpMSPStats'); |
| 13 | +srcstatsdir{2} = fullfile(outpth,'MEEG','GrpMNMStats'); |
| 14 | +
|
| 15 | +jobfile = {fullfile(scrpth,'batch_stats_rmANOVA_job.m')}; |
| 16 | +
|
| 17 | +for val = 1:length(srcstatsdir) |
| 18 | + if ~exist(srcstatsdir{val}) |
| 19 | + eval(sprintf('!mkdir %s',srcstatsdir{val})); |
| 20 | + end |
| 21 | + |
| 22 | + inputs = cell(nsub+1, 1); |
| 23 | + inputs{1} = {srcstatsdir{val}}; |
| 24 | + for s = 1:nsub |
| 25 | + inputs{s+1,1} = cellstr(strvcat(spm_select('FPList',fullfile(outpth,subdir{s},'MEEG'),sprintf('^apMcbdspmeeg_run_01_sss_%d.*\.gii',val)))); |
| 26 | + end |
| 27 | + |
| 28 | + spm_jobman('serial', jobfile, '', inputs{:}); |
| 29 | +end |
| 30 | +``` |
| 31 | + |
| 32 | +When it has run, press "Results" from the SPM Menu window and select the |
| 33 | +`SPM.mat` file in the relevant output directories. You will notice that |
| 34 | +the results for minimum norm have not changed much -- a lot of voxels |
| 35 | +remain significant after correction, but in a broadly distributed swathe |
| 36 | +of ventral temporal lobe. For the results in the `MEEG/GrpMSPStats` |
| 37 | +directory, there is a small anterior right temporal cluster that |
| 38 | +survives correction. But if you lower the threshold to $p<.001$ |
| 39 | +uncorrected, you should see results like in |
| 40 | +Figure <a href="#multi:fig:15" data-reference-type="ref" |
| 41 | +data-reference="multi:fig:15">1.15</a>, which includes more focal |
| 42 | +regions in the ventral temporal lobe, and importantly, more such regions |
| 43 | +that for the individual MSP inversions the `MEEG/IndMSPStats` directory |
| 44 | +(demonstrating the advantage of group-based inversion). |
| 45 | + |
| 46 | +<figure id="multi:fig:15"> |
| 47 | +<div class="center"> |
| 48 | +<img src="../../../../assets/figures/manual/multi/figure15.png" style="width:150mm" /> |
| 49 | +</div> |
| 50 | +<figcaption><em>Group SPM for Faces vs Scrambled power on cortical mesh |
| 51 | +between 10-20Hz and 100-250ms across all 16 subjects at <span |
| 52 | +class="math inline"><em>p</em> < .001</span>uncorrected, using |
| 53 | +Group-optimised MSP. <span id="multi:fig:15" |
| 54 | +label="multi:fig:15"></span></em></figcaption> |
| 55 | +</figure> |
| 56 | + |
| 57 | +## Group MEEG Source Reconstruction with fMRI priors |
| 58 | + |
| 59 | +Finally, in an example of full multi-modal integration, we will use the |
| 60 | +significant clusters in the group fMRI analysis as separate spatial |
| 61 | +priors for the group-optimised source reconstruction of the fused MEG |
| 62 | +and EEG data (see \[Henson et al, 2011\]). Each cluster becomes a |
| 63 | +separate prior, allowing for fact that activity in those clusters may |
| 64 | +occur at different post-stimulus times. |
| 65 | + |
| 66 | +This group-based inversion can be implemented in SPM simply by selecting |
| 67 | +the binary (thresholded) image we created from the group fMRI statistics |
| 68 | +(`fac-scr_fmri_05_cor.nii` in the `BOLD` directory), which contains |
| 69 | +non-zero values for voxels to be included in the clustered priors. This |
| 70 | +is simply an option in the inversion module, so can scripted like this |
| 71 | +(using the same batch file as before, noting that this includes two |
| 72 | +inversions -- MNM and MSP -- hence the two inputs of the same data files |
| 73 | +below): |
| 74 | + |
| 75 | +```matlab |
| 76 | +jobfile = {fullfile(scrpth,'batch_localise_evoked_job.m')}; |
| 77 | +tmp = cell(nsub,1); |
| 78 | +for s = 1:nsub |
| 79 | + tmp{s} = spm_select('FPList',fullfile(outpth,subdir{s},'MEEG'),'^apMcbdspmeeg.*\.mat'); |
| 80 | +end |
| 81 | +inputs = cell(4,1); |
| 82 | +inputs{1} = cellstr(strvcat(tmp{:})); |
| 83 | +inputs{2} = {fullfile(outpth,'BOLD','fac-scr_fmri_05cor.nii')}; % Group fMRI priors |
| 84 | +inputs{3} = cellstr(strvcat(tmp{:})); |
| 85 | +inputs{4} = {fullfile(outpth,'BOLD','fac-scr_fmri_05cor.nii')}; % Group fMRI priors |
| 86 | +spm_jobman('serial', jobfile, '', inputs{:}); |
| 87 | +``` |
| 88 | + |
| 89 | +Note again that once you have run this, the previous "group" inversions |
| 90 | +in the data files will have been overwritten (you could modify the batch |
| 91 | +to add new inversion indices `5` and `6`, so as to compare with previous |
| 92 | +inversions above, but the file will get very big). Note also that we |
| 93 | +have used group-defined fMRI priors, but the scripts can easily be |
| 94 | +modified to define fMRI clusters on each individual subject's 1st-level |
| 95 | +fMRI models, and use subject-specific source priors here. |
| 96 | + |
| 97 | +### Group Statistics on Source Reconstructions |
| 98 | + |
| 99 | +After running the attached script, we will have a new set of |
| 100 | +16$\times$<!-- -->3 GIfTI images for the power between 10-20Hz and |
| 101 | +100-250ms for each subject for each condition after group-inversion |
| 102 | +using fMRI priors, and can put them into the same repeated-measures |
| 103 | +ANOVA that we used above, i.e. the `batch_stats_rmANOVA_job.m` file. |
| 104 | +This can be scripted as (i.e. simply changing the output directories at |
| 105 | +the start from, e.g. `GrpMNMStats` to `fMRIGrpMNMStats`). |
| 106 | + |
| 107 | +```matlab |
| 108 | +srcstatsdir{1} = fullfile(outpth,'MEEG','fMRIGrpMSPStats'); |
| 109 | +srcstatsdir{2} = fullfile(outpth,'MEEG','fMRIGrpMNMStats'); |
| 110 | +
|
| 111 | +jobfile = {fullfile(scrpth,'batch_stats_rmANOVA_job.m')}; |
| 112 | +
|
| 113 | +for val = 1:length(srcstatsdir) |
| 114 | + if ~exist(srcstatsdir{val}) |
| 115 | + eval(sprintf('!mkdir %s',srcstatsdir{val})); |
| 116 | + end |
| 117 | + |
| 118 | + inputs = cell(nsub+1, 1); |
| 119 | + inputs{1} = {srcstatsdir{val}}; |
| 120 | + for s = 1:nsub |
| 121 | + inputs{s+1,1} = cellstr(strvcat(spm_select('FPList',fullfile(outpth,subdir{s},'MEEG'),... |
| 122 | + sprintf('^apMcbdspmeeg_run_01_sss_%d.*\.gii$',val)))); |
| 123 | + end |
| 124 | + |
| 125 | + spm_jobman('serial', jobfile, '', inputs{:}); |
| 126 | +end |
| 127 | +``` |
| 128 | + |
| 129 | +When it has run, press "Results" from the SPM Menu window an select the |
| 130 | +`SPM.mat` file from the `fMRIGrpMSPStats` directory, and choose an |
| 131 | +uncorrected threshold of $p<.001$. You should see results like in |
| 132 | +Figure <a href="#multi:fig:16" data-reference-type="ref" |
| 133 | +data-reference="multi:fig:16">1.16</a>, which you can compare to |
| 134 | +Figure <a href="#multi:fig:15" data-reference-type="ref" |
| 135 | +data-reference="multi:fig:15">1.15</a>. The fMRI priors have improved |
| 136 | +consistency across subjects, even in medial temporal lobe regions, as |
| 137 | +well as increasing significance of more posterior and lateral temporal |
| 138 | +regions (cf., Figure <a href="#multi:fig:11" data-reference-type="ref" |
| 139 | +data-reference="multi:fig:11">1.11</a>, at $p<.001$ uncorrected). |
| 140 | + |
| 141 | +<figure id="multi:fig:16"> |
| 142 | +<div class="center"> |
| 143 | +<img src="../../../../assets/figures/manual/multi/figure16.png" style="width:150mm" /> |
| 144 | +</div> |
| 145 | +<figcaption><em>Group SPM for Faces vs Scrambled power on cortical mesh |
| 146 | +between 10-20Hz and 100-250ms across all 16 subjects at <span |
| 147 | +class="math inline"><em>p</em> < .001</span> uncorrected, using |
| 148 | +Group-optimised MSP and fMRI priors. <span id="multi:fig:16" |
| 149 | +label="multi:fig:16"></span></em></figcaption> |
| 150 | +</figure> |
| 151 | + |
| 152 | +--8<-- "addons/abbreviations.md" |
0 commit comments