mip_generator – Create spike trains as described by the MIP model


The mip_generator generates correlated spike trains using an Multiple Interaction Process (MIP) as described in [1]. Underlying principle is a Poisson parent process with rate r, the spikes of which are copied into the child processes with a certain probability p. Every node the mip_generator is connected to receives a distinct child process as input, whose rate is p*r. The value of the pairwise correlation coefficient of two child processes created by a MIP process equals p.

The MIP generator may emit more than one spike through a child process during a single time step, especially at high rates. If this happens, the generator does not actually send out n spikes. Instead, it emits a single spike with n-fold synaptic weight for the sake of efficiency. Furthermore, note that as with the Poisson generator, different threads have their own copy of a MIP generator. By using the same mother_seed it is ensured that the mother process is identical for each of the generators.

All stimulation devices share the parameters start and stop, which control the stimulation period. The property origin is a global offset that shifts the stimulation period. All three values are set as times in ms.

  • For spike-emitting devices, only spikes with times t that fulfill \(\mathrm{start} < t \leq \mathrm{stop}\) are emitted. Spikes that have timestamp of \(t = \mathrm{start}\) are not emitted.

  • For current-emitting devices, the current is activated and deactivated such that the current first affects the target dynamics during the update step \((\mathrm{start}, \mathrm{start}+h]\), that is, an effect can be recorded at the earliest at time \(\mathrm{start}+h\). The last interval during which the current affects the target’s dynamics is \((\textrm{stop}-h, \textrm{stop}]\).

The property stimulus_source defaults to an empty string. It can be set to the name of a stimulation backend, in which case it will take its parameters from the configured backend instead of from the internally stored values. More details on available backends and their properties can be found in the guide to stimulating the network.



A string specifying an arbitrary textual label for the device. Stimulation backends might use the label to generate device specific identifiers like filenames and such. Default: "".


A positive floating point number used as the reference time in ms for start and stop. Default: 0.0.


A positive floating point number specifying the activation time in ms, relative to origin. Default: 0.0.


A string specifying the name of the stimulation backend from which to get the data for updating the stimulus parameters of the device. By default, the device uses its internally stored parameters for updating the stimulus. Default: "".


A floating point number specifying the deactivation time in ms, relative to origin. The value of stop must be greater than or equal to start. Default: infinity.


Mean firing rate of the parent process, spikes/s


Copy probability

Set parameters from a stimulation backend

The parameters in this stimulation device can be updated with input coming from a stimulation backend. The data structure used for the update holds one value for each of the parameters mentioned above. The indexing is as follows:

  1. rate

  2. p_copy




See also

Device, Generator

Examples using this model