knadapt

package
v1.2.10 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2024 License: BSD-3-Clause Imports: 0 Imported by: 1

README

knadapt

Package knadapt provides code for 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). Multiple different time constants have been identified and this implementation supports 3: M-type (fast), Slick (medium), and Slack (slow)

Here's a good reference:

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

This package supports both spiking and rate-coded activations.

Spiking

The logic is simplest for the spiking case:

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

The KNa conductance ($g_{kna}$ in mathematical terminology, gKNa in the program) rises to a Max value with a Rise rate constant, when the neuron spikes, and otherwise it decays back down to zero with another time constant Tau.

Rate code

The equivalent rate-code equation just substitutes the rate-coded activation variable in as a multiplier on the rise term:

	gKNa += act * Rise * (Max - gKNa) - (1/Tau * gKNa)

Defaults

The default parameters, which were fit to various empirical firing patterns and also have proven useful in simulations, are:

Channel Type Tau (ms) Rise Max
Fast (M-type) 50 0.05 0.1
Medium (Slick) 200 0.02 0.1
Slow (Slack) 1000 0.001 1.0

Documentation

Overview

Package knadapt provides code for 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). Multiple different time constants have been identified and this implementation supports 3: M-type (fast), Slick (medium), and Slack (slow)

Here's a good reference:

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

This package supports both spiking and rate-coded activations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Chan

type Chan struct {

	// if On, use this component of K-Na adaptation
	On 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 -- directly multiplies -- 1/rise = tau for rise rate
	Rise float32 `` /* 143-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 (roughly, how long it takes for value to change significantly -- 1.4x the half-life)
	Tau float32 `` /* 191-byte string literal not displayed */

	// [view: -] 1/Tau rate constant
	Dt float32 `view:"-" desc:"1/Tau rate constant"`
}

Chan describes one channel type of sodium-gated adaptation, with a specific set of rate constants.

func (*Chan) Defaults

func (ka *Chan) Defaults()

func (*Chan) GcFmRate

func (ka *Chan) GcFmRate(gKNa *float32, act float32)

GcFmRate updates the KNa conductance based on rate-coded activation. act should already have the compensatory rate multiplier prior to calling.

func (*Chan) GcFmSpike

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

GcFmSpike updates the KNa conductance based on spike or not

func (*Chan) Update

func (ka *Chan) Update()

type Params

type Params struct {

	// if On, apply K-Na adaptation
	On bool `desc:"if On, apply K-Na adaptation"`

	// [def: 0.8] [viewif: On] extra multiplier for rate-coded activations on rise factors -- adjust to match discrete spiking
	Rate float32 `viewif:"On" def:"0.8" desc:"extra multiplier for rate-coded activations on rise factors -- adjust to match discrete spiking"`

	// [view: inline] fast time-scale adaptation
	Fast Chan `view:"inline" desc:"fast time-scale adaptation"`

	// [view: inline] medium time-scale adaptation
	Med Chan `view:"inline" desc:"medium time-scale adaptation"`

	// [view: inline] slow time-scale adaptation
	Slow Chan `view:"inline" desc:"slow time-scale adaptation"`
}

Params describes sodium-gated potassium channel adaptation mechanism. Evidence supports at least 3 different time constants: M-type (fast), Slick (medium), and Slack (slow)

func (*Params) Defaults

func (ka *Params) Defaults()

func (*Params) GcFmRate

func (ka *Params) GcFmRate(gKNaF, gKNaM, gKNaS *float32, act float32)

GcFmRate updates all time scales of KNa adaptation from rate code activation

func (*Params) GcFmSpike

func (ka *Params) GcFmSpike(gKNaF, gKNaM, gKNaS *float32, spike bool)

GcFmSpike updates all time scales of KNa adaptation from spiking

func (*Params) Update

func (ka *Params) Update()

Jump to

Keyboard shortcuts

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