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)

../../../../_images/brainpy-dyn-neurons-MorrisLecar-1.png

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

http://www.scholarpedia.org/article/Morris-Lecar_model

6

https://en.wikipedia.org/wiki/Morris%E2%80%93Lecar_model

__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.

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.

vars([method, level, include_self])

Collect all variables in this node and the children nodes.

Attributes

derivative

global_delay_targets

global_delay_vars

name

steps