% % Generate Figure 2D (Drift curve) for FaceSpace paper % _______________________________________________ % by Marcelo G Mattar (10/21/2013) % mattar@sas.upenn.edu % Parameters datasets = {'MDS_RGI'}; % Choose between 'MDS_RGI' and 'MDS_Multi' hemispheres_to_include = {'rh'}; % Choose {'rh'}, {'lh'}, or {'rh','lh'} masksize = 800; % Number of vertices to form ROI (within fusiform mask) outputDir = './Figures/'; % Directory where output images will be saved saveBool = false; % Data location dataDir = '~/Data/FaceSpace/'; % Subjects to include subjectList_RGI = {... % [list of subject ID strings redacted] }; subjectList_Multi = {... % [list of subject ID strings redacted] }; % Include auxiliar functions addpath('./auxFunctions'); filename_endings = {'000' '005' '010' '015' '020' '025' '030' '035' '040' '045' '050' '055' '060' '065' '070' '075' '080' '085' '090' '095' '100'}; coefficient_values = 0:0.05:1; numCoef = length(filename_endings); for d = 1:length(datasets) % Determine which dataset we'll work on dataset = datasets{d}; switch dataset case 'MDS_RGI' subjectList = subjectList_RGI; dataset_lowercase = '-mds_rgi'; case 'MDS_Multi' subjectList = subjectList_Multi; dataset_lowercase = '-mds_multi'; end numSubjects = length(subjectList); % Load masks mask_lh = load_mgh([dataDir 'ROIs/binaryMask_' dataset '_' num2str(masksize) '_lh.mgh']); mask_rh = load_mgh([dataDir 'ROIs/binaryMask_' dataset '_' num2str(masksize) '_rh.mgh']); mask_lh = logical(mask_lh); mask_rh = logical(mask_rh); % Initialize variables DriftBetas_lh = zeros(length(mask_lh),numSubjects,numCoef); DriftBetas_rh = zeros(length(mask_rh),numSubjects,numCoef); averageBetasROI = zeros(numSubjects,length(filename_endings)); % Load data for k=1:numCoef DriftBetas_lh(:,:,k) = squeeze(load_mgh([dataDir 'group_glms/' dataset '/Drift_' filename_endings{k} '/lh.Drift_' filename_endings{k} '.fwhm10.mgh'])); DriftBetas_rh(:,:,k) = squeeze(load_mgh([dataDir 'group_glms/' dataset '/Drift_' filename_endings{k} '/rh.Drift_' filename_endings{k} '.fwhm10.mgh'])); % Calculate the average effect within ROI for s=1:numSubjects for h=1:length(hemispheres_to_include) eval(['averageBetasROI(s,k) = averageBetasROI(s,k) + mean(DriftBetas_' hemispheres_to_include{h} '(mask_' hemispheres_to_include{h} ',s,k));']); end % Now, take the mean across hemispheres (if looking at both together) averageBetasROI(s,k) = averageBetasROI(s,k) / length(hemispheres_to_include); end end % Calculate means and standard errors of the mean meanBetas = mean(averageBetasROI,1); steBetas = std(averageBetasROI,1)/sqrt(numSubjects); % Calculate statistics [~,driftPeak_index] = max(meanBetas); driftPeak = coefficient_values(driftPeak_index); %{ [~,p_vsAdapt,ci_vsAdapt,stats_vsAdapt] = ttest(averageBetasROI(:,driftPeak_index),averageBetasROI(:,21),'tail','right'); [~,p_vsPrototype,ci_vsPrototype,stats_vsPrototype] = ttest(averageBetasROI(:,driftPeak_index),averageBetasROI(:,1),'tail','right'); %} % Display curve peak info display(['The peak of the drift curve is located at EC = ' num2str(driftPeak)]); % Plot the results figure(1); hold on; plot(coefficient_values,meanBetas,'k'); plot(coefficient_values,meanBetas-steBetas,'c'); plot(coefficient_values,meanBetas+steBetas,'c'); ylim([0 0.4*10^(-3)]) xlim([-0.1 1.1]) if saveBool; print('-depsc',[outputDir 'Figure3_driftcurve_' dataset '.eps']); end; if saveBool; print('-dpng',[outputDir 'Figure3_driftcurve_' dataset '.png']); end; end