chans

package
v1.8.20 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 25, 2023 License: BSD-3-Clause Imports: 2 Imported by: 2

README

Chans: Channels of all types

chans.go contains Chans which defines the basic E, L, I, K channels.

Other channels are described below. There are various _plot directories with simple programs to plot the various functions and explore parameters. The README files in these dirs contain more detailed info about the implementation of each channel type, etc.

This package will eventually contain the whole vocabulary of channels known to exist in neurons. Not all are likely to be incorporated into the axon neuron types -- we are gradually including channels as needed based on well-defined functional understanding of their role.

The implementation of several of these channels comes from standard biophysically detailed models such as Migliore et al. (1999) and Poirazi et al. (2003), which were used in the Urakubo et al (2008) model. See also Brette et al, 2007 and NEST model directory for documented examples, including: AdEx, Traub HH. The Brian Examples contain full easy-to-read equations for various standard models, including Brunel & Wang, 2001. Also see Wikipedia: Biological neuron model for a nice overview.

See ModelDB Currents and ModelDB Current Search and IonChannelGeneology for standardized lists of currents included in biophysical models made in NEURON and related software. By far the most numerous category are the K+ potassium channels, which can be gated by voltage, sodium, calcium, and other factors, and modulate the excitability of the neuron.

Basic E, L, I channels

chans.go defines these basic maximal conductances and reversal potentials for the core channels in any biophysical conductance-based model:

  • E = Excitatory synaptic conductance of Na+ through AMPA channels
  • L = Leak from always-open K+ channels
  • I = Inhibition from GABA-A Cl channels

axon does not include the classical Hodgkin-Huxley Na+ and K+ channels that drive the spike, and instead uses the AdEx mechanism with an exponential approximation and adapting dynamics from K+ channels at different time constants, as described below.

Longer time-scale conductances from GABA-B / GIRK and NMDA receptors

This package implements two complementary conductances, GABA-B / GIRK and NMDA, that have relatively long time constants (on the order of 100-200 msec) and thus drive these longer-scale dynamics in neurons, beyond the basic AMPA and GABA-A channels with short ~10 msec time constants. In addition to their longer time constants, these neurons have interesting mirror-image rectification properties (voltage dependencies), inward and outward, which are a critical part of their function (Sanders et al, 2013).

GABA-B / GIRK

GABA-B is an inhibitory channel activated by the usual GABA inhibitory neurotransmitter, which is coupled to the GIRK G-protein coupled inwardly rectifying potassium (K) channel. It is ubiquitous in the brain, and is likely essential for basic neural function (especially in spiking networks from a computational perspective). The inward rectification is caused by a Mg+ ion block from the inside of the neuron, which means that these channels are most open when the neuron is hyperpolarized (inactive), and thus it serves to keep inactive neurons inactive.

In standard Leabra rate-code neurons using FFFB inhibition, the continuous nature of the GABA-A type inhibition serves this function already, so these GABA-B channels have not been as important, but whenever a discrete spiking function has been used along with FFFB inhibition or direct interneuron inhibition, there is a strong tendency for every neuron to fire at some point, in a rolling fashion, because neurons that are initially inhibited during the first round of firing can just pop back up once that initial wave of associated GABA-A inhibition passes. This is especially problematic for untrained networks where excitatory connections are not well differentiated, and neurons are receiving very similar levels of excitatory input. In this case, learning does not have the ability to further differentiate the neurons, and does not work effectively.

NMDA

NMDA is predominantly important for learning in most parts of the brain, but in frontal areas especially, a particular type of NMDA receptor drives sustained active maintenance, by driving sustained excitatory voltage-gated conductances (Goldman-Rakic, 1995; Lisman et al, 1998; Brunel & Wang, 2001). The well-known external Mg+ ion block of NMDA channels, which is essential for its Hebbian character in learning, also has the beneficial effect of keeping active neurons active by virtue of causing an outward rectification that is the mirror-image of the GIRK inward rectification, with the complementary functional effect. The Brunel & Wang (2001) model is widely used in many other active maintenance / working memory models.

