%% RSA Visualize
%
% # For CoSMoMVPA's copyright information and license terms, #
% # see the COPYING file distributed with CoSMoMVPA. #
%% Load data in EV and VT mask
% load datasets cosmo_fmri_dataset
config=cosmo_config();
data_path=fullfile(config.tutorial_data_path,'ak6','s01');
data_fn=[data_path '/glm_T_stats_perrun.nii'];
targets=repmat(1:6,1,10)';
ev_ds = cosmo_fmri_dataset(data_fn, ...
'mask',[data_path '/ev_mask.nii'],...
'targets',targets);
vt_ds = cosmo_fmri_dataset(data_fn, ...
'mask',[data_path '/vt_mask.nii'],...
'targets',targets);
% compute average for each unique target, so that the datasets have 6
% samples each - one for each target
vt_ds=cosmo_fx(vt_ds, @(x)mean(x,1), 'targets', 1);
ev_ds=cosmo_fx(ev_ds, @(x)mean(x,1), 'targets', 1);
% remove constant features
vt_ds=cosmo_remove_useless_data(vt_ds);
ev_ds=cosmo_remove_useless_data(ev_ds);
% Use pdist (or cosmo_pdist) with 'correlation' distance to get DSMs
% in vector form. Assign the result to 'ev_dsm' and 'vt_dsm'
%%%% >>> Your code here <<< %%%%
model_path=fullfile(config.tutorial_data_path,'ak6','models');
load(fullfile(model_path,'behav_sim.mat'));
behav_dsm=squareform(behav);
% Using matlab's subplot function place the heat maps for EV, VT
% and behaviour DSMs side by side in the top three positions of a 3 x 3
% subplot figure.
% (Hint: to convert DSMs in vector form to matrix form (and vice versa),
% using cosmo_squareform or squareform).
%%%% >>> Your code here <<< %%%%
labels = {'monkey','lemur','mallard','warbler','ladybug','lunamoth'}';
%% Add the dendrograms for EV, LV and behav in the middle row of the
% subplot figure (this requires matlab's stats toolbox)
if cosmo_check_external('@stats',false)
% First, compute the linkage using Matlab's linkage for
% 'ev_dsm', 'vt_dsm' and 'behav_dsm'. Assign the result
% to 'ev_hclus', 'vt_hclus', and 'behav_hclus'
%%%% >>> Your code here <<< %%%%
subplot(3,3,4);
% show dendrogram of 'ev_hclus'
% As additional arguments to the dendrogram function, use:
% 'labels',labels,'orientation','left'
%%%% >>> Your code here <<< %%%%
% Using the same approach, show a dendrogram of 'vt_hclus'
subplot(3,3,5);
%%%% >>> Your code here <<< %%%%
% Using the same approach, show a dendrogram of 'behav_hclus'
subplot(3,3,6);
%%%% >>> Your code here <<< %%%%
else
fprintf('stats toolbox not present; cannot show dendrograms\n');
end
%% Show the MDS (multi-dimensional scaling) plots in the bottom row
% Show early visual cortex model similarity
subplot(3,3,7);
% get two-dimensional projection of 'ev_dsm' dissimilarity using cmdscale;
% assign the result to a variable 'xy_ev'
%%%% >>> Your code here <<< %%%%
% plot the labels using the xy_ev labels
text(xy_ev(:,1), xy_ev(:,2), labels);
% adjust range of x and y axes
mx = max(abs(xy_ev(:)));
xlim([-mx mx]);
ylim([-mx mx]);
% Show VT similarity
% using cmdscale, store two-dimensional projection of 'vt_dsm' and
% 'behav_dsm' in 'xy_vt' and 'xy_behav'
%%%% >>> Your code here <<< %%%%
subplot(3,3,8);
text(xy_vt(:,1), xy_vt(:,2), labels);
mx = max(abs(xy_vt(:)));
xlim([-mx mx]);
ylim([-mx mx]);
subplot(3,3,9);
text(xy_behav(:,1), xy_behav(:,2), labels);
mx = max(abs(xy_behav(:)));
xlim([-mx mx]);
ylim([-mx mx]);