WilsonCowanSimplifiedStep#
- class brainmass.WilsonCowanSimplifiedStep(in_size, tau_E=Quantity(1., 'ms'), a_E=1.2, theta_E=2.8, tau_I=Quantity(1., 'ms'), a_I=1.0, theta_I=4.0, w_exc=8.0, w_inh=12.0, r=1.0, noise_E=None, noise_I=None, rE_init=Constant(value=0.0), rI_init=Constant(value=0.0), method='exp_euler')#
Wilson-Cowan neural mass model with simplified connectivity.
This variant of the Wilson-Cowan model simplifies the connectivity by reducing the four connection weights to two parameters: one for excitatory connections (w_exc) and one for inhibitory connections (w_inh). This reduces the parameter space and can be useful for pedagogical purposes or initial exploration.
- Parameters:
in_size (
int|Sequence[int] |integer|Sequence[integer]) – Spatial shape of each population (E and I). Can be an int, a tuple of ints, or any size compatible withbrainstate.tau_E (
Callable|Array|ndarray|bool|number|bool|int|float|complex|Quantity|Param) – Excitatory time constant with unit of time (e.g.,1. * u.ms). Broadcastable toin_size. Default is1. * u.ms.a_E (
Callable|Array|ndarray|bool|number|bool|int|float|complex|Quantity|Param) – Excitatory gain (dimensionless). Broadcastable toin_size. Default is1.2.theta_E (
Callable|Array|ndarray|bool|number|bool|int|float|complex|Quantity|Param) – Excitatory threshold (dimensionless). Broadcastable toin_size. Default is2.8.tau_I (
Callable|Array|ndarray|bool|number|bool|int|float|complex|Quantity|Param) – Inhibitory time constant with unit of time (e.g.,1. * u.ms). Broadcastable toin_size. Default is1. * u.ms.a_I (
Callable|Array|ndarray|bool|number|bool|int|float|complex|Quantity|Param) – Inhibitory gain (dimensionless). Broadcastable toin_size. Default is1..theta_I (
Callable|Array|ndarray|bool|number|bool|int|float|complex|Quantity|Param) – Inhibitory threshold (dimensionless). Broadcastable toin_size. Default is4.0.w_exc (
Callable|Array|ndarray|bool|number|bool|int|float|complex|Quantity|Param) – Excitatory coupling strength (dimensionless). Applied to both E->E and E->I. Broadcastable toin_size. Default is8..w_inh (
Callable|Array|ndarray|bool|number|bool|int|float|complex|Quantity|Param) – Inhibitory coupling strength (dimensionless). Applied to both I->E and I->I. Broadcastable toin_size. Default is12..r (
Callable|Array|ndarray|bool|number|bool|int|float|complex|Quantity|Param) – Refractory parameter (dimensionless) that limits maximum activation. Broadcastable toin_size. Default is1..noise_E (
Noise) – Additive noise process for the excitatory population. If provided, its output is added torE_inpat each update. Default isNone.noise_I (
Noise) – Additive noise process for the inhibitory population. If provided, its output is added torI_inpat each update. Default isNone.rE_init (
Callable) – Parameter for the excitatory staterE. Default isbraintools.init.Constant(0.0).rI_init (
Callable) – Parameter for the inhibitory staterI. Default isbraintools.init.Constant(0.0).method (
str) – The numerical integration method to use. One of'exp_euler','euler','rk2', or'rk4', that is implemented inbraintools.quad. Default is'exp_euler'.
- Return type:
Any
- rE#
Excitatory population activity (dimensionless). Shape equals
(batch?,) + in_sizeafterinit_state.- Type:
brainstate.HiddenState
- rI#
Inhibitory population activity (dimensionless). Shape equals
(batch?,) + in_sizeafterinit_state.- Type:
brainstate.HiddenState
Notes
The continuous-time Wilson-Cowan equations with simplified connectivity are
\[\tau_E \frac{dr_E}{dt} = -r_E(t) + \bigl[1 - r\, r_E(t)\bigr] F_E\bigl(w_{exc} r_E(t) - w_{inh} r_I(t) + I_E(t)\bigr),\]\[\tau_I \frac{dr_I}{dt} = -r_I(t) + \bigl[1 - r\, r_I(t)\bigr] F_I\bigl(w_{exc} r_E(t) - w_{inh} r_I(t) + I_I(t)\bigr),\]with the sigmoidal transfer function
\[F_j(x) = \frac{1}{1 + e^{-a_j (x - \theta_j)}} - \frac{1}{1 + e^{a_j \theta_j}},\quad j \in \{E, I\}.\]Comparison to standard Wilson-Cowan:
Simplified connectivity: 2 weights (w_exc, w_inh) instead of 4 (wEE, wIE, wEI, wII)
Internal mapping: wEE = wIE = w_exc, wEI = wII = w_inh
Reduces parameter space from 11 to 8 parameters
Useful for pedagogical purposes and quick exploration
References
Wilson, H. R., & Cowan, J. D. (1972). Excitatory and inhibitory interactions in localized populations of model neurons. Biophysical Journal, 12, 1–24.
Examples
>>> import brainmass >>> import brainstate >>> import brainunit as u >>> brainstate.environ.set(dt=0.1 * u.ms) >>> model = brainmass.WilsonCowanSimplifiedStep(1) >>> _ = model.init_all_states() >>> out = model.update(rE_inp=0.5) >>> out.shape (1,)
- __init__(in_size, tau_E=Quantity(1., 'ms'), a_E=1.2, theta_E=2.8, tau_I=Quantity(1., 'ms'), a_I=1.0, theta_I=4.0, w_exc=8.0, w_inh=12.0, r=1.0, noise_E=None, noise_I=None, rE_init=Constant(value=0.0), rI_init=Constant(value=0.0), method='exp_euler')[source]#
- Parameters:
tau_E (Callable | Array | ndarray | bool | number | bool | int | float | complex | Quantity | Param)
a_E (Callable | Array | ndarray | bool | number | bool | int | float | complex | Quantity | Param)
theta_E (Callable | Array | ndarray | bool | number | bool | int | float | complex | Quantity | Param)
tau_I (Callable | Array | ndarray | bool | number | bool | int | float | complex | Quantity | Param)
a_I (Callable | Array | ndarray | bool | number | bool | int | float | complex | Quantity | Param)
theta_I (Callable | Array | ndarray | bool | number | bool | int | float | complex | Quantity | Param)
w_exc (Callable | Array | ndarray | bool | number | bool | int | float | complex | Quantity | Param)
w_inh (Callable | Array | ndarray | bool | number | bool | int | float | complex | Quantity | Param)
r (Callable | Array | ndarray | bool | number | bool | int | float | complex | Quantity | Param)
noise_E (Noise)
noise_I (Noise)
rE_init (Callable)
rI_init (Callable)
method (str)
- drE(rE, rI, ext)[source]#
Right-hand side for the excitatory population.
Must be implemented by subclasses.
- Parameters:
rE (array-like) – Excitatory activity (dimensionless).
rI (array-like) – Inhibitory activity (dimensionless), broadcastable to
rE.ext (array-like or scalar) – External input to E.
- Returns:
Time derivative
drE/dtwith unit of1/time.- Return type:
array-like
- drI(rI, rE, ext)[source]#
Right-hand side for the inhibitory population.
Must be implemented by subclasses.
- Parameters:
rI (array-like) – Inhibitory activity (dimensionless).
rE (array-like) – Excitatory activity (dimensionless), broadcastable to
rI.ext (array-like or scalar) – External input to I.
- Returns:
Time derivative
drI/dtwith unit of1/time.- Return type:
array-like