Sanders et al, 2013 emphasize the "perfect couple" nature of the complementary bistability of GABA-B and NMDA, and show that it produces a more robust active maintenance dynamic in frontal cortical circuits.

We are using both NMDA and GABA-B to support robust active maintenance but also the ability to clear out previously-maintained representations, as a result of the GABA-B sustained inhibition.

Implementation

Spiking effects on Vm: Backpropagating Action Potentials

Spikes in the soma of a neuron also drive backpropagating action potentials back into the dendrites, which increases the overall membrane potential there above what is produced by the raw synaptic inputs. In our rate code models, we simulate these effects by adding a proportion of the rate code activation value to the Vm value. Also note that this Vm value is an equilibrium Vm that is not reset back to rest after each spike, so it is itself perhaps a bit elevated as a result.

GABA-B

The GABA-B / GIRK dynamics are based on a combination of Sanders et al, 2013 and Thomson & Destexhe, 1999 (which was major source for Sanders et al, 2013).

T&D found a sigmoidal logistic function described the maximum conductance as a function of GABA spikes, which saturates after about 10 spikes, and a conductance time course that is fit by a 4th-order function similar to the Hodgkin Huxley equations, with a peak at about 60 msec and a total duration envelope of around 200 msec. Sanders et al implemented these dynamics directly and describe the result as such:

These equations give a latency of GABAB-activated KIR current of 􏰅10 ms, time to peak of 􏰅50 ms, and a decay time constant of 􏰅80 ms as described by Thomson and Destexhe (1999). A slow time constant for GABA removal was chosen because much of the GABAB response is mediated by extrasynaptic receptors (Kohl and Paulsen, 2010) and because the time constant for GABA decline at extracellular sites appears to be much slower than at synaptic sites.

We take a simpler approach which is to just use a bi-exponential function to simulate the time course, using 45 and 50 msec time constants.

See gabab_plot subdirectory for program that generates these plots:

Figure: V-G plot for GABA-B / GIRK from Sanders et al, 2013.

Figure: Spike-G sigmoid plot for GABA-B / GIRK from Thomson & Destexhe (1999)

Figure: Bi-exponential time course with 45msec rise and 50msec decay fitting to results from Thomson & Destexhe (1999)

NMDA

The NMDA code uses the exponential function from Brunel & Wang (2001), which is very similar in shape to the Sanders et al, 2013 curve, to compute the voltage dependency of the current:

	vbio := v*100 - 100
	return -vbio / (1 + 0.28*math32.Exp(-0.062*vbio))

where v is the normalized Vm value from the Leabra rate code equations -- vbio converts it into biological units.

See the nmda_plot directory for a program that plots this function, which looks like this (in terms of net conductance also taking into account the driving potential, which adds an (E - v) term in the numerator).

Figure: V-G plot for NMDA from Brunel & Wang (2001)

VGCC: Voltage-gated Calcium Channels

There are a large number of VGCC's (Dolphin, 2018; Cain & Snutch, 2012) denoted by letters in descending order of the voltage threshold for activation: L, PQ, N, R, T, which have corresponding Ca_v names: Ca_v1.1, 1.2, 1.3. 1.4 are all L type, 2.1, 2.2, 2.3 are PQ, N, and R, respectively, and T type (low threshold) comprise 3.1, 3.2, and 3.3. Each channel is characterized by the voltage dependency and inactivation functions. The table here summarizes the different types:

Letter Ca_v V Threshold Inactivation Location Function
L 1.1-1.4 high (-40mV) fast Cortex + closely tracks spikes
PQ 2.1 high ? Cerebellum (Purk, Gran) ?
N 2.2 high ? everywhere? ?
R 2.3 med ? Cerebellum Gran ?
T 3.1-.3 low ? 5IB, subcortical low-freq osc
  • L type is the classic "VGCC" in dendritic spines in pyramidal cells, implemented in VGCCParams in vgcc.go. See vgcc_plot for more info. It is now incorporated into the base axon Neuron type, where it plays a critical role in driving Ca from backpropagated spikes, to mix in with NMDA-Ca for the Ge-based "trace" learning rule.

  • PQ and R are specific to cerebellum.

  • The T type is the most important for low frequency oscillations, and is absent in pyramidal neurons outside of the 5IB layer 5 neurons, which are the primary bursting type. It is most important for subcortical neurons, such as in TRN. See Destexhe et al, 1998 model in BRIAN for an implementation.

