kinase

package
v1.3.18 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2022 License: BSD-3-Clause Imports: 3 Imported by: 0

README

Kinase Learning Implementation

This implements the Kinase learning rule, with multiple different variants being explored.

See https://github.com/emer/axon/tree/master/examples/kinaseq for exploration of the implemented equations, and https://github.com/ccnlab/kinase/tree/main/sims/kinase for biophysical basis of the equations.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var KiT_Rules = kit.Enums.AddEnum(RulesN, kit.NotBitFlag, nil)

Functions

This section is empty.

Types

type CaParams added in v1.3.18

type CaParams struct {
	Rule     Rules   `desc:"which form of synaptic calcium and subsequent learning rule to use"`
	SpikeG   float32 `` /* 364-byte string literal not displayed */
	MTau     float32 `` /* 203-byte string literal not displayed */
	PTau     float32 `` /* 314-byte string literal not displayed */
	DTau     float32 `` /* 299-byte string literal not displayed */
	UpdtThr  float32 `` /* 183-byte string literal not displayed */
	OptInteg bool    `` /* 198-byte string literal not displayed */
	MaxISI   int     `def:"100" desc:"maximum ISI for integrating in Opt mode -- above that just set to 0"`

	MDt float32 `view:"-" json:"-" xml:"-" inactive:"+" desc:"rate = 1 / tau"`
	PDt float32 `view:"-" json:"-" xml:"-" inactive:"+" desc:"rate = 1 / tau"`
	DDt float32 `view:"-" json:"-" xml:"-" inactive:"+" desc:"rate = 1 / tau"`
}

CaParams has rate constants for integrating spike-driven Ca calcium at different time scales, including final CaP = CaMKII and CaD = DAPK1 timescales for LTP potentiation vs. LTD depression factors.

func (*CaParams) CurCa added in v1.3.18

func (kp *CaParams) CurCa(ctime, utime int32, caM, caP, caD float32) (cCaM, cCaP, cCaD float32)

CurCa returns the current Ca* values, dealing with updating for optimized spike-time update versions. ctime is current time in msec, and utime is last update time (-1 if never)

func (*CaParams) Defaults added in v1.3.18

func (kp *CaParams) Defaults()

func (*CaParams) FmCa added in v1.3.18

func (kp *CaParams) FmCa(ca float32, caM, caP, caD *float32)

FmCa computes updates to CaM, CaP, CaD from current calcium level. The SpikeG factor is NOT applied to Ca and should be pre-applied as appropriate.

func (*CaParams) FmSpike added in v1.3.18

func (kp *CaParams) FmSpike(spike float32, caM, caP, caD *float32)

FmSpike computes updates to CaM, CaP, CaD from current spike value. The SpikeG factor determines strength of increase to CaM.

func (*CaParams) IntFmTime added in v1.3.18

func (kp *CaParams) IntFmTime(ctime, utime int32) int

IntFmTime returns the interval from current time and last update time, which is -1 if never updated (in which case return is -1)

func (*CaParams) SynNMDACa added in v1.3.18

func (kp *CaParams) SynNMDACa(snmdao, rca float32) float32

SynNMDACa returns the synaptic Ca value for SynNMDACa rule applying thresholding to rca value, and multiplying by SpikeG

func (*CaParams) Update added in v1.3.18

func (kp *CaParams) Update()

type DWtParams added in v1.3.18

type DWtParams struct {
	TDWtISI   int     `` /* 209-byte string literal not displayed */
	CaDMaxThr float32 `desc:"threshold on CaDMax peak level for whether the synapse had enough activity to drive learning"`
	CaDMaxPct float32 `` /* 272-byte string literal not displayed */
	TrlDecay  float32 `` /* 247-byte string literal not displayed */
	DScale    float32 `` /* 186-byte string literal not displayed */
}

DWtParams has parameters controlling Kinase-based learning rules

func (*DWtParams) DWt added in v1.3.18

func (dp *DWtParams) DWt(caP, caD float32) float32

DWt computes the weight change from CaP, CaD values, as the simple substraction, while applying DScale to CaD

func (*DWtParams) Defaults added in v1.3.18

func (dp *DWtParams) Defaults()

func (*DWtParams) Update added in v1.3.18

func (dp *DWtParams) Update()

type Rules

type Rules int32

Rules are different options for Kinase-based learning rules

const (
	// NeurSpkCa 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.
	NeurSpkCa Rules = iota

	// SynSpkCa integrates synapse-level spike-driven calcium signals
	// starting with a product of pre and post CaM values at the point
	// of either spike (using neuron level SpkCa params),
	// which is then integrated at P vs. D time scales.
	// Basically a synapse version of original learning rule.
	SynSpkCa

	// SynNMDACa uses synapse-level 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 an abstract version of a biologically realistic model,
	// very close in many details to a fully biophysically-grounded one.
	SynNMDACa

	RulesN
)

The time scales

func (*Rules) FromString

func (i *Rules) FromString(s string) error

func (Rules) MarshalJSON

func (ev Rules) MarshalJSON() ([]byte, error)

func (Rules) String

func (i Rules) String() string

func (*Rules) UnmarshalJSON

func (ev *Rules) UnmarshalJSON(b []byte) error

Jump to

Keyboard shortcuts

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