Home > chronux_2_00 > spikesort > graphics > clusterXT.m

clusterXT

PURPOSE ^

clusterXT temporary utility to show clusters

SYNOPSIS ^

function clusterXT(spikes, useassigns, show, threed)

DESCRIPTION ^

    clusterXT  temporary utility to show clusters
       clusterXT(SPIKES, [USEASSIGNS], [SHOW], [THREE_D]);

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function clusterXT(spikes, useassigns, show, threed)
0002 %    clusterXT  temporary utility to show clusters
0003 %       clusterXT(SPIKES, [USEASSIGNS], [SHOW], [THREE_D]);
0004 
0005 if (nargin < 2 || isempty(useassigns)),  useassigns = spikes.overcluster.assigns;  cmap = spikes.overcluster.colors;  end;
0006 if (nargin < 3 || isempty(show)),  show = unique(useassigns);  end;
0007 if (nargin < 4),  threed = 0; end;
0008 
0009 if (nargin > 1),
0010     if (isfield(spikes, 'overcluster') && all(ismember(useassigns, unique(spikes.overcluster.assigns))))
0011         cmap = spikes.overcluster.colors;
0012     else
0013         cmap = jetm(length(show));
0014     end
0015 end
0016 
0017 show(show == 0) = [];
0018 
0019 clustlist = unique(useassigns);
0020 t = ((0:size(spikes.waveforms,2)-1)-spikes.threshT)./spikes.Fs;
0021 
0022 %%%%%%%%%%%%%%%
0023 cla reset; hold on;
0024 hndl = zeros(1,length(clustlist));
0025 for j = 1:length(clustlist)
0026     k = clustlist(j);
0027     members = find(useassigns == k);
0028     waves = spikes.waveforms(members,:);
0029 
0030     if (k == 0),                color = [0 0 0];
0031     elseif (ismember(k,show)),  color = cmap(k,:);
0032     else                        color = Clgy;
0033     end
0034     
0035     if (~isempty(members))
0036         if (~threed)
0037             h = mplot(t, waves, 'Color', color);
0038             set(h, 'ButtonDownFcn', {@raise_me, h});
0039             if (k == 0), hout = h;
0040             else         hndl(k) = h;
0041             end
0042         else
0043             [lh,ph] = errorarea(mean(waves,1), std(waves,1,1));
0044             set(lh, 'Color', brighten(color, -0.6), 'ZData', repmat(k, size(get(lh,'XData'))));
0045             set(ph, 'FaceColor', color, 'ZData', repmat(k, size(get(ph,'XData'))), 'FaceAlpha', 0.8);
0046         end
0047     end
0048 end
0049 hold off; axis tight; xlabel('Time (samples)');  ylabel('Voltage (A/D Levels)');
0050 
0051 if (~threed),  uistack(hndl(show), 'top');
0052 else  cameratoolbar('SetCoordSys', 'y');
0053 end
0054 
0055 if ((length(show) < 33) && ~threed)
0056     leg = cell(length(show),1);
0057     for k = 1:length(show),  leg{k} = num2str(sort(show(k)));  end;
0058     if (any(useassigns == 0))
0059         legend([hout, hndl(show)], cat(1, {'Outliers'}, leg), 0);
0060     else
0061         legend(hndl(show),leg,0);
0062     end
0063 end
0064

Generated on Fri 15-Aug-2008 11:35:42 by m2html © 2003