BioNMDA#
- class brainpy.state.BioNMDA(in_size, name=None, alpha1=Quantity(2., "kHz"), beta1=Quantity(0.01, "kHz"), alpha2=Quantity(1., "1 / (mM * ms)"), beta2=Quantity(0.5, "kHz"), T=Quantity(1., "mM"), T_dur=Quantity(0.5, "ms"), g_initializer=Constant(value=0. mS), x_initializer=Constant(value=0.0))#
Biological NMDA receptor synapse model.
This class implements a detailed kinetic model of NMDA (N-methyl-D-aspartate) receptor-mediated synaptic transmission. NMDA receptors are ionotropic glutamate receptors that play a crucial role in synaptic plasticity, learning, and memory.
Unlike AMPA receptors, NMDA receptors exhibit both ligand-gating and voltage-dependent properties. The voltage dependence arises from the blocking of the receptor pore by extracellular magnesium ions (Mg²⁺) at resting potential. The model uses a second-order kinetic scheme to capture the dynamics of NMDA receptors:
\[ \frac{dg}{dt} = \alpha_1 x (1-g) - \beta_1 g \]\[ \frac{dx}{dt} = \alpha_2 [T] (1-x) - \beta_2 x \]\[ I_{syn} = g_{max} \cdot g \cdot g_{\infty}(V,[Mg^{2+}]_o) \cdot (V - E) \]where:
\(g\) represents the fraction of receptors in the open state
\(x\) is an auxiliary variable representing an intermediate state
\(\alpha_1, \beta_1\) are the conversion rates for the \(g\) variable [ms^-1]
\(\alpha_2, \beta_2\) are the conversion rates for the \(x\) variable [ms^-1] or [ms^-1 mM^-1]
\([T]\) is the neurotransmitter (glutamate) concentration [mM]
\(g_{\infty}(V,[Mg^{2+}]_o)\) is the voltage-dependent magnesium block function
\(I_{syn}\) is the resulting synaptic current
\(g_{max}\) is the maximum conductance
\(V\) is the membrane potential
\(E\) is the reversal potential
The magnesium block is typically modeled as:
\[ g_{\infty}(V,[Mg^{2+}]_o) = \frac{1}{1 + [Mg^{2+}]_o \cdot \exp(-a \cdot V) / b} \]The neurotransmitter concentration \([T]\) follows a square pulse of amplitude T and duration T_dur after each presynaptic spike.
- Parameters:
in_size (
Size) – Size of the input.name (
str, optional) – Name of the synapse instance.alpha1 (
ArrayLike, default2.0/u.ms) – Conversion rate of g from inactive to active [ms^-1].beta1 (
ArrayLike, default0.01/u.ms) – Conversion rate of g from active to inactive [ms^-1].alpha2 (
ArrayLike, default1.0/(u.ms*u.mM)) – Conversion rate of x from inactive to active [ms^-1 mM^-1].beta2 (
ArrayLike, default0.5/u.ms) – Conversion rate of x from active to inactive [ms^-1].T (
ArrayLike, default1.0*u.mM) – Peak neurotransmitter concentration when released [mM].T_dur (
ArrayLike, default0.5*u.ms) – Duration of neurotransmitter presence in the synaptic cleft [ms].g_initializer (
ArrayLikeorCallable, defaultinit.Constant(0. * u.mS)) – Initial value or initializer for the synaptic conductance.x_initializer (
ArrayLikeorCallable, defaultinit.Constant(0.)) – Initial value or initializer for the auxiliary state variable.
- g#
Fraction of receptors in the open state.
- Type:
HiddenState
- x#
Auxiliary state variable representing intermediate receptor state.
- Type:
HiddenState
- spike_arrival_time#
Time of the most recent presynaptic spike.
- Type:
ShortTermState
See also
Notes
NMDA receptors have slower kinetics compared to AMPA receptors [1], with rise times of several milliseconds and decay time constants of tens to hundreds of milliseconds.
The voltage-dependent magnesium block [4] is typically implemented in the output layer or postsynaptic neuron model, not in this synapse model itself.
NMDA receptors are permeable to calcium ions, which can trigger various intracellular signaling cascades important for synaptic plasticity [3].
This implementation uses an exponential Euler integration method for both state variables.
For structural information about NMDA receptors, see [2].
References
Examples
>>> import brainpy >>> import brainstate >>> import saiunit as u >>> # Create an NMDA synapse >>> nmda = brainpy.state.BioNMDA(100) >>> nmda.init_state(batch_size=1)