Commit ea939423 authored by jayd1860's avatar jayd1860
Browse files

-- Fix bug in SnirfClass .snirf file fomat conversion to NirsClas .nirs.

-- Set default simulation of errors to none in UnitTests_Init.m
-- Add namespace DataTreeClass to shared library Utils function points_on_line.m
parent f0384967
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
function Snirf2Nirs(rootdir, options)
if ~exist('rootdir','var')
    rootdir = pwd;
end
if ~exist('options','var')
    options = 'sort';
end
rootdir = filesepStandard(rootdir);
files = DataFilesClass(pwd, 'snirf');
for ii = 1:length(files)
    fname = filesepStandard([rootdir, files(1).name]);
    s = SnirfClass(fname);
    n = NirsClass(s);
    if optionExists(options, 'sort')
        n.SortData();
    end
    [pname, fname] = filesepStandard(fname);
    fnameNew = [pname, fname, '.nirs'];
    fprintf('Converting %s to %s\n', fname, fnameNew)
    n.Save(fnameNew);
end

+22 −10
Original line number Diff line number Diff line
@@ -132,6 +132,15 @@ classdef NirsClass < AcqDataClass & FileLoadSaveClass
        end
        
        
        % ---------------------------------------------------------
        function SortData(obj)
            [obj.SD.MeasList, order] = sortrows(obj.SD.MeasList,4);
            obj.d = obj.d(:,order);
            [obj.SD.MeasList, order] = sortrows(obj.SD.MeasList,4);
            obj.d = obj.d(:,order);
        end
        
        
        % ---------------------------------------------------------
        function err = LoadMat(obj, fname, ~)
            err = 0;
@@ -469,9 +478,8 @@ classdef NirsClass < AcqDataClass & FileLoadSaveClass
            % Always sort stimulus conditions and associated stims
            % to have a predictable order for display
            objnew.s          = obj.s;            
            obj.SortStims();
            
            objnew.CondNames  = obj.CondNames;
            objnew.SortStims();
        end
        
        
@@ -1093,15 +1101,19 @@ classdef NirsClass < AcqDataClass & FileLoadSaveClass
        function ConvertSnirfStim(obj, snirf)
            obj.s = zeros(length(obj.t), length(snirf.stim));
            for ii = 1:length(snirf.stim)
                k = round(nearest_point(obj.t, snirf.stim(ii).data(:,1)));
                for jj = 1:length(k)
                    if k(jj) == 0
                        k(jj) = 1;
                if isempty(snirf.stim(ii).data)
                    ik = [];
                else
                    [~,ik] = nearest_point(obj.t, snirf.stim(ii).data(:,1));
                end
                for jj = 1:length(ik)
                    if ik(jj) == 0
                        ik(jj) = 1;
                    end
                    if k(jj) > length(obj.t)
                        k(jj) = length(obj.t);
                    if ik(jj) > length(obj.t)
                        ik(jj) = length(obj.t);
                    end
                    obj.s(k(jj),ii) = 1;
                    obj.s(ik(jj),ii) = 1;
                end
                obj.CondNames{ii} = snirf.stim(ii).name;
            end
+1 −1
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ if start
    reg.DeleteSaved();
    
    SCRAMBLE         = true;
    ERROR_ODDS_CONST = generateErrorOddsConstant(5);    
    ERROR_ODDS_CONST = generateErrorOddsConstant(0);    
end

% Clean up after ourselves; delete non-versioned acquisition files and
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ if strcmp(ns, 'AtlasViewerGUI')
    elseif nargin == 5
        [out1] = points_on_line_AtlasViewerGUI(inp1, inp2, inp3, inp4, inp5);
    end
elseif strcmp(ns, 'Homer3')
elseif strcmp(ns, 'Homer3') || strcmp(ns, 'DataTreeClass')
    if nargin == 0
        [out1] = points_on_line_Homer3();
    elseif nargin == 1