# Point process (PP) neurons¶

class pp_pop_psc_delta : public Node
#include <pp_pop_psc_delta.h>

Name: pp_pop_psc_delta - Population of point process neurons with leaky integration of delta-shaped PSCs.

Description:

pp_pop_psc_delta is an effective model of a population of neurons. The N component neurons are assumed to be spike response models with escape noise, also known as generalized linear models. We follow closely the nomenclature of [1]. The component neurons are a special case of pp_psc_delta (with purely exponential rate function, no reset and no random dead_time). All neurons in the population share the inputs that it receives, and the output is the pooled spike train.

The instantaneous firing rate of the N component neurons is defined as

$rate(t) = \rho_0 * \exp( (h(t) - \eta(t))/\delta_u ),$

where h(t) is the input potential (synaptic delta currents convolved with an exponential kernel with time constant tau_m), eta(t) models the effect of refractoriness and adaptation (the neuron’s own spike train convolved with a sum of exponential kernels with time constants tau_eta), and delta_u sets the scale of the voltages.

To represent a (homogeneous) population of N inhomogeneous renewal process neurons, we can keep track of the numbers of neurons that fired a certain number of time steps in the past. These neurons will have the same value of the hazard function (instantaneous rate), and we draw a binomial random number for each of these groups. This algorithm is thus very similar to ppd_sup_generator and gamma_sup_generator, see also [2].

However, the adapting threshold eta(t) of the neurons generally makes the neurons non-renewal processes. We employ the quasi-renewal approximation [1], to be able to use the above algorithm. For the extension of [1] to coupled populations see [3].

In effect, in each simulation time step, a binomial random number for each of the groups of neurons has to be drawn, independent of the number of represented neurons. For large N, it should be much more efficient than simulating N individual pp_psc_delta models.

pp_pop_psc_delta emits spike events like other neuron models, but no more than one per time step. If several component neurons spike in the time step, the multiplicity of the spike event is set accordingly. Thus, to monitor its output, the multiplicity of the spike events has to be taken into account. Alternatively, the internal variable n_events gives the number of spikes emitted in a time step, and can be monitored using a multimeter.

EDIT Nov 2016: pp_pop_psc_delta is now deprecated, because a new and presumably much faster population model implementation is now available, see gif_pop_psc_exp.

Parameters:

The following parameters can be set in the status dictionary.

 N integer Number of represented neurons tau_m ms Membrane time constant C_m pF Capacitance of the membrane rho_0 1/s Base firing rate delta_u mV Voltage scale parameter I_e pA Constant input current tau_eta list of ms Time constants of post-spike kernel val_eta list of mV Amplitudes of exponentials in post-spike-kernel len_kernel real Post-spike kernel eta is truncated after max(tau_eta) * len_kernel

The parameters correspond to the ones of pp_psc_delta as follows.

 c_1 0.0 c_2 rho_0 c_3 1/delta_u q_sfa val_eta tau_sfa tau_eta I_e I_e dead_time simulation resolution dead_time_random False with_reset False t_ref_remaining 0.0

References:

1

Naud R, Gerstner W (2012). Coding and decoding with adapting neurons: a population approach to the peri-stimulus time histogram. PLoS Compututational Biology 8: e1002711. DOI: https://doi.org/10.1371/journal.pcbi.1002711

2

Deger M, Helias M, Boucsein C, Rotter S (2012). Statistical properties of superimposed stationary spike trains. Journal of Computational Neuroscience 32:3, 443-463. DOI: https://doi.org/10.1007/s10827-011-0362-8

3

Deger M, Schwalger T, Naud R, Gerstner W (2014). Fluctuations and information filtering in coupled populations of spiking neurons with adaptation. Physical Review E 90:6, 062704. DOI: https://doi.org/10.1103/PhysRevE.90.062704

Sends: SpikeEvent

Author: May 2014, Setareh, Deger

SeeAlso: gif_pop_psc_exp, pp_psc_delta, ppd_sup_generator, gamma_sup_generator

class pp_psc_delta : public Archiving_Node
#include <pp_psc_delta.h>

Name: pp_psc_delta - Point process neuron with leaky integration of delta-shaped PSCs.

Description:

pp_psc_delta is an implementation of a leaky integrator, where the potential jumps on each spike arrival. It produces spike stochastically, and supports spike-frequency adaptation, and other optional features.

Spikes are generated randomly according to the current value of the transfer function which operates on the membrane potential. Spike generation is followed by an optional dead time. Setting with_reset to true will reset the membrane potential after each spike.

