brainpy.dyn.neurons.WangBuzsakiModel
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