pub struct DendriticNMDANeuron {
pub v_soma: f64,
pub v_dend: f64,
pub g_nmda: f64,
pub e_nmda: f64,
pub mg_conc: f64,
pub g_coupling: f64,
pub tau_soma: f64,
pub tau_dend: f64,
pub theta: f64,
pub dt: f64,
}Expand description
Dendritic NMDA spike model.
Captures the non-linear voltage-dependent Mg²⁺ block of NMDA receptors in dendritic branches. NMDA current has a sigmoidal voltage dependence:
I_NMDA = g_NMDA · B(V) · (V - E_NMDA) B(V) = 1 / (1 + [Mg²⁺]/3.57 · exp(-0.062 · V))
This enables coincidence detection: the dendrite only passes current when both presynaptic glutamate AND postsynaptic depolarisation are present.
Reference: Jahr & Stevens (1990), Schiller et al. (2000).
Fields§
§v_soma: f64§v_dend: f64§g_nmda: f64§e_nmda: f64§mg_conc: f64§g_coupling: f64§tau_soma: f64§tau_dend: f64§theta: f64§dt: f64Implementations§
Source§impl DendriticNMDANeuron
impl DendriticNMDANeuron
pub fn new() -> Self
fn valid(&self) -> bool
fn derivatives( &self, v_soma: f64, v_dend: f64, i_soma: f64, glutamate: f64, ) -> (f64, f64)
fn rk4_substep( &self, v_soma: f64, v_dend: f64, i_soma: f64, glutamate: f64, ) -> (f64, f64)
Sourcepub fn step(&mut self, i_soma: f64, glutamate: f64) -> i32
pub fn step(&mut self, i_soma: f64, glutamate: f64) -> i32
Step with somatic input and dendritic glutamate.
pub fn reset(&mut self)
Trait Implementations§
Source§impl Clone for DendriticNMDANeuron
impl Clone for DendriticNMDANeuron
Source§fn clone(&self) -> DendriticNMDANeuron
fn clone(&self) -> DendriticNMDANeuron
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DendriticNMDANeuron
impl Debug for DendriticNMDANeuron
Auto Trait Implementations§
impl Freeze for DendriticNMDANeuron
impl RefUnwindSafe for DendriticNMDANeuron
impl Send for DendriticNMDANeuron
impl Sync for DendriticNMDANeuron
impl Unpin for DendriticNMDANeuron
impl UnsafeUnpin for DendriticNMDANeuron
impl UnwindSafe for DendriticNMDANeuron
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.