DelayedSigmoidalJansenRit

experimental.network_dynamics.coupling.DelayedSigmoidalJansenRit(
    buffer_strategy='roll',
    warn_on_delay_clamp=False,
    history_interpolation=None,
    **kwargs,
)

Sigmoidal Jansen-Rit coupling with transmission delays.

Implements the delayed coupling function used in Jansen and Rit neural mass models. Applies a sigmoidal transformation to the difference between two delayed state variables (typically y1 and y2) before network summation, then scales the result.

Notes

The coupling implements:

\[c_i(t) = G \cdot \sum_{j} w_{ij} \sigma(y1_j(t - \tau_{ij}) - y2_j(t - \tau_{ij}))\]

where \(\tau_{ij}\) are the transmission delays and the sigmoid function is defined as:

\[\sigma(x) = c_{\text{min}} + \frac{c_{\text{max}} - c_{\text{min}}}{1 + e^{r(m - x)}}\]

with \(m\) being the midpoint and \(r\) the steepness.

Parameters

Name Type Description Default
source tuple of str Tuple of two state names, e.g., ('y1', 'y2') (required) required
local str or list of str State name(s) from current node (default: []) required

Attributes

Name Type Description
N_OUTPUT_STATES int Number of output coupling states: 1
DEFAULT_PARAMS Bunch Default parameters: G=1.0 (global coupling strength), cmin=0.0 (sigmoid minimum), cmax=0.005 (sigmoid maximum), midpoint=6.0 (sigmoid center), r=0.56 (sigmoid steepness)

Examples

>>> # Typical delayed Jansen-Rit coupling
>>> coupling = DelayedSigmoidalJansenRit(
...     source=('y1', 'y2'),
...     G=1.0,
...     cmax=0.005
... )

Methods

Name Description
post Scale summed coupling inputs.
pre Apply sigmoidal transformation to state difference.

post

experimental.network_dynamics.coupling.DelayedSigmoidalJansenRit.post(
    summed_inputs,
    local_states,
    params,
)

Scale summed coupling inputs.

Args: summed_inputs: Sum of coupling inputs after network summation [1, n_nodes] local_states: Local node states (unused) params: Coupling parameters (G)

Returns: Scaled coupling output [1, n_nodes]

pre

experimental.network_dynamics.coupling.DelayedSigmoidalJansenRit.pre(
    incoming_states,
    local_states,
    params,
)

Apply sigmoidal transformation to state difference.

Args: incoming_states: Aligned delayed messages [2, *M] for y1 and y2. local_states: Local node states (unused in this implementation) params: Coupling parameters (cmin, cmax, midpoint, r)

Returns: Transformed messages [1, *M].