using CSV, DataFrames, Plots, LaTeXStrings, Peaks, Glob V = DataFrame() for i ∈ 0:2 v0 = CSV.read("data/fi-curves/vm-$i.000000.txt", delim="\t", header=0, DataFrame) v0[:,"ID"] .= i V = [V; v0] end pks, vals = findmaxima(V[V.ID .== 0,20]) pks = pks[vals .> 0.0] ndrs, vals = findminima(V[V.ID .== 0, 20]) v0 = V[V.ID .== 0, :] plot(v0[:,1], v0[:,20]) scatter!(v0[pks,1], v0[pks,20]) scatter!(v0[ndrs,1], v0[ndrs,20]) """ find_spikes(v;thresh) Finds the spike peaks in a voltage tracing. Spikes are defined as those maxima that exceed some value `thresh` where default is that `thresh=0.0` """ function find_spikes(v::Vector{Float64};thresh::Float64=0.0) end """ mean_frequency(v) Mean frequency calculated as number of action potentials during stimulation divided by time between stimulus onset and last spike in Hz. """ function mean_frequency(v::Vector{Float64}) end """ isi_log_slope(v) Slope of loglog interspike intervals (ISI). """ function isi_log_slope(v::Vector{Float64}) end """ adaptation_index2(v) Normalized average difference of two consecutive ISI starting from second ISI. """ function adaptation_index2(v::Vector{Float64}) end """ time_to_first_spike(v) Time from stimulus onset to peak time of first spike in ms. """ function time_to_first_spike(v::Vector{Float64}) end """ time_to_last_spike(v) Time from stimulus onset to peak time of last spike in ms. """ function time_to_last_spike(v::Vector{Float64}) end """ AP_width(v) Mean of width at -20 mV of action potential (AP) in ms. Mean for all AP. """ function AP_width(v::Vector{Float64}) end """ AP_height(v) Height at peak of action potential in mV. Mean for all AP. """ function AP_height(v::Vector{Float64}) end """ min_voltage_between_spikes(v) Minimum voltage between two action potentials in mV. Mean for all ISI. """ function min_voltage_between_spikes(v::Vector{Float64}) end """ steady_state_voltage_stimend(v) The average voltage during the last 90% of the stimulus duration in mV. """ function steady_state_voltage_stimend(v::Vector{Float64}) end """ voltage_base(v) The average voltage during the last 90% before stimulus onset in mV. """ function voltage_base(v::Vector{Float64}) end """ voltage_after_stim(v) The average voltage between 25% and 75% between end of stimulus and end of recording in mV. """ function voltage_after_stim(v::Vector{Float64}) end