0001 function data = GetSpikeWaveforms(unit,varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 global DATA;
0034 if isempty(DATA),
0035 error('No session defined (did you forget to call SetCurrentSession? Type ''help <a href="matlab:help Data">Data</a>'' for details).');
0036 end
0037
0038
0039 intervals = [];
0040
0041 if nargin < 1,
0042 error('Incorrect number of parameters (type ''help <a href="matlab:help GetSpikeWaveforms">GetSpikeWaveforms</a>'' for details).');
0043 end
0044
0045 if ~isivector(unit,'#2','>=0'),
0046 error('Incorrect unit (type ''help <a href="matlab:help GetSpikeWaveforms">GetSpikeWaveforms</a>'' for details).');
0047 end
0048 group = unit(1);
0049 cluster = unit(2);
0050
0051
0052 for i = 1:2:length(varargin),
0053 if ~ischar(varargin{i}),
0054 error(['Parameter ' num2str(i+1) ' is not a property (type ''help <a href="matlab:help GetSpikeWaveforms">GetSpikeWaveforms</a>'' for details).']);
0055 end
0056 switch(lower(varargin{i})),
0057 case {'intervals','restrict'},
0058 intervals = varargin{i+1};
0059 if ~isdmatrix(intervals) || size(intervals,2) ~= 2,
0060 error('Incorrect value for property ''intervals'' (type ''help <a href="matlab:help GetSpikeWaveforms">GetSpikeWaveforms</a>'' for details).');
0061 end
0062 otherwise,
0063 error(['Unknown property ''' num2str(varargin{i}) ''' (type ''help <a href="matlab:help GetSpikeWaveforms">GetSpikeWaveforms</a>'' for details).']);
0064 end
0065 end
0066
0067 filename = [DATA.session.path '/' DATA.session.basename '.spk.' int2str(group)];
0068 nChannels = length(DATA.spikeGroups.groups{group});
0069 nSamplesPerWaveform = DATA.spikeGroups.nSamples(group);
0070
0071
0072 t = GetSpikes([group -3],'output','full');
0073 c = t(:,3) == cluster;
0074 if isempty(intervals),
0075
0076 list = find(c);
0077 else
0078
0079 in = InIntervals(t(:,1),intervals);
0080 list = find(in&c);
0081 end
0082
0083 data = LoadSpikeWaveforms(filename,nChannels,nSamplesPerWaveform,list);