The transfer function can be chosen to be linear, exponential or a sum of both by adjusting three parameters:

$rate = Rect[ c_1 * V' + c_2 * \exp(c_3 * V') ],$

where the effective potential $$V' = V_m - E_{sfa}$$ and $$E_{sfa}$$ is called the adaptive threshold. Here Rect means rectifier: $$Rect(x) = {x \text{ if } x>=0, 0 \text{ else}}$$ (this is necessary because negative rates are not possible).

By setting c_3 = 0, c_2 can be used as an offset spike rate for an otherwise linear rate model.

The dead time enables to include refractoriness. If dead time is 0, the number of spikes in one time step might exceed one and is drawn from the Poisson distribution accordingly. Otherwise, the probability for a spike is given by $$1 - \exp(-rate*h)$$, where h is the simulation time step. If dead_time is smaller than the simulation resolution (time step), it is internally set to the resolution.

Note that, even if non-refractory neurons are to be modeled, a small value of dead_time, like dead_time=1e-8, might be the value of choice since it uses faster uniform random numbers than dead_time=0, which draws Poisson numbers. Only for very large spike rates (> 1 spike/time_step) this will cause errors.

The model can optionally include an adaptive firing threshold. If the neuron spikes, the threshold increases and the membrane potential will take longer to reach it. Here this is implemented by subtracting the value of the adaptive threshold E_sfa from the membrane potential V_m before passing the potential to the transfer function, see also above. E_sfa jumps by q_sfa when the neuron fires a spike, and decays exponentially with the time constant tau_sfa after (see [2] or [3]). Thus, the E_sfa corresponds to the convolution of the neuron’s spike train with an exponential kernel. This adaptation kernel may also be chosen as the sum of n exponential kernels. To use this feature, q_sfa and tau_sfa have to be given as a list of n values each.

The firing of pp_psc_delta is usually not a renewal process. For example, its firing may depend on its past spikes if it has non-zero adaptation terms (q_sfa). But if so, it will depend on all its previous spikes, not just the last one so it is not a renewal process model. However, if “with_reset” is True, and all adaptation terms (q_sfa) are 0, then it will reset (“forget”) its membrane potential each time a spike is emitted, which makes it a renewal process model (where “rate” above is its hazard function, also known as conditional intensity).

pp_psc_delta may also be called a spike-response model with escape-noise [6] (for vanishing, non-random dead_time). If c_1>0 and c_2==0, the rate is a convolution of the inputs with exponential filters which is a model known as a Hawkes point process (see [4]). If instead c_1==0, then pp_psc_delta is a point process generalized linear model (with the canonical link function, and exponential input filters) (see [5,6]).

This model has been adapted from iaf_psc_delta. The default parameters are set to the mean values given in [2], which have been matched to spike-train recordings. Due to the many features of pp_psc_delta and its versatility, parameters should be set carefully and conciously.

Parameters:

The following parameters can be set in the status dictionary.

References:

1

Cardanobile S, Rotter S (2010). Multiplicatively interacting point processes and applications to neural modeling. Journal of Computational Neuroscience 28(2):267-284 DOI: https://doi.org/10.1007/s10827-009-0204-0

2

Jolivet R, Rauch A, Luescher H-R, Gerstner W. (2006). Predicting spike timing of neocortical pyramidal neurons by simple threshold models. Journal of Computational Neuroscience 21:35-49. DOI: https://doi.org/10.1007/s10827-006-7074-5

3

Pozzorini C, Naud R, Mensi S, Gerstner W (2013). Temporal whitening by power-law adaptation in neocortical neurons. Nature Neuroscience 16:942-948. (Uses a similar model of multi-timescale adaptation) DOI: https://doi.org/10.1038/nn.3431

4

Grytskyy D, Tetzlaff T, Diesmann M, Helias M (2013). A unified view on weakly correlated recurrent networks. Frontiers in Computational Neuroscience, 7:131. DOI: https://doi.org/10.3389/fncom.2013.00131

5

Deger M, Schwalger T, Naud R, Gerstner W (2014). Fluctuations and information filtering in coupled populations of spiking neurons with adaptation. Physical Review E 90:6, 062704. DOI: https://doi.org/10.1103/PhysRevE.90.062704

6

Gerstner W, Kistler WM, Naud R, Paninski L (2014). Neuronal Dynamics: From single neurons to networks and models of cognition. Cambridge University Press

Sends: SpikeEvent