Commit 7cf15027 authored by Meryem Ayse Yucel's avatar Meryem Ayse Yucel
Browse files

Fix on stim timing and t vector in hmrS_GLM analysis

hmrS_GLM: Fixed the code to update the time column in stim object for all runs other than the first run. Also fixed the time vector for proper concatenation.

SubjClass: Fixed how we extract run level stim. Now it gets it with the updated "states" from stimreject function.
parent f2866530
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -248,7 +248,7 @@ classdef SubjClass < TreeNodeClass
            obj.outputVars.tHRFRuns{r.iRun}      = r.procStream.output.GetTHRF();
            obj.outputVars.mlActRuns{r.iRun}     = r.procStream.output.GetVar('mlActAuto');
            obj.outputVars.nTrialsRuns{r.iRun}   = r.procStream.output.GetVar('nTrials');
            obj.outputVars.stimRuns{r.iRun}      = r.GetVar('stim');
            obj.outputVars.stimRuns{r.iRun}      = r.procStream.output.misc.stim;
            obj.outputVars.dcRuns{r.iRun}       = r.procStream.output.GetVar('dc');
            obj.outputVars.AauxRuns{r.iRun}      = r.procStream.output.GetVar('Aaux');
            obj.outputVars.tIncAutoRuns{r.iRun}  = r.procStream.output.GetVar('tIncAuto');
+10 −1
Original line number Diff line number Diff line
@@ -127,9 +127,12 @@ hmrstats = [];
% concatenate y
foo_y = dcRuns{1}.dataTimeSeries;
foo_t = dcRuns{1}.time;
max_t = max(foo_t);
dt_foo = abs(foo_t(1)-foo_t(2));
for i = 1:size(dcRuns,2)-1
    foo_y = cat(1,foo_y,dcRuns{i+1}.dataTimeSeries);
    foo_t = cat(1,foo_t,dcRuns{i+1}.time);
    foo_t = cat(1,foo_t,dcRuns{i+1}.time + max(foo_t(:)) + dt_foo);
    max_t(i+1) = max(foo_t);
end

data_y.dataTimeSeries = foo_y;
@@ -138,11 +141,17 @@ data_y.measurementList = dcRuns{1}.measurementList;

% concatenate stims
stim.name = stimRuns{1}.name;

for j = 1:size(stimRuns{1},2) % across conditions
    
    foo_stim_data = stimRuns{1}(j).data; % get data from the first run
    foo_stim_states = stimRuns{1}(j).states;
    
    for i = 1:size(dcRuns,2)-1  % across runs: concatenate data from other runs to first run
        % update time on stim object
        stimRuns{i+1}(j).data(:,1) = stimRuns{i+1}(j).data(:,1) + max_t(i) + dt_foo;
        stimRuns{i+1}(j).states(:,1) = stimRuns{i+1}(j).states(:,1) + max_t(i) + dt_foo;
        % concatenate
        foo_stim_data = cat(1,foo_stim_data,stimRuns{i+1}(j).data);
        foo_stim_states = cat(1,foo_stim_states,stimRuns{i+1}(j).states);
    end