MgBlock

Contents

MgBlock#

class brainpy.state.MgBlock(E=0.0, cc_Mg=1.2, alpha=0.062, beta=3.57, V_offset=0.0)#

Synaptic output with voltage-dependent magnesium (Mg2+) block.

Models NMDA-receptor-mediated synaptic transmission where extracellular magnesium ions block the receptor channel pore at hyperpolarized potentials. The output current is:

\[I_{\mathrm{syn}}(t) = g_{\mathrm{syn}}(t) \, (E - V(t)) \, g_{\infty}(V, [{Mg}^{2+}]_o)\]

where the fraction of unblocked channels is:

\[g_{\infty}(V, [{Mg}^{2+}]_o) = \left( 1 + \frac{[{Mg}^{2+}]_o}{\beta} \, e^{-\alpha \, (V - V_{\mathrm{offset}})} \right)^{-1}\]

Here \([{Mg}^{2+}]_o\) is the extracellular magnesium concentration, \(\alpha\) and \(\beta\) are kinetic constants, and \(V_{\mathrm{offset}}\) is an optional voltage offset.

Parameters:
  • E (ArrayLike, default 0.) – Reversal potential of the NMDA synapse (mV).

  • cc_Mg (ArrayLike, default 1.2) – Extracellular magnesium concentration (mM).

  • alpha (ArrayLike, default 0.062) – Voltage sensitivity of the Mg2+ block (/mV).

  • beta (ArrayLike, default 3.57) – Mg2+ unbinding constant (mM).

  • V_offset (ArrayLike, default 0.) – Voltage offset applied before computing the block factor (mV).

See also

COBA

Conductance-based output without voltage-dependent block.

BioNMDA

Biophysical NMDA receptor synapse dynamics.

Notes

  • At resting potential (~-65 mV), the Mg2+ block is nearly complete and the NMDA conductance contributes little current. As the membrane depolarizes (e.g., via AMPA input), the block is progressively relieved, creating a voltage-dependent coincidence detection mechanism [1].

  • The default parameters (alpha=0.062, beta=3.57, cc_Mg=1.2) correspond to the widely used fit from Jahr & Stevens (1990) [2].

  • This module is typically paired with BioNMDA or a slow exponential synapse model to capture full NMDA receptor dynamics.

References

Examples

>>> import brainpy
>>> import saiunit as u
>>> # Standard NMDA Mg2+ block
>>> mg_block = brainpy.state.MgBlock(E=0. * u.mV, cc_Mg=1.2)
>>> # Reduced Mg2+ concentration (e.g., Mg-free solution)
>>> mg_free = brainpy.state.MgBlock(E=0. * u.mV, cc_Mg=0.0)