Select Git revision
write_compare.m
write_compare.m 1.77 KiB
function tbl = write_compare(fid, stats_tbl, sum_tbl, vname, title, regions,types)
sgrp = cellfun(@(x,y)([x ':' y]), stats_tbl.region, stats_tbl.type, 'UniformOutput',false);
[p,tbl,stats] = kruskalwallis(stats_tbl.(vname), sgrp, 'off');
[c,~,~,gn] = multcompare(stats, 'CType','dunn-sidak', 'Display','off');
m = size(c,1);
pt = zeros(m,1);
for i=1:m
bga = strcmp(sgrp, gn{c(i,1)});
bgb = strcmp(sgrp, gn{c(i,2)});
pt(i) = 1 - (1-ranksum(stats_tbl.(vname)(bga),stats_tbl.(vname)(bgb)))^m;
end
gt = {};
midx = [];
%% Assumed regions/types (to get proper sorting)
% regions = {'Mesoderm';'Ectoderm'};
% types = {'Control';'VEGFR Inhibition'};
for i=1:length(regions)
for j=1:(length(types)-1)
t2 = types((j+1):end);
np = cellfun(@(x)({[regions{i} ':' types{j}], [regions{i} ':' x]}), t2, 'UniformOutput',false);
gt = [gt; vertcat(np{:})];
end
end
for i=1:length(types)
for j=1:(length(regions)-1)
r2 = regions((j+1):end);
np = cellfun(@(x)({[regions{j} ':' types{i}], [x ':' types{i}]}), r2, 'UniformOutput',false);
gt = [gt; vertcat(np{:})];
end
end
fprintf(fid, '%s\n', title);
fprintf(fid, 'Kruskal-Wallis, %g\n\n', p);
% fprintf(fid, '\n');
fprintf(fid, 'Pair-wise (Dunn-Sidak), Difference, P-Value\n');
for i=1:size(gt,1)
ia = find(strcmpi(gn,gt{i,1}));
ib = find(strcmpi(gn,gt{i,2}));
ma = sum_tbl.median(ia);
mb = sum_tbl.median(ib);
bridx = all((c(:,1:2)==[ia,ib]), 2);
fprintf(fid, '%s to %s,%f,%g\n', gt{i,1},gt{i,2}, mb-ma, c(bridx,6));
end
fprintf(fid, '\n\n');
end