RSA Visualize
- For CoSMoMVPA's copyright information and license terms, #
- see the COPYING file distributed with CoSMoMVPA. #
Contents
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' % >@@> ev_dsm = pdist(ev_ds.samples, 'correlation'); vt_dsm = pdist(vt_ds.samples, 'correlation'); % <@@< 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). % >@@> figure(); subplot(3,3,1); imagesc(squareform(ev_dsm)); title('EV'); subplot(3,3,2); imagesc(squareform(vt_dsm)); title('VT'); subplot(3,3,3); imagesc(squareform(behav_dsm)); title('behav'); % <@@< 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' % >@@> ev_hclus = linkage(ev_dsm); vt_hclus = linkage(vt_dsm); behav_hclus = linkage(behav_dsm); % <@@< subplot(3,3,4); % show dendrogram of 'ev_hclus' % As additional arguments to the dendrogram function, use: % 'labels',labels,'orientation','left' % >@@> dendrogram(ev_hclus,'labels',labels,'orientation','left'); % <@@< % Using the same approach, show a dendrogram of 'vt_hclus' subplot(3,3,5); % >@@> dendrogram(vt_hclus,'labels',labels,'orientation','left'); % <@@< % Using the same approach, show a dendrogram of 'behav_hclus' subplot(3,3,6); % >@@> dendrogram(behav_hclus,'labels',labels,'orientation','left'); % <@@< 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' % >@@> xy_ev = cmdscale(squareform(ev_dsm)); % <@@< % 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' % >@@> xy_vt = cmdscale(squareform(vt_dsm)); xy_behav = cmdscale(squareform(behav_dsm)); % <@@< 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]);