# 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:

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 \cdot 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 consciously.

## Parameters¶

The following parameters can be set in the status dictionary.

V_m |
mV |
Membrane potential |

C_m |
pF |
Capacitance of the membrane |

tau_m |
ms |
Membrane time constant |

q_sfa |
mV |
Adaptive threshold jump |

tau_sfa |
ms |
Adaptive threshold time constant |

dead_time |
ms |
Duration of the dead time |

dead_time_random |
boolean |
Should a random dead time be drawn after each spike? |

dead_time_shape |
integer |
Shape parameter of dead time gamma distribution |

t_ref_remaining |
ms |
Remaining dead time at simulation start |

with_reset |
boolean |
Should the membrane potential be reset after a spike? |

I_e |
pA |
Constant input current |

c_1 |
Hz/mV |
Slope of linear part of transfer function in Hz/mV |

c_2 |
Hz |
Prefactor of exponential part of transfer function |

c_3 |
1/mV |
Coefficient of exponential non-linearity of transfer function |

## References¶

## Sends¶

SpikeEvent

## Receives¶

SpikeEvent, CurrentEvent, DataLoggingRequest