: A synapse with up to 3 different conductance, each activated by a netcon event
:
: This model implements a three-conductance synapse
: This collapses into one model all three conductances
: used to describe synapses by
: Getting, 1989 and utilized by Lieb and Frost, 1998.
:
: Created by Bob Calin-Jageman
:
: Created 9/20/2002
: Modified 9/20/2002
:
: Mathcheck - 9/31/2002
: Unitscheck - 9/31/2002
: model is not meant to work in real units
: in particular, Go should not be interpreted as
: an actual conductance value in microSiemens
: the normalization factor also fails the units check
:
: Explanation
: Creates a current equal to W * Go * (V-Erev) * A
: W - weight
: G - current synaptic conductance
: v - current membrane potantial
: Erev - Reversal potential for the synapse
: A - Normalization term
:
: Synaptic conductance is determined by a kinetic scheme
: tau-open - time constant of opening activated receptors
: tau-close- time constant of closing open receptors
:
: Pre-synaptic Action Potential -> Gact -> Go -> Closed State
: With every AP, Gact is set to 1
: Activated receptors then move to Go(pen) with dGact/dt = -Gact/tau-open
: Open receptors change as dGo/dt = Gact/tau-open - Go/tau-close
:
: The normalization factor, A is calculated as
: A = 1/(4e^(-3.15/(tau-close/tau-open)) + 1)
:
: Since most synapses had up to three componets, this single model
: accepts parameters for three independent conductances
:
: References
: Getting, P.A. (1989) "Reconstruction of small neural networks" in
: Methods in Neuronal Modeling: From Synapses to Networks (1st ed), Kock & Segev
: eds, MIT Press.
: Lieb JR & Frost WN (1997) "Realistic Simulation of the Aplysia Siphon
: Withdrawal Reflex Circuit: Roles of Circuit Elements in Producing Motor Output"
: p. 1249 */
:
NEURON {
POINT_PROCESS oldtsyn
NONSPECIFIC_CURRENT i
RANGE i, G1_weight, G1_eRev, G1_opentc, G1_closetc, G2_weight, G2_eRev, G2_opentc, G2_closetc, G3_weight, G3_eRev, G3_opentc, G3_closetc
}
UNITS {
(nA) = (nanoamp)
(mV) = (millivolt)
(S) = (microsiemens)
}
PARAMETER {
G1_weight = 0.0375 (1)
G1_eRev = -80 (mV)
G1_opentc = 10 (ms)
G1_closetc = 25 (ms)
G2_weight = 0.0030 (1)
G2_eRev = -80 (mV)
G2_opentc = 100 (ms)
G2_closetc = 250 (ms)
G3_weight = 0.0004 (1)
G3_eRev = -80 (mV)
G3_opentc = 750 (ms)
G3_closetc = 2000 (ms)
}
ASSIGNED {
i (nA)
v (mV)
}
STATE { G1_act (S) G1_open (S) G2_act (S) G2_open (S) G3_act (S) G3_open (S) }
BREAKPOINT {
SOLVE states METHOD cnexp
i = (G1_weight * G1_open * (v - G1_eRev)) + (G2_weight * G2_open * (v - G2_eRev)) + (G3_weight * G3_open * (v - G3_eRev))
}
INITIAL {
G1_act = 0 (S)
G1_open = 0 (S)
G2_act = 0 (S)
G2_open = 0 (S)
G3_act = 0 (S)
G3_open = 0 (S)
}
DERIVATIVE states {
G1_act'= -G1_act/G1_opentc
G1_open' = G1_act/G1_opentc - G1_open/G1_closetc
G2_act'= -G2_act/G2_opentc
G2_open' = G2_act/G2_opentc - G2_open/G2_closetc
G3_act'= -G3_act/G3_opentc
G3_open' = G3_act/G3_opentc - G3_open/G3_closetc
}
NET_RECEIVE(weight (microsiemens)) {
state_discontinuity(G1_act, G1_act+1 (S))
state_discontinuity(G2_act, G2_act+1 (S))
state_discontinuity(G3_act, G3_act+1 (S))
}