AK: A-type voltage-gated potassium channel

AK (in ak.go) is voltage gated with maximal activation around -37 mV. It is particularly important for counteracting the excitatory effects of VGCC L-type channels which can otherwise drive runaway excitatory currents (i.e., think of it as an "emergency brake" and is needed for this reason whenever adding VGCC to a model), and is co-localized with them in pyramidal cell dendrites. It is included in the basic axon Neuron.

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. See AKsParams for a much simpler version that works fine when full AP-like spikes are not simulated, as in our standard axon models.

K+ channels that drive adaptation: KNa, M-type mAHP, sAHP, CaK

There are multiple types of K+ channels that contribute to adaptation -- slowing of the rate of spiking over time for a constant excitatory input (Dwivedi & Bhalla, 2021). This is a critical property of neurons, to make them responsive to changes --- constants are filtered out. Somehow, the computational modeling community, and perhaps the broader neuroscience world as well, has focused on calcium-gated K channels, and not the sodium-gated ones. However, the Na+ gated ones are much simpler to implement, and have been clearly demonstrated to underlie a significant proportion of the observed adaptation dynamic, so they are the primary form of adaptation implemented in the axon base neuron.

Dwivedi & Bhalla (2021) define three broad timescales for AHP (afterhyperpolarization) currents:

  • fast = fAHP: activated within 1-5 ms
  • medium = mAHP: activated within 10-300 ms
  • slow = sAHP: activated between .5 - multiple seconds

KNa

See Bhattacharjee & Kaczmarek (2005) and Kaczmarek (2013) for reviews of the literature on various time-scales of KNa channels. The dynamics implemented in kna.go are simple: the conductance rises with every spike-driven influx of Na, and it decays with a time-constant.

	if spike {
		gKNa += Rise * (Max - gKNa)
	} else {
		gKNa -= gKNa / Tau
	}

The different types are:

Channel Type Tau (ms) Rise Max
Medium (Slick) 200 0.02 0.1
Slow (Slack) 1000 0.001 1.0

M-type (KCNQ, Kv7): AcH modulated mAHP

The M-type (muscarinic, mAHP) channel is voltage sensitive, but starts to open at low voltages (-60 mV), and can be closed by acetylcholine (AcH) and many other things (Greene & Hoshi, 2017). There are many subtypes due to different constituents. In general it takes a while to activate, with a time constant of around 50 msec or so, and deactivates on that same timescale. Thus, it is an important contributor to the mAHP that can be modulated by various neuromodulators. Gerstner et al describe it as having a higher activation potential (-40mV) and faster decay rate (50 ms) and thus is primarily activated by spikes. As such, it is similar to a KNa spike-driven channel as shown above.

A more complex and widely used version is implemented in MahpParams in mahp.go, which is now used in the base axon neuron type. See mahp_plot for more info, including a comparison against the simple KNa mechanism. This comparison reveals that while these functions do have an overall similar conductance level in relation to basic spiking, the more realistic M-type channel has a stronger "anticipatory" conductance prior to the spike, due to it being directly based on membrane potential and not Na from spiking. Also, its voltage gating profile is sufficiently broad that it does get engaged significantly prior to spiking. Thus, it will "head off" incipient spikes in a way that the simple KNa function will not.

The original characterization of the M-type current in most models derives from Gutfreund et al (1995), as implemented in NEURON by Mainen & Sejnowski (1996) -- ModelDB entry -- see ICGeneology for the widespread use of this code.

There is a voltage gating factor n (often labeled m for other channels) which has an asymptotic drive value (ninf) as an exponential logistic function of Vm (centered at -30 mV with a slope of 9 mV -- fairly broad), and a variable time constant tau that is also a function of Vm:

	vo = (V - Voff)
	a = vo / TauMax * (1 - exp(-vo/Vslope))
	b = -vo / TauMax * (1 - exp(vo/Vslope))

   tau = 1 / (a + b)
   ninf = a / (a + b)

