DelayedSigmoidalJansenRit

experimental.network_dynamics.coupling.DelayedSigmoidalJansenRit(
    buffer_strategy='roll',
    **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
incoming_states tuple of str Tuple of two state names, e.g., ('y1', 'y2') (required) required
local_states 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(
...     incoming_states=('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: States from connected nodes in per-edge format [n_incoming, n_nodes_target, n_nodes_source] Expected: n_incoming=2 (y1 and y2) local_states: Local node states (unused in this implementation) params: Coupling parameters (cmin, cmax, midpoint, r)

Returns: Transformed states after sigmoidal coupling [1, n_nodes_target, n_nodes_source]