Documentation ¶
Overview ¶
Package chans provides standard neural conductance channels for computing a point-neuron approximation based on the standard equivalent RC circuit model of a neuron (i.e., basic Ohms law equations). Includes excitatory, leak, inhibition, and dynamic potassium channels.
Package chans provides standard neural conductance channels for computing a point-neuron approximation based on the standard equivalent RC circuit model of a neuron (i.e., basic Ohms law equations). Includes excitatory, leak, inhibition, and dynamic potassium channels.
It also includes implementations of other important types of channels such as NMDA, GABA-B, and VGCC.
Index ¶
- func VFmBio(vm float32) float32
- func VToBio(vm float32) float32
- type AKParams
- func (ap *AKParams) AlphaFmVK(vbio, k float32) float32
- func (ap *AKParams) BetaFmVK(vbio, k float32) float32
- func (ap *AKParams) DMHFmV(v, m, h float32) (float32, float32)
- func (ap *AKParams) Defaults()
- func (ap *AKParams) Distal()
- func (ap *AKParams) Gak(m, h float32) float32
- func (ap *AKParams) HFmV(vbio float32) float32
- func (ap *AKParams) HTauFmV(vbio float32) float32
- func (ap *AKParams) KFmV(vbio float32) float32
- func (ap *AKParams) MFmAlpha(alpha float32) float32
- func (ap *AKParams) MTauFmAlphaBeta(alpha, beta float32) float32
- func (ap *AKParams) Proximal()
- func (ap *AKParams) Update()
- type AKsParams
- type Chans
- type GABABParams
- func (gp *GABABParams) BiExp(g, x float32, dG, dX *float32)
- func (gp *GABABParams) Defaults()
- func (gp *GABABParams) GABAB(gi float32, gabaB, gabaBx *float32)
- func (gp *GABABParams) GFmS(s float32) float32
- func (gp *GABABParams) GFmV(v float32) float32
- func (gp *GABABParams) GgabaB(gabaB, vm float32) float32
- func (gp *GABABParams) Update()
- type KNaMedSlow
- type KNaParams
- type MahpParams
- func (mp *MahpParams) DNFmV(v, n float32) float32
- func (mp *MahpParams) Defaults()
- func (mp *MahpParams) EFun(z float32) float32
- func (mp *MahpParams) GmAHP(n float32) float32
- func (mp *MahpParams) NinfTauFmV(vbio float32, ninf, tau *float32)
- func (mp *MahpParams) NinfTauFmVnorm(v float32, ninf, tau *float32)
- func (mp *MahpParams) Update()
- type NMDAParams
- func (np *NMDAParams) CaFmV(v float32) float32
- func (np *NMDAParams) CaFmVbio(vbio float32) float32
- func (np *NMDAParams) Defaults()
- func (np *NMDAParams) Gnmda(nmda, vm float32) float32
- func (np *NMDAParams) MgGFmV(v float32) float32
- func (np *NMDAParams) MgGFmVbio(vbio float32) float32
- func (np *NMDAParams) NMDASyn(nmda, raw float32) float32
- func (np *NMDAParams) SnmdaFmSpike(spike float32, snmdaO, snmdaI *float32)
- func (np *NMDAParams) Update()
- func (np *NMDAParams) VFactors(v float32, mgg, cav *float32)
- type SKCaParams
- func (sp *SKCaParams) CaInRFmSpike(spike, caD float32, caIn, caR *float32)
- func (sp *SKCaParams) Defaults()
- func (sp *SKCaParams) MAsympGW06(cai float32) float32
- func (sp *SKCaParams) MAsympHill(cai float32) float32
- func (sp *SKCaParams) MFmCa(caR, mcur float32) float32
- func (sp *SKCaParams) Update()
- type SahpParams
- func (mp *SahpParams) CaInt(caInt, ca float32) float32
- func (mp *SahpParams) DNFmV(ca, n float32) float32
- func (mp *SahpParams) Defaults()
- func (mp *SahpParams) EFun(z float32) float32
- func (mp *SahpParams) GsAHP(n float32) float32
- func (mp *SahpParams) NinfTauFmCa(ca float32, ninf, tau *float32)
- func (mp *SahpParams) Update()
- type VGCCParams
- func (np *VGCCParams) CaFmG(v, g, ca float32) float32
- func (np *VGCCParams) DMHFmV(v, m, h float32, dm, dh *float32)
- func (np *VGCCParams) Defaults()
- func (np *VGCCParams) GFmV(v float32) float32
- func (np *VGCCParams) Gvgcc(vm, m, h float32) float32
- func (np *VGCCParams) HFmV(vbio float32) float32
- func (np *VGCCParams) MFmV(vbio float32) float32
- func (np *VGCCParams) Update()
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AKParams ¶ added in v1.2.96
type AKParams struct { // [def: 1,0.1,0.01] strength of AK current Gbar float32 `def:"1,0.1,0.01" desc:"strength of AK current"` // [def: 0.01446,02039] [viewif: Gbar>0] multiplier for the beta term; 0.01446 for distal, 0.02039 for proximal dendrites Beta float32 `viewif:"Gbar>0" def:"0.01446,02039" desc:"multiplier for the beta term; 0.01446 for distal, 0.02039 for proximal dendrites"` // [def: 0.5,0.25] [viewif: Gbar>0] Dm factor: 0.5 for distal, 0.25 for proximal Dm float32 `viewif:"Gbar>0" def:"0.5,0.25" desc:"Dm factor: 0.5 for distal, 0.25 for proximal"` // [def: 1.8,1.5] [viewif: Gbar>0] offset for K, 1.8 for distal, 1.5 for proximal Koff float32 `viewif:"Gbar>0" def:"1.8,1.5" desc:"offset for K, 1.8 for distal, 1.5 for proximal"` // [def: 1,11] [viewif: Gbar>0] voltage offset for alpha and beta functions: 1 for distal, 11 for proximal Voff float32 `viewif:"Gbar>0" def:"1,11" desc:"voltage offset for alpha and beta functions: 1 for distal, 11 for proximal"` // [def: 0.1133,0.1112] [viewif: Gbar>0] h multiplier factor, 0.1133 for distal, 0.1112 for proximal Hf float32 `viewif:"Gbar>0" def:"0.1133,0.1112" desc:"h multiplier factor, 0.1133 for distal, 0.1112 for proximal"` // contains filtered or unexported fields }
AKParams control an A-type K channel, which is voltage gated with maximal activation around -37 mV. It has two state variables, M (v-gated opening) and H (v-gated closing), which integrate with fast and slow time constants, respectively. H relatively quickly hits an asymptotic level of inactivation for sustained activity patterns. It is particularly important for counteracting the excitatory effects of voltage gated calcium channels which can otherwise drive runaway excitatory currents. See AKsParams for a much simpler version that works fine when full AP-like spikes are not simulated, as in our standard axon models.
func (*AKParams) AlphaFmVK ¶ added in v1.2.96
AlphaFmVK returns the Alpha function from vbio (not normalized, must not exceed 0)
func (*AKParams) BetaFmVK ¶ added in v1.2.96
BetaFmVK returns the Beta function from vbio (not normalized, must not exceed 0)
func (*AKParams) DMHFmV ¶ added in v1.2.96
DMHFmV returns the change at msec update scale in M, H factors as a function of V normalized (0-1)
func (*AKParams) Defaults ¶ added in v1.2.96
func (ap *AKParams) Defaults()
Defaults sets the parameters for distal dendrites
func (*AKParams) Distal ¶ added in v1.2.96
func (ap *AKParams) Distal()
Distal sets the parameters for distal dendrites
func (*AKParams) HFmV ¶ added in v1.2.96
HFmV returns the H gate value from vbio (not normalized, must not exceed 0)
func (*AKParams) HTauFmV ¶ added in v1.2.96
HTauFmV returns the HTau rate constant in msec from vbio (not normalized, must not exceed 0)
func (*AKParams) KFmV ¶ added in v1.2.96
KFmV returns the K value from vbio (not normalized, must not exceed 0)
func (*AKParams) MTauFmAlphaBeta ¶ added in v1.2.96
MTauFmAlphaBeta returns the MTau rate constant in msec from alpha, beta
type AKsParams ¶ added in v1.3.23
type AKsParams struct { // [def: 2,0.1,0.01] strength of AK current Gbar float32 `def:"2,0.1,0.01" desc:"strength of AK current"` // [def: 0.076] [viewif: Gbar>0] H factor as a constant multiplier on overall M factor result -- rescales M to level consistent with H being present at full strength Hf float32 `` /* 167-byte string literal not displayed */ // [def: 0.075] [viewif: Gbar>0] multiplier for M -- determines slope of function Mf float32 `viewif:"Gbar>0" def:"0.075" desc:"multiplier for M -- determines slope of function"` // [def: 2] [viewif: Gbar>0] voltage offset in biological units for M function Voff float32 `viewif:"Gbar>0" def:"2" desc:"voltage offset in biological units for M function"` // [viewif: Gbar>0] Vmax float32 `viewif:"Gbar>0" def:-37" desc:"voltage level of maximum channel opening -- stays flat above that"` // contains filtered or unexported fields }
AKsParams provides a highly simplified stateless A-type K channel that only has the voltage-gated activation (M) dynamic with a cutoff that ends up capturing a close approximation to the much more complex AK function. This is voltage gated with maximal activation around -37 mV. It is particularly important for counteracting the excitatory effects of voltage gated calcium channels which can otherwise drive runaway excitatory currents.
func (*AKsParams) Defaults ¶ added in v1.3.23
func (ap *AKsParams) Defaults()
Defaults sets the parameters for distal dendrites
func (*AKsParams) Gak ¶ added in v1.3.23
Gak returns the conductance as a function of normalized Vm GBar * MFmVnorm(v)
type Chans ¶
type Chans struct { // excitatory sodium (Na) AMPA channels activated by synaptic glutamate E float32 `desc:"excitatory sodium (Na) AMPA channels activated by synaptic glutamate"` // constant leak (potassium, K+) channels -- determines resting potential (typically higher than resting potential of K) L float32 `desc:"constant leak (potassium, K+) channels -- determines resting potential (typically higher than resting potential of K)"` // inhibitory chloride (Cl-) channels activated by synaptic GABA I float32 `desc:"inhibitory chloride (Cl-) channels activated by synaptic GABA"` // gated / active potassium channels -- typically hyperpolarizing relative to leak / rest K float32 `desc:"gated / active potassium channels -- typically hyperpolarizing relative to leak / rest"` }
Chans are ion channels used in computing point-neuron activation function
func (*Chans) SetFmMinusOther ¶
SetFmMinusOther sets all the values from given value minus other Chans
func (*Chans) SetFmOtherMinus ¶
SetFmOtherMinus sets all the values from other Chans minus given value
type GABABParams ¶ added in v1.2.96
type GABABParams struct { // [def: 0,0.012,0.015] overall strength multiplier of GABA-B current. The 0.015 default is a high value that works well in smaller networks -- larger networks may benefit from lower levels (e.g., 0.012). Gbar float32 `` /* 207-byte string literal not displayed */ // [def: 45] [viewif: Gbar>0] rise time for bi-exponential time dynamics of GABA-B RiseTau float32 `viewif:"Gbar>0" def:"45" desc:"rise time for bi-exponential time dynamics of GABA-B"` // [def: 50] [viewif: Gbar>0] decay time for bi-exponential time dynamics of GABA-B DecayTau float32 `viewif:"Gbar>0" def:"50" desc:"decay time for bi-exponential time dynamics of GABA-B"` // [def: 0.2] [viewif: Gbar>0] baseline level of GABA-B channels open independent of inhibitory input (is added to spiking-produced conductance) Gbase float32 `` /* 146-byte string literal not displayed */ // [def: 10] [viewif: Gbar>0] multiplier for converting Gi to equivalent GABA spikes GiSpike float32 `viewif:"Gbar>0" def:"10" desc:"multiplier for converting Gi to equivalent GABA spikes"` // [viewif: Gbar>0] time offset when peak conductance occurs, in msec, computed from RiseTau and DecayTau MaxTime float32 `viewif:"Gbar>0" inactive:"+" desc:"time offset when peak conductance occurs, in msec, computed from RiseTau and DecayTau"` // [view: -] time constant factor used in integration: (Decay / Rise) ^ (Rise / (Decay - Rise)) TauFact float32 `view:"-" desc:"time constant factor used in integration: (Decay / Rise) ^ (Rise / (Decay - Rise))"` // [view: -] 1/Tau RiseDt float32 `view:"-" inactive:"+" desc:"1/Tau"` // [view: -] 1/Tau DecayDt float32 `view:"-" inactive:"+" desc:"1/Tau"` // contains filtered or unexported fields }
GABABParams control the GABAB dynamics in PFC Maint neurons, based on Brunel & Wang (2001) parameters.
func (*GABABParams) BiExp ¶ added in v1.2.96
func (gp *GABABParams) BiExp(g, x float32, dG, dX *float32)
BiExp computes bi-exponential update, returns dG and dX deltas to add to g and x
func (*GABABParams) Defaults ¶ added in v1.2.96
func (gp *GABABParams) Defaults()
func (*GABABParams) GABAB ¶ added in v1.2.96
func (gp *GABABParams) GABAB(gi float32, gabaB, gabaBx *float32)
GABAB returns the updated GABA-B / GIRK activation and underlying x value based on current values and gi inhibitory conductance (proxy for GABA spikes)
func (*GABABParams) GFmS ¶ added in v1.2.96
func (gp *GABABParams) GFmS(s float32) float32
GFmS returns the GABA-B conductance as a function of GABA spiking rate, based on normalized spiking factor (i.e., Gi from FFFB etc)
func (*GABABParams) GFmV ¶ added in v1.2.96
func (gp *GABABParams) GFmV(v float32) float32
GFmV returns the GABA-B conductance as a function of normalized membrane potential
func (*GABABParams) GgabaB ¶ added in v1.2.96
func (gp *GABABParams) GgabaB(gabaB, vm float32) float32
GgabaB returns the overall net GABAB / GIRK conductance including Gbar, Gbase, and voltage-gating
func (*GABABParams) Update ¶ added in v1.2.96
func (gp *GABABParams) Update()
type KNaMedSlow ¶ added in v1.5.2
type KNaMedSlow struct { // if On, apply K-Na adaptation On slbool.Bool `desc:"if On, apply K-Na adaptation"` // engages an optional version of Slow that discretely turns on at start of new trial (NewState): nrn.GknaSlow += Slow.Max * nrn.SpkPrv -- achieves a strong form of adaptation TrialSlow slbool.Bool `` /* 179-byte string literal not displayed */ // [view: inline] [viewif: On] medium time-scale adaptation Med KNaParams `viewif:"On" view:"inline" desc:"medium time-scale adaptation"` // [view: inline] [viewif: On] slow time-scale adaptation Slow KNaParams `viewif:"On" view:"inline" desc:"slow time-scale adaptation"` // contains filtered or unexported fields }
KNaMedSlow describes sodium-gated potassium channel adaptation mechanism. Evidence supports 2 different time constants: Slick (medium) and Slack (slow)
func (*KNaMedSlow) Defaults ¶ added in v1.5.2
func (ka *KNaMedSlow) Defaults()
func (*KNaMedSlow) GcFmSpike ¶ added in v1.5.2
func (ka *KNaMedSlow) GcFmSpike(gKNaM, gKNaS *float32, spike bool)
GcFmSpike updates med, slow time scales of KNa adaptation from spiking
func (*KNaMedSlow) Update ¶ added in v1.5.2
func (ka *KNaMedSlow) Update()
type KNaParams ¶ added in v1.5.2
type KNaParams struct { // if On, use this component of K-Na adaptation On slbool.Bool `desc:"if On, use this component of K-Na adaptation"` // [viewif: On] Rise rate of fast time-scale adaptation as function of Na concentration due to spiking -- directly multiplies -- 1/rise = tau for rise rate Rise float32 `` /* 158-byte string literal not displayed */ // [viewif: On] Maximum potential conductance of fast K channels -- divide nA biological value by 10 for the normalized units here Max float32 `` /* 133-byte string literal not displayed */ // [viewif: On] time constant in cycles for decay of adaptation, which should be milliseconds typically (tau is roughly how long it takes for value to change significantly -- 1.4x the half-life) Tau float32 `` /* 197-byte string literal not displayed */ // [view: -] 1/Tau rate constant Dt float32 `view:"-" desc:"1/Tau rate constant"` // contains filtered or unexported fields }
KNaParams implements sodium (Na) gated potassium (K) currents that drive adaptation (accommodation) in neural firing. As neurons spike, driving an influx of Na, this activates the K channels, which, like leak channels, pull the membrane potential back down toward rest (or even below).
type MahpParams ¶ added in v1.5.3
type MahpParams struct { // strength of mAHP current Gbar float32 `desc:"strength of mAHP current"` // [def: -30] [viewif: Gbar>0] voltage offset (threshold) in biological units for infinite time N gating function -- where the gate is at 50% strength Voff float32 `` /* 152-byte string literal not displayed */ // [def: 9] [viewif: Gbar>0] slope of the arget (infinite time) gating function Vslope float32 `viewif:"Gbar>0" def:"9" desc:"slope of the arget (infinite time) gating function"` // [def: 1000] [viewif: Gbar>0] maximum slow rate time constant in msec for activation / deactivation. The effective Tau is much slower -- 1/20th in original temp, and 1/60th in standard 37 C temp TauMax float32 `` /* 199-byte string literal not displayed */ // [view: -] [viewif: Gbar>0] temperature adjustment factor: assume temp = 37 C, whereas original units were at 23 C Tadj float32 `` /* 131-byte string literal not displayed */ // [view: -] 1/Tau DtMax float32 `view:"-" inactive:"+" desc:"1/Tau"` // contains filtered or unexported fields }
MahpParams implements an M-type medium afterhyperpolarizing (mAHP) channel, where m also stands for muscarinic due to the ACh inactivation of this channel. It has a slow activation and deactivation time constant, and opens at a lowish membrane potential. There is one gating variable n updated over time with a tau that is also voltage dependent. The infinite-time value of n is voltage dependent according to a logistic function of the membrane potential, centered at Voff with slope Vslope.
func (*MahpParams) DNFmV ¶ added in v1.5.3
func (mp *MahpParams) DNFmV(v, n float32) float32
DNFmV returns the change in gating factor N based on normalized Vm
func (*MahpParams) Defaults ¶ added in v1.5.3
func (mp *MahpParams) Defaults()
Defaults sets the parameters
func (*MahpParams) EFun ¶ added in v1.5.3
func (mp *MahpParams) EFun(z float32) float32
EFun handles singularities in an elegant way -- from Mainen impl
func (*MahpParams) GmAHP ¶ added in v1.5.3
func (mp *MahpParams) GmAHP(n float32) float32
GmAHP returns the conductance as a function of n
func (*MahpParams) NinfTauFmV ¶ added in v1.5.3
func (mp *MahpParams) NinfTauFmV(vbio float32, ninf, tau *float32)
NinfTauFmV returns the target infinite-time N gate value and voltage-dependent time constant tau, from vbio
func (*MahpParams) NinfTauFmVnorm ¶ added in v1.5.3
func (mp *MahpParams) NinfTauFmVnorm(v float32, ninf, tau *float32)
NinfTauFmV returns the target infinite-time N gate value and voltage-dependent time constant tau, from normalized vm
func (*MahpParams) Update ¶ added in v1.5.3
func (mp *MahpParams) Update()
type NMDAParams ¶ added in v1.2.96
type NMDAParams struct { // [def: 0,0.006,0.007] overall multiplier for strength of NMDA current -- multiplies GnmdaSyn to get net conductance. Gbar float32 `def:"0,0.006,0.007" desc:"overall multiplier for strength of NMDA current -- multiplies GnmdaSyn to get net conductance."` // [def: 30,50,100,200,300] [viewif: Gbar>0] decay time constant for NMDA channel activation -- rise time is 2 msec and not worth extra effort for biexponential. 30 fits the Urakubo et al (2008) model with ITau = 100, but 100 works better in practice is small networks so far. Tau float32 `` /* 280-byte string literal not displayed */ // [def: 1,100] [viewif: Gbar>0] decay time constant for NMDA channel inhibition, which captures the Urakubo et al (2008) allosteric dynamics (100 fits their model well) -- set to 1 to eliminate that mechanism. ITau float32 `` /* 212-byte string literal not displayed */ // [def: 1:1.5] [viewif: Gbar>0] magnesium ion concentration: Brunel & Wang (2001) and Sanders et al (2013) use 1 mM, based on Jahr & Stevens (1990). Urakubo et al (2008) use 1.5 mM. 1.4 with Voff = 5 works best so far in large models, 1.2, Voff = 0 best in smaller nets. MgC float32 `` /* 273-byte string literal not displayed */ // [def: 0] [viewif: Gbar>0] offset in membrane potential in biological units for voltage-dependent functions. 5 corresponds to the -65 mV rest, -45 threshold of the Urakubo et al (2008) model. 5 was used before in a buggy version of NMDA equation -- 0 is new default. Voff float32 `` /* 271-byte string literal not displayed */ // [view: -] rate = 1 / tau Dt float32 `view:"-" json:"-" xml:"-" desc:"rate = 1 / tau"` // [view: -] rate = 1 / tau IDt float32 `view:"-" json:"-" xml:"-" desc:"rate = 1 / tau"` // [view: -] MgFact = MgC / 3.57 MgFact float32 `view:"-" json:"-" xml:"-" desc:"MgFact = MgC / 3.57"` }
NMDAParams control the NMDA dynamics, based on Jahr & Stevens (1990) equations which are widely used in models, from Brunel & Wang (2001) to Sanders et al. (2013). The overall conductance is a function of a voltage-dependent postsynaptic factor based on Mg ion blockage, and presynaptic Glu-based opening, which in a simple model just increments
func (*NMDAParams) CaFmV ¶ added in v1.3.1
func (np *NMDAParams) CaFmV(v float32) float32
CaFmV returns the calcium current factor as a function of normalized membrane potential -- this factor is needed for computing the calcium current * MgGFmV
func (*NMDAParams) CaFmVbio ¶ added in v1.3.1
func (np *NMDAParams) CaFmVbio(vbio float32) float32
CaFmVbio returns the calcium current factor as a function of biological membrane potential -- this factor is needed for computing the calcium current * MgGFmV. This is the same function used in VGCC for their conductance factor. based on implementation in Urakubo et al (2008). http://kurodalab.bs.s.u-tokyo.ac.jp/info/STDP/
func (*NMDAParams) Defaults ¶ added in v1.2.96
func (np *NMDAParams) Defaults()
func (*NMDAParams) Gnmda ¶ added in v1.2.96
func (np *NMDAParams) Gnmda(nmda, vm float32) float32
Gnmda returns the NMDA net conductance from nmda Glu binding and Vm including the GBar factor
func (*NMDAParams) MgGFmV ¶ added in v1.3.1
func (np *NMDAParams) MgGFmV(v float32) float32
MgGFmV returns the NMDA conductance as a function of normalized membrane potential based on Mg ion blocking
func (*NMDAParams) MgGFmVbio ¶ added in v1.3.1
func (np *NMDAParams) MgGFmVbio(vbio float32) float32
MgGFmVbio returns the NMDA conductance as a function of biological membrane potential based on Mg ion blocking Using parameters from Brunel & Wang (2001) see also Urakubo et al (2008)
func (*NMDAParams) NMDASyn ¶ added in v1.3.1
func (np *NMDAParams) NMDASyn(nmda, raw float32) float32
NMDASyn returns the updated synaptic NMDA Glu binding based on new raw spike-driven Glu binding.
func (*NMDAParams) SnmdaFmSpike ¶ added in v1.3.5
func (np *NMDAParams) SnmdaFmSpike(spike float32, snmdaO, snmdaI *float32)
SnmdaFmSpike updates sender-based NMDA channel opening based on neural spiking using the inhibition and decay factors. These dynamics closely match the Urakubo et al (2008) allosteric NMDA receptor behavior, with ITau = 100, Tau = 30
func (*NMDAParams) Update ¶ added in v1.2.97
func (np *NMDAParams) Update()
func (*NMDAParams) VFactors ¶ added in v1.3.1
func (np *NMDAParams) VFactors(v float32, mgg, cav *float32)
VFactors returns MgGFmV and CaFmV based on normalized membrane potential. Just does the voltage conversion once.
type SKCaParams ¶ added in v1.5.1
type SKCaParams struct { // [def: 0,2,3] overall strength of sKCa current -- inactive if 0 Gbar float32 `def:"0,2,3" desc:"overall strength of sKCa current -- inactive if 0"` // [def: 0.4,0.5] [viewif: Gbar>0] 50% Ca concentration baseline value in Hill equation -- set this to level that activates at reasonable levels of SKCaR C50 float32 `` /* 155-byte string literal not displayed */ // [def: 15] [viewif: Gbar>0] K channel gating factor activation time constant -- roughly 5-15 msec in literature ActTau float32 `viewif:"Gbar>0" def:"15" desc:"K channel gating factor activation time constant -- roughly 5-15 msec in literature"` // [def: 30] [viewif: Gbar>0] K channel gating factor deactivation time constant -- roughly 30-50 msec in literature DeTau float32 `viewif:"Gbar>0" def:"30" desc:"K channel gating factor deactivation time constant -- roughly 30-50 msec in literature"` // [def: 0.4,0.8] [viewif: Gbar>0] proportion of CaIn intracellular stores that are released per spike, going into CaR KCaR float32 `viewif:"Gbar>0" def:"0.4,0.8" desc:"proportion of CaIn intracellular stores that are released per spike, going into CaR"` // [def: 150,200] [viewif: Gbar>0] SKCaR released calcium decay time constant CaRDecayTau float32 `viewif:"Gbar>0" def:"150,200" desc:"SKCaR released calcium decay time constant"` // [def: 0.01] [viewif: Gbar>0] level of time-integrated spiking activity (CaSpkD) below which CaIn intracelluar stores are replenished -- a low threshold can be used to require minimal activity to recharge -- set to a high value (e.g., 10) for constant recharge. CaInThr float32 `` /* 265-byte string literal not displayed */ // [def: 50] [viewif: Gbar>0] time constant in msec for storing CaIn when activity is below CaInThr CaInTau float32 `viewif:"Gbar>0" def:"50" desc:"time constant in msec for storing CaIn when activity is below CaInThr"` // [view: -] rate = 1 / tau ActDt float32 `view:"-" json:"-" xml:"-" desc:"rate = 1 / tau"` // [view: -] rate = 1 / tau DeDt float32 `view:"-" json:"-" xml:"-" desc:"rate = 1 / tau"` // [view: -] rate = 1 / tau CaRDecayDt float32 `view:"-" json:"-" xml:"-" desc:"rate = 1 / tau"` // [view: -] rate = 1 / tau CaInDt float32 `view:"-" json:"-" xml:"-" desc:"rate = 1 / tau"` }
SKCaParams describes the small-conductance calcium-activated potassium channel, activated by intracellular stores in a way that drives pauses in firing, and can require inactivity to recharge the Ca available for release. These intracellular stores can release quickly, have a slow decay once released, and the stores can take a while to rebuild, leading to rapidly triggered, long-lasting pauses that don't recur until stores have rebuilt, which is the observed pattern of firing of STNp pausing neurons. CaIn = intracellular stores available for release; CaR = released amount from stores CaM = K channel conductance gating factor driven by CaR binding, computed using the Hill equations described in Fujita et al (2012), Gunay et al (2008) (also Muddapu & Chakravarthy, 2021): X^h / (X^h + C50^h) where h ~= 4 (hard coded)
func (*SKCaParams) CaInRFmSpike ¶ added in v1.7.16
func (sp *SKCaParams) CaInRFmSpike(spike, caD float32, caIn, caR *float32)
CaInRFmSpike updates CaIn, CaR from Spiking and CaD time-integrated spiking activity
func (*SKCaParams) Defaults ¶ added in v1.5.1
func (sp *SKCaParams) Defaults()
func (*SKCaParams) MAsympGW06 ¶ added in v1.5.1
func (sp *SKCaParams) MAsympGW06(cai float32) float32
MAsympGW06 gives the asymptotic (driving) gating factor M as a function of CAi for the GilliesWillshaw06 equation version -- not used by default. this is a log-saturating function
func (*SKCaParams) MAsympHill ¶ added in v1.5.1
func (sp *SKCaParams) MAsympHill(cai float32) float32
MAsympHill gives the asymptotic (driving) gating factor M as a function of CAi for the Hill equation version used in Fujita et al (2012)
func (*SKCaParams) MFmCa ¶ added in v1.5.1
func (sp *SKCaParams) MFmCa(caR, mcur float32) float32
MFmCa returns updated m gating value as a function of current CaR released Ca and the current m gating value, with activation and deactivation time constants.
func (*SKCaParams) Update ¶ added in v1.5.1
func (sp *SKCaParams) Update()
type SahpParams ¶ added in v1.5.3
type SahpParams struct { // [def: 0.05,0.1] strength of sAHP current Gbar float32 `def:"0.05,0.1" desc:"strength of sAHP current"` // [def: 5,10] [viewif: Gbar>0] time constant for integrating Ca across theta cycles CaTau float32 `viewif:"Gbar>0" def:"5,10" desc:"time constant for integrating Ca across theta cycles"` // [def: 0.8] [viewif: Gbar>0] integrated Ca offset (threshold) for infinite time N gating function -- where the gate is at 50% strength Off float32 `` /* 138-byte string literal not displayed */ // [def: 0.02] [viewif: Gbar>0] slope of the infinite time logistic gating function Slope float32 `viewif:"Gbar>0" def:"0.02" desc:"slope of the infinite time logistic gating function"` // [def: 1] [viewif: Gbar>0] maximum slow rate time constant in msec for activation / deactivation. The effective Tau is much slower -- 1/20th in original temp, and 1/60th in standard 37 C temp TauMax float32 `` /* 196-byte string literal not displayed */ // [view: -] 1/Tau CaDt float32 `view:"-" inactive:"+" desc:"1/Tau"` // [view: -] 1/Tau DtMax float32 `view:"-" inactive:"+" desc:"1/Tau"` // contains filtered or unexported fields }
SahpParams implements a slow afterhyperpolarizing (sAHP) channel, It has a slowly accumulating calcium value, aggregated at the theta cycle level, that then drives the logistic gating function, so that it only activates after a significant accumulation. After which point it decays. For the theta-cycle updating, the normal m-type tau is all within the scope of a single theta cycle, so we just omit the time integration of the n gating value, but tau is computed in any case.
func (*SahpParams) CaInt ¶ added in v1.5.3
func (mp *SahpParams) CaInt(caInt, ca float32) float32
CaInt returns the updated time-integrated Ca value from current value and current Ca
func (*SahpParams) DNFmV ¶ added in v1.5.3
func (mp *SahpParams) DNFmV(ca, n float32) float32
DNFmCa returns the change in gating factor N based on integrated Ca Omit this and just use ninf directly for theta-cycle updating.
func (*SahpParams) Defaults ¶ added in v1.5.3
func (mp *SahpParams) Defaults()
Defaults sets the parameters
func (*SahpParams) EFun ¶ added in v1.5.3
func (mp *SahpParams) EFun(z float32) float32
EFun handles singularities in an elegant way -- from Mainen impl
func (*SahpParams) GsAHP ¶ added in v1.5.3
func (mp *SahpParams) GsAHP(n float32) float32
GsAHP returns the conductance as a function of n
func (*SahpParams) NinfTauFmCa ¶ added in v1.5.3
func (mp *SahpParams) NinfTauFmCa(ca float32, ninf, tau *float32)
NinfTauFmCa returns the target infinite-time N gate value and time constant tau, from integrated Ca value
func (*SahpParams) Update ¶ added in v1.5.3
func (mp *SahpParams) Update()
type VGCCParams ¶ added in v1.2.96
type VGCCParams struct { // [def: 0.02,0.12] strength of VGCC current -- 0.12 value is from Urakubo et al (2008) model -- best fits actual model behavior using axon equations (1.5 nominal in that model), 0.02 works better in practice for not getting stuck in high plateau firing Gbar float32 `` /* 256-byte string literal not displayed */ // [def: 25] [viewif: Gbar>0] calcium from conductance factor -- important for learning contribution of VGCC Ca float32 `viewif:"Gbar>0" def:"25" desc:"calcium from conductance factor -- important for learning contribution of VGCC"` // contains filtered or unexported fields }
VGCCParams control the standard L-type Ca channel All functions based on Urakubo et al (2008). Source code available at http://kurodalab.bs.s.u-tokyo.ac.jp/info/STDP/Urakubo2008.tar.gz. In particular look at the file MODEL/Poirazi_cell/CaL.g.
func (*VGCCParams) CaFmG ¶ added in v1.5.1
func (np *VGCCParams) CaFmG(v, g, ca float32) float32
CaFmG returns the Ca from Gvgcc conductance, current Ca level, and normalized membrane potential.
func (*VGCCParams) DMHFmV ¶ added in v1.2.96
func (np *VGCCParams) DMHFmV(v, m, h float32, dm, dh *float32)
DMHFmV returns the change at msec update scale in M, H factors as a function of V normalized (0-1)
func (*VGCCParams) Defaults ¶ added in v1.2.96
func (np *VGCCParams) Defaults()
func (*VGCCParams) GFmV ¶ added in v1.2.96
func (np *VGCCParams) GFmV(v float32) float32
GFmV returns the VGCC conductance as a function of normalized membrane potential Based on Urakubo's calculation of `max` in CaL.g in the section commented 'i gate'.
func (*VGCCParams) Gvgcc ¶ added in v1.2.96
func (np *VGCCParams) Gvgcc(vm, m, h float32) float32
Gvgcc returns the VGCC net conductance from m, h activation and vm
func (*VGCCParams) HFmV ¶ added in v1.2.96
func (np *VGCCParams) HFmV(vbio float32) float32
HFmV returns the H gate function from vbio (not normalized, must not exceed 0) Based on Urakubo's calculation of `max` in CaL.g in the section commented 'h gate'.
func (*VGCCParams) MFmV ¶ added in v1.2.96
func (np *VGCCParams) MFmV(vbio float32) float32
MFmV returns the M gate function from vbio (not normalized, must not exceed 0). Based on Urakubo's calculation of `max` in CaL.g in the section commented 'm gate'.
func (*VGCCParams) Update ¶ added in v1.3.23
func (np *VGCCParams) Update()
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
ak_plot plots an equation updating over time in a etable.Table and Plot2D.
|
ak_plot plots an equation updating over time in a etable.Table and Plot2D. |
gabab_plot plots an equation updating over time in a etable.Table and Plot2D.
|
gabab_plot plots an equation updating over time in a etable.Table and Plot2D. |
mahp_plot plots an equation updating over time in a etable.Table and Plot2D.
|
mahp_plot plots an equation updating over time in a etable.Table and Plot2D. |
nmda_plot plots an equation updating over time in a etable.Table and Plot2D.
|
nmda_plot plots an equation updating over time in a etable.Table and Plot2D. |
mahp_plot plots an equation updating over time in a etable.Table and Plot2D.
|
mahp_plot plots an equation updating over time in a etable.Table and Plot2D. |
ska_plot plots an equation updating over time in a etable.Table and Plot2D.
|
ska_plot plots an equation updating over time in a etable.Table and Plot2D. |
vgcc_plot plots an equation updating over time in a etable.Table and Plot2D.
|
vgcc_plot plots an equation updating over time in a etable.Table and Plot2D. |