Neural Models
A variety of neuron models are available to use within SNS-Toolbox, each with different dynamics.
Non-Spiking Neuron
Non-spiking neurons are simulated as leaky integrators, where the membrane depolarization (\(V\)) behaves according to the differential equation
where \(C_m\) is the membrane capacitance, \(G_m\) is the membrane leak conductance, \(V_{rest}\) is the resting potential, \(I_{bias}\) is a constant offset current, \(I_{app}\) is an external applied current, and \(I_{syn}\) is the current induced by an incoming conductance-based or electrical synapse.
Default values are as follows:
\(C_m = 5 nF\)
\(G_m = 1 \mu S\)
\(V_{rest} = 0 mV\)
\(I_{bias} = 0 mV\)
This neuron can be implemented using sns_toolbox.neurons.NonSpikingNeuron.
Spiking Neuron
Spiking neurons have similar dynamics to the classic non-spiking neuron, with an additional dynamic variable (\(\theta\)) that acts as a firing threshold:
where \(\tau_{\theta}\) is a threshold time constant, \(b\) is the threshold leak rate, \(\theta_0\) is an initial threshold voltage, and \(m\) is a proportionality constant describing how changes in \(U\) affect \(\theta\). These dynamics produce spiking behavior using the spiking variable \(\delta\), which represents a spike. When a spike occurs, the membrane is set to \(V_{reset}\) and the threshold is incremented by \(\theta_{inc}\):
Default values are as follows:
\(\tau_{\theta} = 5 ms\)
\(\theta_0 = 1 mV\)
\(m = 0\)
\(b = 1\)
\(\theta_{inc}=0\)
\(\theta_{floor}=V_{rest}\)
\(V_{reset}=V_{rest}\)
This neuron can be implemented using sns_toolbox.neurons.SpikingNeuron.
Non-Spiking Neuron with Gated Ion Channels
These neurons share the same dynamics as the classic non-spiking neuron, with additional ionic currents \(I_{ion}\).
\(I_{ion}\) represents currents flowing through voltage-gated ion channels, which can be responsible for additional nonlinear behavior:
Any neuron within a network can have any number of ion channels. \(G_{ion,j}\) is the maximum ionic conductance of the jth ion channel, and \(E_{ion,j}\) is the ionic reversal potential. \(b\) and \(c\) are dynamical gating variables, and have the following dynamics:
where functions of the form \(z_{\infty,j}\) are a voltage-dependent steady-state
and \(\tau_{z,j}(V)\) is a voltage-dependent time constant
\(p\) denotes an exponent, and \(E_{z,j}\) is the gate reversal potential. \(K_{z,j}\) and \(S_{z,j}\) are parameters for shaping the \(z_{\infty,j}(V)\) and \(\tau_{z,j}(V)\) curves. \(\tau_{max,z,j}\) is the maximum value of \(\tau_{z,j}(V)\).
This neuron can be implemented using sns_toolbox.neurons.NonSpikingNeuronWithGatedChannels.
Non-Spiking Neuron with Persistent Sodium Channel
These neurons are a special case of the non-spiking neuron with gated ion channels:
Default values of the channel are as follows:
\(G_{Na} = 1.049 \mu S\)
\(p_{h} = 1\)
\(E_{Na} = 110mV\)
\(K_m = 1\)
\(S_m = \frac{1}{2}\)
\(E_m = 20mV\)
\(K_h = \frac{1}{2}\)
\(S_h = -\frac{1}{2}\)
\(E_h = 0mV\)
\(\tau_{max,h} = 300ms\)
This neuron can be implemented using sns_toolbox.neurons.NonSpikingNeuronWithPersisitentSodiumChannel