Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
302 changes: 124 additions & 178 deletions BARRs/BARR_PSTH.m
Original file line number Diff line number Diff line change
Expand Up @@ -154,40 +154,8 @@ function BARR_PSTH(plotSave,useState)


%% PSTH
tempUseReg = unique(cell_metrics.brainRegion);
regions = []; tuC = 1; y1 = 0; y2 = 0; y3=0;
for i = 1:length(tempUseReg)
if contains(convertCharsToStrings(tempUseReg{i}),"CA1")
if ~y1
regions{tuC} = "CA1";
tuC = tuC+1; y1 = 1;
end
elseif contains(convertCharsToStrings(tempUseReg{i}),"CA2")
if (~y2)
regions{tuC} = "CA2";
tuC = tuC+1; y2 = 1;
end
elseif contains(convertCharsToStrings(tempUseReg{i}),"CA3")
if (~y3)
regions{tuC} = "CA3";
tuC = tuC+1; y3 = 1;
end
else
regions{tuC} = convertCharsToStrings(tempUseReg{i});
tuC = tuC+1;
end
end

check = ["CA1" "CA2" "CA3" "CTX" "DG" "MEC" "LEC"];
regTot = 0;
for i = 1:length(check)
for j = 1:length(regions)
regCheck = regions{j};
if contains(regCheck,check(i))
regTot = regTot+1;
end
end
end
useReg = pullSpikes(basepath);
regTot = size(useReg,2);

if (~isfield(cell_metrics.tags,'Pb'))&&(~isfield(cell_metrics.tags,'Nb'))&&(~isfield(cell_metrics.tags,'Pr'))&&(~isfield(cell_metrics.tags,'Nr'))
runTags = 1;
Expand All @@ -210,168 +178,146 @@ function BARR_PSTH(plotSave,useState)
end

subNum = 1;
for i = 1:length(check)
for j=1:length(regions)
regCheck = regions{j};
if contains(regCheck, check(i))
br = convertStringsToChars(check(i));
if ~exist([basepath filesep 'Barrage_Files' filesep basename '.' br 'pyr.cellinfo.mat'])
spikes = importSpikes('brainRegion', check(i), 'cellType', "Pyramidal Cell");
save([basepath filesep 'Barrage_Files' filesep basename '.' br 'pyr.cellinfo.mat'], 'spikes');
for i=1:size(useReg,2)
br = useReg{i};
spikes = importSpikes('cellType', "Pyramidal Cell", 'brainRegion', br);
if ~isempty(spikes.times)
if plotRips
% PSTH_ripples = computePSTH(ripples,spikes,'duration',1,'plots', false,'alignment','peaks','zscorePlot',false);
% [PSTH_ripples,PSTH_t] = makePETH(spikes,ripples.timestamps(:,1),[-3 3]);
[PSTH_ripples, PSTH_t] = manualPSTH(spikes, ripples.timestamps(:,1),[-1,1],1/100); %was 1/1000
if runTags
%warning('NOT ADJUSTED TO NEW DIMENSIONS');
% for k = 1:size(PSTH_ripples,1)
% if ((max(PSTH_ripples(k,91:111))-max(PSTH_ripples(k,1:71))) > 1.5*std(PSTH_ripples(k,:)))
% cell_metrics.tags.Pr = [cell_metrics.tags.Pr spikes.UID(k)];
% else
% cell_metrics.tags.Nr = [cell_metrics.tags.Nr spikes.UID(k)];
% end
% end
end
% [PSTH_ripples,PSTH_t] = makePETH(spikes,ripples.peaks,[-1 1]);
% index = getSort(PSTH_ripples);
index = 1:size(PSTH_ripples,1);
% PSTH_ripples = manualZscore(PSTH_ripples,spikes);
% PSTH_ripples = zscore(PSTH_ripples,1,2);
plotPSTH(PSTH_ripples, PSTH_t, index, regTot, subNum, strcat(br, '/ripples'),1);
PSTHmets.PSTH_ripples = PSTH_ripples;
PSTHmets.PSTH_ripT = PSTH_t;
PSTHmets.UID = spikes.UID;
end
% PSTH_bar = computePSTH(HSEnrem,spikes,'duration',1,'plots', false,'alignment','peaks','zscorePlot',false);
% [PSTH_bar,PSTH_t] = makePETH(spikes,HSEuse.timestamps(:,1),[-3 3]);
[PSTH_bar, PSTH_t] = manualPSTH(spikes, HSEuse.timestamps(:,1),[-1 1],1/100); %was 1/1000
if runTags
%warning('NOT ADJUSTED TO NEW DIMENSIONS');
% for k = 1:size(PSTH_bar,1)
% if (mean(PSTH_bar(k,1001:2001))-mean(PSTH_bar(k,1:100))) > 0.3
% cell_metrics.tags.Pb = [cell_metrics.tags.Pb spikes.UID(k)];
% else
% cell_metrics.tags.Nb = [cell_metrics.tags.Nb spikes.UID(k)];
% end
% end
end
% PSTH_bar = manualZscore(PSTH_bar,spikes);
% PSTH_bar = zscore(PSTH_bar,1,2);
% [PSTH_bar,PSTH_t] = makePETH(spikes,HSEuse.peaks,[-1 1]);
plotPSTH(PSTH_bar, PSTH_t, index, regTot, subNum+(regTot*2), strcat(br, '/barrages'),1);
PSTHmets.PSTH_bar = PSTH_bar;
PSTHmets.PSTH_barT = PSTH_t;