A simpler, easy-to-read version is in the ModelDB for Cutsuridis & Poirazi (2015) -- the Mainen version contains a few tricks to avoid singularities, which we use in our implementation.

sAHP: slow afterhyperpolarization

See sahp.go for the implementation and sahp_plot for more info and plots. Larsson (2013) provides a nice narrative about the difficulty in tracking down the origin of a very slow, long-lasting sAHP current that has been observed in hippocampal and other neurons. It appears to be yet another modulator on the M-type channels, that is driven by calcium sensor pathways that have longer time constants. There is more research to be done here, but we can safely use a mechanism that takes a long time to build up before activating the K+ channels, and then takes a long time to decay as well. This provides appropriate dynamics for the CT neurons.

Calcium-gated Potassium Channels: SK and BK

There are two major types of Ca-gated K channels: "small" K (SK, SKCa) and "big" K (BK, BKCa). These channels are more complicated to simulate relative to KNa, because they depend on Ca dynamics which are more complicated than just tracking spiking.

The SK channel (in scka.go, see skca_plot) is based on the implementation by Fujita et al (2012), in turn based on Gunay et al (2008), using a simple Hill equation which takes the form of $X / (X + C_{50})$ where $C_{50}$ is the concentration at which the value is at 50%. A different logistic exponential equation was given in Gillies & Willshaw, 2006, in a model of the subthalamic nucleus (STN) cell. Adelman et al, 2012; Dwivedi & Bhalla 2021 give an activation time constant of 5-15 ms and decay constant of around 30 ms for the SKCa.

SKCa can be 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, that open up a window for BG gating.

CaIn = intracellular stores available for release; CaR = released amount from stores; CaM = K channel conductance gating factor driven by CaR binding.

BK channels are very high conductance with very fast dynamics, and they play a role in shaping the action potential. We are currently putting them on the "safe to ignore" list -- they are not widely implemented in biophysical models according to ModelDB.

HCN channels: I_h

HCN = hyperpolarization-activated cyclic nucleotide-gated nonselective cation channels. Differentiate some layer V PFC neurons: DembrowChitwoodJohnston10.

