# brainmodels.neurons.QuaIF

class brainmodels.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, method='euler', **kwargs)[source]

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 brainmodels
>>> import brainpy as bp
>>>
>>> group = brainmodels.neurons.QuaIF(1, monitors=['V'])
>>>
>>> group.run(duration=200., inputs=('input', 20.), report=0.1)
>>> bp.visualize.line_plot(group.mon.ts, group.mon.V, show=True)
>>>
>>> group.run(duration=(200, 400.), report=0.1)
>>> bp.visualize.line_plot(group.mon.ts, group.mon.V, show=True)


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, method='euler', **kwargs)[source]

Methods

 __init__(size[, V_rest, V_reset, V_th, V_c, ...]) build_inputs([inputs, show_code]) build_monitors([show_code]) cpu() cuda() derivative(V, t, Iext) ints([method]) Collect all integrators in this node and the children nodes. load_states(filename[, verbose, check]) Load the model states. nodes([method, _paths]) Collect all children nodes. register_constant_delay(key, size, delay[, ...]) Register a constant delay. run(duration[, dt, report, inputs, extra_func]) The running function. save_states(filename[, all_vars]) Save the model states. step(t_and_dt, **kwargs) to(devices) tpu() train_vars([method]) 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. vars([method]) Collect all variables in this node and the children nodes.

Attributes

 implicit_nodes Used to wrap the implicit children nodes which cannot be accessed by self.xxx implicit_vars Used to wrap the implicit variables which cannot be accessed by self.xxx target_backend Used to specify the target backend which the model to run.