if useState == "NREM"
if contains(plotSave, 'clean')
save(strcat(basepath, filesep, 'Barrage_Files', filesep, 'PSTHmet', filesep, basename, '.clean.', br, 'PSTHmets.mat'), 'PSTHmets');
else
load([basepath filesep 'Barrage_Files' filesep basename '.' br 'pyr.cellinfo.mat']);
save(strcat(basepath, filesep, 'Barrage_Files', filesep, 'PSTHmet', filesep, basename, '.', br, 'PSTHmets.mat'), 'PSTHmets');
end
if ~isempty(spikes.times)
if plotRips
% PSTH_ripples = computePSTH(ripples,spikes,'duration',1,'plots', false,'alignment','peaks','zscorePlot',false);
% [PSTH_ripples,PSTH_t] = makePETH(spikes,ripples.timestamps(:,1),[-3 3]);
[PSTH_ripples, PSTH_t] = manualPSTH(spikes, ripples.timestamps(:,1),[-1,1],1/100); %was 1/1000
if runTags
%warning('NOT ADJUSTED TO NEW DIMENSIONS');
% for k = 1:size(PSTH_ripples,1)
% if ((max(PSTH_ripples(k,91:111))-max(PSTH_ripples(k,1:71))) > 1.5*std(PSTH_ripples(k,:)))
% cell_metrics.tags.Pr = [cell_metrics.tags.Pr spikes.UID(k)];
% else
% cell_metrics.tags.Nr = [cell_metrics.tags.Nr spikes.UID(k)];
% end
% end
end
% [PSTH_ripples,PSTH_t] = makePETH(spikes,ripples.peaks,[-1 1]);
% index = getSort(PSTH_ripples);
index = 1:size(PSTH_ripples,1);
% PSTH_ripples = manualZscore(PSTH_ripples,spikes);
% PSTH_ripples = zscore(PSTH_ripples,1,2);
plotPSTH(PSTH_ripples, PSTH_t, index, regTot, subNum, strcat(check(i), '/ripples'),1);
PSTHmets.PSTH_ripples = PSTH_ripples;
PSTHmets.PSTH_ripT = PSTH_t;
PSTHmets.UID = spikes.UID;
end
% PSTH_bar = computePSTH(HSEnrem,spikes,'duration',1,'plots', false,'alignment','peaks','zscorePlot',false);
% [PSTH_bar,PSTH_t] = makePETH(spikes,HSEuse.timestamps(:,1),[-3 3]);
[PSTH_bar, PSTH_t] = manualPSTH(spikes, HSEuse.timestamps(:,1),[-1 1],1/100); %was 1/1000
if runTags
%warning('NOT ADJUSTED TO NEW DIMENSIONS');
% for k = 1:size(PSTH_bar,1)
% if (mean(PSTH_bar(k,1001:2001))-mean(PSTH_bar(k,1:100))) > 0.3
% cell_metrics.tags.Pb = [cell_metrics.tags.Pb spikes.UID(k)];
% else
% cell_metrics.tags.Nb = [cell_metrics.tags.Nb spikes.UID(k)];
% end
% end
end
% PSTH_bar = manualZscore(PSTH_bar,spikes);
% PSTH_bar = zscore(PSTH_bar,1,2);
% [PSTH_bar,PSTH_t] = makePETH(spikes,HSEuse.peaks,[-1 1]);
plotPSTH(PSTH_bar, PSTH_t, index, regTot, subNum+(regTot*2), strcat(check(i), '/barrages'),1);
PSTHmets.PSTH_bar = PSTH_bar;
PSTHmets.PSTH_barT = PSTH_t;