Magee98: Overall, Ih acts to dampen dendritic excitability, but its largest impact is on the subthreshold range of membrane potentials where the integration of inhibitory and excitatory synaptic inputs takes place.

  • The rate of current activation was voltage-dependent such that the activation time constant decreased with increasing hyperpolarization (from 50 msec at -75 mV to 16 msec at -125 mV.

  • Tail current decay time constants decreased with increasing depolarization (30 msec at -70 mV to 7 msec at -30 mV)

  • From the mean reversal potentials a Na􏰁/K􏰁 permeability ratio of 0.35 could be deter- mined with the Goldman–Hodgkin–Katz equation

  • HarnettMageeWilliams15: At distal apical dendritic trunk and tuft sites, we find that HCN channels have predominately inhibitory actions, controlling the initiation and propagation of dendritic spikes. In contrast, at proximal apical dendritic and somatic sites, HCN channels exert excitatory influences by decreasing the threshold excitatory input required to evoke action potential output.

References

  • Adelman, J. P., Maylie, J., & Sah, P. (2012). Small-conductance Ca2+-activated K+ channels: Form and function. Annual Review of Physiology, 74, 245–269. https://doi.org/10.1146/annurev-physiol-020911-153336

  • Bhattacharjee, A., & Kaczmarek, L. K. (2005). For K+ channels, Na+ is the new Ca2+. Trends in Neurosciences, 28(8), 422–428. https://doi.org/10.1016/j.tins.2005.06.003

  • Brette, R., Rudolph, M., Carnevale, T., Hines, M., Beeman, D., Bower, J. M., Diesmann, M., Morrison, A., Goodman, P. H., Harris, F. C., & Others. (2007). Simulation of networks of spiking neurons: A review of tools and strategies. Journal of Computational Neuroscience, 23(3), 349–398. http://www.ncbi.nlm.nih.gov/pubmed/17629781

  • Destexhe, A., Mainen, Z. F., & Sejnowski, T. J. (1994). Synthesis of models for excitable membranes, synaptic transmission and neuromodulation using a common kinetic formalism. Journal of Computational Neuroscience, 1(3), 195–230. https://doi.org/10.1007/BF00961734

  • Dwivedi, D., & Bhalla, U. S. (2021). Physiology and Therapeutic Potential of SK, H, and M Medium AfterHyperPolarization Ion Channels. Frontiers in Molecular Neuroscience, 14. https://www.frontiersin.org/articles/10.3389/fnmol.2021.658435

  • Fujita, T., Fukai, T., & Kitano, K. (2012). Influences of membrane properties on phase response curve and synchronization stability in a model globus pallidus neuron. Journal of Computational Neuroscience, 32(3), 539–553. https://doi.org/10.1007/s10827-011-0368-2

  • Gillies, A., & Willshaw, D. (2006). Membrane Channel Interactions Underlying Rat Subthalamic Projection Neuron Rhythmic and Bursting Activity. Journal of Neurophysiology, 95(4), 2352–2365. https://doi.org/10.1152/jn.00525.2005

  • Greene, D. L., & Hoshi, N. (2017). Modulation of Kv7 channels and excitability in the brain. Cellular and Molecular Life Sciences : CMLS, 74(3), 495–508. https://doi.org/10.1007/s00018-016-2359-y

  • Günay, C., Edgerton, J. R., & Jaeger, D. (2008). Channel Density Distributions Explain Spiking Variability in the Globus Pallidus: A Combined Physiology and Computer Simulation Database Approach. Journal of Neuroscience, 28(30), 7476–7491. https://doi.org/10.1523/JNEUROSCI.4198-07.2008

  • Gutfreund, Y., Yarom, Y., & Segev, I. (1995). Subthreshold oscillations and resonant frequency in guinea-pig cortical neurons: Physiology and modelling. The Journal of Physiology, 483(3), 621–640. https://doi.org/10.1113/jphysiol.1995.sp020611

  • Kaczmarek, L. K. (2013). Slack, Slick, and Sodium-Activated Potassium Channels. ISRN Neuroscience, 2013. https://doi.org/10.1155/2013/354262

  • Larsson, H. P. (2013). What Determines the Kinetics of the Slow Afterhyperpolarization (sAHP) in Neurons? Biophysical Journal, 104(2), 281–283. https://doi.org/10.1016/j.bpj.2012.11.3832

  • Mainen, Z. F., & Sejnowski, T. J. (1996). Influence of dendritic structure on firing pattern in model neocortical neurons. Nature, 382, 363. http://www.ncbi.nlm.nih.gov/pubmed/8684467

  • Migliore, M., Hoffman, D. A., Magee, J. C., & Johnston, D. (1999). Role of an A-Type K+ Conductance in the Back-Propagation of Action Potentials in the Dendrites of Hippocampal Pyramidal Neurons. Journal of Computational Neuroscience, 7(1), 5–15. https://doi.org/10.1023/A:1008906225285

  • Poirazi, P., Brannon, T., & Mel, B. W. (2003). Arithmetic of Subthreshold Synaptic Summation in a Model CA1 Pyramidal Cell. Neuron, 37(6), 977–987. https://doi.org/10.1016/S0896-6273(03)00148-X

  • Sanders, H., Berends, M., Major, G., Goldman, M. S., & Lisman, J. E. (2013). NMDA and GABAB (KIR) Conductances: The “Perfect Couple” for Bistability. Journal of Neuroscience, 33(2), 424–429. https://doi.org/10.1523/JNEUROSCI.1854-12.2013

  • Urakubo, H., Honda, M., Froemke, R. C., & Kuroda, S. (2008). Requirement of an allosteric kinetics of NMDA receptors for spike timing-dependent plasticity. The Journal of Neuroscience, 28(13), 3310–3323. http://www.ncbi.nlm.nih.gov/pubmed/18367598

  • Wang, B., Jaffe, D. B., & Brenner, R. (2014). Current understanding of iberiotoxin-resistant BK channels in the nervous system. Frontiers in Physiology, 5. https://www.frontiersin.org/articles/10.3389/fphys.2014.00382

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

Constants

This section is empty.

Variables

This section is empty.

Functions

func VFmBio added in v1.2.97

func VFmBio(vm float32) float32

VFmBio returns normalized 0-1 voltage from biological mV voltage where 0 = -100mV and 1 = 0mV

func VToBio added in v1.2.97

func VToBio(vm float32) float32

VToBio returns biological mV voltage from normalized 0-1 voltage where 0 = -100mV and 1 = 0mV

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

func (ap *AKParams) AlphaFmVK(vbio, k float32) float32

AlphaFmVK returns the Alpha function from vbio (not normalized, must not exceed 0)

func (*AKParams) BetaFmVK added in v1.2.96

func (ap *AKParams) BetaFmVK(vbio, k float32) float32

BetaFmVK returns the Beta function from vbio (not normalized, must not exceed 0)

func (*AKParams) DMHFmV added in v1.2.96

func (ap *AKParams) DMHFmV(v, m, h float32) (float32, float32)

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) Gak added in v1.2.96

