kinasex

package
v2.0.0-dev0.2.0 Latest Latest
Warning

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

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

README

KinasEx

This package contains experimental Kinase-based learning rules.

See kinaseq for exploration of the implemented equations, and ccnlab kinase for biophysical basis of the equations.

In the initially implemented nomenclature (early 2022), the space of algorithms was enumerated in kinase/rules.go as follows:

const (
	// SynSpkCont implements synaptic-level Ca signals at an abstract level,
	// purely driven by spikes, not NMDA channel Ca, as a product of
	// sender and recv CaSyn values that capture the decaying Ca trace
	// from spiking, qualitatively as in the NMDA dynamics.  These spike-driven
	// Ca signals are integrated in a cascaded manner via CaM,
	// then CaP (reflecting CaMKII) and finally CaD (reflecting DAPK1).
	// It uses continuous learning based on temporary DWt (TDWt) values
	// based on the TWindow around spikes, which convert into DWt after
	// a pause in synaptic activity (no arbitrary ThetaCycle boundaries).
	// There is an option to compare with SynSpkTheta by only doing DWt updates
	// at the theta cycle level, in which case the key difference is the use of
	// TDWt, which can remove some variability associated with the arbitrary
	// timing of the end of trials.
	SynSpkCont Rules = iota

	// SynNMDACont is the same as SynSpkCont with NMDA-driven calcium signals
	// computed according to the very close approximation to the
	// Urakubo et al (2008) allosteric NMDA dynamics, then integrated at P vs. D
	// time scales.  This is the most biologically realistic yet computationally
	// tractable verseion of the Kinase learning algorithm.
	SynNMDACont

	// SynSpkTheta abstracts the SynSpkCont algorithm by only computing the
	// DWt change at the end of the ThetaCycle, instead of continuous updating.
	// This allows an optimized implementation that is roughly 1/3 slower than
	// the fastest NeurSpkTheta version, while still capturing much of the
	// learning dynamics by virtue of synaptic-level integration.
	SynSpkTheta

	// NeurSpkTheta uses neuron-level spike-driven calcium signals
	// integrated at P vs. D time scales -- this is the original
	// Leabra and Axon XCAL / CHL learning rule.
	// It exhibits strong sensitivity to final spikes and thus
	// high levels of variance.
	NeurSpkTheta
)

This package contains implementations of SynSpkCont and SynNMDACont.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ContSynVars = []string{"TDWt", "CaDMax"}

Functions

This section is empty.

Types

type ContSyn

type ContSyn struct {

	// transitional, temporary DWt value, which is updated in a window after synaptic activity when Ca levels are still elevated, and added to the DWt value after a longer break of spiking where there is enough time for CaMKII driven AMPA receptor trafficking to take place
	TDWt float32

	// maximum CaD value since last DWt change -- DWt occurs when current CaD has decreased by a given proportion from this recent peak
	CaDMax float32
}

ContSyn holds extra synaptic state for continuous learning

func (*ContSyn) VarByIndex

func (sy *ContSyn) VarByIndex(varIndex int) float32

VarByIndex returns synapse variable by index

func (*ContSyn) VarByName

func (sy *ContSyn) VarByName(varNm string) float32

VarByName returns synapse variable by name

Jump to

Keyboard shortcuts

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