# 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