brainpy.dyn.rates.QIF#

class brainpy.dyn.rates.QIF(size, tau=1.0, eta=- 5.0, delta=1.0, J=15.0, 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='exp_auto', name=None, keep_size=False, sde_method=None)[source]#

A mean-field model of a quadratic integrate-and-fire neuron population.

Model Descriptions

The QIF population mean-field model, which has been derived from a population of all-to-all coupled QIF neurons in 5. The model equations are given by:

\[\begin{split}\begin{aligned} \tau \dot{r} &=\frac{\Delta}{\pi \tau}+2 r v \\ \tau \dot{v} &=v^{2}+\bar{\eta}+I(t)+J r \tau-(\pi r \tau)^{2} \end{aligned}\end{split}\]

where \(r\) is the average firing rate and \(v\) is the average membrane potential of the QIF population 5.

This mean-field model is an exact representation of the macroscopic firing rate and membrane potential dynamics of a spiking neural network consisting of QIF neurons with Lorentzian distributed background excitabilities. While the mean-field derivation is mathematically only valid for all-to-all coupled populations of infinite size, it has been shown that there is a close correspondence between the mean-field model and neural populations with sparse coupling and population sizes of a few thousand neurons 6.

Model Parameters

Parameter

Init Value

Unit

Explanation

tau

1

ms

the population time constant

eta

-5.

the mean of a Lorenzian distribution over the neural excitability in the population

delta

1.0

the half-width at half maximum of the Lorenzian distribution over the neural excitability

J

15

the strength of the recurrent coupling inside the population

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

5(1,2)

E. Montbrió, D. Pazó, A. Roxin (2015) Macroscopic description for networks of spiking neurons. Physical Review X, 5:021028, https://doi.org/10.1103/PhysRevX.5.021028.

6

R. Gast, H. Schmidt, T.R. Knösche (2020) A Mean-Field Description of Bursting Dynamics in Spiking Neural Networks with Short-Term Adaptation. Neural Computation 32.9 (2020): 1615-1634.

__init__(size, tau=1.0, eta=- 5.0, delta=1.0, J=15.0, 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='exp_auto', name=None, keep_size=False, sde_method=None)[source]#

Methods

__init__(size[, tau, eta, delta, J, ...])

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.

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

global_delay_targets

global_delay_vars

name

steps