https://github.com/simkind/Patch-clamp-analysis
Raw File
Tip revision: 1732ada9c8b7f1432fe3fd494fa00a27e29425ff authored by simkind on 16 March 2024, 19:13:22 UTC
Add files via upload
Tip revision: 1732ada
save_Bursts.m
% Results should be struct containing sweeps

function [Results] = save_Bursts(Results,accommresult,filename)
    [Results] = bracket2nan(Results); % convert empty brackets into NaN
    label = {'ABF File','Sweep','Spike Number','Baseline (mV)','Spike Times (ms)','Spike Amplitude (mV)','ISI (ms)',...
        'Current','1s # Spike','ISI 1s Spikes','150ms # Spike','ISI 150ms Spikes','Hz 150ms','Accommodating?'};
    writethis = [];
    for i = 1:length(Results) % for each sweep
        numspikes = Results(i).num_spikes;
       
        
        if numspikes > 1
            writethistemp = [];
            for s = 1:numspikes
                writethistempspike = [];
                writethistempspike = [cellstr(filename), i, s, num2cell(Results(i).baseline_potential),...
                    num2cell(Results(i).peak_times(s)), num2cell(Results(i).peak_to_baseline(s))];
%                 ,num2cell(Results(i).threshold_time(s)),...
%                     num2cell(Results(i).threshold_amplitude(s)),num2cell(Results(i).SpikeWidth_Baseline(s)),num2cell(Results(i).SpikeWidth_Threshold(s)),...
%                     num2cell(Results(i).SpikeWidth_FirstSpike(s)), num2cell(Results(i).FastAHP_Time(s)), num2cell(Results(i).FastAHP_Voltage(s))];
                writethistemp = [writethistemp; writethistempspike];
            end
            X = NaN(numspikes,1);
            Y = NaN(numspikes,1);
            T = NaN(numspikes,1);
            U = NaN(numspikes,1);
            V = NaN(numspikes,1);
            Z = NaN(numspikes,1);
            X(1:length(Results(i).ISIspikes1sec)) = Results(i).ISIspikes1sec;
            Y(1:length(Results(i).ISIspikes150ms)) = Results(i).ISIspikes150ms;
            T(1) = Results(i).current;
            U(1) = Results(i).num_spikes1sec; 
            V(1) = Results(i).num_spikes150ms;
            Z(1) = Results(i).hz_150;
            writethistemp = [writethistemp, num2cell([NaN;Results(i).ISI]), num2cell(T),...
                num2cell(U), num2cell(X), num2cell(V), num2cell(Y), num2cell(Z)];
        else
            if numspikes == 1
                s = 1;
            X = NaN(numspikes,1);
            Y = NaN(numspikes,1);
            else
                s = NaN;
            X = NaN(1,1);
            Y = NaN(1,1);
            
            end
            A = NaN;

            writethistemp = [];
            writethistemp = [cellstr(filename), i,s, num2cell(Results(i).baseline_potential),...
                num2cell(Results(i).peak_times), num2cell(Results(i).peak_to_baseline),num2cell(A),num2cell(Results(i).current),...
                num2cell(Results(i).num_spikes1sec), num2cell(X),num2cell(Results(i).num_spikes150ms), num2cell(Y), num2cell(Results(i).hz_150)];
            
        end
        writethis = [writethis; writethistemp];
    end
    accomm = num2cell(nan(size(writethis,1),1));
    if accommresult == 0
        accomm(1) = {'No'};
    elseif accommresult == 1
        accomm(1) = {'Yes'};
    elseif isnan(accommresult)
        accomm(1) = {'Unknown'};
    else
        accomm(1) = {'Unknown'};
    end
    
    writethiswithlabel = [label; [writethis, accomm]];
    Table = writethiswithlabel;
    xlswrite(sprintf('%s Bursts.xlsx',filename),writethiswithlabel)
    save(sprintf('%s Bursts.mat',filename),'Results','Table')
end
back to top