SigmoidalJansenRit
experimental.network_dynamics.coupling.SigmoidalJansenRit(
incoming_states=None,
local_states=None,
**kwargs,
)Sigmoidal Jansen-Rit coupling function.
Implements the coupling function used in Jansen and Rit neural mass models. Applies a sigmoidal transformation to the difference between two state variables (typically y1 and y2) before network summation, then scales the result.
Notes
The coupling implements:
\[c_i = G \cdot \sum_{j} w_{ij} \sigma(y1_j - y2_j)\]
where 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) |
None |
| local_states | str or list of str | State name(s) from current node (default: []) |
None |
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 Jansen-Rit coupling
>>> coupling = SigmoidalJansenRit(
... 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.SigmoidalJansenRit.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.SigmoidalJansenRit.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]