Updated May 2026 for the Uni. of Bonn MSc Computational Neuroscience module.
This page provides a general overview of the modeling approach used to generate the neuronal responses. For a more precise description of the methods used here, check out the cited resources.
How it works
The response generator creates simulated single-neuron spike trains that look like stimulus-aligned neuronal recordings. The purpose is to generate populations of responsive and non-responsive units with controlled sets of parameters to test and compare methods for detecting stimulus-aligned responses.
We specifially want to generate convincing examples of human single unit responses, like the one below:

Example responsive unit with the key response characteristics highlighted.
At a high level, the generator starts with a baseline firing rate, adds an optional stimulus-driven response, and then produces spike rasters across repeated trials. These simulated rasters can be used as ground-truth examples where the user knows whether a response was actually present.
Approach
There are many ways to simulate neural responses. Since the goal here is to mimic the spiking activity of responsive single neurons, we model the overall behavior of the response as opposed to the generation process itself, with an emphasis on controlling the end response characteristics.
To do this, we simulate the stimulus-aligned neuronal spiking using an inhomogenous Poisson process [1].
Generally, a poisson process is a stochastic model that describes the occurrence of random events over time or space [2], assuming that each event is indepedent of all other events. A homogenous Poisson process also assumes that each moment of time or parcel of space is equally likely to contain an event. A homogenous Poisson process could be used to generate spike counts in a set of bins with a fixed length, assuming that each bin has the same probability of producing a spike [3]. With sufficiently short bins, we can use a Poisson process to model the probability of a single spike event, and thereby generate a spike train. A simple approach is:
-
Set the instantaneous firing rate, .
-
Set the spike-train duration, , and the bin width, .
-
Compute the number of bins:
- Draw one random number per bin:
- Compute the probability of a spike in each bin:
- Mark bin as containing a spike if:
- Collect the spike times from the matching bin indices:
❓ Question: The above algorithm generates a single spike train. How could you adapt it to produce a response raster?
An inhomogenous Poisson process takes this approach one step further by assuming that the likelihood of a spike is not constant across time. Instead of a constant instantaneous firing rate, , the inhomogenous form uses a time-varying firing rate, .
We use an inhomogenous process to generate the responses, since it allows us to flexibly set the baseline and response firing rates. The simplest way to produce a response in this framework is to use a step function as the rate function, where is set to the baseline firing rate for all time points outside of the response period, and set to the response firing rate during the response period:

Example inhomogeneous step-function firing rate.
❓ Question: Does this look like a physiological response? Why or why not?
Since neuronal responses in the human medial temporal lobe don't generally behave like step functions, we use another way to model the response firing. Instead of uniformly increasing the instantaneous response fucntion during the response period, we replace the response period with a Beta distribution parameterized to decrease smoothly across the response period:

Example inhomogeneous firing rate with a Beta-distributed response period.
❓ Question: Does this look like a physiological response? Why or why not?
Adding variability
Neural spike trains are not really Poisson processes, although this framework can be useful to describe spike trains. A major point absent from vanilla Poisson processes is the refractory period.
❓ Question: Considering what we've discussed so far, what defining feature of a Poisson process contradicts the neuronal refractory period?
To remedy this, we induce refractory periods after generating the response raster.
❓ Question: There are a few ways to do this. Can you think of a general method for enforcing a refractory period in already-generated data?
Last, neuronal spiking activity in the human cortex has a very distinctive property -- bursts. Bursts are brief periods of rapid firing activity and are usually associated with interneurons but show up in prinicipal cells as well. We include bursts by further modifying the rate function, :

Example responses without bursts (top row) and with bursts (bottom row).
❓ Question: What additional simulation parameters do you think burst generation requires?
Core parameters
Our model uses the following parameters:
| Parameter | Symbol | Description | Typical value / range |
|---|---|---|---|
| Baseline firing rate | Average firing rate outside the stimulus-driven response period. | e.g. 0.1–50 Hz | |
| Response firing rate | Peak firing rate during the stimulus-driven response. | e.g. greater than baseline | |
| Response latency | Time between stimulus onset and the start of the response. | e.g. 250–410 ms | |
| Response duration | Length of time over which the response is active. | e.g. 250–700 ms | |
| Bin width | Size of the time bins used when sampling spikes. | e.g. 1 ms | |
| Number of trials | Number of repeated stimulus presentations. | user-defined | |
| Burst rate | Rate at which short high-firing events are added. | optional | |
| Burst duration | Duration of each burst event. | optional |
These were chosen based on the characteristic features identified for single enurons recorded from the human medial temporal lobe.
❓ Question: What are some other features that could have been included? Why might those be useful to simulate?
References
[1] Heeger, D. (2000). Poisson Model of Spike Generation. New York University. https://www.cns.nyu.edu/~david/handouts/poisson.pdf
[2] GeeksforGeeks. (2025). Poisson Processes. https://www.geeksforgeeks.org/maths/poisson-processes/
[3] TU Chemnitz. Model neurons: Poisson neurons. https://www.tu-chemnitz.de/informatik/KI/scripts/ws0910/Neuron_Poisson.pdf