diff --git a/README.md b/README.md index 17e6ef0..a23af80 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,40 @@ pop_roi_connectplot(EEG, 'measure', 'mim', 'plotcortex', 'on', 'freqrange', [8 1
+### Group analysis + +The ROIconnect plugin is compatible with EEGLAB STUDY framework. This means that if you have created a STUDY for group analysis, you can select ROIconnect menus to compute connectivity on a group of datasets. Once connectivity has been computed, there are two ways to aggregate results for ROIconnect at the group level. At this stage, both ways involve command line code. The simplest way is to run ROIconnect on all datasets and then gather the matrices and run statistics on them. + +Assuming that you have computed connectivity (for example, the multivariate interaction measure) for all datasets and that for each subject, you have a dataset for condition 1 and a dataset for condition 2 (so in sequence, the first dataset is subject 1 condition 1, the second subject 1 condition 2, the third is subject 2 condition 1, etc, you could use the code: + +```matlab +% aggregate all subjects for each condition in one matrix +numSubject = length(ALLEEG)/2; % number os subjects +cond1 = zeros( [ size(ALLEEG(1).roi.MIM) numSubject] ); % dimensions are frequency x roi x roi x subject +cond2 = zeros( [ size(ALLEEG(1).roi.MIM) numSubject] ); +for iSubj = 1:numSubject + cond1(:,:,:,iSubj) = ALLEEG(((iSubj-1)*2+1)).roi.MIM; % get the MIM (multivariate interaction measure) for all odd datasets + cond2(:,:,:,iSubj) = ALLEEG(((iSubj-1)*2+2)).roi.MIM; % get the MIM (multivariate interaction measure) for all even datasets +end + +% compute statistics and plot +[t,df,p] = statcond({ cond1 cond2 }); % parametric here but you can also use permutations +[~,indAlpha] = min(abs(ALLEEG(1).roi.freqs - 10)); +tAlpha = squeeze(t(indAlpha,:,:)); +pAlpha = squeeze(pFdr(indAlpha,:,:)); +figure; subplot(1,2,1); imagesc(tAlpha); title('t-value'); +figure; subplot(1,2,2); imagesc(-log10(pAlpha)); title('p-value (0 for p=1; 1 for p=0.1; 2 for p=0.01 ...)'); +% or replace matrix MIM in one of the dataset and plot using the ROIconnect menus or command line functions +``` + +Alternatively, to get ROIconnect data from an arbitrary study design (including 2-way ANOVA), you can use the powerful std_readdata function as outlined in the documentation of the [eegstats plugin](https://github.com/sccn/eegstats). + +```matlab +[~,condsMat] = std_readdata(STUDY, ALLEEG, 'customread', 'std_readeegfield', 'customparams', {{ 'roi', 'MIM' }}, 'ndim', 4, 'singletrials', 'on’); +``` + +Then, proceed to use the compute statistics and plot as above (in this case *condsMat = { cond1 cond2 }*). For more information on how to create a STUDY and STUDY design, refer to the [EEGLAB documentation](https://eeglab.org/tutorials/10_Group_analysis/study_creation.html). + # References [1] Pellegrini, F., Delorme, A., Nikulin, V., & Haufe, S. (2023). Identifying good practices for detecting inter-regional linear functional connectivity from EEG. NeuroImage, 120218. [doi: 10.1016/j.neuroimage.2023.120218](https://doi.org/10.1016/j.neuroimage.2023.120218)