Skip to content
Snippets Groups Projects
Select Git revision
  • b2edec45a21e5de0f89304417165c7f6f6f30468
  • master default protected
2 results

write_compare.m

Blame
  • 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