brainpy.neurons.MorrisLecar#

class brainpy.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, rng=[ 751081251 3556638469]), noise=None, method='exp_auto', name=None, mode=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.neurons.MorrisLecar(1)
>>> runner = bp.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-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

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, rng=[ 952581584 1790409922]), noise=None, method='exp_auto', name=None, mode=None)[source]#

Methods

__init__(size[, keep_size, V_Ca, g_Ca, V_K, ...])

clear_input()

Function to clear inputs in the neuron group.

cpu()

Move all variable into the CPU device.

cuda()

Move all variables into the GPU device.

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_state_dict(state_dict[, warn])

Copy parameters and buffers from state_dict into this module and its descendants.

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[, node_cls])

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.

state_dict()

Returns a dictionary containing a whole state of the module.

to(device)

Moves all variables into the given device.

tpu()

Move all variables into the TPU device.

train_vars([method, level, include_self])

The shortcut for retrieving all trainable variables.

tree_flatten()

Flattens the object as a PyTree.

tree_unflatten(aux, dynamic_values)

New in version 2.3.1.

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

Global delay data, which stores the delay variables and corresponding delay targets.

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.