|
@@ -103,9 +103,9 @@ for iSess = 1:numel(sessionID)
|
|
|
waveformsProbe1.maxWaveforms = [];
|
|
|
end
|
|
|
if probeInserted{iSess}{1} && ~isempty(spikes)
|
|
|
- [waveformMat1, waveformVecGrp1, waveformVec1, waveformMeans1] = reshapeWaveforms(waveformsProbe1, 1, metadata, nCh{iSess}{1});
|
|
|
+ [waveformMat1, waveformVecGrp1, waveformVec1, waveformMeans1, nWaveformSamples1] = reshapeWaveforms(waveformsProbe1, 1, metadata, nCh{iSess}{1});
|
|
|
else
|
|
|
- waveformMat1 = []; waveformVecGrp1 = {}; waveformVec1 = {}; waveformMeans1 = {};
|
|
|
+ waveformMat1 = []; waveformVecGrp1 = {}; waveformVec1 = {}; waveformMeans1 = {}; nWaveformSamples1 = 0;
|
|
|
end
|
|
|
waveformsFile2 = [electrodeFolder{iSess}{2} filesep 'waveforms.mat'];
|
|
|
if exist(waveformsFile2, 'file')
|
|
@@ -115,14 +115,20 @@ for iSess = 1:numel(sessionID)
|
|
|
waveformsProbe2.maxWaveforms = [];
|
|
|
end
|
|
|
if probeInserted{iSess}{2} && ~isempty(spikes)
|
|
|
- [waveformMat2, waveformVecGrp2, waveformVec2, waveformMeans2] = reshapeWaveforms(waveformsProbe2, 2, metadata, nCh{iSess}{2});
|
|
|
+ [waveformMat2, waveformVecGrp2, waveformVec2, waveformMeans2, nWaveformSamples2] = reshapeWaveforms(waveformsProbe2, 2, metadata, nCh{iSess}{2});
|
|
|
else
|
|
|
- waveformMat2 = []; waveformVecGrp2 = {}; waveformVec2 = {}; waveformMeans2 = {};
|
|
|
+ waveformMat2 = []; waveformVecGrp2 = {}; waveformVec2 = {}; waveformMeans2 = {}; nWaveformSamples2 = 0;
|
|
|
end
|
|
|
maxWaveforms = [waveformsProbe1.maxWaveforms; waveformsProbe2.maxWaveforms];
|
|
|
waveformMat = [waveformMat1; waveformMat2];
|
|
|
waveformVec = [waveformVec1; waveformVec2];
|
|
|
waveformMeans = [waveformMeans1; waveformMeans2];
|
|
|
+ nWaveformSamples = max([nWaveformSamples1 nWaveformSamples2]);
|
|
|
+ for iWave = 1:numel(waveformMeans)
|
|
|
+ if isempty(waveformMeans{iWave})
|
|
|
+ waveformMeans{iWave} = nan(1,nWaveformSamples);
|
|
|
+ end
|
|
|
+ end
|
|
|
|
|
|
% Create waveform indices
|
|
|
% These indices are not used as our waveform array has a different form and meaning than the one used in the NWB file.
|
|
@@ -630,7 +636,7 @@ else
|
|
|
end
|
|
|
end
|
|
|
|
|
|
-function [reshapedWaveformsMat, reshapedWaveformsVecGrp, reshapedWaveformsVec, waveformsMean] = reshapeWaveforms(waveforms, iEl, metadata, nCh)
|
|
|
+function [reshapedWaveformsMat, reshapedWaveformsVecGrp, reshapedWaveformsVec, waveformsMean, nWaveformSamples] = reshapeWaveforms(waveforms, iEl, metadata, nCh)
|
|
|
% [reshapedWaveformsMat, reshapedWaveformsVecGrp, reshapedWaveformsVec, waveformsMean] = reshapeWaveforms(waveforms, iEl, metadata)
|
|
|
%
|
|
|
% Function extracts relevant waveform information and reshapes the waveform
|
|
@@ -664,6 +670,10 @@ function [reshapedWaveformsMat, reshapedWaveformsVecGrp, reshapedWaveformsVec, w
|
|
|
% number of recording channels.
|
|
|
% waveformsMean - waveforms.waveforms converted into a cell column
|
|
|
% array. MUAs are NaNs.
|
|
|
+% nWaveformSamples - a total number of data sample points forming a
|
|
|
+% single waveform.
|
|
|
+
|
|
|
+nWaveformSamples = size(waveforms.maxWaveforms,2);
|
|
|
|
|
|
if isfield(waveforms, 'waveforms')
|
|
|
reshapedWaveformsMat = zeros(size(waveforms.waveforms,1)*size(waveforms.waveforms,3),size(waveforms.waveforms,2));
|