defaults close all nruns=10; ndiffs = 7; DATADIR='./data'; totcommon = zeros(nruns, ndiffs, 3); totfiring = zeros(nruns, ndiffs, 3, 2); totactive = zeros(nruns, ndiffs, 3, 2); totactive2 = zeros(nruns, ndiffs, 3, 2); overlap = zeros(nruns, ndiffs, 3); overlap2 = zeros(nruns, ndiffs, 3); coract = zeros(nruns, ndiffs); brsyns = zeros(nruns,npyrs*nbranches); brsynsH = zeros(nruns,10); nrnsyns = zeros(nruns,npyrs); nrnbins = [0:40]; nrnsynsH = zeros(nruns, length(nrnbins)); brcors = zeros( nruns, ndiffs); nrncors = zeros(nruns, ndiffs); brcommon = []; CONDITION='GPL'; ncase=1; conds = {'connectivityParam' ,'homeostasisTimeParam' ,'CREBTimeParam' ,'inhibitionParam' ,'globalPRPThresh' ,'localPRPThresh' ,'dendSpikeThresh' ,'initWeight' ,'maxWeight', 'nBranchesParam', 'nNeuronsParam'}; condLabels = {'Afferent connections' ,'Homeostasis time constant' ,'CREB time constant' ,'Feedback inhibition connections' ,'Somatic PRP threshold' ,'Local PRP Threshold' ,'Dendritic spike threshold' ,'Initial synapse weight' ,'Maximum synapse weight', 'Number of branches per neuron', 'Number of neurons'}; %conds = {'connectivityParam'}; %condLabels = {'Number of branches per neuron'}; PRPs = {'NPERTG', 'NPERTL', 'NPERT'}; boxes = []; boxesWS = []; for i=1:length(conds) CONDITION=conds{i} if (1) PRPs = {'PERT', 'PERTL', 'PERTG'}; for prp=1:length(PRPs) PRP=PRPs{prp} gpvalues={}; ncase=1; for gpv=0.7:0.1:1.3 if (strcmp(CONDITION,'nNeuronsParam')) npyrs = ceil(gpv*400); end for run=1:nruns sfn=sprintf('%s/%s_%s_%.1f_%d/spikesperpattern.dat', DATADIR, PRP, CONDITION, gpv, run-1) spk = load( sfn); spk = spk(:, 1:npyrs)/(stimduration/1000); %duration totactive(run, ncase, prp, :) = sum(spk>CUTOFF,2)/npyrs; totfiring(run, ncase, prp, 1) = mean(spk(1, :), 2); ffactive(run, ncase, prp, 1) = mean(spk(1, spk(1,:)>CUTOFF), 2); end for run=1:nruns sfn=sprintf('%s/N%s_%s_%.1f_%d/spikesperpattern.dat', DATADIR, PRP, CONDITION, gpv, run-1) spk = load( sfn); spk = spk(:, 1:npyrs)/(stimduration/1000); %duration totactive2(run, ncase, prp, :) = sum(spk>CUTOFF,2)/npyrs; end gpvalues{ncase} = sprintf('%.1f', gpv); ncase=ncase+1; end end figure mact = 100.0*mean(totactive,1); sact = 100.0*std(totactive,0,1)/(sqrt(nruns)); boxes(i,:) = mact(:,:,2)'; hold on errorbar(mact(:,:,1,2), sact(:,:,1,2)); errorbar(mact(:,:,2,2), sact(:,:,2,2), 'r'); errorbar(mact(:,:,3,2), sact(:,:,3,2), 'g'); if (~strcmp(CONDITION,'connectivityParam') && ~strcmp(CONDITION,'dendSpikeThresh')) mact2 = 100.0*mean(totactive2,1); sact2 = 100.0*std(totactive2,0,1)/(sqrt(nruns)); errorbar(mact2(:,:,1,2), sact2(:,:,1,2), '--'); errorbar(mact2(:,:,2,2), sact2(:,:,2,2), 'r--'); errorbar(mact2(:,:,3,2), sact2(:,:,3,2), 'g--'); end hold off set(gca, 'XTick', [1,4,7], 'XTickLabel',{'70%', '100%', '130%'}); xlabel(condLabels{i}); ylim([0,100]); set(gca, 'YTick', [0, 20,40,60,80]); %return ylabel('% coding neurons'); export_fig(sprintf('./Nfigs/ALLGP_%s.pdf',CONDITION), '-transparent') end if (1) PRPs = {'PERTWS', 'PERTWSL', 'PERTWSG'}; for prp =1:length(PRPs) PRP=PRPs{prp} gpvalues={}; ncase=1; for gpv=0.7:0.1:1.3 if (strcmp(CONDITION,'nNeuronsParam')) npyrs = ceil(gpv*400); end for run=1:nruns sfn=sprintf('%s/%s_%s_%.1f_%d/spikesperpattern.dat', DATADIR, PRP, CONDITION, gpv, run-1) spk = load( sfn); spk = spk(:, 1:npyrs)/(stimduration/1000); %duration spcut = spk>CUTOFF; ftot = sum(spcut(:)); if (ftot ==0) ftot = 1; end overlap(run, ncase, prp) = sum(spcut(1,:)&spcut(2,:) )/( ftot/2 ); end for run=1:nruns sfn=sprintf('%s/N%s_%s_%.1f_%d/spikesperpattern.dat', DATADIR, PRP, CONDITION, gpv, run-1) spk = load( sfn); spk = spk(:, 1:npyrs)/(stimduration/1000); %duration spcut = spk>CUTOFF; ftot = sum(spcut(:)); if (ftot ==0) ftot = 1; end overlap2(run, ncase, prp) = sum(spcut(1,:)&spcut(2,:) )/( ftot/2 ); end gpvalues{ncase} = sprintf('%.1f', gpv); ncase=ncase+1; end end figure mact = 100.0*mean(overlap,1); sact = 100.0*std(overlap,0,1)/(sqrt(nruns)); %boxesWS(i,:) = mact'; hold on errorbar(mact(:,:,1), sact(:,:,1)); errorbar(mact(:,:,2), sact(:,:,2), 'r'); errorbar(mact(:,:,3), sact(:,:,3), 'g'); if (~strcmp(CONDITION,'connectivityParam') && ~strcmp(CONDITION,'dendSpikeThresh')) mact2 = 100.0*mean(overlap2,1); sact2 = 100.0*std(overlap2,0,1)/(sqrt(nruns)); errorbar(mact2(:,:,1), sact2(:,:,1), '--'); errorbar(mact2(:,:,2), sact2(:,:,2), 'r--'); errorbar(mact2(:,:,3), sact2(:,:,3), 'g--'); end hold off %%errorbar(mact, sact); %set(gca, 'XTick', [1,6,11], 'XTickLabel',{'50%', '100%', '150%'}); set(gca, 'XTick', [1,4,7], 'XTickLabel',{'70%', '100%', '130%'}); xlabel(condLabels{i}); ylim([0,100]); %xlim([3,9]); set(gca, 'YTick', [0, 20,40,60,80]); ylabel('% overlapping neurons'); export_fig(sprintf('./Nfigs/ALLGPWS_%s.pdf',CONDITION), '-transparent') if (0) close all condLabels2 = {'Nin' ,'tH','tCREB' ,'Ninh' ,'soma' ,'local' ,'dspike' ,'winit' ,'wmax', 'Nbr', 'Nn'}; figure boxplot(boxes') ylabel('% coding neurons'); set(gca, 'XTick', [1:11]); set(gca, 'XTickLabel',condLabels2); rotateXLabels(gca, 90) export_fig(sprintf('./figs/GPWS_BOXES.pdf'), '-transparent') figure boxplot(boxesWS') ylabel('% overlapping neurons'); set(gca, 'XTick', [1:11]); set(gca, 'XTickLabel',condLabels2); rotateXLabels(gca, 90) export_fig(sprintf('./figs/GPWS_BOXESWS.pdf'), '-transparent') end end end %sensitivity conds if (0) X = []; Y=[]; nrow=1; for CREBTimeParam= 0.5:0.5:1.5 for connectivityParam= 0.5:0.5:1.5 for globalPRPThresh = 0.5:0.5:1.5 for localPRPThresh = 0.5:0.5:1.5 for dendSpikeThresh = 0.5:0.5:1.5 for initWeight = 0.5:0.5:1.5 for run = 0:4 fn = sprintf('%.1f_%.1f_%.1f_%.1f_%.1f_%.1f_%d', CREBTimeParam, connectivityParam, globalPRPThresh, localPRPThresh, dendSpikeThresh, initWeight, run) %${CREBTimeParam}_${connectivityParam}_${globalPRPThresh}_${localPRPThresh}_${dendSpikeThresh}_${initWeight}_${run} X(nrow, :) = [ CREBTimeParam, connectivityParam, globalPRPThresh, localPRPThresh, dendSpikeThresh, initWeight, run]; sfn=sprintf('./data/SENS_%s/spikesperpattern.dat', fn); spk = load( sfn); spk = spk(:, 1:npyrs)/(stimduration/1000); %duration totactive = sum(spk>CUTOFF,2)/npyrs; Y(nrow,1) = totactive; sfn=sprintf('./data/SENSWS_%s/spikesperpattern.dat', fn); spk = load( sfn); spk = spk(:, 1:npyrs)/(stimduration/1000); %duration spcut = spk>CUTOFF; ftot = sum(spcut(:)); if (ftot ==0) ftot = 1; end Y(nrow,2) = sum(spcut(1,:)&spcut(2,:) )/( ftot/2 ); nrow = nrow+1; end end end end end end end % ${CREBTimeParam}_${connectivityParam}_${globalPRPThresh}_${localPRPThresh}_${dendSpikeThresh}_${initWeight}_${run} condLabels = {'tCREB' ,'Nin' ,'soma' ,'local' ,'dspike' ,'winit', 'run'}; x = array2table(X); y = array2table(Y); opt = sdo.AnalyzeOptions; opt.Method = 'StandardizedRegression'; opt.MethodOptions = 'Ranked' r = sdo.analyze(x,y, opt) res = table2array(r); res = res(1:6, :); bar(abs(res)) ylabel('Correlation') xlabel('Parameter'); set(gca, 'XTickLabel',condLabels); %rotateXLabels(gca, 60) end