if useState == "NREM"
if contains(plotSave, 'clean')
save([basepath filesep 'Barrage_Files' filesep 'PSTHmet' filesep basename '.clean.' br 'PSTHmets.mat'], 'PSTHmets');
else
save([basepath filesep 'Barrage_Files' filesep 'PSTHmet' filesep basename '.' br 'PSTHmets.mat'], 'PSTHmets');
end
else
if contains(plotSave, 'clean')
save(strcat(basepath, filesep, 'Barrage_Files', filesep, useState, filesep, basename, '.clean.', br, 'PSTHmets.mat'), 'PSTHmets');
else
save(strcat(basepath, filesep, 'Barrage_Files', filesep, useState, filesep, basename, '.', br, 'PSTHmets.mat'), 'PSTHmets');
end
end

else
if contains(plotSave, 'clean')
save(strcat(basepath, filesep, 'Barrage_Files', filesep, useState, filesep, basename, '.clean.', br, 'PSTHmets.mat'), 'PSTHmets');
else
warning(['No pyramidal cells in ' br]);
save(strcat(basepath, filesep, 'Barrage_Files', filesep, useState, filesep, basename, '.', br, 'PSTHmets.mat'), 'PSTHmets');
end

subNum = subNum+1; % should max at 4
end

else
warning(['No pyramidal cells in ' br]);
end
subNum = subNum+1; % should max at 4
end
sgtitle('Pyramidal PSTH');
saveas(gcf,[plotSave 'PSTH.png']);

