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
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 [f,Conductances] =  EulerMaruyama(x,dt,ModelSwitch,NoiseSwitches,Params,NumChannelTypes,ActivationVarsPerChannelType,NumActivationVars,StatesPerChannelType,InputCurrent,NumChannelsEachType)

%get activation and inactivation rates (Alphas and Betas) for current membrane potential
%also find the A matrices (returned in a cell array, where each cell is a different channel type type)
%also find the state probabilities (returns in a cell array, p, where each cell is a different channel type)
[A,p,Alphas,Betas] = UpdateDriftAndOccupancies(x,NumActivationVars,StatesPerChannelType,ModelSwitch);

%extract the conductances from the last element of the p vectors
Conductances = zeros(1,NumChannelTypes);
for i  = 1:NumChannelTypes
    Conductances(1,i) = p{i}(end);

%update V and activation variables, using their previous values and fluctuations at previous time step
%for these variables, we just use the Euler method
f = x + dt*UpdateEquations(x,p,Params,NumChannelTypes,ActivationVarsPerChannelType,NumActivationVars,StatesPerChannelType,InputCurrent,Alphas,Betas);

%update the associated SDEs using the Euler-Maruyama method
j = NumActivationVars + 1;
for i  = 1:NumChannelTypes
    k = StatesPerChannelType(i);
    if NoiseSwitches(i) == 1
        %DiffusionFunc finds the necessary matrix square roots of the diffusion matrices formed from the A matrices
        f(j+1:j+k) = f(j+1:j+k) + dt * A{i}*x(j+1:j+k) + sqrt(dt) * UpdateDiffusionMatrixSquareRoot(A{i},p{i},NumChannelsEachType(i)) * randn(k,1);
    j = j + k;

Loading data, please wait...