# 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 j^{th} 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