subNum = 1; intEmpt = 0;
for i = 1:length(check)
for j=1:length(regions)
regCheck = regions{j};
if contains(regCheck, check(i))
br = convertStringsToChars(check(i));
spikes = [];
if ~exist([basepath filesep 'Barrage_Files' filesep basename '.' br 'int.cellinfo.mat'])
spikes = importSpikes('brainRegion', check(i), 'cellType', ["Wide Interneuron"; "Narrow Interneuron"]);
save([basepath filesep 'Barrage_Files' filesep basename '.' br 'int.cellinfo.mat'], 'spikes');
for i=1:size(useReg,2)
br = useReg{i};
spikes = importSpikes('cellType', "Interneuron", 'brainRegion', br);
if ~isempty(spikes.times)
if plotRips
% PSTH_ripples = computePSTH(ripples,spikes,'duration',1,'plots', false,'alignment','peaks','zscorePlot',false);
% [PSTH_ripples,PSTH_t] = makePETH(spikes,ripples.timestamps(:,1),[-3 3]);
% [PSTH_ripples,PSTH_t] = makePETH(spikes,ripples.peaks,[-1 1]);
[PSTH_ripples, PSTH_t] = manualPSTH(spikes, ripples.timestamps(:,1),[-1 1],1/1000);
if runTags
warning('NOT ADJUSTED TO NEW DIMENSIONS');
% for k = 1:size(PSTH_ripples,1)
% if (max(PSTH_ripples(k,91:111))-max(PSTH_ripples(k,1:71))) > 1.5*std(PSTH_ripples(k,:))
% cell_metrics.tags.Pr = [cell_metrics.tags.Pr spikes.UID(k)];
% else
% cell_metrics.tags.Nr = [cell_metrics.tags.Nr spikes.UID(k)];
% end
% end
end
% index = getSort(PSTH_ripples);
index = 1:size(PSTH_ripples,1);
% PSTH_ripples = manualZscore(PSTH_ripples,spikes);
% PSTH_ripples = zscore(PSTH_ripples,1,2);
plotPSTH(PSTH_ripples, PSTH_t, index, regTot, subNum, strcat(br, '/ripples'),2);
PSTHmetsINT.PSTH_ripples = PSTH_ripples;
PSTHmetsINT.ripT = PSTH_t;
PSTHmetsINT.UID = spikes.UID;
end
% PSTH_bar = computePSTH(HSEnrem,spikes,'duration',1,'plots', false,'alignment','peaks','zscorePlot',false);
% [PSTH_bar,PSTH_t] = makePETH(spikes,HSEuse.timestamps(:,1),[-3 3]);
[PSTH_bar, PSTH_t] = manualPSTH(spikes, HSEuse.timestamps(:,1),[-1 1],1/1000);
if runTags
warning('NOT ADJUSTED TO NEW DIMENSIONS');
% for k = 1:size(PSTH_bar,1)
% if (mean(PSTH_bar(k,101:201))-mean(PSTH_bar(k,1:100))) > 0.3
% cell_metrics.tags.Pb = [cell_metrics.tags.Pb spikes.UID(k)];
% else
% cell_metrics.tags.Nb = [cell_metrics.tags.Nb spikes.UID(k)];
% end
% end
end
% [PSTH_bar,PSTH_t] = makePETH(spikes,HSEuse.peaks,[-1 1]);
% PSTH_bar = manualZscore(PSTH_bar,spikes);
% PSTH_bar = zscore(PSTH_bar, 1, 2);
plotPSTH(PSTH_bar, PSTH_t, index, regTot, subNum+(regTot*2), strcat(br, '/barrages'),2);
PSTHmetsINT.PSTH_bar = PSTH_bar;
PSTHmetsINT.barT = PSTH_t;

