brainpy.dyn.neurons.WangBuzsakiModel#

class brainpy.dyn.neurons.WangBuzsakiModel(size, ENa=55.0, gNa=35.0, EK=- 90.0, gK=9.0, EL=- 65, gL=0.1, V_th=20.0, phi=5.0, C=1.0, V_initializer=OneInit(value=- 65.0), h_initializer=OneInit(value=0.6), n_initializer=OneInit(value=0.32), method='exp_auto', keep_size=False, name=None)[source]#

Wang-Buzsaki model 9, an implementation of a modified Hodgkin-Huxley model.

Each model is described by a single compartment and obeys the current balance equation:

\[C_{m} \frac{d V}{d t}=-I_{\mathrm{Na}}-I_{\mathrm{K}}-I_{\mathrm{L}}-I_{\mathrm{syn}}+I_{\mathrm{app}}\]

where \(C_{m}=1 \mu \mathrm{F} / \mathrm{cm}^{2}\) and \(I_{\mathrm{app}}\) is the injected current (in \(\mu \mathrm{A} / \mathrm{cm}^{2}\) ). The leak current \(I_{\mathrm{L}}=g_{\mathrm{L}}\left(V-E_{\mathrm{L}}\right)\) has a conductance \(g_{\mathrm{L}}=0.1 \mathrm{mS} / \mathrm{cm}^{2}\), so that the passive time constant \(\tau_{0}=C_{m} / g_{\mathrm{L}}=10 \mathrm{msec} ; E_{\mathrm{L}}=-65 \mathrm{mV}\).

The spike-generating \(\mathrm{Na}^{+}\) and \(\mathrm{K}^{+}\) voltage-dependent ion currents \(\left(I_{\mathrm{Na}}\right.\) and \(I_{\mathrm{K}}\) ) are of the Hodgkin-Huxley type (Hodgkin and Huxley, 1952). The transient sodium current \(I_{\mathrm{Na}}=g_{\mathrm{Na}} m_{\infty}^{3} h\left(V-E_{\mathrm{Na}}\right)\), where the activation variable \(m\) is assumed fast and substituted by its steady-state function \(m_{\infty}=\alpha_{m} /\left(\alpha_{m}+\beta_{m}\right)\) ; \(\alpha_{m}(V)=-0.1(V+35) /(\exp (-0.1(V+35))-1), \beta_{m}(V)=4 \exp (-(V+60) / 18)\). The inactivation variable \(h\) obeys a first-order kinetics:

\[\frac{d h}{d t}=\phi\left(\alpha_{h}(1-h)-\beta_{h} h\right)\]

where \(\alpha_{h}(V)=0.07 \exp (-(V+58) / 20)\) and \(\beta_{h}(V)=1 /(\exp (-0.1(V+28)) +1) \cdot g_{\mathrm{Na}}=35 \mathrm{mS} / \mathrm{cm}^{2}\) ; \(E_{\mathrm{Na}}=55 \mathrm{mV}, \phi=5 .\)

The delayed rectifier \(I_{\mathrm{K}}=g_{\mathrm{K}} n^{4}\left(V-E_{\mathrm{K}}\right)\), where the activation variable \(n\) obeys the following equation:

\[\frac{d n}{d t}=\phi\left(\alpha_{n}(1-n)-\beta_{n} n\right)\]

with \(\alpha_{n}(V)=-0.01(V+34) /(\exp (-0.1(V+34))-1)\) and \(\beta_{n}(V)=0.125\exp (-(V+44) / 80)\) ; \(g_{\mathrm{K}}=9 \mathrm{mS} / \mathrm{cm}^{2}\), and \(E_{\mathrm{K}}=-90 \mathrm{mV}\).

Parameters
  • size (sequence of int, int) – The size of the neuron group.

  • ENa (float, JaxArray, ndarray, Initializer, callable) – The reversal potential of sodium. Default is 50 mV.

  • gNa (float, JaxArray, ndarray, Initializer, callable) – The maximum conductance of sodium channel. Default is 120 msiemens.

  • EK (float, JaxArray, ndarray, Initializer, callable) – The reversal potential of potassium. Default is -77 mV.

  • gK (float, JaxArray, ndarray, Initializer, callable) – The maximum conductance of potassium channel. Default is 36 msiemens.

  • EL (float, JaxArray, ndarray, Initializer, callable) – The reversal potential of learky channel. Default is -54.387 mV.

  • gL (float, JaxArray, ndarray, Initializer, callable) – The conductance of learky channel. Default is 0.03 msiemens.

  • V_th (float, JaxArray, ndarray, Initializer, callable) – The threshold of the membrane spike. Default is 20 mV.

  • C (float, JaxArray, ndarray, Initializer, callable) – The membrane capacitance. Default is 1 ufarad.

  • phi (float, JaxArray, ndarray, Initializer, callable) – The temperature regulator constant.

  • V_initializer (JaxArray, ndarray, Initializer, callable) – The initializer of membrane potential.

  • h_initializer (JaxArray, ndarray, Initializer, callable) – The initializer of h channel.

  • n_initializer (JaxArray, ndarray, Initializer, callable) – The initializer of n channel.

  • method (str) – The numerical integration method.

  • name (str) – The group name.

References

9

Wang, X.J. and Buzsaki, G., (1996) Gamma oscillation by synaptic inhibition in a hippocampal interneuronal network model. Journal of neuroscience, 16(20), pp.6402-6413.

__init__(size, ENa=55.0, gNa=35.0, EK=- 90.0, gK=9.0, EL=- 65, gL=0.1, V_th=20.0, phi=5.0, C=1.0, V_initializer=OneInit(value=- 65.0), h_initializer=OneInit(value=0.6), n_initializer=OneInit(value=0.32), method='exp_auto', keep_size=False, name=None)[source]#

Methods

__init__(size[, ENa, gNa, EK, gK, EL, gL, ...])

dV(V, t, h, n, I_ext)

dh(h, t, V)

dn(n, t, V)

get_delay_data(name, delay_step, *indices)

Get delay data according to the provided delay steps.

ints([method])

Collect all integrators in this node and the children nodes.

load_states(filename[, verbose])

Load the model states.

m_inf(V)

nodes([method, level, include_self])

Collect all children nodes.

register_delay(name, delay_step, delay_target)

Register delay variable.

register_implicit_nodes(nodes)

register_implicit_vars(variables)

reset()

Reset function which reset the whole variables in the model.

reset_delay(name, delay_target)

Reset the delay variable.

save_states(filename[, variables])

Save the model states.

train_vars([method, level, include_self])

The shortcut for retrieving all trainable variables.

unique_name([name, type_])

Get the unique name for this object.

update(t, dt)

The function to specify the updating rule.

update_delay(name, delay_data)

Update the delay according to the delay data.

vars([method, level, include_self])

Collect all variables in this node and the children nodes.

Attributes

derivative

global_delay_vars

name

steps