% % Generate Figure 3A (Whole-brain surface maps with best EC) for FaceSpace paper % _______________________________________________ % by Marcelo G Mattar (10/21/2013) % mattar@sas.upenn.edu % Parameters datasets = {'MDS_Multi'}; % Choose between 'MDS_RGI' and 'MDS_Multi' saveBool = false; sigThresh = 0.5; % minimum p-value required for the inclusion of a vertex in the figure % Directories baseDir = '/jet/aguirre/FaceSpace/'; dataDir = '~/Data/FaceSpace/'; outputDir = './Figures/'; % Directory where output images will be saved filename_endings = {'000' '005' '010' '015' '020' '025' '030' '035' '040' '045' '050' '055' '060' '065' '070' '075' '080' '085' '090' '095' '100'}; numCoef = length(filename_endings); for d = 1:length(datasets) dataset = datasets{d}; groupBetas_lh = zeros(163842,numCoef); groupBetas_rh = zeros(163842,numCoef); groupSigs_lh = zeros(163842,numCoef); groupSigs_rh = zeros(163842,numCoef); for k = 1:numCoef disp(['Loading surface maps for Coef = ' filename_endings{k}]); this_coef = filename_endings{k}; [groupBetas_lh(:,k), M_lh, mr_parms_lh] = load_mgh([dataDir 'group_glms/' dataset '/Drift_' this_coef '/lh.Drift_' this_coef '.glmdir/beta.mgh']); [groupBetas_rh(:,k), M_rh, mr_parms_rh] = load_mgh([dataDir 'group_glms/' dataset '/Drift_' this_coef '/rh.Drift_' this_coef '.glmdir/beta.mgh']); groupSigs_lh(:,k) = load_mgh([dataDir 'group_glms/' dataset '/Drift_' this_coef '/lh.Drift_' this_coef '.glmdir/osgm/sig.mgh']); groupSigs_rh(:,k) = load_mgh([dataDir 'group_glms/' dataset '/Drift_' this_coef '/rh.Drift_' this_coef '.glmdir/osgm/sig.mgh']); end % Load the main effect group maps for masking groupMainEffect_lh = load_mgh([dataDir 'group_glms/' dataset '/DriftMainEffect/lh.DriftMainEffect.glmdir/beta.mgh']); groupMainEffect_rh = load_mgh([dataDir 'group_glms/' dataset '/DriftMainEffect/rh.DriftMainEffect.glmdir/beta.mgh']); % Extract the best coefficients at each vertex from the group maps [max_lh,groupBestCoef_lh] = max(groupBetas_lh,[],2); [max_rh,groupBestCoef_rh] = max(groupBetas_rh,[],2); % Don't include any vertices where the max beta is negative groupBestCoef_lh(max_lh<=0) = nan; groupBestCoef_rh(max_rh<=0) = nan; % Also don't include any vertices where main effect is negative groupBestCoef_lh(groupMainEffect_lh<=0) = nan; groupBestCoef_rh(groupMainEffect_rh<=0) = nan; % Determine significance levels % The groupBestCoefSig arrays are the same as the groupSigs arrays, % except that it has nan on any vertex where groupBestCoef has nan groupBestCoefSig_lh = zeros(size(groupBestCoef_lh)); groupBestCoefSig_rh = zeros(size(groupBestCoef_rh)); for i=1:163842 if isnan(groupBestCoef_lh(i)) groupBestCoefSig_lh(i) = nan; else groupBestCoefSig_lh(i) = groupSigs_lh(i,groupBestCoef_lh(i)); end if isnan(groupBestCoef_rh(i)) groupBestCoefSig_rh(i) = nan; else groupBestCoefSig_rh(i) = groupSigs_rh(i,groupBestCoef_rh(i)); end end % Create a masked image of the best coefficients % Start as the full (unmasked) group map groupBestCoefMasked_lh = groupBestCoef_lh; groupBestCoefMasked_rh = groupBestCoef_rh; % Then, remove vertices that are below the significance threshold groupBestCoefMasked_lh(groupBestCoefSig_lh < -log10(sigThresh)) = nan; groupBestCoefMasked_rh(groupBestCoefSig_rh < -log10(sigThresh)) = nan; % Finally, save surface maps %if saveBool; save_mgh(groupBestCoef_lh,[outputDir 'groupBestCoef_' dataset '_lh.mgh'],M_lh,mr_parms_lh); end; %if saveBool; save_mgh(groupBestCoef_rh,[outputDir 'groupBestCoef_' dataset '_rh.mgh'],M_rh,mr_parms_rh); end; %if saveBool; save_mgh(groupBestCoefSig_lh,[outputDir 'groupBestCoefSig_' dataset '_lh.mgh'],M_lh,mr_parms_lh); end; %if saveBool; save_mgh(groupBestCoefSig_rh,[outputDir 'groupBestCoefSig_' dataset '_rh.mgh'],M_rh,mr_parms_rh); end; if saveBool; save_mgh(groupBestCoefMasked_lh,[outputDir 'groupBestCoefMasked_' sprintf('%2.2f',sigThresh) '_' dataset '_lh.mgh'],M_lh,mr_parms_lh); end; if saveBool; save_mgh(groupBestCoefMasked_rh,[outputDir 'groupBestCoefMasked_' sprintf('%2.2f',sigThresh) '_' dataset '_rh.mgh'],M_rh,mr_parms_rh); end; end