if useState == "NREM"
if contains(plotSave, 'clean')
save(strcat(basepath, filesep, 'Barrage_Files', filesep, 'PSTHmet', filesep, basename, '.clean.', br, 'PSTHmetsINT.mat'), 'PSTHmetsINT');
else
load([basepath filesep 'Barrage_Files' filesep basename '.' br 'int.cellinfo.mat']);
save(strcat(basepath, filesep, 'Barrage_Files', filesep, 'PSTHmet', filesep, basename, '.', br, 'PSTHmetsINT.mat'), 'PSTHmetsINT');
end
if ~isempty(spikes.times)
if plotRips
% PSTH_ripples = computePSTH(ripples,spikes,'duration',1,'plots', false,'alignment','peaks','zscorePlot',false);
% [PSTH_ripples,PSTH_t] = makePETH(spikes,ripples.timestamps(:,1),[-3 3]);
% [PSTH_ripples,PSTH_t] = makePETH(spikes,ripples.peaks,[-1 1]);
[PSTH_ripples, PSTH_t] = manualPSTH(spikes, ripples.timestamps(:,1),[-1 1],1/1000);
if runTags
warning('NOT ADJUSTED TO NEW DIMENSIONS');
% for k = 1:size(PSTH_ripples,1)
% if (max(PSTH_ripples(k,91:111))-max(PSTH_ripples(k,1:71))) > 1.5*std(PSTH_ripples(k,:))
% cell_metrics.tags.Pr = [cell_metrics.tags.Pr spikes.UID(k)];
% else
% cell_metrics.tags.Nr = [cell_metrics.tags.Nr spikes.UID(k)];
% end
% end
end
% index = getSort(PSTH_ripples);
index = 1:size(PSTH_ripples,1);
% PSTH_ripples = manualZscore(PSTH_ripples,spikes);
% PSTH_ripples = zscore(PSTH_ripples,1,2);
plotPSTH(PSTH_ripples, PSTH_t, index, regTot, subNum, strcat(check(i), '/ripples'),2);
PSTHmetsINT.PSTH_ripples = PSTH_ripples;
PSTHmetsINT.ripT = PSTH_t;
PSTHmetsINT.UID = spikes.UID;
end
% PSTH_bar = computePSTH(HSEnrem,spikes,'duration',1,'plots', false,'alignment','peaks','zscorePlot',false);
% [PSTH_bar,PSTH_t] = makePETH(spikes,HSEuse.timestamps(:,1),[-3 3]);
[PSTH_bar, PSTH_t] = manualPSTH(spikes, HSEuse.timestamps(:,1),[-1 1],1/1000);
if runTags
warning('NOT ADJUSTED TO NEW DIMENSIONS');
% for k = 1:size(PSTH_bar,1)
% if (mean(PSTH_bar(k,101:201))-mean(PSTH_bar(k,1:100))) > 0.3
% cell_metrics.tags.Pb = [cell_metrics.tags.Pb spikes.UID(k)];
% else
% cell_metrics.tags.Nb = [cell_metrics.tags.Nb spikes.UID(k)];
% end
% end
end
% [PSTH_bar,PSTH_t] = makePETH(spikes,HSEuse.peaks,[-1 1]);
% PSTH_bar = manualZscore(PSTH_bar,spikes);
% PSTH_bar = zscore(PSTH_bar, 1, 2);
plotPSTH(PSTH_bar, PSTH_t, index, regTot, subNum+(regTot*2), strcat(check(i), '/barrages'),2);
PSTHmetsINT.PSTH_bar = PSTH_bar;
PSTHmetsINT.barT = PSTH_t;

if useState == "NREM"
if contains(plotSave, 'clean')
save([basepath filesep 'Barrage_Files' filesep 'PSTHmet' filesep basename '.clean.' br 'PSTHmetsINT.mat'], 'PSTHmetsINT');
else
save([basepath filesep 'Barrage_Files' filesep 'PSTHmet' filesep basename '.' br 'PSTHmetsINT.mat'], 'PSTHmetsINT');
end
else
if contains(plotSave, 'clean')
save(strcat(basepath, filesep, 'Barrage_Files', filesep, useState, filesep, basename, '.clean.', br, 'PSTHmetsINT.mat'), 'PSTHmetsINT');
else
save(strcat(basepath, filesep, 'Barrage_Files', filesep, useState, filesep, basename, '.', br, 'PSTHmetsINT.mat'), 'PSTHmetsINT');
end
end

else
if contains(plotSave, 'clean')
save(strcat(basepath, filesep, 'Barrage_Files', filesep, useState, filesep, basename, '.clean.', br, 'PSTHmetsINT.mat'), 'PSTHmetsINT');
else
warning(['No interneurons in ' br]);
intEmpt = intEmpt+1;
save(strcat(basepath, filesep, 'Barrage_Files', filesep, useState, filesep, basename, '.', br, 'PSTHmetsINT.mat'), 'PSTHmetsINT');
end
subNum = subNum+1; % should max at 4
end

else
warning(['No interneurons in ' br]);
intEmpt = intEmpt+1;
end
subNum = subNum+1; % should max at 4
end
if ~(intEmpt == length(regions))
if ~(intEmpt == size(useReg,2))
sgtitle('Interneuron PSTH');
saveas(gcf,[plotSave 'PSTHint.png']);
end
Expand Down
Loading
Loading