pub struct SKNeuron {}Expand description
SK channel neuron — WB base + Ca2+-only-dependent K+ current.
SK (KCa2.x) channels are activated solely by intracellular Ca2+ (no voltage dependence). They have slower kinetics than BK and produce the medium afterhyperpolarisation (mAHP) lasting 50-200 ms after spikes.
Key mechanism for:
- Medium AHP (mAHP): limits sustained firing rate
- Spike frequency adaptation: Ca2+ builds → SK activates → firing slows
- Rhythmic firing patterns: SK-mediated pauses create regular ISIs
- Synaptic plasticity gating: SK in dendritic spines regulates NMDA currents
Stocker, Nat Rev Neurosci 5:758, 2004; Wang & Buzsáki, J Neurosci 16:6402, 1996. The threshold-reset event, the spike-triggered Ca2+ increment, and the Hill constants are repository-specific specialisations of that review material, not a publication-exact recurrence.
Fields§
§v: f64§h: f64§n: f64§ca: f64§g_na: f64§g_k: f64§g_sk: f64§g_l: f64§e_na: f64§e_k: f64§e_l: f64§c_m: f64§phi: f64§tau_ca: f64§dt: f64§v_threshold: f64§gain: f64Implementations§
Source§impl SKNeuron
impl SKNeuron
pub fn new() -> Self
fn valid(&self) -> bool
Sourcepub fn try_step(&mut self, current: f64) -> Result<i32, &'static str>
pub fn try_step(&mut self, current: f64) -> Result<i32, &'static str>
Advance one step after validating the drive and configuration.
Computes the whole update on a candidate clone and commits only on
success: a non-finite current, a configuration outside the public
bounds, or a non-finite candidate returns Err with the pre-step
state preserved exactly.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SKNeuron
impl RefUnwindSafe for SKNeuron
impl Send for SKNeuron
impl Sync for SKNeuron
impl Unpin for SKNeuron
impl UnsafeUnpin for SKNeuron
impl UnwindSafe for SKNeuron
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
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> ⓘ
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> ⓘ
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>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.