brainpy.dyn.rates.FeedbackFHN#

class brainpy.dyn.rates.FeedbackFHN(size, a=0.7, b=0.8, delay=10.0, tau=12.5, mu=1.6886, v0=- 1, x_ou_mean=0.0, x_ou_sigma=0.0, x_ou_tau=5.0, y_ou_mean=0.0, y_ou_sigma=0.0, y_ou_tau=5.0, x_initializer=Uniform(min_val=0, max_val=0.05, seed=None), y_initializer=Uniform(min_val=0, max_val=0.05, seed=None), method='rk4', sde_method=None, name=None, keep_size=False, dt=None)[source]#

FitzHugh-Nagumo model with recurrent neural feedback.

The equation of the feedback FitzHugh-Nagumo model 4 is given by

\[\begin{split}\begin{aligned} \frac{dx}{dt} &= x(t) - \frac{x^3(t)}{3} - y(t) + \mu[x(t-\mathrm{delay}) - x_0] \\ \frac{dy}{dt} &= [x(t) + a - b y(t)] / \tau \end{aligned}\end{split}\]

Model Examples

>>> import brainpy as bp
>>> fhn = bp.dyn.FeedbackFHN(1, delay=10.)
>>> runner = bp.dyn.DSRunner(fhn, inputs=('input', 1.), monitors=['x', 'y'])
>>> runner.run(100.)
>>> bp.visualize.line_plot(runner.mon.ts, runner.mon.y, legend='y')
>>> bp.visualize.line_plot(runner.mon.ts, runner.mon.x, legend='x', show=True)

Model Parameters

Parameter

Init Value

Unit

Explanation

a

1

Positive constant

b

1

Positive constant

tau

12.5

ms

Membrane time constant.

delay

10

ms

Synaptic delay time constant.

V_th

1.8

mV

Threshold potential of spike.

v0

-1

mV

Resting potential.

mu

1.8

The feedback strength. When positive, it is a excitatory feedback; when negative, it is a inhibitory feedback.

Parameters
  • x_ou_mean (Parameter) – The noise mean of the \(x\) variable, [mV/ms]

  • y_ou_mean (Parameter) – The noise mean of the \(y\) variable, [mV/ms].

  • x_ou_sigma (Parameter) – The noise intensity of the \(x\) variable, [mV/ms/sqrt(ms)].

  • y_ou_sigma (Parameter) – The noise intensity of the \(y\) variable, [mV/ms/sqrt(ms)].

  • x_ou_tau (Parameter) – The timescale of the Ornstein-Uhlenbeck noise process of \(x\) variable, [ms].

  • y_ou_tau (Parameter) – The timescale of the Ornstein-Uhlenbeck noise process of \(y\) variable, [ms].

References

4

Plant, Richard E. (1981). A FitzHugh Differential-Difference Equation Modeling Recurrent Neural Feedback. SIAM Journal on Applied Mathematics, 40(1), 150–162. doi:10.1137/0140012

__init__(size, a=0.7, b=0.8, delay=10.0, tau=12.5, mu=1.6886, v0=- 1, x_ou_mean=0.0, x_ou_sigma=0.0, x_ou_tau=5.0, y_ou_mean=0.0, y_ou_sigma=0.0, y_ou_tau=5.0, x_initializer=Uniform(min_val=0, max_val=0.05, seed=None), y_initializer=Uniform(min_val=0, max_val=0.05, seed=None), method='rk4', sde_method=None, name=None, keep_size=False, dt=None)[source]#

Methods

__init__(size[, a, b, delay, tau, mu, v0, ...])

dx(x, t, y, x_ext)

dy(y, t, x, y_ext)

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

global_delay_vars

name

steps