Simulating ion channel noise in an auditory brainstem neuron model (Schmerl & McDonnell 2013)

 Download zip file 
Help downloading and running models
" ... Here we demonstrate that biophysical models of channel noise can give rise to two kinds of recently discovered stochastic facilitation effects in a Hodgkin-Huxley-like model of auditory brainstem neurons. The first, known as slope-based stochastic resonance (SBSR), enables phasic neurons to emit action potentials that can encode the slope of inputs that vary slowly relative to key time constants in the model. The second, known as inverse stochastic resonance (ISR), occurs in tonically firing neurons when small levels of noise inhibit tonic firing and replace it with burstlike dynamics. ..." Preprint available at
1 . Schmerl BA, McDonnell MD (2013) Channel noise induced stochastic facilitation in an auditory brainstem neuron model Physical Review E 88:052722 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Channel/Receptor;
Brain Region(s)/Organism: Auditory brainstem;
Cell Type(s): Cochlear nucleus bushy GLU cell; CN stellate cell; Ventral cochlear nucleus T stellate (chopper) neuron; Hodgkin-Huxley neuron;
Channel(s): I h; I Sodium; I Potassium;
Gap Junctions:
Gene(s): Kv1.1 KCNA1; Kv3.1 KCNC1;
Simulation Environment: MATLAB;
Model Concept(s): Bursting; Ion Channel Kinetics; Action Potentials; Methods; Noise Sensitivity; Bifurcation; Audition;
Search NeuronDB for information about:  Cochlear nucleus bushy GLU cell; I h; I Sodium; I Potassium;
function [y]  = UpdateEquations(x,p,Params,NumChannelTypes,ActivationVarsPerChannelType,NumActivationVars,StatesPerChannelType,InputCurrent,Alphas,Betas)


V_old = x(1);
Activations_old = x(2:NumActivationVars+1);

V_rhs = 0;
Activation_rhs = zeros(NumActivationVars,1);
ActivationIndex = 1;
Ind = 1+NumActivationVars;
for i = 1:NumChannelTypes
    Ind = Ind+StatesPerChannelType(i);
    %get mean and fluctuations of fractions of open channel of this type
    Fracs_old = p{i}(StatesPerChannelType(i));
    Flucts_old = x(Ind);
    %update the membrane potential to include this ionic current
    %ensure the total conductance is bounded to the interval [0,gs(i)]
    V_rhs = V_rhs - gs(i)*(max(0,min(1,Fracs_old + Flucts_old))) *(V_old-Es(i));
    %update the activation variables for this ionic current
    for j = 1:ActivationVarsPerChannelType(i)
        Activation_rhs(ActivationIndex) = Alphas(ActivationIndex)*(1-Activations_old(ActivationIndex))-Betas(ActivationIndex)*Activations_old(ActivationIndex);
        ActivationIndex = ActivationIndex + 1;
%update with input current, leak current and capacitance
V_rhs = (V_rhs + InputCurrent - gs(end)*(V_old-Es(end)))/C;

%update membrane potential and activation variables
y = zeros(size(x));
y(1) = V_rhs;
y(2:NumActivationVars+1) = Activation_rhs;