Commit 059fe003 authored by Meryem Ayse Yucel's avatar Meryem Ayse Yucel
Browse files

Group level paired t-test for "baseline vs cond" and "cond vs cond"

parent cf0595a4
Loading
Loading
Loading
Loading
+75 −0
Original line number Diff line number Diff line
% SYNTAX:
% [hmrstatsG_base_cond] = hmrG_t_paired_baseline_HRF(yAvgSubjs, tHRFrange, cond)
%
% UI NAME:
% Paired_t-test_baseline_vs_HRF
%
% DESCRIPTION:
% Performs a paired t-test between baseline and the mean HRF for a single condition across all subjects
%
% INPUTS:
% yAvgSubjs:
% tHRFrange: tHRF range for HRF averaging
%
% OUTPUTS:
% hmrstatsG_base_cond: Statistical results from the MATLAB ttest (h,p,c,stats) and measurement list (ml) 
%
% USAGE OPTIONS:
% Stats_on_Concentration_Data: [hmrstatsG_base_cond] = hmrG_t_paired_baseline_HRF(dcAvgSubjs, tHRFrange, cond)
%
% PARAMETERS:
% tHRFrange: [0, 0]
%
function  [hmrstatsG_base_cond] = hmrG_t_paired_baseline_HRF(yAvgSubjs, tHRFrange)
% N subject included per channel da gerekiyor.
% fix name hrmstatsG
hmrstatsG_base_cond = [];
nDataBlks = length(yAvgSubjs{1});
nSubj = length(yAvgSubjs);
% get number of conditions


for iBlk = 1:nDataBlks
    
    
    
    for iSubj = 1:nSubj
        
        yAvg      = yAvgSubjs{iSubj}(iBlk).GetDataTimeSeries('reshape');
        ncond = size(yAvg,4);
        
        if iSubj == 1
            tHRF      = yAvgSubjs{iSubj}(iBlk).GetTime();
            fq = abs(1/(tHRF(1)-tHRF(2)));
            ml    = yAvgSubjs{iSubj}(iBlk).GetMeasListSrcDetPairs();
        end
        
        baseline_yAvg(iSubj,:,:,:) = mean(yAvg(round(fq*(tHRFrange(1) + abs(min(tHRF)))):round(fq*(tHRFrange(2) + abs(min(tHRF)))),:,:,:),1);
        mean_yAvg(iSubj,:,:,:) = mean(yAvg(1:round(fq*abs(min(tHRF))),:,:,:),1);
        
    end
    
    % get t-stats
    for iCond = 1:ncond
        for i = 1:size(yAvg, 2)  % HbO/R/T
            for j = 1:size(yAvg,3) % Channels
                
                [h,p,c,stats] = ttest(baseline_yAvg(:,i,j,iCond),mean_yAvg(:,i,j,iCond));
                pval(i,j,iCond) = p;
                hval(i,j,iCond) = h;
                cval(i,j,iCond,:) = c;
                tstats{i,j,iCond} = stats;
                
            end
        end
    end
end


% output
hmrstatsG_base_cond.pval = pval;
hmrstatsG_base_cond.hval = hval;
hmrstatsG_base_cond.cval = cval;
hmrstatsG_base_cond.tstats = tstats;
hmrstatsG_base_cond.ml = ml;
+75 −0
Original line number Diff line number Diff line
% SYNTAX:
% [hmrstatsG_contrast] = hmrG_t_paired_contrast(yAvgSubjs, tHRFrange, c_vector)
%
% UI NAME:
% Paired_t-test_contrast
%
% DESCRIPTION:
% Performs a paired t-test between the HRF of two conditions across all subjects.
%
% INPUTS:
% yAvgSubjs:
% tHRFrange: tHRF range for HRF averaging
% c_vector - Contrast vector, has values 1 or 0. E.g. to perform a paired t-test between cond
%           2 and cond 3 in an experimental paradigm with four conditions, c_vector is
%           [0 1 1 0]
%
% OUTPUTS:
% hrmstatsG_contrast: Statistical results from the MATLAB ttest (h,p,c,stats),
%           measurement list (ml) and contrast vector (c_vector)
%
% USAGE OPTIONS:
% Stats_on_Concentration_Data: [hmrstatsG_contrast] = hmrG_t_paired_contrast(dcAvgSubjs, tHRFrange, c_vector)
%
% PARAMETERS:
% tHRFrange: [0, 0]
% c_vector: [0, 0]
%
function  [hmrstatsG_contrast] = hmrG_t_paired_contrast(yAvgSubjs, tHRFrange, c_vector)
% N subject included per channel da gerekiyor.
% fix name hrmstatsG
hmrstatsG_contrast = [];
nDataBlks = length(yAvgSubjs{1});
nSubj = length(yAvgSubjs);
nCond = find(c_vector);

if ~isempty(nCond)
    
    for iBlk = 1:nDataBlks
        
        for iSubj = 1:nSubj
            
            yAvg      = yAvgSubjs{iSubj}(iBlk).GetDataTimeSeries('reshape');
            
            if iSubj == 1
                tHRF      = yAvgSubjs{iSubj}(iBlk).GetTime();
                fq = abs(1/(tHRF(1)-tHRF(2)));
                ml    = yAvgSubjs{iSubj}(iBlk).GetMeasListSrcDetPairs();
            end
            
            for iCond = nCond
                mean_yAvg(iSubj,iCond,:,:) = mean(yAvg(round(fq*(tHRFrange(1) + abs(min(tHRF)))):round(fq*(tHRFrange(2) + abs(min(tHRF)))),:,:,iCond),1);
            end
        end
        
        % get t-stats
        for i = 1:size(yAvg, 2)  % HbO/R/T
            for j = 1:size(yAvg,3) % Channels
                
                [h,p,c,stats] = ttest( mean_yAvg(:,nCond(1),i,j),mean_yAvg(:,nCond(2),i,j));
                pval(i,j) = p;
                hval(i,j) = h;
                cval(i,j,:) = c;
                tstats{i,j} = stats;
            end
        end
    end
end

% output
hmrstatsG_contrast.pval = pval;
hmrstatsG_contrast.hval = hval;
hmrstatsG_contrast.cval = cval;
hmrstatsG_contrast.tstats = tstats;
hmrstatsG_contrast.ml = ml;
hmrstatsG_contrast.c_vector = c_vector;