From b693455181d0d85432e61ad97f7e104e4e11f0fa Mon Sep 17 00:00:00 2001 From: kk1995 Date: Tue, 21 May 2024 14:49:57 -0400 Subject: [PATCH 1/4] make filesepStandard_startup compatible with \\ some directories (like university server ones) use double backslash or forward slash at the beginning. Add exception to removing double+ slashes at the very beginning. --- Utils/submodules/filesepStandard_startup.m | 5 +++-- setpaths.m | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Utils/submodules/filesepStandard_startup.m b/Utils/submodules/filesepStandard_startup.m index c018b959..9c7e4555 100644 --- a/Utils/submodules/filesepStandard_startup.m +++ b/Utils/submodules/filesepStandard_startup.m @@ -50,9 +50,10 @@ idxs = []; k = find(pathname0=='\' | pathname0=='/'); for ii = 1:length(k) - if (ii>1) && (k(ii) == k(ii-1)+1) + if (ii>1) && (k(ii) == k(ii-1)+1) && (k(ii) > 2) + % adjacent two values are same, and the values are not the + % first two characters (for paths like \\ad\eng\ ...) idxs = [idxs, k(ii)]; %#ok - continue; end pathname0(k(ii)) = '/'; end diff --git a/setpaths.m b/setpaths.m index 4cff9aae..f832b9ce 100644 --- a/setpaths.m +++ b/setpaths.m @@ -577,9 +577,10 @@ function printMethod(msg) idxs = []; k = find(pathname0=='\' | pathname0=='/'); for ii = 1:length(k) - if (ii>1) && (k(ii) == k(ii-1)+1) + if (ii>1) && (k(ii) == k(ii-1)+1) && (k(ii) > 2) + % adjacent two values are same, and the values are not the + % first two characters (for paths like \\ad\eng\ ...) idxs = [idxs, k(ii)]; %#ok - continue; end pathname0(k(ii)) = '/'; end From 798a7580bb91c0b9db9d212e5f11a411479ba3ec Mon Sep 17 00:00:00 2001 From: kk1995 Date: Tue, 21 May 2024 15:09:21 -0400 Subject: [PATCH 2/4] Update filesepStandard.m allowing for double slash at the beginning --- Utils/Shared/filesepStandard.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Utils/Shared/filesepStandard.m b/Utils/Shared/filesepStandard.m index 78027340..e099c99e 100644 --- a/Utils/Shared/filesepStandard.m +++ b/Utils/Shared/filesepStandard.m @@ -49,7 +49,9 @@ idxs = []; k = find(pathname0=='\' | pathname0=='/'); for ii = 1:length(k) - if (ii>1) && (k(ii) == k(ii-1)+1) + if (ii>1) && (k(ii) == k(ii-1)+1) && (k(ii) > 2) + % adjacent two values are same, and the values are not the + % first two characters (for paths like \\ad\eng\ ...) idxs = [idxs, k(ii)]; %#ok continue; end From 5a0afa2e903af71df4f12c2d5f83f9f556ef1506 Mon Sep 17 00:00:00 2001 From: kk1995 Date: Thu, 27 Jun 2024 11:48:08 -0400 Subject: [PATCH 3/4] Update hmrR_BlockAvg.m Update OD block average calculation to current SNIRF format --- FuncRegistry/UserFunctions/hmrR_BlockAvg.m | 38 ++++++++++++---------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/FuncRegistry/UserFunctions/hmrR_BlockAvg.m b/FuncRegistry/UserFunctions/hmrR_BlockAvg.m index 83bbdd03..3faaaa76 100644 --- a/FuncRegistry/UserFunctions/hmrR_BlockAvg.m +++ b/FuncRegistry/UserFunctions/hmrR_BlockAvg.m @@ -73,7 +73,7 @@ yblk = zeros(nPost-nPre+1,size(y,2),size(y,3),size(s,2)); elseif strcmp(datatype{1}, 'dOD') ml = data(kk).GetMeasList('reshape'); - yblk = zeros(nPost-nPre+1,size(y,2),size(s,2)); + yblk = zeros(nPost-nPre+1,size(y,2),size(y,3),size(s,2)); else return; end @@ -88,7 +88,7 @@ yblk(:,:,:,nBlk) = y(lstS(iT)+[nPre:nPost],:,:); %changed from yblk(:,:,:,end+1) elseif strcmp(datatype{1}, 'dOD') nBlk = nBlk + 1; - yblk(:,:,nBlk) = y(lstS(iT)+[nPre:nPost],:); % changd from yblk(:,:,end+1) + yblk(:,:,:,nBlk) = y(lstS(iT)+[nPre:nPost],:,:); % changd from yblk(:,:,end+1) end else fprintf('WARNING: Trial %d for Condition %d EXCLUDED because of time range\n',iT,iC); @@ -133,31 +133,35 @@ data_std(kk).AppendDataTimeSeries(ystd(:,:,:,iC)); data_sum2(kk).AppendDataTimeSeries(ysum2(:,:,:,iC)); elseif strcmp(datatype{1}, 'dOD') - yTrials(iC).yblk = yblk(:,:,1:nBlk); - yavg(:,:,iC) = mean(yblk(:,:,1:nBlk),3); - ystd(:,:,iC) = std(yblk(:,:,1:nBlk),[],3); + yTrials(iC).yblk = yblk(:,:,:,1:nBlk); + yavg(:,:,:,iC) = mean(yblk(:,:,:,1:nBlk),4); + ystd(:,:,:,iC) = std(yblk(:,:,:,1:nBlk),[],4); nTrials{kk}(iC) = nBlk; - % Loop over all wavelengths - for ii=1:size(yavg,2) - foom = ones(size(yavg,1),1)*mean(yavg(1:-nPre,ii,iC),1); - yavg(:,ii,iC) = yavg(:,ii,iC) - foom; + % Loop over all channels + for ii=1:size(yavg,3) + foom = ones(size(yavg,1),1)*mean(yavg(1:-nPre,:,ii,iC),1); + yavg(:,:,ii,iC) = yavg(:,:,ii,iC) - foom; for iBlk = 1:nBlk - yTrials(iC).yblk(:,ii,iBlk) = yTrials(iC).yblk(:,ii,iBlk) - foom; + yTrials(iC).yblk(:,:,ii,iBlk) = yTrials(iC).yblk(:,:,ii,iBlk) - foom; end - ysum2(:,ii,iC) = sum( yTrials(iC).yblk(:,ii,1:nBlk).^2 ,3); + ysum2(:,:,ii,iC) = sum( yTrials(iC).yblk(:,:,ii,1:nBlk).^2 ,4); % Snirf stuff: set channel descriptors - data_avg(kk).AddChannelDod(ml(ii,1), ml(ii,2), ml(ii,4), iC); - data_std(kk).AddChannelDod(ml(ii,1), ml(ii,2), ml(ii,4), iC); - data_sum2(kk).AddChannelDod(ml(ii,1), ml(ii,2), ml(ii,4), iC); + data_avg(kk).AddChannelDod(ml((ii-1)*2+1,1), ml((ii-1)*2+1,2), ml((ii-1)*2+1,4), iC); + data_std(kk).AddChannelDod(ml((ii-1)*2+1,1), ml((ii-1)*2+1,2), ml((ii-1)*2+1,4), iC); + data_sum2(kk).AddChannelDod(ml((ii-1)*2+1,1), ml((ii-1)*2+1,2), ml((ii-1)*2+1,4), iC); + + data_avg(kk).AddChannelDod(ml(ii*2,1), ml(ii*2,2), ml(ii*2,4), iC); + data_std(kk).AddChannelDod(ml(ii*2,1), ml(ii*2,2), ml(ii*2,4), iC); + data_sum2(kk).AddChannelDod(ml(ii*2,1), ml(ii*2,2), ml(ii*2,4), iC); end % Snirf stuff: set data vectors - data_avg(kk).AppendDataTimeSeries(yavg(:,:,iC)); - data_std(kk).AppendDataTimeSeries(ystd(:,:,iC)); - data_sum2(kk).AppendDataTimeSeries(ysum2(:,:,iC)); + data_avg(kk).AppendDataTimeSeries(yavg(:,:,:,iC)); + data_std(kk).AppendDataTimeSeries(ystd(:,:,:,iC)); + data_sum2(kk).AppendDataTimeSeries(ysum2(:,:,:,iC)); end end From 80e0513f651c4080bf6865555214c02551977c2f Mon Sep 17 00:00:00 2001 From: kk1995 Date: Thu, 27 Jun 2024 11:49:35 -0400 Subject: [PATCH 4/4] Revert "Update hmrR_BlockAvg.m" This reverts commit 5a0afa2e903af71df4f12c2d5f83f9f556ef1506. --- FuncRegistry/UserFunctions/hmrR_BlockAvg.m | 38 ++++++++++------------ 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/FuncRegistry/UserFunctions/hmrR_BlockAvg.m b/FuncRegistry/UserFunctions/hmrR_BlockAvg.m index 3faaaa76..83bbdd03 100644 --- a/FuncRegistry/UserFunctions/hmrR_BlockAvg.m +++ b/FuncRegistry/UserFunctions/hmrR_BlockAvg.m @@ -73,7 +73,7 @@ yblk = zeros(nPost-nPre+1,size(y,2),size(y,3),size(s,2)); elseif strcmp(datatype{1}, 'dOD') ml = data(kk).GetMeasList('reshape'); - yblk = zeros(nPost-nPre+1,size(y,2),size(y,3),size(s,2)); + yblk = zeros(nPost-nPre+1,size(y,2),size(s,2)); else return; end @@ -88,7 +88,7 @@ yblk(:,:,:,nBlk) = y(lstS(iT)+[nPre:nPost],:,:); %changed from yblk(:,:,:,end+1) elseif strcmp(datatype{1}, 'dOD') nBlk = nBlk + 1; - yblk(:,:,:,nBlk) = y(lstS(iT)+[nPre:nPost],:,:); % changd from yblk(:,:,end+1) + yblk(:,:,nBlk) = y(lstS(iT)+[nPre:nPost],:); % changd from yblk(:,:,end+1) end else fprintf('WARNING: Trial %d for Condition %d EXCLUDED because of time range\n',iT,iC); @@ -133,35 +133,31 @@ data_std(kk).AppendDataTimeSeries(ystd(:,:,:,iC)); data_sum2(kk).AppendDataTimeSeries(ysum2(:,:,:,iC)); elseif strcmp(datatype{1}, 'dOD') - yTrials(iC).yblk = yblk(:,:,:,1:nBlk); - yavg(:,:,:,iC) = mean(yblk(:,:,:,1:nBlk),4); - ystd(:,:,:,iC) = std(yblk(:,:,:,1:nBlk),[],4); + yTrials(iC).yblk = yblk(:,:,1:nBlk); + yavg(:,:,iC) = mean(yblk(:,:,1:nBlk),3); + ystd(:,:,iC) = std(yblk(:,:,1:nBlk),[],3); nTrials{kk}(iC) = nBlk; - % Loop over all channels - for ii=1:size(yavg,3) - foom = ones(size(yavg,1),1)*mean(yavg(1:-nPre,:,ii,iC),1); - yavg(:,:,ii,iC) = yavg(:,:,ii,iC) - foom; + % Loop over all wavelengths + for ii=1:size(yavg,2) + foom = ones(size(yavg,1),1)*mean(yavg(1:-nPre,ii,iC),1); + yavg(:,ii,iC) = yavg(:,ii,iC) - foom; for iBlk = 1:nBlk - yTrials(iC).yblk(:,:,ii,iBlk) = yTrials(iC).yblk(:,:,ii,iBlk) - foom; + yTrials(iC).yblk(:,ii,iBlk) = yTrials(iC).yblk(:,ii,iBlk) - foom; end - ysum2(:,:,ii,iC) = sum( yTrials(iC).yblk(:,:,ii,1:nBlk).^2 ,4); + ysum2(:,ii,iC) = sum( yTrials(iC).yblk(:,ii,1:nBlk).^2 ,3); % Snirf stuff: set channel descriptors - data_avg(kk).AddChannelDod(ml((ii-1)*2+1,1), ml((ii-1)*2+1,2), ml((ii-1)*2+1,4), iC); - data_std(kk).AddChannelDod(ml((ii-1)*2+1,1), ml((ii-1)*2+1,2), ml((ii-1)*2+1,4), iC); - data_sum2(kk).AddChannelDod(ml((ii-1)*2+1,1), ml((ii-1)*2+1,2), ml((ii-1)*2+1,4), iC); - - data_avg(kk).AddChannelDod(ml(ii*2,1), ml(ii*2,2), ml(ii*2,4), iC); - data_std(kk).AddChannelDod(ml(ii*2,1), ml(ii*2,2), ml(ii*2,4), iC); - data_sum2(kk).AddChannelDod(ml(ii*2,1), ml(ii*2,2), ml(ii*2,4), iC); + data_avg(kk).AddChannelDod(ml(ii,1), ml(ii,2), ml(ii,4), iC); + data_std(kk).AddChannelDod(ml(ii,1), ml(ii,2), ml(ii,4), iC); + data_sum2(kk).AddChannelDod(ml(ii,1), ml(ii,2), ml(ii,4), iC); end % Snirf stuff: set data vectors - data_avg(kk).AppendDataTimeSeries(yavg(:,:,:,iC)); - data_std(kk).AppendDataTimeSeries(ystd(:,:,:,iC)); - data_sum2(kk).AppendDataTimeSeries(ysum2(:,:,:,iC)); + data_avg(kk).AppendDataTimeSeries(yavg(:,:,iC)); + data_std(kk).AppendDataTimeSeries(ystd(:,:,iC)); + data_sum2(kk).AppendDataTimeSeries(ysum2(:,:,iC)); end end