func (ap *AKParams) Gak(m, h float32) float32

Gak returns the AK net conductance from m, h gates

func (*AKParams) HFmV added in v1.2.96

func (ap *AKParams) HFmV(vbio float32) float32

HFmV returns the H gate value from vbio (not normalized, must not exceed 0)

func (*AKParams) HTauFmV added in v1.2.96

func (ap *AKParams) HTauFmV(vbio float32) float32

HTauFmV returns the HTau rate constant in msec from vbio (not normalized, must not exceed 0)

func (*AKParams) KFmV added in v1.2.96

func (ap *AKParams) KFmV(vbio float32) float32

KFmV returns the K value from vbio (not normalized, must not exceed 0)

func (*AKParams) MFmAlpha added in v1.2.96

func (ap *AKParams) MFmAlpha(alpha float32) float32

MFmAlpha returns the M gate factor from alpha

func (*AKParams) MTauFmAlphaBeta added in v1.2.96

func (ap *AKParams) MTauFmAlphaBeta(alpha, beta float32) float32

MTauFmAlphaBeta returns the MTau rate constant in msec from alpha, beta

func (*AKParams) Proximal added in v1.2.96

func (ap *AKParams) Proximal()

Proximal sets parameters for proximal dendrites

func (*AKParams) Update added in v1.3.23

func (ap *AKParams) Update()

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

func (ap *AKsParams) Gak(v float32) float32

Gak returns the conductance as a function of normalized Vm GBar * MFmVnorm(v)

func (*AKsParams) MFmV added in v1.3.23

func (ap *AKsParams) MFmV(vbio float32) float32

MFmV returns the M gate function from vbio

func (*AKsParams) MFmVnorm added in v1.3.23

func (ap *AKsParams) MFmVnorm(v float32) float32

MFmVnorm returns the M gate function from vnorm

func (*AKsParams) Update added in v1.3.23

func (ap *AKsParams) Update()

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) SetAll

func (ch *Chans) SetAll(e, l, i, k float32)

SetAll sets all the values

func (*Chans) SetFmMinusOther

func (ch *Chans) SetFmMinusOther(minus float32, oth Chans)

SetFmMinusOther sets all the values from given value minus other Chans

func (*Chans) SetFmOtherMinus

func (ch *Chans) SetFmOtherMinus(oth Chans, minus float32)

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).

func (*KNaParams) Defaults added in v1.5.2

func (ka *KNaParams) Defaults()

func (*KNaParams) GcFmSpike added in v1.5.2

func (ka *KNaParams) GcFmSpike(gKNa *float32, spike bool)

GcFmSpike updates the KNa conductance based on spike or not

func (*KNaParams) Update added in v1.5.2

func (ka *KNaParams) Update()

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()

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL