Commit 5ce45ea8 authored by jayd1860's avatar jayd1860
Browse files

v1.12.22

-- Add manual exclusion of time and stims in MainGUI.
-- Add Motion Artifacts panel.
-- Fix small bug in help_local
-- Rebuild windows installation file
parent 05cc2eb9
Loading
Loading
Loading
Loading
+22 −10
Original line number Diff line number Diff line
@@ -593,18 +593,26 @@ classdef SnirfClass < AcqDataClass & FileLoadSaveClass

        % ---------------------------------------------------------
        function t = GetTime(obj, iBlk)
            t = [];
            if ~exist('iBlk','var') || isempty(iBlk)
                iBlk=1;
            end
            if iBlk>length(obj.data)
                return;
            end
            t = obj.data(iBlk).GetTime();
        end
        
        
        % ---------------------------------------------------------
        function datamat = GetDataMatrix(obj, iBlk)
            datamat = [];
            if ~exist('iBlk','var') || isempty(iBlk)
                iBlk=1;
            end
            if iBlk>length(obj.data)
                return;
            end
            datamat = obj.data(iBlk).GetDataMatrix();
        end
        
@@ -640,9 +648,13 @@ classdef SnirfClass < AcqDataClass & FileLoadSaveClass
        
        % ---------------------------------------------------------
        function ml = GetMeasList(obj, iBlk)
            ml = [];
            if ~exist('iBlk','var') || isempty(iBlk)
                iBlk=1;
            end
            if iBlk>length(obj.data)
                return;
            end
            ml = obj.data(iBlk).GetMeasList();
        end
        
@@ -794,12 +806,12 @@ classdef SnirfClass < AcqDataClass & FileLoadSaveClass
        % ----------------------------------------------------------------------------------
        function d = Get_d(obj, iBlk)
            d = [];
            if isempty(obj.data)
                return;
            end
            if ~exist('iBlk','var') || isempty(iBlk)
                iBlk = 1;
            end
            if iBlk>length(obj.data)
                return;
            end
            d = obj.data(iBlk).GetDataMatrix();
        end
        
@@ -807,12 +819,12 @@ classdef SnirfClass < AcqDataClass & FileLoadSaveClass
        % ----------------------------------------------------------------------------------
        function t = Get_t(obj, iBlk)
            t = [];
            if isempty(obj.data)
                return;
            end
            if ~exist('iBlk','var') || isempty(iBlk)
                iBlk = 1;
            end
            if iBlk>length(obj.data)
                return;
            end
            t = obj.data(iBlk).GetTime();
        end
        
@@ -823,12 +835,12 @@ classdef SnirfClass < AcqDataClass & FileLoadSaveClass
            if isempty(obj.probe)
                return;
            end
            if isempty(obj.data)
                return;
            end
            if ~exist('iBlk','var') || isempty(iBlk)
                iBlk = 1;
            end
            if iBlk>length(obj.data)
                return;
            end
            SD.Lambda   = obj.probe.GetWls();
            SD.SrcPos   = obj.probe.GetSrcPos();
            SD.DetPos   = obj.probe.GetDetPos();
@@ -852,7 +864,7 @@ classdef SnirfClass < AcqDataClass & FileLoadSaveClass
            if ~exist('iBlk','var') || isempty(iBlk)
                iBlk = 1;
            end
            if isempty(obj.data)
            if iBlk>length(obj.data)
                return;
            end
            t = obj.data(iBlk).GetTime();
+60 −10
Original line number Diff line number Diff line
@@ -42,7 +42,9 @@ classdef ProcInputClass < handle
            if isempty(obj)
                obj = ProcInputClass();
            end
            if ~isempty(obj2.tIncMan)
                obj.tIncMan = obj2.tIncMan;
            end
            
            fields = properties(obj.misc);
            for ii=1:length(fields)
@@ -127,19 +129,22 @@ classdef ProcInputClass < handle
        
        
        % ----------------------------------------------------------------------------------
        function SetTincMan(obj, val)
            obj.tIncMan = val;
        function SetTincMan(obj, val, iBlk)
            if ~exist('iBlk','var')
                iBlk=1;
            end
            obj.tIncMan{iBlk} = val;
        end
        
        
        % ----------------------------------------------------------------------------------
        function tIncMan = GetTincMan(obj, iBlk)
            if ~exist('iBlk','var')
                iBlk=1;
        function val = GetTincMan(obj, iBlk)
            val = {};
            if ~exist('iBlk','var') || isempty(iBlk)
                val = obj.tIncMan;
            elseif ~isempty(obj.tIncMan)
                val = obj.tIncMan{iBlk};
            end
            
            % TBD: need to implement this
            tIncMan = obj.tIncMan;
        end
       
        
@@ -276,6 +281,51 @@ classdef ProcInputClass < handle
        end
        
        
        % ----------------------------------------------------------------------------------
        function SetStims_MatInput(obj, s, t, CondNames)
            obj.acquiredEditable.SetStims_MatInput(s, t);
        end
        
        
        % ----------------------------------------------------------------------------------
        function StimReject(obj, t, iBlk)
            tRange = [-2, 10];
            
            s = obj.acquiredEditable.GetStims(t);
            dt = (t(end)-t(1))/length(t);
            tRangeIdx = floor(tRange(1)/dt):ceil(tRange(2)/dt);
            smax = max(s,[],2);
            lstS = find(smax==1);
            for iS = 1:size(lstS,1)
                lst = round(min(max(lstS(iS) + tRangeIdx,1),length(t)));
                if ~isempty(obj.tIncMan{iBlk}) && min(obj.tIncMan{iBlk}(lst))==0
                    s(lstS(iS),:) = -1*abs(s(lstS(iS),:));
                end
            end
            obj.acquiredEditable.SetStims_MatInput(s, t);
        end
        
        
        % ----------------------------------------------------------------------------------
        function StimInclude(obj, t, iBlk)
            tRange = [-2, 10];
            
            s = obj.acquiredEditable.GetStims(t);
            dt = (t(end)-t(1))/length(t);
            tRangeIdx = floor(tRange(1)/dt):ceil(tRange(2)/dt);
            for iC = 1:size(s,2)
                lstS = find(s(:,iC)<0);
                for iS = 1:size(lstS,1)
                    lst = round(min(max(lstS(iS) + tRangeIdx,1),length(t)));
                    if ~isempty(obj.tIncMan{iBlk}) && min(obj.tIncMan{iBlk}(lst))==1
                        s(lstS(iS),iC) = 1;
                    end
                end
            end
            obj.acquiredEditable.SetStims_MatInput(s, t);
        end
        
        
        % ----------------------------------------------------------------------------------
        function RenameCondition(obj, oldname, newname)
            % Function to rename a condition. Important to remeber that changing the
+27 −0
Original line number Diff line number Diff line
@@ -1200,6 +1200,15 @@ classdef ProcStreamClass < handle
        end
        
        
        % ----------------------------------------------------------------------------------
        function SetTincMan(obj, val, iBlk)
            if ~exist('iBlk','var')
                iBlk = [];
            end
            obj.input.SetTincMan(val, iBlk);
        end
        

        % ----------------------------------------------------------------------------------
        function tIncMan = GetTincMan(obj, iBlk)
            if ~exist('iBlk','var')
@@ -1366,6 +1375,24 @@ classdef ProcStreamClass < handle
        end
        
        
        % ----------------------------------------------------------------------------------
        function SetStims_MatInput(obj, s, t, CondNames)
            obj.input.SetStims_MatInput(s, t, CondNames);
        end
        
        
        % ---------------------------------------------------------------------------------
        function StimReject(obj, t, iBlk)
            obj.input.StimReject(t, iBlk)
        end
        
        
        % ----------------------------------------------------------------------------------
        function StimInclude(obj, t, iBlk)
            obj.input.StimInclude(t, iBlk);
        end
        
        
        % ----------------------------------------------------------------------------------
        function RenameCondition(obj, oldname, newname)
            % Function to rename a condition. Important to remeber that changing the
+51 −6
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ classdef RunClass < TreeNodeClass
                return;
            end
            obj.procStream = ProcStreamClass(obj.acquired);

            obj.InitTincMan();
            if isa(varargin{1}, 'FileClass')
                varargin{1}.Loaded();
            end
@@ -430,6 +430,38 @@ classdef RunClass < TreeNodeClass
        end
        
        
        % ----------------------------------------------------------------------------------
        function SetTincMan(obj, idxs, iBlk, excl_incl)
            if nargin<2
                return
            end
            if nargin<4
                excl_incl = 'exclude';
            end
            tIncMan = obj.procStream.GetTincMan(iBlk);
            if strcmp(excl_incl, 'exclude')
                tIncMan(idxs) = 0; 
            elseif strcmp(excl_incl, 'include')
                tIncMan(idxs) = 1; 
            end
            obj.procStream.SetTincMan(tIncMan, iBlk);
        end
        
        
        % ----------------------------------------------------------------------------------
        function InitTincMan(obj)
            iBlk = 1;
            while 1
                t = obj.acquired.GetTime(iBlk);
                if isempty(t)
                    break
                end
                tIncMan = ones(length(t),1);
                obj.procStream.SetTincMan(tIncMan, iBlk);
                iBlk = iBlk+1;
            end
        end
                
    end        % Public Set/Get methods
    
    
@@ -555,6 +587,19 @@ classdef RunClass < TreeNodeClass
        end
        
        
        
        % ----------------------------------------------------------------------------------
        function StimReject(obj, t, iBlk)
            obj.procStream.StimReject(t, iBlk);
        end
        
        
        % ----------------------------------------------------------------------------------
        function StimInclude(obj, t, iBlk)
            obj.procStream.StimInclude(t, iBlk);
        end
        
        
        % ----------------------------------------------------------------------------------
        function vals = GetStimValSettings(obj)
            vals = obj.procStream.input.GetStimValSettings();
+6 −0
Original line number Diff line number Diff line
@@ -567,6 +567,12 @@ classdef TreeNodeClass < handle
        end

        
        % ----------------------------------------------------------------------------------
        function SetTincMan(obj, idxs, iBlk, excl_incl)
            ;
        end
        
        
    end
    
    
Loading