# brainpy.dyn.neurons.MorrisLecar#

class brainpy.dyn.neurons.MorrisLecar(size, keep_size=False, 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=5716301), noise=None, method='exp_auto', name=None, mode=NormalMode)[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)
>>> bp.visualize.line_plot(runner.mon.ts, runner.mon.W, ylabel='W')
>>> bp.visualize.line_plot(runner.mon.ts, runner.mon.V, ylabel='V', show=True)


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

Lecar, Harold. “Morris-lecar model.” Scholarpedia 2.10 (2007): 1333.

5

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

6

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

__init__(size, keep_size=False, 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=5716301), noise=None, method='exp_auto', name=None, mode=NormalMode)[source]#

Methods

 __init__(size[, keep_size, V_Ca, g_Ca, V_K, ...]) clear_input() Function to clear inputs in the neuron group. dV(V, t, W, I_ext) dW(W, t, V) get_batch_shape([batch_size]) get_delay_data(identifier, delay_step, *indices) Get delay data according to the provided delay steps. load_states(filename[, verbose]) Load the model states. nodes([method, level, include_self]) Collect all children nodes. offline_fit(target, fit_record) offline_init() online_fit(target, fit_record) online_init() register_delay(identifier, delay_step, ...) Register delay variable. register_implicit_nodes(*nodes, **named_nodes) register_implicit_vars(*variables, ...) reset([batch_size]) Reset function which reset the whole variables in the model. reset_local_delays([nodes]) Reset local delay variables. reset_state([batch_size]) Reset function which reset the states 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(tdi[, x]) The function to specify the updating rule. update_local_delays([nodes]) Update local delay variables. vars([method, level, include_self]) Collect all variables in this node and the children nodes.

Attributes

 derivative global_delay_data mode Mode of the model, which is useful to control the multiple behaviors of the model. name Name of the model. varshape The shape of variables in the neuron group.