brainpy.dyn.neurons.QuaIF#

class brainpy.dyn.neurons.QuaIF(size, V_rest=- 65.0, V_reset=- 68.0, V_th=- 30.0, V_c=- 50.0, c=0.07, R=1.0, tau=10.0, tau_ref=0.0, V_initializer=ZeroInit, keep_size=False, method='exp_auto', name=None)[source]#

Quadratic Integrate-and-Fire neuron model.

Model Descriptions

In contrast to physiologically accurate but computationally expensive neuron models like the Hodgkin–Huxley model, the QIF model 1 seeks only to produce action potential-like patterns and ignores subtleties like gating variables, which play an important role in generating action potentials in a real neuron. However, the QIF model is incredibly easy to implement and compute, and relatively straightforward to study and understand, thus has found ubiquitous use in computational neuroscience.

\[\tau \frac{d V}{d t}=c(V-V_{rest})(V-V_c) + RI(t)\]

where the parameters are taken to be \(c\) =0.07, and \(V_c = -50 mV\) (Latham et al., 2000).

Model Examples

>>> import brainpy as bp
>>>
>>> group = bp.dyn.QuaIF(1,)
>>>
>>> runner = bp.dyn.DSRunner(group, monitors=['V'], inputs=('input', 20.))
>>> runner.run(duration=200.)
>>> bp.visualize.line_plot(runner.mon.ts, runner.mon.V, show=True)

(Source code, png, hires.png, pdf)

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

Model Parameters

Parameter

Init Value

Unit

Explanation

V_rest

-65

mV

Resting potential.

V_reset

-68

mV

Reset potential after spike.

V_th

-30

mV

Threshold potential of spike and reset.

V_c

-50

mV

Critical voltage for spike initiation. Must be larger than V_rest.

c

.07

Coefficient describes membrane potential update. Larger than 0.

R

1

Membrane resistance.

tau

10

ms

Membrane time constant. Compute by R * C.

tau_ref

0

ms

Refractory period length.

Model Variables

Variables name

Initial Value

Explanation

V

0

Membrane potential.

input

0

External and synaptic input current.

spike

False

Flag to mark whether the neuron is spiking.

refractory

False

Flag to mark whether the neuron is in refractory period.

t_last_spike

-1e7

Last spike time stamp.

References

1

P. E. Latham, B.J. Richmond, P. Nelson and S. Nirenberg (2000) Intrinsic dynamics in neuronal networks. I. Theory. J. Neurophysiology 83, pp. 808–827.

__init__(size, V_rest=- 65.0, V_reset=- 68.0, V_th=- 30.0, V_c=- 50.0, c=0.07, R=1.0, tau=10.0, tau_ref=0.0, V_initializer=ZeroInit, keep_size=False, method='exp_auto', name=None)[source]#

Methods

__init__(size[, V_rest, V_reset, V_th, V_c, ...])

derivative(V, t, I_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, **kwargs)

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