brainpy.dyn.neurons.MorrisLecar
brainpy.dyn.neurons.MorrisLecar#
- class brainpy.dyn.neurons.MorrisLecar(size, V_Ca=130.0, g_Ca=4.4, V_K=- 84.0, g_K=8.0, V_leak=- 60.0, g_leak=2.0, C=20.0, V1=- 1.2, V2=18.0, V3=2.0, V4=30.0, phi=0.04, V_th=10.0, W_initializer=OneInit(value=0.02), V_initializer=Uniform(min_val=- 70.0, max_val=- 60.0, seed=None), method='exp_auto', keep_size=False, name=None)[source]#
The Morris-Lecar neuron model.
Model Descriptions
The Morris-Lecar model 4 (Also known as \(I_{Ca}+I_K\)-model) is a two-dimensional “reduced” excitation model applicable to systems having two non-inactivating voltage-sensitive conductances. This model was named after Cathy Morris and Harold Lecar, who derived it in 1981. Because it is two-dimensional, the Morris-Lecar model is one of the favorite conductance-based models in computational neuroscience.
The original form of the model employed an instantaneously responding voltage-sensitive Ca2+ conductance for excitation and a delayed voltage-dependent K+ conductance for recovery. The equations of the model are:
\[\begin{split}\begin{aligned} C\frac{dV}{dt} =& - g_{Ca} M_{\infty} (V - V_{Ca})- g_{K} W(V - V_{K}) - g_{Leak} (V - V_{Leak}) + I_{ext} \\ \frac{dW}{dt} =& \frac{W_{\infty}(V) - W}{ \tau_W(V)} \end{aligned}\end{split}\]Here, \(V\) is the membrane potential, \(W\) is the “recovery variable”, which is almost invariably the normalized \(K^+\)-ion conductance, and \(I_{ext}\) is the applied current stimulus.
Model Examples
>>> import brainpy as bp >>> >>> group = bp.dyn.MorrisLecar(1) >>> runner = bp.dyn.DSRunner(group, monitors=['V', 'W'], inputs=('input', 100.)) >>> runner.run(1000) >>> >>> fig, gs = bp.visualize.get_figure(2, 1, 3, 8) >>> fig.add_subplot(gs[0, 0]) >>> bp.visualize.line_plot(runner.mon.ts, runner.mon.W, ylabel='W') >>> fig.add_subplot(gs[1, 0]) >>> bp.visualize.line_plot(runner.mon.ts, runner.mon.V, ylabel='V', show=True)
(Source code, png, hires.png, pdf)
Model Parameters
Parameter
Init Value
Unit
Explanation
V_Ca
130
mV
Equilibrium potentials of Ca+.(mV)
g_Ca
4.4
Maximum conductance of corresponding Ca+.(mS/cm2)
V_K
-84
mV
Equilibrium potentials of K+.(mV)
g_K
8
Maximum conductance of corresponding K+.(mS/cm2)
V_Leak
-60
mV
Equilibrium potentials of leak current.(mV)
g_Leak
2
Maximum conductance of leak current.(mS/cm2)
C
20
Membrane capacitance.(uF/cm2)
V1
-1.2
Potential at which M_inf = 0.5.(mV)
V2
18
Reciprocal of slope of voltage dependence of M_inf.(mV)
V3
2
Potential at which W_inf = 0.5.(mV)
V4
30
Reciprocal of slope of voltage dependence of W_inf.(mV)
phi
0.04
A temperature factor. (1/s)
V_th
10
mV
The spike threshold.
References
- 4
Meier, Stephen R., Jarrett L. Lancaster, and Joseph M. Starobin. “Bursting regimes in a reaction-diffusion system with action potential-dependent equilibrium.” PloS one 10.3 (2015): e0122401.
- 5
- 6
- __init__(size, V_Ca=130.0, g_Ca=4.4, V_K=- 84.0, g_K=8.0, V_leak=- 60.0, g_leak=2.0, C=20.0, V1=- 1.2, V2=18.0, V3=2.0, V4=30.0, phi=0.04, V_th=10.0, W_initializer=OneInit(value=0.02), V_initializer=Uniform(min_val=- 70.0, max_val=- 60.0, seed=None), method='exp_auto', keep_size=False, name=None)[source]#
Methods
__init__
(size[, V_Ca, g_Ca, V_K, g_K, ...])dV
(V, t, W, I_ext)dW
(W, 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.
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