https://github.com/simkind/Patch-clamp-analysis
Raw File
Tip revision: bde5c7399d9f7c789feec0ee26ab5dad4a661d90 authored by simkind on 13 January 2021, 04:40:28 UTC
Create How to use.md
Tip revision: bde5c73
save_AHPanalysis.m
% Results should be struct containing sweeps

function [Results] = save_AHPanalysis(Results,filename)
    [Results] = bracket2nan(Results); % convert empty brackets into NaN
    label = {'ABF File','Sweep','Spike Number','Baseline (mV)','Spike Times (ms)',...
        'Spike Amplitude (mV)','Spike Threshold Time (ms)','Spike Threshold (mV)',...
        'Spike 1/2 Width-Baseline (ms)','Spike 1/2 Width-Threshold (ms)',...
        'Spike 1/2 Width-First Width (ms)','FastAHP Time (ms)','FastAHP Voltage(mV)',...
        'ISI (ms)','AHPstart Time (ms)','AHPpeak Time (ms)','AHPpeak Amplitude (mV)','AHP1s Time (ms)','AHP1s Amplitude (mV)'...
        'AHPend Time (ms)','AHPend Amplitude (mV)','AHP duration (ms)','AHP AUC (mv/s)',...
        'AHPtau Return Time (ms)','AHP Tau (ms)','AHPtau Amplitude (mV)'};
    writethis = [];
    for i = 1:length(Results) % for each sweep
        numspikes = Results(i).num_spikes;
        if i == length(Results)
            sweep = cellstr('Mean Sweep');
        else
            sweep = num2cell(i);
        end
        if numspikes > 1 % if more than 1 spike in the sweep
            writethistemp = [];
            for s = 1:numspikes
                writethistempspike = [];
                writethistempspike = [cellstr(filename), sweep 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
            AHPstuff = NaN(numspikes,12);
            AHPstuff(1,1) = Results(i).AHPstart_time;
            AHPstuff(1,2) = Results(i).AHPpeak_negative_time;
            AHPstuff(1,3) = Results(i).AHPpeak_negative_amplitude;
            AHPstuff(1,4) = Results(i).AHP1s_time;
            AHPstuff(1,5) = Results(i).AHP1s_mean_amplitude;
            AHPstuff(1,6) = Results(i).AHPend_time;
            AHPstuff(1,7) = Results(i).AHPend_amplitude;
            AHPstuff(1,8) = Results(i).AHPduration;
            AHPstuff(1,9) = Results(i).AHP_AreaUnderCurve;
            AHPstuff(1,10) = Results(i).Tau_time;
            AHPstuff(1,11) = Results(i).Tau_duration;
            AHPstuff(1,12) = Results(i).Tau_amplitude;
            writethistemp = [writethistemp, num2cell([NaN;Results(i).ISI]),num2cell(AHPstuff)];
    
        else
            if numspikes == 1
                s = 1;
            else
                s = NaN;
            end
            writethistemp = [];
            writethistemp = [cellstr(filename), sweep,s, num2cell(Results(i).baseline_potential),...
                num2cell(Results(i).peak_times), num2cell(Results(i).peak_to_baseline),num2cell(Results(i).threshold_time),...
                num2cell(Results(i).threshold_amplitude),num2cell(Results(i).SpikeWidth_Baseline),num2cell(Results(i).SpikeWidth_Threshold),...
                num2cell(Results(i).SpikeWidth_FirstSpike), num2cell(Results(i).FastAHP_Time), num2cell(Results(i).FastAHP_Voltage)];
            AHPstuff = NaN(1,12);
            AHPstuff = [Results(i).AHPstart_time, Results(i).AHPpeak_negative_time, Results(i).AHPpeak_negative_amplitude, Results(i).AHP1s_time,...
            Results(i).AHP1s_mean_amplitude, Results(i).AHPend_time,Results(i).AHPend_amplitude,Results(i).AHPduration,...
            Results(i).AHP_AreaUnderCurve, Results(i).Tau_time, Results(i).Tau_duration,Results(i).Tau_amplitude];
            
            writethistemp = [writethistemp, NaN,num2cell(AHPstuff)];
            
        end
        writethis = [writethis; writethistemp];
    end
    writethiswithlabel = [label; writethis];
    Table = writethiswithlabel;
    xlswrite(sprintf('%s AHPanalysis.xlsx',filename),writethiswithlabel)
    save(sprintf('%s AHPanalysis.mat',filename),'Results','Table')
end
back to top