knadapt

package
v2.0.0-dev0.5.5 Latest Latest
Warning

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

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

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

	// Rise rate of fast time-scale adaptation as function of Na concentration -- directly multiplies -- 1/rise = tau for rise rate
	Rise float32

	// Maximum potential conductance of fast K channels -- divide nA biological value by 10 for the normalized units here
	Max float32

	// 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

	// 1/Tau rate constant
	Dt float32 `display:"-"`
}

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

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

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

func (*Chan) GcFromSpike

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

GcFromSpike updates the KNa conductance based on spike or not

func (*Chan) ShouldDisplay

func (ka *Chan) ShouldDisplay(field string) bool

func (*Chan) Update

func (ka *Chan) Update()

type Params

type Params struct {

	// if On, apply K-Na adaptation
	On bool

	// extra multiplier for rate-coded activations on rise factors -- adjust to match discrete spiking
	Rate float32 `default:"0.8"`

	// fast time-scale adaptation
	Fast Chan `display:"inline"`

	// medium time-scale adaptation
	Med Chan `display:"inline"`

	// slow time-scale adaptation
	Slow Chan `display:"inline"`
}

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

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

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

func (*Params) GcFromSpike

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

GcFromSpike updates all time scales of KNa adaptation from spiking

func (*Params) ShouldDisplay

func (ka *Params) ShouldDisplay(field string) bool

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