function raster(fn) % RASTER(FN, N) make raster plot of (N randomly chosen) cells in the % AP file FN if nargin==1, numproc = 1; end fd = fopen(fn); ap = textscan(fd, '%n%n%q'); fclose(fd); if isempty(ap) fprintf(1,'Empty input\n'); return end cells = unique(ap{1}); if nargin>=3 indx = randperm(length(cells)); indx = indx([1:N]); else indx = 1:length(cells); end newplot set(gcf,'Name','Spike Raster Plot', ... 'NumberTitle','off', ... 'toolbar', 'figure') h = zeros(1,max(cells)); for i=1:length(indx) j = cells(indx(i)); X = ap{2}(ap{1}==j); Y = j*ones(1,length(X)); h(j+1) = line(X, Y, ... 'marker', 'o', ... 'linestyle', 'none', ... 'markersize', 4, ... 'markerfacecolor', 'black'); xlabel('Time (s)') ylabel('cell number') end grid on if length(ap)>=3 c = get(gcf, 'DefaultAxesColorOrder'); maxc = size(c, 1); [cellnames cindx] = unique(ap{3}); lstr = {}; hf = []; for i=1:length(cindx) lstr{i} = cellnames{i}; hf(i) = h(ap{1}(cindx(i))+1); end indxx = find(hf~=0); legend(hf(indxx), lstr{indxx}); for i=1:length(indxx) indzz = strcmp(ap{3},lstr{indxx(i)})==1; lcells = unique(ap{1}(indzz)); col = c(mod(i-1, maxc)+1, :); set(h(lcells+1), 'Color', col); end end uicontrol('style', 'push', ... 'string', 'refresh', ... 'FontSize',8, 'FontWeight', 'bold', ... 'units', 'normal', ... 'pos', [0.9 .01 0.08 .04], ... 'backgroundcolor', 'black', ... 'foregroundcolor', 'white', ... 'call', ['raster(''', fn, ''',' num2str(numproc), ')']);