copying to personal repo
This commit is contained in:
109
cnmodel/mechanisms/CaPCalyx.mod
Normal file
109
cnmodel/mechanisms/CaPCalyx.mod
Normal file
@@ -0,0 +1,109 @@
|
||||
TITLE CaPCalyx.mod The presynaptic calcium current at the MNTB calyx of Held
|
||||
|
||||
COMMENT
|
||||
|
||||
NEURON implementation of Calcium current from Borst and Sakmann, 1998.
|
||||
Equations are basic HH; parameters are taken from Figure 8 legend in that paper.
|
||||
|
||||
Original implementation by Paul B. Manis, October 2007
|
||||
|
||||
Contact: pmanis@med.unc.edu
|
||||
|
||||
Modified 2/2014: Use Derivative block format.
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX CaPCalyx
|
||||
USEION ca READ eca WRITE ica
|
||||
RANGE gbar, gcap, ica
|
||||
GLOBAL minf, taum, alpha, beta
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
: celsius = 22 (degC) : model is defined on measurements made at 23-24 deg in Germany
|
||||
celsius (degC)
|
||||
dt (ms)
|
||||
: eca = 43.9 (mV)
|
||||
eca (mV)
|
||||
gbar = 0.01 (mho/cm2) <0,1e9> : target is 48.9 nS total
|
||||
alpha (1/ms)
|
||||
beta (1/ms)
|
||||
}
|
||||
|
||||
STATE {
|
||||
m
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
ica (mA/cm2)
|
||||
gcap (mho/cm2)
|
||||
minf (1)
|
||||
taum (ms)
|
||||
|
||||
}
|
||||
|
||||
LOCAL mexp
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
|
||||
gcap = gbar*m*m
|
||||
ica = gcap*(v - eca)
|
||||
}
|
||||
|
||||
UNITSOFF
|
||||
|
||||
INITIAL {
|
||||
trates(v)
|
||||
m = minf
|
||||
}
|
||||
|
||||
DERIVATIVE states { : Computes state variables m
|
||||
rates(v) : at the current v and dt.
|
||||
m' = (minf - m)/taum
|
||||
:m = m + mexp*(minf-m)
|
||||
:VERBATIM
|
||||
: return 0;
|
||||
:ENDVERBATIM
|
||||
}
|
||||
|
||||
LOCAL q10
|
||||
|
||||
PROCEDURE rates(v) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
|
||||
q10 = 3^((celsius - 24)/10) : if you don't like room temp, it can be changed!
|
||||
|
||||
minf = (1 / (1 + exp(-(v + 23.2) / 9.1)))
|
||||
|
||||
alpha = 1.78*exp(v/23.3)
|
||||
beta = 0.140*exp(-v/15.0)
|
||||
taum = 1/(alpha + beta)
|
||||
}
|
||||
|
||||
PROCEDURE trates(v) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
LOCAL minc
|
||||
TABLE minf, mexp
|
||||
DEPEND dt, celsius FROM -150 TO 150 WITH 300
|
||||
|
||||
rates(v) : not consistently executed from here if usetable_hh == 1
|
||||
: so don't expect the tau values to be tracking along with
|
||||
: the inf values in hoc
|
||||
|
||||
minc = -dt * q10
|
||||
mexp = 1 - exp(minc/taum)
|
||||
}
|
||||
|
||||
UNITSON
|
||||
134
cnmodel/mechanisms/Gly5GC.mod
Executable file
134
cnmodel/mechanisms/Gly5GC.mod
Executable file
@@ -0,0 +1,134 @@
|
||||
TITLE detailed model of Glycine receptors
|
||||
|
||||
COMMENT
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Kinetic model of Glycine-A receptors
|
||||
====================================
|
||||
|
||||
C -- C1 -- C2 -- O1
|
||||
| |
|
||||
D1 -- D2 -- D3
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
This Model is based on:
|
||||
Gentet LJ, Clements JD Binding site stoichiometry and the effects of
|
||||
phosphorylation on human alpha1 homomeric glycine receptors J Physiol (Lond)
|
||||
2002 vol. 544 (Pt 1) pp. 97-106, Figure 7.
|
||||
|
||||
Written by Paul Manis, UNC Chapel Hill, 2009
|
||||
Kinetic values are estimated from VCN glycine receptors.
|
||||
|
||||
This model has desensitization states.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
This mod file does not include mechanisms for the release and time course
|
||||
of transmitter; it is to be used in conjunction with a sepearate mechanism
|
||||
to describe the release of transmitter and that provides the concentration
|
||||
of transmitter in the synaptic cleft (to be connected to pointer C here).
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
NEURON {
|
||||
POINT_PROCESS GLYaGC
|
||||
POINTER XMTR
|
||||
RANGE C0, C1, C2, D1, D2, D3, O1, Open
|
||||
RANGE g, gmax, f1, f2
|
||||
RANGE Erev
|
||||
RANGE k1, km1, a1, b1, d1, r1, d2, r2, d3, r3, rd, dd
|
||||
NONSPECIFIC_CURRENT i
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
(mV) = (millivolt)
|
||||
(pS) = (picosiemens)
|
||||
(umho) = (micromho)
|
||||
(mM) = (milli/liter)
|
||||
(uM) = (micro/liter)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
|
||||
Erev = -70 (mV) : reversal potential
|
||||
gmax = 500 (pS) : maximal conductance
|
||||
|
||||
: Rates
|
||||
: bushy cell
|
||||
|
||||
k1 = 12.81 (/uM /ms) : binding
|
||||
km1 = 0.0087 (/ms) : unbinding
|
||||
a1 = 0.0194 (/ms) : opening
|
||||
b1 = 1.138 (/ms) : closing
|
||||
r1 = 5.19 (/ms) : desense 1
|
||||
d1 = 0.000462 (/ms) : return from d1
|
||||
r2 = 0.731 (/ms) : return from deep state
|
||||
d2 = 1.641 (/ms) : going to deep state
|
||||
r3 = 3.817 (/ms) : return from deep state
|
||||
d3 = 1.806 (/ms) : going to deep state
|
||||
rd = 1.0 (/ms)
|
||||
dd = 1.0 (/ms)
|
||||
}
|
||||
|
||||
|
||||
ASSIGNED {
|
||||
v (mV) : postsynaptic voltage
|
||||
i (nA) : current = g*(v - Erev)
|
||||
g (pS) : conductance
|
||||
XMTR (mM) : pointer to glycine concentration
|
||||
|
||||
f1 (/ms) : binding
|
||||
f2 (/ms) : binding
|
||||
Open (1)
|
||||
}
|
||||
|
||||
STATE {
|
||||
: Channel states (all fractions)
|
||||
C0 : unbound
|
||||
C1 : single bound
|
||||
C2 : double bound
|
||||
D1 : desense, bound
|
||||
O1 : open
|
||||
D2 : Desense
|
||||
D3 : Desense
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
XMTR = 0
|
||||
C0 = 1
|
||||
C1 = 0
|
||||
C2 = 0
|
||||
O1 = 0
|
||||
D1 = 0
|
||||
D2 = 0
|
||||
D3 = 0
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE kstates METHOD sparse
|
||||
Open = (O1)
|
||||
g = gmax * Open
|
||||
i = (1e-6) * g * (v - Erev)
|
||||
}
|
||||
|
||||
KINETIC kstates {
|
||||
|
||||
f1 = k1 * (1e3) * XMTR
|
||||
f2 = k1 * (1e3) * XMTR
|
||||
|
||||
~ C0 <-> C1 (f1,km1)
|
||||
~ C1 <-> C2 (f2,12.5*km1)
|
||||
~ C2 <-> O1 (a1,b1)
|
||||
~ C1 <-> D1 (r1, d1)
|
||||
~ C2 <-> D2 (r2, d2)
|
||||
~ D1 <-> D2 (rd, dd)
|
||||
~ D2 <-> D3 (r3, d3)
|
||||
|
||||
CONSERVE C0+C1+C2+D1+D2+D3+O1 = 1
|
||||
}
|
||||
149
cnmodel/mechanisms/Gly5PL.mod
Executable file
149
cnmodel/mechanisms/Gly5PL.mod
Executable file
@@ -0,0 +1,149 @@
|
||||
TITLE detailed model of Glycine receptors
|
||||
|
||||
COMMENT
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Kinetic model of Glycine-A receptors: Pascal Legendre (Mauthner Cell)
|
||||
====================================
|
||||
|
||||
|
||||
|
||||
C0--C1--C2--O1
|
||||
|
|
||||
C3--O2
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
This mod file does not include mechanisms for the release and time course
|
||||
of transmitter; it is to be used in conjunction with a sepearate mechanism
|
||||
to describe the release of transmitter and that provides the concentration
|
||||
of transmitter in the synaptic cleft (to be connected to pointer C here).
|
||||
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Modified Paul Manis, UNC Chapel Hill, 2009
|
||||
Name, pointer name, kinetics are range variables, and kinetic values
|
||||
are estimated from VCN glycine receptors.
|
||||
|
||||
Note: This model does not have a desensitization state.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
NEURON {
|
||||
POINT_PROCESS GLYaPL
|
||||
POINTER XMTR
|
||||
RANGE C0, C1, C2, C3, O1, O2, Open
|
||||
RANGE g, gmax, f1, f2
|
||||
RANGE Erev
|
||||
RANGE kon, koff, a1, b1, a2, b2, r, d
|
||||
RANGE CellType : 0 for bushy, 1 for stellate
|
||||
NONSPECIFIC_CURRENT i
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
(mV) = (millivolt)
|
||||
(pS) = (picosiemens)
|
||||
(umho) = (micromho)
|
||||
(mM) = (milli/liter)
|
||||
(uM) = (micro/liter)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
|
||||
Erev = -70 (mV) : reversal potential
|
||||
gmax = 500 (pS) : maximal conductance
|
||||
CellType = 1 (1) : define cell type parameters
|
||||
|
||||
: Rates
|
||||
|
||||
: Stellate cell fit (1/1/10; excellent fit)
|
||||
|
||||
: kon = 0.0236 (/uM /ms) : binding
|
||||
: koff = 2.4 (/ms) : unbinding
|
||||
: a1 = 1.707 (/ms) : opening
|
||||
: b1 = 8.95 (/ms) : closing
|
||||
: a2 = 0.325 (/ms) : opening
|
||||
: b2 = 5.871 (/ms) : closing
|
||||
: r = 2.019 (/ms) : return from deep state
|
||||
: d = 28.87 (/ms) : going to deep state
|
||||
|
||||
:if psdtype == 'glyfast': fit from 3/5/2010. error = 0.174 maxopen = 0.0385
|
||||
: See synapses.py
|
||||
a1 = 1.000476 (/ms) : opening
|
||||
a2 = 0.137903 (/ms) : opening
|
||||
b1 = 1.700306 (/ms) : closing
|
||||
koff = 13.143132 (/ms) : unbinding
|
||||
kon = 0.038634 (/ms) : binding
|
||||
r = 0.842504 (/ms) : return from deep state
|
||||
b2 = 8.051435 (/ms) : closing
|
||||
d = 12.821820 (/ms) : going to deep state
|
||||
|
||||
}
|
||||
|
||||
|
||||
ASSIGNED {
|
||||
v (mV) : postsynaptic voltage
|
||||
i (nA) : current = g*(v - Erev)
|
||||
g (pS) : conductance
|
||||
XMTR (mM) : pointer to glycine concentration
|
||||
|
||||
f1 (/ms) : binding
|
||||
f2 (/ms) : binding
|
||||
koff2 (/ms)
|
||||
Open (1)
|
||||
}
|
||||
|
||||
STATE {
|
||||
: Channel states (all fractions)
|
||||
C0 : unbound
|
||||
C1 : single bound
|
||||
C2 : double bound
|
||||
C3 : bound but closed state to O2
|
||||
O1 : open
|
||||
O2 : open
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
|
||||
XMTR = 0.0
|
||||
C0 = 1
|
||||
C1 = 0
|
||||
C2 = 0
|
||||
C3 = 0
|
||||
O1 = 0
|
||||
O2 = 0
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE kstates METHOD sparse
|
||||
:VERBATIM
|
||||
: if (CGly > 0.0) {
|
||||
: fprintf(stderr, "t = %f Xmtr = %f\n", t, XMTR);
|
||||
: }
|
||||
: ENDVERBATIM
|
||||
Open = (O1 + O2)
|
||||
g = gmax * Open
|
||||
i = (1e-6) * g * (v - Erev)
|
||||
}
|
||||
|
||||
KINETIC kstates {
|
||||
|
||||
f1 = 2.0 * kon * (1e3) * XMTR
|
||||
f2 = kon * (1e3) * XMTR
|
||||
koff2 = 2.0 * koff
|
||||
|
||||
~ C0 <-> C1 (f1,koff)
|
||||
~ C1 <-> C2 (f2,koff2)
|
||||
~ C2 <-> O1 (a1,b1)
|
||||
~ C2 <-> C3 (d, r)
|
||||
~ C3 <-> O2 (a2,b2)
|
||||
|
||||
CONSERVE C0+C1+C2+C3+O1+O2 = 1
|
||||
}
|
||||
147
cnmodel/mechanisms/Gly5State.mod
Executable file
147
cnmodel/mechanisms/Gly5State.mod
Executable file
@@ -0,0 +1,147 @@
|
||||
TITLE detailed model of Glycine receptors
|
||||
|
||||
COMMENT
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Kinetic model of Glycine-A receptors
|
||||
====================================
|
||||
|
||||
|
||||
|
||||
C -- C1 -- C2
|
||||
| |
|
||||
O1 O2
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
This mod file does not include mechanisms for the release and time course
|
||||
of transmitter; it is to be used in conjunction with a sepearate mechanism
|
||||
to describe the release of transmitter and that provides the concentration
|
||||
of transmitter in the synaptic cleft (to be connected to pointer C here).
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Based on models
|
||||
|
||||
Destexhe, A., Mainen, Z.F. and Sejnowski, T.J. Kinetic models of
|
||||
synaptic transmission. In: Methods in Neuronal Modeling (2nd edition;
|
||||
edited by Koch, C. and Segev, I.), MIT press, Cambridge, 1998, pp. 1-25.
|
||||
|
||||
(electronic copy available at http://cns.iaf.cnrs-gif.fr)
|
||||
|
||||
Written by Alain Destexhe, Laval University, 1995
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Modified Paul Manis, UNC Chapel Hill, 2009
|
||||
Changed name, pointer name, kinetics are range variables, and kinetic values
|
||||
are estimated from VCN glycine receptors.
|
||||
|
||||
This model does not have a desensitization state.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
NEURON {
|
||||
POINT_PROCESS GLYa5
|
||||
POINTER XMTR
|
||||
RANGE C0, C1, C2, O1, O2, Open
|
||||
RANGE g, gmax, f1, f2
|
||||
RANGE Erev
|
||||
RANGE kf1, kf2, kb1, kb2, a1, b1, a2, b2
|
||||
NONSPECIFIC_CURRENT i
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
(mV) = (millivolt)
|
||||
(pS) = (picosiemens)
|
||||
(umho) = (micromho)
|
||||
(mM) = (milli/liter)
|
||||
(uM) = (micro/liter)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
|
||||
Erev = -70 (mV) : reversal potential
|
||||
gmax = 500 (pS) : maximal conductance
|
||||
|
||||
: Rates
|
||||
|
||||
: from fits to averaged ipsc data, stellate cells 1/1/10
|
||||
|
||||
: kf1 = 0.002930 (/uM /ms) : binding
|
||||
: kf2 = 0.005936 (/uM /ms) : binding
|
||||
: kb1 = 2.793 (/ms) : unbinding
|
||||
: kb2 = 1.445 (/ms) : unbinding
|
||||
: a1 = 1e-6 (/ms) : opening
|
||||
: b1 = 129.0 (/ms) : closing
|
||||
: a2 = 5.10 (/ms) : opening
|
||||
: b2 = 2.79 (/ms) : closing
|
||||
|
||||
: from fits to averaged ipsc data, bushy cells 1/1/10
|
||||
|
||||
kf1 = 0.0278 (/uM /ms) : binding
|
||||
kf2 = 1e-6 (/uM /ms) : binding
|
||||
kb1 = 0.000054 (/ms) : unbinding
|
||||
kb2 = 0.000855 (/ms) : unbinding
|
||||
a1 = 1e-6 (/ms) : opening
|
||||
b1 = 129.0 (/ms) : closing
|
||||
a2 = 5.10 (/ms) : opening
|
||||
b2 = 2.79 (/ms) : closing
|
||||
|
||||
}
|
||||
|
||||
|
||||
ASSIGNED {
|
||||
v (mV) : postsynaptic voltage
|
||||
i (nA) : current = g*(v - Erev)
|
||||
g (pS) : conductance
|
||||
XMTR (mM) : pointer to glycine concentration
|
||||
|
||||
f1 (/ms) : binding
|
||||
f2 (/ms) : binding
|
||||
Open (1)
|
||||
}
|
||||
|
||||
STATE {
|
||||
: Channel states (all fractions)
|
||||
C0 : unbound
|
||||
C1 : single bound
|
||||
C2 : double bound
|
||||
O1 : open
|
||||
O2 : open
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
C0 = 1
|
||||
C1 = 0
|
||||
C2 = 0
|
||||
O1 = 0
|
||||
O2 = 0
|
||||
XMTR = 0.0
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE kstates METHOD sparse
|
||||
Open = (O1 + O2)
|
||||
g = gmax * Open
|
||||
i = (1e-6) * g * (v - Erev)
|
||||
}
|
||||
|
||||
KINETIC kstates {
|
||||
|
||||
f1 = kf1 * (1e3) * XMTR
|
||||
f2 = kf2 * (1e3) * XMTR
|
||||
|
||||
~ C0 <-> C1 (f1,kb1)
|
||||
~ C1 <-> C2 (f2,kb2)
|
||||
~ C1 <-> O1 (a1,b1)
|
||||
~ C2 <-> O2 (a2,b2)
|
||||
|
||||
CONSERVE C0+C1+C2+O1+O2 = 1
|
||||
}
|
||||
131
cnmodel/mechanisms/Gly6S.mod
Executable file
131
cnmodel/mechanisms/Gly6S.mod
Executable file
@@ -0,0 +1,131 @@
|
||||
TITLE Model of glycine receptors
|
||||
|
||||
COMMENT
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Kinetic model of glycine receptors
|
||||
===============================
|
||||
|
||||
6-state gating model with
|
||||
2 open states provide dual exponential response.
|
||||
|
||||
O1
|
||||
|
|
||||
C0 -- C1 -- C2 -- O2
|
||||
|
|
||||
D1
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
This mod file does not include mechanisms for the release and time course
|
||||
of transmitter; it is to be used in conjunction with a sepearate mechanism
|
||||
to describe the release of transmitter and that provides the concentration
|
||||
of transmitter in the synaptic cleft (to be connected to pointer C here).
|
||||
|
||||
Default parameters are set for a miniature EPSC.
|
||||
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Paul B. Manis, Ph.D. 28 Dec 2009
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
ENDCOMMENT
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
NEURON {
|
||||
POINT_PROCESS Gly6S
|
||||
POINTER XMTR
|
||||
RANGE C0, C1, C2, D1, O1, O2, Open
|
||||
RANGE Erev
|
||||
RANGE Rb, Ru1, Ru2, Rd, Rr, Ro1, Rc1, Ro2, Rc2
|
||||
RANGE g, rb, gmax
|
||||
RANGE CellType : 0 is bushy, 1 is stellate
|
||||
NONSPECIFIC_CURRENT i
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
(mV) = (millivolt)
|
||||
(pS) = (picosiemens)
|
||||
(umho) = (micromho)
|
||||
(mM) = (milli/liter)
|
||||
(uM) = (micro/liter)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
|
||||
Erev = -70 (mV) : reversal potential
|
||||
gmax = 500 (pS) : maximal conductance
|
||||
CellType = 0 (1) : Cell type definition.
|
||||
: Rates
|
||||
: Bushy cell IPSCs: (rates can be changed externally)
|
||||
: Set per Fits 8 March 2010 (see Synapses.py as well)
|
||||
Rd = 1.177999 (/ms) : desensitization
|
||||
Rr = 0.000005 (/ms) : resensitization
|
||||
Rb = 0.009403 (/mM /ms): binding
|
||||
: diffusion limited
|
||||
Ru2 = 0.000086 (/ms) : unbinding (2nd site)
|
||||
Ro1 = 0.187858 (/ms) : opening (fast)
|
||||
Ro2 = 1.064426 (/ms) : opening (slow)
|
||||
Ru1 = 0.028696 (/ms) : unbinding (1st site)
|
||||
Rc1 = 0.103625 (/ms) : closing
|
||||
Rc2 = 1.730578 (/ms) : closing
|
||||
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
v (mV) : postsynaptic voltage
|
||||
i (nA) : current = g*(v - Erev)
|
||||
g (pS) : conductance
|
||||
XMTR (mM) : pointer to glutamate concentration
|
||||
rbind (/ms) : binding
|
||||
Open (1)
|
||||
}
|
||||
|
||||
STATE {
|
||||
: Channel states (all fractions)
|
||||
C0 : unbound
|
||||
C1 : single gly bound
|
||||
C2 : double gly bound
|
||||
D1 : double gly bound, desensitized
|
||||
O1 : double gly bound, open state 1
|
||||
O2 : double gly bound, open state 2
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
|
||||
XMTR = 0
|
||||
C0 = 1
|
||||
C1 = 0
|
||||
C2 = 0
|
||||
D1 = 0
|
||||
O1 = 0
|
||||
O2 = 0
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE kstates METHOD sparse
|
||||
:VERBATIM
|
||||
: if (XMTR > 0.1) {
|
||||
: fprintf(stderr, "t = %f XMTR = %f\n", t, XMTR);
|
||||
: }
|
||||
: ENDVERBATIM
|
||||
Open = (O1 + O2)
|
||||
g = gmax * Open
|
||||
i = (1e-6)*g*(v-Erev)
|
||||
}
|
||||
|
||||
|
||||
KINETIC kstates {
|
||||
|
||||
rbind = Rb * (1e3) * XMTR
|
||||
|
||||
~ C0 <-> C1 (rbind,Ru1)
|
||||
~ C1 <-> C2 (rbind*2.0,Ru2)
|
||||
~ C2 <-> O1 (Ro1,Rc1)
|
||||
~ C2 <-> D1 (Rd,Rr)
|
||||
~ C2 <-> O2 (Ro2,Rc2)
|
||||
CONSERVE C0+C1+C2+D1+O1+O2 = 1
|
||||
}
|
||||
64
cnmodel/mechanisms/Iclamp2.mod
Normal file
64
cnmodel/mechanisms/Iclamp2.mod
Normal file
@@ -0,0 +1,64 @@
|
||||
COMMENT
|
||||
|
||||
Iclamp2.mod: Electrode current injection, revised for our own use
|
||||
I specifically needed more step changes in a single waveform than
|
||||
were provided by the default code. This routine gives us 5 levels:
|
||||
holding, 3 steps, and a final (holding?) level.
|
||||
|
||||
This version generates a pulse of duration at amplitude I for
|
||||
onset times in the vector onset[STEP] and durations in dur[STEP]
|
||||
Each pulse is independent and pulses _could_ overlap.
|
||||
|
||||
Since this is an electrode current, positive values of I depolarize the cell
|
||||
and in the presence of the extracellular mechanism there will be a change
|
||||
in vext since I is not a transmembrane current but a current injected
|
||||
directly to the inside of the cell.
|
||||
|
||||
(modified and borrowed extensively from other Neuron code,
|
||||
2001-2002. Paul B. Manis)
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
DEFINE NSTEP 5 : maximum number of steps supported in this mechanism
|
||||
|
||||
NEURON {
|
||||
POINT_PROCESS IClamp2
|
||||
RANGE onset, dur, amp, i
|
||||
ELECTRODE_CURRENT i
|
||||
}
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
PARAMETER {
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
i (nA)
|
||||
index
|
||||
onset[NSTEP] (ms)
|
||||
dur[NSTEP] (ms)
|
||||
amp[NSTEP] (nA)
|
||||
pu
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
i = 0 (nA)
|
||||
index = 0
|
||||
pu = 0
|
||||
}
|
||||
:
|
||||
: at each onset time, a pulse of duration dur is generated.
|
||||
:
|
||||
|
||||
BREAKPOINT {
|
||||
i = 0
|
||||
FROM index = 0 TO NSTEP-1 {
|
||||
if(t > onset[index]) {
|
||||
if(t < (dur[index]+onset[index])) {
|
||||
i = i + amp[index] : allows overlap
|
||||
} : end of if condition
|
||||
} :end of second if condition
|
||||
} : end of "FROM" (for) loop
|
||||
} : end of breakpoint
|
||||
142
cnmodel/mechanisms/NMDA.mod
Normal file
142
cnmodel/mechanisms/NMDA.mod
Normal file
@@ -0,0 +1,142 @@
|
||||
TITLE NMDA receptor--one of the two input stimulation of our model
|
||||
|
||||
: This mechanism is taken from the Neuron data base "exp2syn.mod"
|
||||
: The original comment are below between "COMMENT" and "ENDCOMMENT".
|
||||
:
|
||||
: Our modifications:
|
||||
:
|
||||
: 1.We added a single receptor conductance factor: "g_max=0.000045 (uS)".
|
||||
: An event of weight 1 generates a peak conductance of 1*g_max.
|
||||
: The weight is equal to the number of ampa receptors open at peak conductance
|
||||
:
|
||||
: 2.The NMDA receptors are simulated using a slow rise time constant
|
||||
: and a double-expontial decay time constant
|
||||
|
||||
: The kinetic rate constants and channel conductance are taken from Franks KM, Bartol TM and Sejnowski TJ
|
||||
: A Monte Carlo model reveals independent signaling at central glutamatergic synapses
|
||||
: J Biophys (2002) 83(5):2333-48
|
||||
: and Spruston N, Jonas P and Sakmann B
|
||||
: Dendritic glutamate receptor channels in rat hippocampal CA3 and CA1 neurons
|
||||
: J Physiol (1995) 482(2): 325-352
|
||||
: correctd for physiological tempterature with Q10 from Hestrin S, Sah P and Nicoll RA
|
||||
: Mechanisms generating the time course of dual component excitatory synaptic currents
|
||||
: recorded in hippocampal slices
|
||||
: Neuron (1990) 5: 247-253
|
||||
:
|
||||
: Written by Lei Tian on 04/12/06
|
||||
|
||||
|
||||
|
||||
COMMENT
|
||||
Two state kinetic scheme synapse described by rise time tau1,
|
||||
and decay time constant tau2. The normalized peak condunductance is 1.
|
||||
Decay time MUST be greater than rise time.
|
||||
|
||||
The solution of A->G->bath with rate constants 1/tau1 and 1/tau2 is
|
||||
A = a*exp(-t/tau1) and
|
||||
G = a*tau2/(tau2-tau1)*(-exp(-t/tau1) + exp(-t/tau2))
|
||||
where tau1 < tau2
|
||||
|
||||
If tau2-tau1 -> 0 then we have a alphasynapse.
|
||||
and if tau1 -> 0 then we have just single exponential decay.
|
||||
|
||||
The factor is evaluated in the
|
||||
initial block such that an event of weight 1 generates a
|
||||
peak conductance of 1.
|
||||
|
||||
Because the solution is a sum of exponentials, the
|
||||
coupled equations can be solved as a pair of independent equations
|
||||
by the more efficient cnexp method.
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
POINT_PROCESS nmda
|
||||
RANGE tau1, tau2, tau3, e, i, g_max, g, A, B, C ,k
|
||||
NONSPECIFIC_CURRENT i
|
||||
GLOBAL total,i2,g2
|
||||
: EXTERNAL Area_canmda
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(uS) = (microsiemens)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
tau1 = 3.18 (ms) <1e-9,1e9> :rise time constant
|
||||
tau2 = 57.14 (ms) <1e-9,1e9> :decay time constant
|
||||
tau3 = 2000 (ms) <1e-9,1e9> :decay time constant
|
||||
|
||||
g_max= 0.000045 (uS) : single channel conductance
|
||||
e = 0 (mV)
|
||||
mg = 1 (mM)
|
||||
|
||||
Area (cm2)
|
||||
k = 1e-06 (mA/nA)
|
||||
Area_canmda = 1
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
v (mV)
|
||||
i (nA)
|
||||
factor
|
||||
total (uS)
|
||||
g (uS)
|
||||
|
||||
g2 (uS) : plot 'g' and 'i' in "nmda.mod".
|
||||
i2 (mA/cm2) : global variables read in "canmda.mod" as 'inmda' and 'gnmda' to give us
|
||||
}
|
||||
|
||||
STATE {
|
||||
A (uS)
|
||||
B (uS)
|
||||
C (uS)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
LOCAL t_peak
|
||||
total = 0
|
||||
if (tau1/tau2 > .9999) {
|
||||
tau1 = .9999*tau2
|
||||
}
|
||||
A = 0
|
||||
B = 0
|
||||
C = 0
|
||||
|
||||
factor=0.8279 :from matlab to make the peak of the conductance curve shape to be 1*weight (then multiply with g_max)
|
||||
factor = 1/factor
|
||||
|
||||
Area = Area_canmda
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE state METHOD cnexp
|
||||
|
||||
g = g_max*(B*0.8+C*0.2-A)
|
||||
i = g*(v - e)*1/(1+(exp(0.08(/mV) * -v)*(mg / 0.69)))
|
||||
|
||||
g2=g :global variable can be read in 'canmda.mod'
|
||||
i2=i*k/Area :to get a current in 'mA/cm2' and send it to 'canmda.mod'
|
||||
}
|
||||
|
||||
DERIVATIVE state {
|
||||
A' = -A/tau1
|
||||
B' = -B/tau2
|
||||
C' = -C/tau3
|
||||
}
|
||||
|
||||
NET_RECEIVE(weight (uS)) {
|
||||
state_discontinuity(A, weight*factor)
|
||||
state_discontinuity(B, weight*factor)
|
||||
state_discontinuity(C, weight*factor)
|
||||
total = total+weight
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
212
cnmodel/mechanisms/NMDA_Kampa.mod
Normal file
212
cnmodel/mechanisms/NMDA_Kampa.mod
Normal file
@@ -0,0 +1,212 @@
|
||||
TITLE kinetic NMDA receptor model
|
||||
|
||||
COMMENT
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Kinetic model of NMDA receptors
|
||||
===============================
|
||||
|
||||
10-state gating model:
|
||||
Kampa et al. (2004) J Physiol
|
||||
|
||||
U -- Cl -- O
|
||||
\ | \ \
|
||||
\ | \ \
|
||||
UMg -- ClMg - OMg
|
||||
| |
|
||||
D1 |
|
||||
| \ |
|
||||
D2 \ |
|
||||
\ D1Mg
|
||||
\ |
|
||||
D2Mg
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Based on voltage-clamp recordings of NMDA receptor-mediated currents in
|
||||
nucleated patches of rat neocortical layer 5 pyramidal neurons (Kampa 2004),
|
||||
this model was fit with AxoGraph directly to experimental recordings in
|
||||
order to obtain the optimal values for the parameters.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
This mod file does not include mechanisms for the release and time course
|
||||
of transmitter; it should to be used in conjunction with a separate mechanism
|
||||
to describe the release of transmitter and timecourse of the concentration
|
||||
of transmitter in the synaptic cleft (to be connected to pointer XMTR here).
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
See details of NEURON kinetic models in:
|
||||
|
||||
Destexhe, A., Mainen, Z.F. and Sejnowski, T.J. Kinetic models of
|
||||
synaptic transmission. In: Methods in Neuronal Modeling (2nd edition;
|
||||
edited by Koch, C. and Segev, I.), MIT press, Cambridge, 1996.
|
||||
|
||||
|
||||
Written by Bjoern Kampa in 2004
|
||||
Lightly modified, Paul Manis 2010.
|
||||
Note that data were taken at 23 deg C
|
||||
Q10 was taken from native receptors:
|
||||
Korinek M, Sedlacek M, Cais O, Dittert I, Vyklicky L Jr. Temperature
|
||||
dependence of N-methyl-D-aspartate receptor channels and N-methyl-D-aspartate
|
||||
receptor excitatory postsynaptic currents. Neuroscience. 2010 Feb
|
||||
3;165(3):736-48. Epub 2009 Oct 31. PubMed PMID: 19883737.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
ENDCOMMENT
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
|
||||
POINT_PROCESS NMDA_Kampa
|
||||
POINTER XMTR
|
||||
RANGE U, Cl, D1, D2, Open, MaxOpen, UMg, ClMg, D1Mg, D2Mg, OMg
|
||||
RANGE g, gmax, vshift, Erev, rb, rmb, rmu, rbMg,rmc1b,rmc1u,rmc2b,rmc2u
|
||||
GLOBAL mg, Rb, Ru, Rd1, Rr1, Rd2, Rr2, Ro, Rc, Rmb, Rmu
|
||||
GLOBAL RbMg, RuMg, Rd1Mg, Rr1Mg, Rd2Mg, Rr2Mg, RoMg, RcMg
|
||||
GLOBAL Rmd1b,Rmd1u,Rmd2b,Rmd2u,rmd1b,rmd1u,rmd2b,rmd2u
|
||||
GLOBAL Rmc1b,Rmc1u,Rmc2b,Rmc2u
|
||||
GLOBAL vmin, vmax, valence, memb_fraction
|
||||
NONSPECIFIC_CURRENT i
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
(mV) = (millivolt)
|
||||
(pS) = (picosiemens)
|
||||
(umho) = (micromho)
|
||||
(mM) = (milli/liter)
|
||||
(uM) = (micro/liter)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
|
||||
Erev = 5 (mV) : reversal potential
|
||||
gmax = 500 (pS) : maximal conductance
|
||||
mg = 1 (mM) : external magnesium concentration
|
||||
vmin = -120 (mV)
|
||||
vmax = 100 (mV)
|
||||
valence = -2 : parameters of voltage-dependent Mg block
|
||||
memb_fraction = 0.8
|
||||
vshift = 0.0 (mV)
|
||||
Q10 = 2.0 : temperature sensitivity (see above)
|
||||
|
||||
: Maximum open probability with Mode=0 (no rectification).
|
||||
: This is determined empirically by holding XMTR at a large
|
||||
: value and v=40mV for 100 timesteps and measuring the
|
||||
: maximum value of Open.
|
||||
MaxOpen = 0.01988893957 (1)
|
||||
|
||||
: Rates
|
||||
|
||||
Rb = 10e-3 (/uM /ms) : binding
|
||||
Ru = 5.6e-3 (/ms) : unbinding
|
||||
Ro = 10e-3 (/ms) : opening
|
||||
Rc = 273e-3 (/ms) : closing
|
||||
: Rd1 = 2.2e-3 (/ms) : fast desensitisation
|
||||
Rd1 = 0.1 (/ms) : fast desensitisation
|
||||
Rr1 = 1.6e-3 (/ms) : fast resensitisation
|
||||
: Rd2 = 0.43e-3 (/ms) : slow desensitisation
|
||||
Rd2 = 1e-4 (/ms) : slow desensitisation
|
||||
Rr2 = 0.5e-3 (/ms) : slow resensitisation
|
||||
Rmb = 0.05e-3 (/uM /ms) : Mg binding Open
|
||||
Rmu = 12800e-3 (/ms) : Mg unbinding Open
|
||||
Rmc1b = 0.00005e-3 (/uM /ms) : Mg binding Closed
|
||||
Rmc1u = 2.438312e-3 (/ms) : Mg unbinding Closed
|
||||
Rmc2b = 0.00005e-3 (/uM /ms) : Mg binding Closed2
|
||||
Rmc2u = 5.041915e-3 (/ms) : Mg unbinding Closed2
|
||||
Rmd1b = 0.00005e-3 (/uM /ms) : Mg binding Desens1
|
||||
Rmd1u = 2.98874e-3 (/ms) : Mg unbinding Desens1
|
||||
Rmd2b = 0.00005e-3 (/uM /ms) : Mg binding Desens2
|
||||
Rmd2u = 2.953408e-3 (/ms) : Mg unbinding Desens2
|
||||
RbMg = 10e-3 (/uM /ms) : binding with Mg
|
||||
RuMg = 17.1e-3 (/ms) : unbinding with Mg
|
||||
RoMg = 10e-3 (/ms) : opening with Mg
|
||||
RcMg = 548e-3 (/ms) : closing with Mg
|
||||
Rd1Mg = 2.1e-3 (/ms) : fast desensitisation with Mg
|
||||
Rr1Mg = 0.87e-3 (/ms) : fast resensitisation with Mg
|
||||
Rd2Mg = 0.26e-3 (/ms) : slow desensitisation with Mg
|
||||
Rr2Mg = 0.42e-3 (/ms) : slow resensitisation with Mg
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
v (mV) : postsynaptic voltage
|
||||
i (nA) : current = g*(v - Erev)
|
||||
g (pS) : conductance
|
||||
XMTR (mM) : pointer to glutamate concentration
|
||||
|
||||
rb (/ms) : binding, [glu] dependent
|
||||
rmb (/ms) : blocking V and [Mg] dependent
|
||||
rmu (/ms) : unblocking V and [Mg] dependent
|
||||
rbMg (/ms) : binding, [glu] dependent
|
||||
rmc1b (/ms) : blocking V and [Mg] dependent
|
||||
rmc1u (/ms) : unblocking V and [Mg] dependent
|
||||
rmc2b (/ms) : blocking V and [Mg] dependent
|
||||
rmc2u (/ms) : unblocking V and [Mg] dependent
|
||||
rmd1b (/ms) : blocking V and [Mg] dependent
|
||||
rmd1u (/ms) : unblocking V and [Mg] dependent
|
||||
rmd2b (/ms) : blocking V and [Mg] dependent
|
||||
rmd2u (/ms) : unblocking V and [Mg] dependent
|
||||
|
||||
qfac : Q10
|
||||
celsius (degC)
|
||||
}
|
||||
|
||||
STATE {
|
||||
: Channel states (all fractions)
|
||||
U : unbound
|
||||
Cl : closed
|
||||
D1 : desensitised 1
|
||||
D2 : desensitised 2
|
||||
Open : open
|
||||
UMg : unbound with Mg
|
||||
ClMg : closed with Mg
|
||||
D1Mg : desensitised 1 with Mg
|
||||
D2Mg : desensitised 2 with Mg
|
||||
OMg : open with Mg
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
U = 1
|
||||
qfac = Q10^((celsius-23)/10 (degC))}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE kstates METHOD sparse
|
||||
|
||||
g = gmax * Open / MaxOpen
|
||||
i = (1e-6) * g * (v - Erev)
|
||||
}
|
||||
|
||||
KINETIC kstates {
|
||||
|
||||
rb = Rb * (1e3) * XMTR
|
||||
rbMg = RbMg * (1e3) * XMTR
|
||||
rmb = Rmb * mg * (1e3) * exp((v-40+vshift) * valence * memb_fraction /25 (mV))
|
||||
rmu = Rmu * exp((-1)*(v-40+vshift) * valence * (1-memb_fraction) /25 (mV))
|
||||
rmc1b = Rmc1b * mg * (1e3) * exp((v-40+vshift) * valence * memb_fraction /25 (mV))
|
||||
rmc1u = Rmc1u * exp((-1)*(v-40+vshift) * valence * (1-memb_fraction) /25 (mV))
|
||||
rmc2b = Rmc2b * mg * (1e3) * exp((v-40+vshift) * valence * memb_fraction /25 (mV))
|
||||
rmc2u = Rmc2u * exp((-1)*(v-40+vshift) * valence * (1-memb_fraction) /25 (mV))
|
||||
rmd1b = Rmd1b * mg * (1e3) * exp((v-40+vshift) * valence * memb_fraction /25 (mV))
|
||||
rmd1u = Rmd1u * exp((-1)*(v-40+vshift) * valence * (1-memb_fraction) /25 (mV))
|
||||
rmd2b = Rmd2b * mg * (1e3) * exp((v-40+vshift) * valence * memb_fraction /25 (mV))
|
||||
rmd2u = Rmd2u * exp((-1)*(v-40+vshift) * valence * (1-memb_fraction) /25 (mV))
|
||||
|
||||
~ U <-> Cl (rb*qfac,Ru*qfac)
|
||||
~ Cl <-> Open (Ro*qfac,Rc*qfac)
|
||||
~ Cl <-> D1 (Rd1*qfac,Rr1*qfac)
|
||||
~ D1 <-> D2 (Rd2*qfac,Rr2*qfac)
|
||||
~ Open <-> OMg (rmb*qfac,rmu*qfac)
|
||||
~ UMg <-> ClMg (rbMg*qfac,RuMg*qfac)
|
||||
~ ClMg <-> OMg (RoMg*qfac,RcMg*qfac)
|
||||
~ ClMg <-> D1Mg (Rd1Mg*qfac,Rr1Mg*qfac)
|
||||
~ D1Mg <-> D2Mg (Rd2Mg*qfac,Rr2Mg*qfac)
|
||||
~ U <-> UMg (rmc1b*qfac,rmc1u*qfac)
|
||||
~ Cl <-> ClMg (rmc2b*qfac,rmc2u*qfac)
|
||||
~ D1 <-> D1Mg (rmd1b*qfac,rmd1u*qfac)
|
||||
~ D2 <-> D2Mg (rmd2b*qfac,rmd2u*qfac)
|
||||
|
||||
CONSERVE U+Cl+D1+D2+Open+UMg+ClMg+D1Mg+D2Mg+OMg = 1
|
||||
}
|
||||
125
cnmodel/mechanisms/adex.mod
Normal file
125
cnmodel/mechanisms/adex.mod
Normal file
@@ -0,0 +1,125 @@
|
||||
: AdEx GIF model
|
||||
|
||||
: This implementation is for the equations in:
|
||||
: Naud R, Marcille N, Clopath C, Gerstner W. Firing patterns in the adaptive
|
||||
: exponential integrate-and-fire model. Biol Cybern. 2008 Nov;99(4-5):335-47. doi:
|
||||
: 10.1007/s00422-008-0264-7. Epub 2008 Nov 15. PubMed PMID: 19011922; PubMed
|
||||
: Central PMCID: PMC2798047.
|
||||
|
||||
: Which in turn is based on:
|
||||
: Brette R, Gerstner W. Adaptive exponential integrate-and-fire model as an
|
||||
: effective description of neuronal activity. J Neurophysiol. 2005
|
||||
: Nov;94(5):3637-42. Epub 2005 Jul 13. PubMed PMID: 16014787.
|
||||
:
|
||||
: Paul B. Manis
|
||||
: 9 Nov 2017, Washington DC
|
||||
:
|
||||
|
||||
|
||||
NEURON {
|
||||
: ARTIFICIAL_CELL AdEx
|
||||
SUFFIX AdEx
|
||||
RANGE gl, el, delt, vt, vr, w, b, cm, is, a, tauw
|
||||
RANGE refract, Vm
|
||||
NONSPECIFIC_CURRENT i
|
||||
: m plays the role of voltage
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
cm = 200 (pF)
|
||||
el = -70 (mV) : leak (RMP)
|
||||
gl = 10 (nS) : resting input R
|
||||
delt = 2 (mV) : spike threshold sharpness
|
||||
vt = -50 (mV)
|
||||
vr = -58 (mV): reset value after a spike
|
||||
a = 2 (nS)
|
||||
b = 0 (pA)
|
||||
is = 0 (pA)
|
||||
tauw = 30 (ms)
|
||||
refract = 1 (ms)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
i (mA/cm2)
|
||||
t0(ms) : time of last spike
|
||||
refractory : flag indicating when in a refractory period
|
||||
}
|
||||
|
||||
STATE {
|
||||
w
|
||||
Vm
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
Vm = el
|
||||
t0 = t
|
||||
w = 0
|
||||
|
||||
refractory = 0 : 0-integrates input, 1-refractory
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
|
||||
if (refractory == 0 && Vm <= 0.) {
|
||||
states()
|
||||
}
|
||||
if (refractory == 1) {
|
||||
if ((t-t0) >= refract){
|
||||
refractory = 0
|
||||
Vm = vr
|
||||
states()
|
||||
}
|
||||
else {
|
||||
Vm = 0.
|
||||
}
|
||||
}
|
||||
if (refractory == 0 && Vm > 0.) {
|
||||
refractory = 1
|
||||
t0 = t
|
||||
Vm = 0.
|
||||
w = w + b
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DERIVATIVE states { : update adaptation variable w
|
||||
LOCAL eterm, et
|
||||
w' = (a*(Vm - el) - w)/tauw
|
||||
eterm = (Vm-vt)/delt
|
||||
if (eterm > 700 ) { : prevent overflow of the exponential term
|
||||
: (it would be better to estimate the value... but for this
|
||||
: implementation, not necessary as this will be the term
|
||||
: that drives the model to spike - after that V is reset
|
||||
: so the time evolution no longer matters)
|
||||
et = 700.
|
||||
}
|
||||
else {
|
||||
et = exp(eterm)
|
||||
}
|
||||
Vm' = ( -gl*(Vm-el) + gl*delt*et + is - w)/cm
|
||||
}
|
||||
|
||||
|
||||
COMMENT
|
||||
NET_RECEIVE (w) {
|
||||
if (refractory == 0) { : inputs integrated only when excitable
|
||||
i = -gl*(v-el) + gl*delt*exp((Vm-vt)/delt) - w
|
||||
m = i/cm
|
||||
t0 = t
|
||||
states()
|
||||
if (m > 0) {
|
||||
refractory = 1
|
||||
m = 0
|
||||
net_send(refractory, refractory)
|
||||
net_event(t)
|
||||
}
|
||||
} else if (flag == 1) { : ready to integrate again
|
||||
t0 = t
|
||||
refractory = 0
|
||||
m = vr
|
||||
}
|
||||
}
|
||||
ENDCOMMENT
|
||||
224
cnmodel/mechanisms/ampa_trussell.mod
Normal file
224
cnmodel/mechanisms/ampa_trussell.mod
Normal file
@@ -0,0 +1,224 @@
|
||||
TITLE Model of AMPA receptors
|
||||
|
||||
COMMENT
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Kinetic model of AMPA receptors
|
||||
===============================
|
||||
|
||||
6-state gating model:
|
||||
(scheme 1 from Raman and Trussell, Neuron 9:173-186, 1992)
|
||||
2 open states provide dual exponential response.
|
||||
|
||||
O1
|
||||
|
|
||||
C -- C1 -- C2 -- O2
|
||||
|
|
||||
D
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
This mod file does not include mechanisms for the release and time course
|
||||
of transmitter; it is to be used in conjunction with a separate mechanism
|
||||
to describe the release of transmitter and that provides the concentration
|
||||
of transmitter in the synaptic cleft (to be connected to pointer C here).
|
||||
|
||||
Default parameters are set for a miniature EPSC.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
Code based on Destexhe's ampa5.mod
|
||||
|
||||
B. Graham, Dept. of Computing Science & Maths, University of Stirling
|
||||
(Contact: b.graham@cs.stir.ac.uk)
|
||||
(previously IANC, Division of Informatics, University of Edinburgh)
|
||||
|
||||
CNS 2000 Version (19/11/02)
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Further modified:
|
||||
|
||||
Paul Manis (Otolaryngology/HNS and Cell and Molecular Physiology,
|
||||
UNC Chapel Hill. contact: pmanis@med.unc.edu)
|
||||
|
||||
3/15/2005 Modifications:
|
||||
|
||||
1. Added Q10/qfac to allow temperature scaling. All rates in the state model
|
||||
are changed by the same factor. A Q10 of 1.5 gives a decay tau (single
|
||||
exponential fit using Praxis algorithm in NEURON; using ampa_kinetics.hoc)
|
||||
of about 850 usec at 22 deg C and 570 usec at 33 deg C. These are consistent
|
||||
with the Raman and Trussell 1992 measurements in avians. The 850 usec is a
|
||||
bit fast for an EPSC, and could probably be tuned by adjustment of some of
|
||||
the parameters below.
|
||||
|
||||
2. Brought several variables out to global (rather than range) so that we
|
||||
can change them - Q10 and gmax in particular. note that gmax is in pS. Only
|
||||
local conductance etc. is in specified as RANGE.
|
||||
|
||||
3. Max open probability is less than unity, so a gmax of 2500 yields 100 pA
|
||||
at -60 mV. Therefore scaling by mini size must take this into account.
|
||||
|
||||
3/28/2005 Paul B. Manis
|
||||
Added rectification to AMPA R. Rectification is controlled by
|
||||
polyamine-style block of receptor. See Donevan and Rogawski, 1995; Washburn
|
||||
et al., 1997. The equations used here are from Washburn et al. The values
|
||||
given in the equation at the break point were determined from EPSCs in 5
|
||||
21-d old DBA mice. Blocker = 45 (uM), Kd = 31.32, zd = 1.029. Note that this
|
||||
should also reduce the maximal conductance. Mode: if 1, use rectifying; if
|
||||
0, use non-rectifying. Default is 1
|
||||
|
||||
This point process uses XMTR as the transmitter concentration to operate on
|
||||
the receptor kinetics. XMTR should be provided by another process that
|
||||
controls release (e.g., COH calyx of Held, etc). An advantage of this is
|
||||
that whatever release process is present, glutamate accumulates in the
|
||||
cleft, and can drive desensitization etc.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
ENDCOMMENT
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
POINT_PROCESS AMPATRUSSELL
|
||||
POINTER XMTR
|
||||
RANGE C0, C1, C2, D, O1, O2
|
||||
|
||||
RANGE Rb, Ru1, Ru2, Rd, Rr, Ro1, Rc1, Ro2, Rc2, Open, MaxOpen
|
||||
GLOBAL vmin, vmax
|
||||
GLOBAL Q10, Mode
|
||||
GLOBAL zd, Kd0
|
||||
RANGE g, rb, gmax, PA, Erev
|
||||
NONSPECIFIC_CURRENT i
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
(mV) = (millivolt)
|
||||
(pS) = (picosiemens)
|
||||
(umho) = (micromho)
|
||||
(mM) = (milli/liter)
|
||||
(uM) = (micro/liter)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
|
||||
Erev = 7 (mV) : reversal potential
|
||||
gmax = 10 (pS) : maximal conductance
|
||||
vmin = -120 (mV)
|
||||
vmax = 100 (mV)
|
||||
Q10 = 1.5 : temperature sensitivity
|
||||
Mode = 0 : flag to control rectification calculation
|
||||
|
||||
: polyamine block parameters (Wang & Manis unpublished data)
|
||||
zd = 1.032
|
||||
PA = 45
|
||||
Kd0 = 31.e-6
|
||||
|
||||
: Rates
|
||||
|
||||
Rb = 13 (/mM /ms): binding
|
||||
: diffusion limited (DO NOT ADJUST)
|
||||
Ru1 = 0.3 (/ms) : unbinding (1st site)
|
||||
Ru2 = 200 (/ms) : unbinding (2nd site)
|
||||
Rd = 30.0 (/ms) : desensitization (WAS30.0)
|
||||
Rr = 0.02 (/ms) : resensitization
|
||||
Ro1 = 100 (/ms) : opening (fast)
|
||||
Rc1 = 2 (/ms) : closing
|
||||
Ro2 = 2 (/ms) : opening (slow)
|
||||
Rc2 = 0.25 (/ms) : closing
|
||||
|
||||
Open = 0 (1) : total of all open states
|
||||
|
||||
: Maximum open probability with Mode=0 (no rectification).
|
||||
: This is determined empirically by holding XMTR at a large
|
||||
: value for 100 timesteps and measuring the maximum value
|
||||
: of Open.
|
||||
MaxOpen = 0.72418772400 (1)
|
||||
|
||||
aflag = 1 : Flag for control of printout of initial values.....
|
||||
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
v (mV) : postsynaptic voltage
|
||||
i (nA) : current = g*(v - Erev)
|
||||
g (pS) : conductance
|
||||
g0 (pS) : conductance for voltage-dependent block by polyamines
|
||||
gvdep (pS) : voltage-dependence of conductance
|
||||
XMTR (mM) : pointer to glutamate concentration
|
||||
rb (/ms) : binding
|
||||
qfac : q10 factor for rate scaling
|
||||
celsius (degC)
|
||||
|
||||
}
|
||||
|
||||
STATE {
|
||||
: Channel states (all fractions)
|
||||
C0 : unbound
|
||||
C1 : single glu bound
|
||||
C2 : double glu bound
|
||||
D : single glu bound, desensitized
|
||||
O1 : open state 1
|
||||
O2 : open state 2
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
usetable = 0
|
||||
C0=1
|
||||
C1=0
|
||||
C2=0
|
||||
D=0
|
||||
O1=0
|
||||
O2=0
|
||||
Open = 0
|
||||
qfac = Q10^((celsius-22)/10)
|
||||
: VERBATIM
|
||||
: fprintf(stdout, "AMPA.MOD gmax: %f Q10 = %f celsius = %f\n", gmax, Q10, celsius);
|
||||
: ENDVERBATIM
|
||||
gvdepcalc(v)
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE kstates METHOD sparse
|
||||
: VERBATIM
|
||||
: fprintf(stderr, "kstates @ t=%7.2f Rb: %f XMTR: %f: gmax: %f, o1: %f o2: %f\n", t, Rb, XMTR, gmax, O1, O2);
|
||||
: ENDVERBATIM
|
||||
|
||||
gvdepcalc(v)
|
||||
Open = O1 + O2
|
||||
g = gmax * Open / MaxOpen
|
||||
if ( Mode == 1) {
|
||||
g0 = 1.0 + 0.6*exp((v-50)/40) : eq. 5 of Washburn et al., 1997, slightly modified
|
||||
gvdep = g0*(1/(1+PA/(Kd0*exp(-zd*v/25.3))))
|
||||
i = (1e-6) * g * gvdep * (v - Erev)
|
||||
}
|
||||
else {
|
||||
i = (1e-6)*g*(v-Erev)
|
||||
}
|
||||
}
|
||||
|
||||
KINETIC kstates {
|
||||
|
||||
rb = Rb * XMTR
|
||||
|
||||
~ C0 <-> C1 (rb*qfac,Ru1*qfac)
|
||||
~ C1 <-> C2 (rb*qfac,Ru2*qfac)
|
||||
~ C2 <-> D (Rd*qfac,Rr*qfac)
|
||||
~ C2 <-> O1 (Ro1*qfac,Rc1*qfac)
|
||||
~ C2 <-> O2 (Ro2*qfac,Rc2*qfac)
|
||||
CONSERVE C0+C1+C2+D+O1+O2 = 1
|
||||
}
|
||||
|
||||
LOCAL g0
|
||||
PROCEDURE gvdepcalc(v) {
|
||||
TABLE gvdep DEPEND PA, Kd0, zd FROM -100 TO 100 WITH 200
|
||||
: VERBATIM
|
||||
: fprintf(stderr, "gvdepcalc starts ");
|
||||
: ENDVERBATIM
|
||||
g0 = 1.0 + 0.6*exp((v-50)/40) : eq. 5 of Washburn et al., 1997, slightly modified
|
||||
gvdep = g0*(1/(1+PA/(Kd0*exp(-zd*v/25.3))))
|
||||
: VERBATIM
|
||||
: fprintf(stderr, "& ends\n");
|
||||
: ENDVERBATIM
|
||||
}
|
||||
129
cnmodel/mechanisms/atm.mod
Normal file
129
cnmodel/mechanisms/atm.mod
Normal file
@@ -0,0 +1,129 @@
|
||||
: ATM GIF model
|
||||
|
||||
: This implementation the adaptive theshold model (ATM) is for the equations in:
|
||||
: Fontaine, B., Benichourx, V., Joris, P.X., and Brette, R. Prediciting
|
||||
: spike timing in hhigy synchronous auditory neurons at different sound
|
||||
: levels. J. Neurophysiol. 110: 1672-1688, 2013.
|
||||
|
||||
: Which in turn is based on:
|
||||
: Brette R, Gerstner W. Adaptive exponential integrate-and-fire model as an
|
||||
: effective description of neuronal activity. J Neurophysiol. 2005
|
||||
: Nov;94(5):3637-42. Epub 2005 Jul 13. PubMed PMID: 16014787.
|
||||
:
|
||||
: Paul B. Manis
|
||||
: 2 December 2017, Chapel Hill, NC
|
||||
:
|
||||
: Incomplete version
|
||||
|
||||
NEURON {
|
||||
: ARTIFICIAL_CELL ATM
|
||||
SUFFIX ATM
|
||||
RANGE gl, el, delt, vt, vr, alpha, beta, cm, is, a, tauw
|
||||
RANGE refract, Vm
|
||||
NONSPECIFIC_CURRENT i
|
||||
: m plays the role of voltage
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
cm = 200 (pF)
|
||||
el = -70 (mV) : leak (RMP)
|
||||
gl = 10 (nS) : resting input R
|
||||
delt = 2 (mV) : spike threshold sharpness
|
||||
vr = -58 (mV): reset value after a spike
|
||||
a = 2 (1)
|
||||
b = 2 (1)
|
||||
beta = 0 (1)
|
||||
alpha = 0
|
||||
is = 0 (pA)
|
||||
taut = 30 (ms) : threshold tau
|
||||
refract = 1 (ms)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
i (mA/cm2)
|
||||
t0 (ms) : time of last spike
|
||||
refractory : flag indicating when in a refractory period
|
||||
}
|
||||
|
||||
STATE {
|
||||
w
|
||||
Vm
|
||||
vt
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
Vm = el
|
||||
t0 = t
|
||||
a = 0
|
||||
b = 0
|
||||
|
||||
refractory = 0 : 0-integrates input, 1-refractory
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
|
||||
if (refractory == 0 && Vm <= 0.) {
|
||||
states()
|
||||
}
|
||||
if (refractory == 1) {
|
||||
if ((t-t0) >= refract){
|
||||
refractory = 0
|
||||
Vm = vr
|
||||
states()
|
||||
}
|
||||
else {
|
||||
Vm = 0.
|
||||
}
|
||||
}
|
||||
if (refractory == 0 && Vm > 0.) {
|
||||
refractory = 1
|
||||
t0 = t
|
||||
Vm = 0.
|
||||
w = w + b
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DERIVATIVE states { : update adaptation variable w
|
||||
LOCAL eterm, et
|
||||
vt' = (a*i - vt)/taut
|
||||
COMMENT
|
||||
eterm = (Vm-vt)/delt
|
||||
if (eterm > 700 ) { : prevent overflow of the exponential term
|
||||
: (it would be better to estimate the value... but for this
|
||||
: implementation, not necessary as this will be the term
|
||||
: that drives the model to spike - after that V is reset
|
||||
: so the time evolution no longer matters)
|
||||
et = 700.
|
||||
}
|
||||
else {
|
||||
et = exp(eterm)
|
||||
}
|
||||
ENDCOMMENT
|
||||
Vm' = gl*( -(Vm-el) + i)/cm
|
||||
}
|
||||
|
||||
|
||||
COMMENT
|
||||
NET_RECEIVE (w) {
|
||||
if (refractory == 0) { : inputs integrated only when excitable
|
||||
i = -gl*(v-el) + gl*delt*exp((Vm-vt)/delt) - w
|
||||
m = i/cm
|
||||
t0 = t
|
||||
states()
|
||||
if (m > 0) {
|
||||
refractory = 1
|
||||
m = 0
|
||||
net_send(refractory, refractory)
|
||||
net_event(t)
|
||||
}
|
||||
} else if (flag == 1) { : ready to integrate again
|
||||
t0 = t
|
||||
refractory = 0
|
||||
m = vr
|
||||
}
|
||||
}
|
||||
ENDCOMMENT
|
||||
98
cnmodel/mechanisms/bkpkj.mod
Normal file
98
cnmodel/mechanisms/bkpkj.mod
Normal file
@@ -0,0 +1,98 @@
|
||||
: BK-type Purkinje calcium-activated potassium current
|
||||
: Created 8/19/02 - nwg
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX bkpkj
|
||||
USEION k READ ek WRITE ik
|
||||
USEION ca READ cai
|
||||
RANGE gbar, ik, gbkpkj
|
||||
GLOBAL minf, mtau, hinf, htau, zinf, ztau
|
||||
GLOBAL m_vh, m_k, mtau_y0, mtau_vh1, mtau_vh2, mtau_k1, mtau_k2
|
||||
GLOBAL z_coef, ztau
|
||||
GLOBAL h_y0, h_vh, h_k, htau_y0, htau_vh1, htau_vh2, htau_k1, htau_k2
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mV) = (millivolt)
|
||||
(mA) = (milliamp)
|
||||
(mM) = (milli/liter)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
gbar = 0.007 (mho/cm2)
|
||||
|
||||
m1 (ms)
|
||||
m_vh = -28.9 (mV)
|
||||
m_k = 6.2 (mV)
|
||||
mtau_y0 = 0.505 (ms) : 0.000505 (s)
|
||||
mtau_vh1 = -33.3 (mV)
|
||||
mtau_k1 = -10 (mV)
|
||||
mtau_vh2 = 86.4 (mV)
|
||||
mtau_k2 = 10.1 (mV)
|
||||
|
||||
z_coef = 0.001 (mM)
|
||||
ztau = 1 (ms)
|
||||
|
||||
h_y0 = 0.085
|
||||
h_vh = -32 (mV)
|
||||
h_k = 5.8 (mV)
|
||||
htau_y0 = 1.9 (ms) : 0.0019 (s)
|
||||
htau_vh1 = -54.2 (mV)
|
||||
htau_k1 = -12.9 (mV)
|
||||
htau_vh2 = 48.5 (mV)
|
||||
htau_k2 = 5.2 (mV)
|
||||
|
||||
ek (mV)
|
||||
cai (mM)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gbkpkj (mho/cm2)
|
||||
minf
|
||||
mtau (ms)
|
||||
hinf
|
||||
htau (ms)
|
||||
zinf
|
||||
|
||||
ik (mA/cm2)
|
||||
}
|
||||
|
||||
STATE {
|
||||
m FROM 0 TO 1
|
||||
z FROM 0 TO 1
|
||||
h FROM 0 TO 1
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gbkpkj = gbar * m * m * m * z * z * h
|
||||
ik = gbkpkj * (v - ek)
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
|
||||
m' = (minf - m) / mtau
|
||||
h' = (hinf - h) / htau
|
||||
z' = (zinf - z) / ztau
|
||||
}
|
||||
|
||||
PROCEDURE rates(Vm (mV)) {
|
||||
LOCAL v
|
||||
v = Vm + 5
|
||||
minf = 1 / (1 + exp(-(v - (m_vh)) / m_k))
|
||||
m1 = mtau_y0 + (1. (ms)/(exp((v+ mtau_vh1)/mtau_k1)))
|
||||
mtau = m1 + (1. (ms)) * exp((v+mtau_vh2)/mtau_k2)
|
||||
zinf = 1/(1 + z_coef / cai)
|
||||
hinf = h_y0 + (1-h_y0) / (1+exp((v - h_vh)/h_k))
|
||||
htau = (htau_y0 + (1 (ms))/(exp((v + htau_vh1)/htau_k1)+exp((v+htau_vh2)/htau_k2)))
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
m = minf
|
||||
z = zinf
|
||||
h = hinf
|
||||
}
|
||||
157
cnmodel/mechanisms/cabpump.mod
Normal file
157
cnmodel/mechanisms/cabpump.mod
Normal file
@@ -0,0 +1,157 @@
|
||||
TITLE Calcium ion accumulation and diffusion with pump
|
||||
: The internal coordinate system is set up in PROCEDURE coord_cadifus()
|
||||
: and must be executed before computing the concentrations.
|
||||
: The scale factors set up in this procedure do not have to be recomputed
|
||||
: when diam or DFree are changed.
|
||||
: The amount of calcium in an annulus is ca[i]*diam^2*vol[i] with
|
||||
: ca[0] being the second order correct concentration at the exact edge
|
||||
: and ca[NANN-1] being the concentration at the exact center
|
||||
|
||||
? interface
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX cadifpmp
|
||||
USEION ca READ cao, ica WRITE cai, ica
|
||||
RANGE ica_pmp, last_ica_pmp, k1, k2, k3, k4, DFree
|
||||
GLOBAL vol, pump0
|
||||
}
|
||||
|
||||
DEFINE NANN 10
|
||||
|
||||
UNITS {
|
||||
(mV) = (millivolt)
|
||||
(molar) = (1/liter)
|
||||
(mM) = (millimolar)
|
||||
(um) = (micron)
|
||||
(mA) = (milliamp)
|
||||
(mol) = (1)
|
||||
FARADAY = (faraday) (coulomb)
|
||||
PI = (pi) (1)
|
||||
R = (k-mole) (joule/degC)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
DFree = 0.6 (um2/ms) <0,1e9>
|
||||
beta = 50 <0, 1e9>
|
||||
|
||||
k1 = 5e8 (/mM-s) <0, 1e10>:optional mm formulation
|
||||
k2 = .25e6 (/s) <0, 1e10>
|
||||
k3 = .5e3 (/s) <0, 1e10>
|
||||
k4 = 5e0 (/mM-s) <0, 1e10>
|
||||
pump0 = 3e-14 (mol/cm2) <0, 1e9> : set to 0 in hoc if this pump not wanted
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
celsius (degC)
|
||||
diam (um)
|
||||
v (millivolt)
|
||||
cao (mM)
|
||||
cai (mM)
|
||||
ica (mA/cm2)
|
||||
vol[NANN] (1) : gets extra cm2 when multiplied by diam^2
|
||||
ica_pmp (mA/cm2)
|
||||
area1 (um2)
|
||||
c1 (1+8 um5/ms)
|
||||
c2 (1-10 um2/ms)
|
||||
c3 (1-10 um2/ms)
|
||||
c4 (1+8 um5/ms)
|
||||
ica_pmp_last (mA/cm2)
|
||||
}
|
||||
|
||||
CONSTANT {
|
||||
volo = 1 (liter)
|
||||
}
|
||||
|
||||
STATE {
|
||||
ca[NANN] (mM) <1e-6> : ca[0] is equivalent to cai
|
||||
pump (mol/cm2) <1e-15>
|
||||
pumpca (mol/cm2) <1e-15>
|
||||
}
|
||||
|
||||
INITIAL {LOCAL total
|
||||
parms()
|
||||
FROM i=0 TO NANN-1 {
|
||||
ca[i] = cai
|
||||
}
|
||||
pumpca = cai*pump*c1/c2
|
||||
total = pumpca + pump
|
||||
if (total > 1e-9) {
|
||||
pump = pump*(pump/total)
|
||||
pumpca = pumpca*(pump/total)
|
||||
}
|
||||
ica_pmp = 0
|
||||
ica_pmp_last = 0
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE state METHOD sparse
|
||||
ica_pmp_last = ica_pmp
|
||||
ica = ica_pmp
|
||||
: printf("Breakpoint t=%g v=%g cai=%g ica=%g\n", t, v, cai, ica)
|
||||
}
|
||||
|
||||
LOCAL frat[NANN] : gets extra cm when multiplied by diam
|
||||
|
||||
PROCEDURE coord() {
|
||||
LOCAL r, dr2
|
||||
: cylindrical coordinate system with constant annuli thickness to
|
||||
: center of cell. Note however that the first annulus is half thickness
|
||||
: so that the concentration is second order correct spatially at
|
||||
: the membrane or exact edge of the cell.
|
||||
: note ca[0] is at edge of cell
|
||||
: ca[NANN-1] is at center of cell
|
||||
r = 1/2 :starts at edge (half diam)
|
||||
dr2 = r/(NANN-1)/2 :half thickness of annulus
|
||||
vol[0] = 0
|
||||
frat[0] = 2*r
|
||||
FROM i=0 TO NANN-2 {
|
||||
vol[i] = vol[i] + PI*(r-dr2/2)*2*dr2 :interior half
|
||||
r = r - dr2
|
||||
frat[i+1] = 2*PI*r/(2*dr2) :exterior edge of annulus
|
||||
: divided by distance between centers
|
||||
r = r - dr2
|
||||
vol[i+1] = PI*(r+dr2/2)*2*dr2 :outer half of annulus
|
||||
}
|
||||
}
|
||||
|
||||
KINETIC state {
|
||||
: printf("Solve begin t=%g v=%g cai=%g ica_pmp=%g\n", t, v, cai, ica_pmp)
|
||||
COMPARTMENT i, (1+beta)*diam*diam*vol[i]*1(um) {ca}
|
||||
COMPARTMENT (1e10)*area1 {pump pumpca}
|
||||
COMPARTMENT volo*(1e15) {cao}
|
||||
? kinetics
|
||||
~ pumpca <-> pump + cao (c3, c4)
|
||||
ica_pmp = (1e-4)*2*FARADAY*(f_flux - b_flux)/area1
|
||||
: all currents except pump
|
||||
~ ca[0] << (-(ica-ica_pmp_last)*PI*diam*1(um)*(1e4)*frat[0]/(2*FARADAY))
|
||||
:diffusion
|
||||
FROM i=0 TO NANN-2 {
|
||||
~ ca[i] <-> ca[i+1] (DFree*frat[i+1]*1(um), DFree*frat[i+1]*1(um))
|
||||
}
|
||||
:pump
|
||||
~ ca[0] + pump <-> pumpca (c1, c2)
|
||||
cai = ca[0] : this assignment statement is used specially by cvode
|
||||
: printf("Solve end cai=%g ica=%g ica_pmp=%g ica_pmp_last=%g\n",
|
||||
: cai, ica, ica_pmp,ica_pmp_last)
|
||||
}
|
||||
|
||||
PROCEDURE parms() {
|
||||
coord()
|
||||
area1 = 2*PI*(diam/2) * 1(um)
|
||||
c1 = (1e7)*area1 * k1
|
||||
c2 = (1e7)*area1 * k2
|
||||
c3 = (1e7)*area1 * k3
|
||||
c4 = (1e7)*area1 * k4
|
||||
}
|
||||
|
||||
FUNCTION ss() (mM) {
|
||||
SOLVE state STEADYSTATE sparse
|
||||
ss = cai
|
||||
}
|
||||
|
||||
COMMENT
|
||||
At this time, conductances (and channel states and currents are
|
||||
calculated at the midpoint of a dt interval. Membrane potential and
|
||||
concentrations are calculated at the edges of a dt interval. With
|
||||
secondorder=2 everything turns out to be second order correct.
|
||||
ENDCOMMENT
|
||||
50
cnmodel/mechanisms/cadiff.mod
Normal file
50
cnmodel/mechanisms/cadiff.mod
Normal file
@@ -0,0 +1,50 @@
|
||||
: Ca diffusion in a Purkinje cell
|
||||
: Created 8/15/02 - nwg
|
||||
|
||||
NEURON {
|
||||
SUFFIX cadiff
|
||||
USEION ca READ ica, cai WRITE cai
|
||||
RANGE ca
|
||||
GLOBAL depth, beta
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mV) = (millivolt)
|
||||
(mA) = (milliamp)
|
||||
(mM) = (milli/liter)
|
||||
(um) = (micron)
|
||||
}
|
||||
|
||||
CONSTANT {
|
||||
F = 9.6485e4 (coul)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
cai (mM)
|
||||
dt (ms)
|
||||
|
||||
depth = 0.1 (um)
|
||||
beta = 1 (/ms)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
ica (mA/cm2)
|
||||
}
|
||||
|
||||
STATE {
|
||||
ca (mM)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
ca = 0.0001
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
ca = ca + (10000.0) * dt * ( ( -1/(2*F)*ica / (depth)) - (0.0001) * beta * ca )
|
||||
|
||||
if ( ca < 1e-4 ) {: minimum 100 nM Ca
|
||||
ca = 1e-4
|
||||
}
|
||||
|
||||
cai = ca
|
||||
}
|
||||
100
cnmodel/mechanisms/cadyn.mod
Normal file
100
cnmodel/mechanisms/cadyn.mod
Normal file
@@ -0,0 +1,100 @@
|
||||
TITLE decay of submembrane calcium concentration
|
||||
:
|
||||
: Internal calcium concentration due to calcium currents and pump.
|
||||
: Differential equations.
|
||||
:
|
||||
: This file contains two mechanisms:
|
||||
:
|
||||
: 1. Simple model of ATPase pump with 3 kinetic constants (Destexhe 1992)
|
||||
:
|
||||
: Cai + P <-> CaP -> Cao + P (k1,k2,k3)
|
||||
:
|
||||
: A Michaelis-Menten approximation is assumed, which reduces the complexity
|
||||
: of the system to 2 parameters:
|
||||
: kt = <tot enzyme concentration> * k3 -> TIME CONSTANT OF THE PUMP
|
||||
: kd = k2/k1 (dissociation constant) -> EQUILIBRIUM CALCIUM VALUE
|
||||
: The values of these parameters are chosen assuming a high affinity of
|
||||
: the pump to calcium and a low transport capacity (cfr. Blaustein,
|
||||
: TINS, 11: 438, 1988, and references therein).
|
||||
:
|
||||
: For further information about this this mechanism, see Destexhe, A.
|
||||
: Babloyantz, A. and Sejnowski, TJ. Ionic mechanisms for intrinsic slow
|
||||
: oscillations in thalamic relay neurons. Biophys. J. 65: 1538-1552, 1993.
|
||||
:
|
||||
:
|
||||
: 2. Simple first-order decay or buffering:
|
||||
:
|
||||
: Cai + B <-> ...
|
||||
:
|
||||
: which can be written as:
|
||||
:
|
||||
: dCai/dt = (cainf - Cai) / taur
|
||||
:
|
||||
: where cainf is the equilibrium intracellular calcium value (usually
|
||||
: in the range of 200-300 nM) and taur is the time constant of calcium
|
||||
: removal. The dynamics of submembranal calcium is usually thought to
|
||||
: be relatively fast, in the 1-10 millisecond range (see Blaustein,
|
||||
: TINS, 11: 438, 1988).
|
||||
:
|
||||
: All variables are range variables
|
||||
:
|
||||
: Written by Alain Destexhe, Salk Institute, Nov 12, 1992
|
||||
:
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
NEURON {
|
||||
SUFFIX cadyn
|
||||
USEION ca READ ica, cai WRITE cai
|
||||
RANGE depth,kt,kd,cainf,taur
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(molar) = (1/liter) : moles do not appear in units
|
||||
(mM) = (millimolar)
|
||||
(um) = (micron)
|
||||
(mA) = (milliamp)
|
||||
(msM) = (ms mM)
|
||||
}
|
||||
|
||||
CONSTANT {
|
||||
FARADAY = 96489 (coul) : moles do not appear in units
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
depth = .1 (um) : depth of shell
|
||||
taur = 1e10 (ms) : remove first-order decay
|
||||
cainf = 1.4e-1 (mM)
|
||||
kt = 1e-4 (mM/ms)
|
||||
kd = 1e-4 (mM)
|
||||
}
|
||||
|
||||
STATE {
|
||||
cai (mM)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
cai = kd
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
ica (mA/cm2)
|
||||
drive_channel (mM/ms)
|
||||
drive_pump (mM/ms)
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE state METHOD cnexp
|
||||
}
|
||||
|
||||
DERIVATIVE state {
|
||||
|
||||
drive_channel = - (10000) * ica / (2 * FARADAY * depth)
|
||||
|
||||
if (drive_channel <= 0.) { drive_channel = 0. } : cannot pump inward
|
||||
|
||||
drive_pump = -kt * cai / (cai + kd ) : Michaelis-Menten
|
||||
|
||||
cai' = drive_channel + drive_pump + (cainf-cai)/taur
|
||||
}
|
||||
|
||||
86
cnmodel/mechanisms/cap.mod
Normal file
86
cnmodel/mechanisms/cap.mod
Normal file
@@ -0,0 +1,86 @@
|
||||
: HH P-type Calcium current
|
||||
: Created 8/13/02 - nwg
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX cap
|
||||
USEION ca READ cai, cao WRITE ica
|
||||
RANGE pcabar, ica
|
||||
RANGE minf, mtau
|
||||
RANGE monovalConc, monovalPerm
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mV) = (millivolt)
|
||||
(mA) = (milliamp)
|
||||
(mM) = (milli/liter)
|
||||
F = 9.6485e4 (coul)
|
||||
R = 8.3145 (joule/degC)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius (degC)
|
||||
|
||||
pcabar = 0.00005 (cm/s)
|
||||
monovalConc = 140 (mM)
|
||||
monovalPerm = 0
|
||||
|
||||
cai (milli/liter)
|
||||
cao (milli/liter)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
ica (mA/cm2)
|
||||
minf
|
||||
mtau (ms)
|
||||
T (degC)
|
||||
E (volts)
|
||||
}
|
||||
|
||||
STATE {
|
||||
m
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
m = minf
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
ica = (1e3) * pcabar * m * ghk(v, cai, cao, 2)
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
m' = (minf - m)/mtau
|
||||
}
|
||||
|
||||
FUNCTION ghk( v(mV), ci(mM), co(mM), z) (coul/cm3) { LOCAL Ci
|
||||
T = celsius + 273.19 : Kelvin
|
||||
E = (1e-3) * v
|
||||
Ci = ci + (monovalPerm) * (monovalConc) : Monovalent permeability
|
||||
if (fabs(1-exp(-z*(F*E)/(R*T))) < 1e-6) { : denominator is small -> Taylor series
|
||||
ghk = (1e-6) * z * F * (Ci-co*exp(-z*(F*E)/(R*T)))*(1-(z*(F*E)/(R*T)))
|
||||
} else {
|
||||
ghk = (1e-6) * z^2*(E*F^2)/(R*T)*(Ci-co*exp(-z*(F*E)/(R*T)))/(1-exp(-z*(F*E)/(R*T)))
|
||||
}
|
||||
}
|
||||
|
||||
PROCEDURE rates (v (mV)) {
|
||||
UNITSOFF
|
||||
minf = 1/(1+exp(-(v - (-19)) / 5.5))
|
||||
mtau = (mtau_func(v)) * 1e3
|
||||
UNITSON
|
||||
}
|
||||
|
||||
FUNCTION mtau_func( v (mV) ) (ms) {
|
||||
UNITSOFF
|
||||
if (v > -50) {
|
||||
mtau_func = .000191 + .00376*exp(-((v-(-41.9))/27.8)^2)
|
||||
} else {
|
||||
mtau_func = .00026367 + .1278 * exp(.10327*v)
|
||||
}
|
||||
UNITSON
|
||||
}
|
||||
71
cnmodel/mechanisms/capmp.mod
Normal file
71
cnmodel/mechanisms/capmp.mod
Normal file
@@ -0,0 +1,71 @@
|
||||
NEURON {
|
||||
SUFFIX capmp
|
||||
USEION ca READ cao, ica, cai WRITE cai, ica
|
||||
RANGE tau, width, cabulk, ica, pump0
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(um) = (micron)
|
||||
(molar) = (1/liter)
|
||||
(mM) = (millimolar)
|
||||
(uM) = (micromolar)
|
||||
(mA) = (milliamp)
|
||||
(mol) = (1)
|
||||
FARADAY = (faraday) (coulomb)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
width = 0.1 (um)
|
||||
tau = 1 (ms)
|
||||
k1 = 5e8 (/mM-s)
|
||||
k2 = 0.25e6 (/s)
|
||||
k3 = 0.5e3 (/s)
|
||||
k4 = 5e0 (/mM-s)
|
||||
cabulk = 0.1 (uM)
|
||||
pump0 = 3e-14 (mol/cm2)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
cao (mM) : 2
|
||||
cai (mM) : 100e-6
|
||||
ica (mA/cm2)
|
||||
ica_pmp (mA/cm2)
|
||||
ica_pmp_last (mA/cm2)
|
||||
}
|
||||
|
||||
STATE {
|
||||
cam (uM) <1e-6>
|
||||
pump (mol/cm2) <1e-16>
|
||||
capump (mol/cm2) <1e-16>
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
ica = 0
|
||||
ica_pmp = 0
|
||||
ica_pmp_last = 0
|
||||
SOLVE pmp STEADYSTATE sparse
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE pmp METHOD sparse
|
||||
ica_pmp_last = ica_pmp
|
||||
ica = ica_pmp
|
||||
}
|
||||
|
||||
KINETIC pmp {
|
||||
~ cabulk <-> cam (width/tau, width/tau)
|
||||
~ cam + pump <-> capump ((1e7)*k1, (1e10)*k2)
|
||||
~ capump <-> cao + pump ((1e10)*k3, (1e10)*k4)
|
||||
ica_pmp = (1e-7)*2*FARADAY*(f_flux - b_flux)
|
||||
|
||||
: ica_pmp_last vs ica_pmp needed because of STEADYSTATE calculation
|
||||
~ cam << (-(ica - ica_pmp_last)/(2*FARADAY)*(1e7))
|
||||
|
||||
CONSERVE pump + capump = (1e13)*pump0
|
||||
COMPARTMENT width {cam} : volume has dimensions of um
|
||||
COMPARTMENT (1e13) {pump capump} : area is dimensionless
|
||||
COMPARTMENT 1(um) {cabulk}
|
||||
COMPARTMENT (1e3)*1(um) {cao}
|
||||
|
||||
cai = (0.001)*cam
|
||||
}
|
||||
32
cnmodel/mechanisms/capump.mod
Normal file
32
cnmodel/mechanisms/capump.mod
Normal file
@@ -0,0 +1,32 @@
|
||||
NEURON {
|
||||
SUFFIX capump
|
||||
USEION ca READ cai WRITE ica
|
||||
RANGE vmax, kmp, ica
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(uM) = (micro/liter)
|
||||
(mM) = (milli/liter)
|
||||
(mA) = (milliamp)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
vmax = .0667 (mA/cm2) <0, 1e6>: at 6.3 deg, Q10 = 3
|
||||
kmp = .2 (uM) <0, 1e6>
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
celsius (degC)
|
||||
ica (mA/cm2)
|
||||
cai (mM)
|
||||
}
|
||||
|
||||
LOCAL Q, s_celsius
|
||||
|
||||
BREAKPOINT {
|
||||
if (s_celsius*1(degC) != celsius) {
|
||||
s_celsius = celsius
|
||||
Q = 3^((celsius - 6.3)/10 (degC))
|
||||
}
|
||||
ica = vmax*Q*cai/(cai + (.001)*kmp) / 5.18
|
||||
}
|
||||
88
cnmodel/mechanisms/cleftXmtr.mod
Executable file
88
cnmodel/mechanisms/cleftXmtr.mod
Executable file
@@ -0,0 +1,88 @@
|
||||
COMMENT
|
||||
cleftXmtr
|
||||
|
||||
This is simple state model that generates "cleft" transmitter, through
|
||||
the following scheme:
|
||||
|
||||
A netreceive block receives the driving event. This forces XV (the vesicle
|
||||
state) to be set to XMax to mimic the release of a vesicle.
|
||||
Then:
|
||||
XV --> XC --> XU
|
||||
where XV is the vesicle transmitter, XC is the cleft transmitter and
|
||||
XU is transmitter that has been taken up. The forward rates are finite, and the
|
||||
reverse rates are 0 (XU is an absorbing state)
|
||||
|
||||
The forward rate kv1 mimics simple first-order diffusion across the cleft
|
||||
The forward rate ku1 mimics simple first-order uptake from the cleft
|
||||
|
||||
The concentration XC is available to the program as Xmtr.
|
||||
XMax is the max cleft concentration of transmitter.
|
||||
|
||||
Because vesicle release events at a single presynaptic terminal can be nearly
|
||||
simultaneous, it is important that this mechanism does not have a refractory
|
||||
period. We also assume that the uptake mechanism is not saturable.
|
||||
|
||||
Paul B. Manis, Ph.D.
|
||||
UNC Chapel Hill
|
||||
3 Jan 2010
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
DEFINE NSTEP 5
|
||||
|
||||
NEURON {
|
||||
POINT_PROCESS cleftXmtr
|
||||
POINTER pre
|
||||
RANGE KV, KU, XMax
|
||||
RANGE CXmtr, preThresh
|
||||
}
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
PARAMETER { : Parameters are chosen from best fit to stellate cell data in VCN
|
||||
KV = 531 (/ms) <0,1e9> : release rate from vesicle
|
||||
KU = 4.17 (/ms) <0,1e3> : uptake rate
|
||||
XMax = 0.731 (mM)
|
||||
preThresh = 0
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
pre
|
||||
CXmtr (mM)
|
||||
preLast (1)
|
||||
tLast
|
||||
}
|
||||
|
||||
STATE {
|
||||
XV : Vesicle transmitter (just released)
|
||||
XC : Cleft transmitter (e.g., at receptor)
|
||||
XU : Uptake state (dead state... )
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
XV = 0
|
||||
XC = 0 (mM)
|
||||
XU = 0
|
||||
CXmtr = 0.0
|
||||
preLast = 0.0
|
||||
tLast = 0.0
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE kstates METHOD sparse
|
||||
CXmtr = XC*XMax
|
||||
}
|
||||
|
||||
KINETIC kstates {
|
||||
~ XV <-> XC (KV, 0.0)
|
||||
~ XC <-> XU (KU, 0.0)
|
||||
: note that this mechanism has no CONSERVATION : XU can accumulate as much
|
||||
: as needed.
|
||||
}
|
||||
|
||||
NET_RECEIVE(conc (mM)) { : detect and cause a release event
|
||||
XV = XV + 1
|
||||
}
|
||||
65
cnmodel/mechanisms/gly.mod
Executable file
65
cnmodel/mechanisms/gly.mod
Executable file
@@ -0,0 +1,65 @@
|
||||
TITLE Gly synapse
|
||||
|
||||
COMMENT
|
||||
MODIFIED to be a faster GLY synapse, taken from GABA synapse
|
||||
Paul B. Manis - 7 Feb 2000
|
||||
|
||||
simple alpha-synapse that generates a single PSP
|
||||
*********************************************
|
||||
reference: McCormick, Wang & Huguenard (1993)
|
||||
Cerebral Cortex 3(5), 387-398
|
||||
found in: cat reticular nucleus of thalamus
|
||||
*********************************************
|
||||
Assembled for MyFirstNEURON by Arthur Houweling
|
||||
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
NEURON {
|
||||
POINT_PROCESS GlySynapse
|
||||
USEION cl READ ecl VALENCE 1
|
||||
: negative valence not accepted by nrnivmodl
|
||||
RANGE onset, gmaxIPSP, e, g, i, w
|
||||
NONSPECIFIC_CURRENT i
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
(mV) = (millivolt)
|
||||
(nS) = (nanomho)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
onset= 25 (ms)
|
||||
gmaxIPSP= 0 (nS)
|
||||
w= 1 : weight factor for gmaxIPSP
|
||||
ecl (mV)
|
||||
v (mV)
|
||||
celsius (degC)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
i (nA)
|
||||
g (nS)
|
||||
tadj
|
||||
}
|
||||
|
||||
UNITSOFF
|
||||
INITIAL {
|
||||
tadj = 3^((celsius-23.5)/10)
|
||||
}
|
||||
|
||||
BREAKPOINT { LOCAL tt
|
||||
tt= (t-onset)*tadj
|
||||
if ((t>onset)&&(tt<740)) {
|
||||
: the exp() function does not accept arguments smaller than -745
|
||||
g = w*gmaxIPSP * exp(-tt/15) * (1-exp(-tt/0.5))/0.84
|
||||
}
|
||||
else {g = 0}
|
||||
: -ecl because negative valences can not be specified
|
||||
i = g * (v-(-ecl))
|
||||
}
|
||||
UNITSON
|
||||
|
||||
196
cnmodel/mechanisms/gly2.mod
Executable file
196
cnmodel/mechanisms/gly2.mod
Executable file
@@ -0,0 +1,196 @@
|
||||
COMMENT
|
||||
-----------------------------------------------------------------------------
|
||||
Simple synaptic mechanism derived for first order kinetics of
|
||||
binding of transmitter to postsynaptic receptors.
|
||||
|
||||
A. Destexhe & Z. Mainen, The Salk Institute, March 12, 1993.
|
||||
Last modif. Sept 8, 1993.
|
||||
|
||||
Reference:
|
||||
|
||||
Destexhe, A., Mainen, Z. and Sejnowski, T.J. An efficient method for
|
||||
computing synaptic conductances based on a kinetic model of receptor binding.
|
||||
Neural Computation, 6: 14-18, 1994.
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
During the arrival of the presynaptic spike (detected by threshold
|
||||
crossing), it is assumed that there is a brief pulse (duration=Cdur)
|
||||
of neurotransmitter C in the synaptic cleft (the maximal concentration
|
||||
of C is Cmax). Then, C is assumed to bind to a receptor Rc according
|
||||
to the following first-order kinetic scheme:
|
||||
|
||||
Rc + C ---(Alpha)--> Ro (1)
|
||||
<--(Beta)---
|
||||
|
||||
where Rc and Ro are respectively the closed and open form of the
|
||||
postsynaptic receptor, Alpha and Beta are the forward and backward
|
||||
rate constants. If R represents the fraction of open gates Ro,
|
||||
then one can write the following kinetic equation:
|
||||
|
||||
dR/dt = Alpha * C * (1-R) - Beta * R (2)
|
||||
|
||||
and the postsynaptic current is given by:
|
||||
|
||||
Isyn = gmax * R * (V-Erev) (3)
|
||||
|
||||
where V is the postsynaptic potential, gmax is the maximal conductance
|
||||
of the synapse and Erev is the reversal potential.
|
||||
|
||||
If C is assumed to occur as a pulse in the synaptic cleft, such as
|
||||
|
||||
C _____ . . . . . . Cmax
|
||||
| |
|
||||
_____| |______ . . . 0
|
||||
t0 t1
|
||||
|
||||
then one can solve the kinetic equation exactly, instead of solving
|
||||
one differential equation for the state variable and for each synapse,
|
||||
which would be greatly time consuming...
|
||||
|
||||
Equation (2) can be solved as follows:
|
||||
|
||||
1. during the pulse (from t=t0 to t=t1), C = Cmax, which gives:
|
||||
|
||||
R(t-t0) = Rinf + [ R(t0) - Rinf ] * exp (- (t-t0) / Rtau ) (4)
|
||||
|
||||
where
|
||||
Rinf = Alpha * Cmax / (Alpha * Cmax + Beta)
|
||||
and
|
||||
Rtau = 1 / (Alpha * Cmax + Beta)
|
||||
|
||||
2. after the pulse (t>t1), C = 0, and one can write:
|
||||
|
||||
R(t-t1) = R(t1) * exp (- Beta * (t-t1) ) (5)
|
||||
|
||||
There is a pointer called "pre" which must be set to the variable which
|
||||
is supposed to trigger synaptic release. This variable is usually the
|
||||
presynaptic voltage but it can be the presynaptic calcium concentration,
|
||||
or other. Prethresh is the value of the threshold at which the release is
|
||||
initiated.
|
||||
|
||||
Once pre has crossed the threshold value given by Prethresh, a pulse
|
||||
of C is generated for a duration of Cdur, and the synaptic conductances
|
||||
are calculated accordingly to eqs (4-5). Another event is not allowed to
|
||||
occur for Deadtime milliseconds following after pre rises above threshold.
|
||||
|
||||
The user specifies the presynaptic location in hoc via the statement
|
||||
connect pre_GABA[i] , v.section(x)
|
||||
|
||||
where x is the arc length (0 - 1) along the presynaptic section (the currently
|
||||
specified section), and i is the synapse number (Which is located at the
|
||||
postsynaptic location in the usual way via
|
||||
postsynaptic_section {loc_GABA(i, x)}
|
||||
Notice that loc_GABA() must be executed first since that function also
|
||||
allocates space for the synapse.
|
||||
-----------------------------------------------------------------------------
|
||||
GLY SYNAPSE (GLY receptors)
|
||||
|
||||
currently parameters are same as GABA-A until I get the Harty data in here
|
||||
P. Manis 2/10/2000
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
ENDCOMMENT
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
NEURON {
|
||||
POINT_PROCESS GLY2
|
||||
POINTER pre
|
||||
RANGE C, R, R0, R1, g, gmax, Erev, lastrelease, Prethresh
|
||||
NONSPECIFIC_CURRENT i
|
||||
GLOBAL Cmax, Cdur, Alpha, Beta, Deadtime, Rinf, Rtau
|
||||
}
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
(mV) = (millivolt)
|
||||
(umho) = (micromho)
|
||||
(mM) = (milli/liter)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
|
||||
Cmax = 1 (mM) : max transmitter concentration
|
||||
Cdur = 1 (ms) : transmitter duration (rising phase)
|
||||
Alpha = 0.53 (/ms mM) : forward (binding) rate
|
||||
Beta = 0.18 (/ms) : backward (unbinding) rate
|
||||
Erev = -80 (mV) : reversal potential
|
||||
Prethresh = 0 : voltage level nec for release
|
||||
Deadtime = 1 (ms) : mimimum time between release events
|
||||
gmax (umho) : maximum conductance
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
v (mV) : postsynaptic voltage
|
||||
i (nA) : current = g*(v - Erev)
|
||||
g (umho) : conductance
|
||||
C (mM) : transmitter concentration
|
||||
R : fraction of open channels
|
||||
R0 : open channels at start of release
|
||||
R1 : open channels at end of release
|
||||
Rinf : steady state channels open
|
||||
Rtau (ms) : time constant of channel binding
|
||||
pre : pointer to presynaptic variable
|
||||
lastrelease (ms) : time of last spike
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
R = 0
|
||||
C = 0
|
||||
R0 = 0
|
||||
R1 = 0
|
||||
Rinf = Cmax*Alpha / (Cmax*Alpha + Beta)
|
||||
Rtau = 1 / ((Alpha * Cmax) + Beta)
|
||||
lastrelease = -999
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE release
|
||||
g = gmax * R
|
||||
i = g*(v - Erev)
|
||||
}
|
||||
|
||||
PROCEDURE release() { LOCAL q
|
||||
:will crash if user hasn't set pre with the connect statement
|
||||
|
||||
q = ((t - lastrelease) - Cdur) : time since last release ended
|
||||
|
||||
: ready for another release?
|
||||
if (q > Deadtime) {
|
||||
if (pre > Prethresh) { : spike occured?
|
||||
C = Cmax : start new release
|
||||
R0 = R
|
||||
lastrelease = t
|
||||
}
|
||||
|
||||
} else if (q < 0) { : still releasing?
|
||||
|
||||
: do nothing
|
||||
|
||||
} else if (C == Cmax) { : in dead time after release
|
||||
R1 = R
|
||||
C = 0.
|
||||
}
|
||||
|
||||
if (C > 0) { : transmitter being released?
|
||||
|
||||
R = Rinf + (R0 - Rinf) * exptable (- (t - lastrelease) / Rtau)
|
||||
|
||||
} else { : no release occuring
|
||||
|
||||
R = R1 * exptable (- Beta * (t - (lastrelease + Cdur)))
|
||||
}
|
||||
|
||||
VERBATIM
|
||||
return 0;
|
||||
ENDVERBATIM
|
||||
}
|
||||
|
||||
FUNCTION exptable(x) {
|
||||
TABLE FROM -10 TO 10 WITH 2000
|
||||
|
||||
if ((x > -10) && (x < 10)) {
|
||||
exptable = exp(x)
|
||||
} else {
|
||||
exptable = 0.
|
||||
}
|
||||
}
|
||||
101
cnmodel/mechanisms/hcno.mod
Normal file
101
cnmodel/mechanisms/hcno.mod
Normal file
@@ -0,0 +1,101 @@
|
||||
TITLE h current for Octopus cells of Cochlear Nucleus
|
||||
: From Bal and Oertel (2000)
|
||||
: M.Migliore Oct. 2001
|
||||
: Modified, P. Manis July 2014.
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX hcno
|
||||
NONSPECIFIC_CURRENT i
|
||||
RANGE gbar, eh, gh
|
||||
GLOBAL hinf, tau1, tau2
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(pS) = (picosiemens)
|
||||
(um) = (micron)
|
||||
R = (k-mole)(joule/degC)
|
||||
F = (faraday)(kilocoulombs)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
gbar = 0.0005 (mho/cm2)
|
||||
|
||||
vhalf1 = -50 (mV) : v 1/2 for forward
|
||||
vhalf2 = -84 (mV) : v 1/2 for backward
|
||||
gm1 = 0.3 :(mV) : slope for forward
|
||||
gm2 = 0.6 : (mV) : slope for backward
|
||||
zeta1 = 3 : (/ms)
|
||||
zeta2 = 3 : (/ms)
|
||||
a01 = 0.008 (/ms)
|
||||
a02 = 0.0029 (/ms)
|
||||
frac = 0.0
|
||||
c0 = 273.16 (degC)
|
||||
thinf = -66 (mV) : inact inf slope
|
||||
qinf = 7 (mV) : inact inf slope
|
||||
q10tau = 4.5 : from Magee (1998)
|
||||
v (mV)
|
||||
q10g = 2.0 : Rothman...
|
||||
}
|
||||
|
||||
|
||||
ASSIGNED {
|
||||
celsius (degC)
|
||||
i (mA/cm2)
|
||||
gh (mho/cm2)
|
||||
eh (mV) : must be explicitly def. in hoc
|
||||
hinf
|
||||
tau1 (ms)
|
||||
tau2 (ms)
|
||||
qg () : computed q10 for gnabar based on q10g
|
||||
q10 ()
|
||||
ssih
|
||||
}
|
||||
|
||||
|
||||
STATE { h1 h2 }
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD derivimplicit
|
||||
gh = qg*gbar*(h1*frac + h2*(1.0-frac))
|
||||
i = gh * (v - eh)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
qg = q10g^((celsius-33.0)/10.0 (degC)) :note original measurements made at 33 C
|
||||
q10 = q10tau^((celsius - 22.0)/10.0 (degC)) : if you don't like room temp, it can be changed!
|
||||
rates(v)
|
||||
h1=hinf
|
||||
h2=hinf
|
||||
ssih = 0.
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
h1' = (hinf - h1)/tau1
|
||||
h2' = (hinf - h2)/tau2
|
||||
}
|
||||
|
||||
PROCEDURE rates(v (mV)) {
|
||||
tau1 = bet1(v)/(q10*a01*(1.0+alp1(v)))
|
||||
tau2 = bet2(v)/(q10*a02*(1.0+alp2(v)))
|
||||
hinf = 1.0/(1.0+exp((v-thinf)/qinf))
|
||||
}
|
||||
|
||||
FUNCTION alp1(v(mV)) {
|
||||
alp1 = exp(1e-3*zeta1*(v-vhalf1)*F/(R*(c0+celsius)))
|
||||
}
|
||||
|
||||
FUNCTION bet1(v(mV)) {
|
||||
bet1 = exp(1.e-3*zeta1*gm1*(v-vhalf1)*F/(R*(c0+celsius)))
|
||||
}
|
||||
|
||||
FUNCTION alp2(v(mV)) {
|
||||
alp2 = exp(1.e-3*zeta2*(v-vhalf2)*F/(R*(c0+celsius)))
|
||||
}
|
||||
|
||||
FUNCTION bet2(v(mV)) {
|
||||
bet2 = exp(1.e-3*zeta2*gm2*(v-vhalf2)*F/(R*(c0+celsius)))
|
||||
}
|
||||
103
cnmodel/mechanisms/hcno_bo.mod
Normal file
103
cnmodel/mechanisms/hcno_bo.mod
Normal file
@@ -0,0 +1,103 @@
|
||||
TITLE h current for Octopus cells of Cochlear Nucleus
|
||||
: From Bal and Oertel (2000)
|
||||
|
||||
: Modified, P. Manis July 2014, 2017
|
||||
: Parameters from McGinley et al. paper
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX hcnobo
|
||||
NONSPECIFIC_CURRENT i
|
||||
RANGE gbar, eh, gh, q10tau
|
||||
GLOBAL hinf, tau1, tau2
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(pS) = (picosiemens)
|
||||
(um) = (micron)
|
||||
R = (k-mole)(joule/degC)
|
||||
F = (faraday)(kilocoulombs)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
gbar = 0.0005 (mho/cm2)
|
||||
|
||||
vhalf1 = -70 (mV) : -50 (mV) : v 1/2 for forward
|
||||
vhalf2 = -84 (mV) : v 1/2 for backward
|
||||
gm1 = 0.3 :(mV) : slope for forward
|
||||
gm2 = 0.6 : (mV) : slope for backward
|
||||
zeta1 = 3 : (/ms)
|
||||
: zeta2 = 3 : (/ms)
|
||||
a01 = 4.8e-3 (/ms) : was 0.008
|
||||
a02 = 2.9e-3 (/ms) : was 0.0029 (/ms)
|
||||
frac = 0.8
|
||||
c0 = 273.16 (degC)
|
||||
thinf = -72.4 (mV) : inact inf slope
|
||||
qinf = 5.3 (mV) : inact inf slope
|
||||
q10tau = 4.5 : from Magee (1998)
|
||||
v (mV)
|
||||
}
|
||||
|
||||
|
||||
ASSIGNED {
|
||||
celsius (degC)
|
||||
i (mA/cm2)
|
||||
gh (mho/cm2)
|
||||
eh (mV) : must be explicitly def. in hoc
|
||||
hinf
|
||||
tau1 (ms)
|
||||
tau2 (ms)
|
||||
q10 ()
|
||||
ssih
|
||||
ct
|
||||
}
|
||||
|
||||
|
||||
STATE { h1 h2 }
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
: SOLVE states METHOD derivimplicit
|
||||
gh = gbar*(h1*frac + h2*(1.0-frac))
|
||||
i = gh * (v - eh)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
ct = 1e-3*zeta1*F/(R*(c0+celsius))
|
||||
|
||||
q10 = q10tau^((celsius - 33.0)/10.0 (degC)) : Measurements at 33
|
||||
rates(v)
|
||||
h1=hinf
|
||||
h2=hinf
|
||||
ssih = 0.
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
h1' = (hinf - h1)/tau1
|
||||
h2' = (hinf - h2)/tau2
|
||||
}
|
||||
|
||||
PROCEDURE rates(v (mV)) {
|
||||
tau1 = bet1(v)/(q10*a01*(1.0+alp1(v)))
|
||||
tau2 = bet2(v)/(q10*a02*(1.0+alp2(v)))
|
||||
hinf = 1.0/(1.0+exp((v-thinf)/qinf))
|
||||
}
|
||||
|
||||
FUNCTION alp1(v(mV)) {
|
||||
alp1 = exp((v-vhalf1)*ct)
|
||||
}
|
||||
|
||||
FUNCTION bet1(v(mV)) {
|
||||
bet1 = exp(gm1*(v-vhalf1)*ct)
|
||||
}
|
||||
|
||||
FUNCTION alp2(v(mV)) {
|
||||
alp2 = exp((v-vhalf2)*ct)
|
||||
}
|
||||
|
||||
FUNCTION bet2(v(mV)) {
|
||||
bet2 = exp(gm2*(v-vhalf2)*ct)
|
||||
}
|
||||
48
cnmodel/mechanisms/iStim.mod
Executable file
48
cnmodel/mechanisms/iStim.mod
Executable file
@@ -0,0 +1,48 @@
|
||||
COMMENT
|
||||
iStim
|
||||
|
||||
This is a point current injection (like an electrode).
|
||||
Positive values of the amplitude depolarize the cell
|
||||
and in the presence of the extracellular mechanism there will be a change
|
||||
in vext since i is not a transmembrane current but a current injected
|
||||
directly to the inside of the cell.
|
||||
|
||||
This is meant to be used with Vector Play...
|
||||
ENDCOMMENT
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
DEFINE NSTEP 5
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
POINT_PROCESS iStim
|
||||
RANGE dur, delay, iMax
|
||||
ELECTRODE_CURRENT i
|
||||
}
|
||||
UNITS {
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
PARAMETER {
|
||||
dur (ms) <0,1e9>
|
||||
delay (ms) <0,1e9>
|
||||
iMax (nA)
|
||||
}
|
||||
ASSIGNED {
|
||||
i (nA)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
i = 0
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
COMMENT
|
||||
if(t < delay || t > (delay+dur)) {
|
||||
i = 0
|
||||
}
|
||||
if(t >= delay && t <= (delay+dur)) {
|
||||
i = iMax
|
||||
}
|
||||
ENDCOMMENT
|
||||
}
|
||||
56
cnmodel/mechanisms/ihpkj.mod
Normal file
56
cnmodel/mechanisms/ihpkj.mod
Normal file
@@ -0,0 +1,56 @@
|
||||
: Ih current
|
||||
: Created 8/6/02 - nwg
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX hpkj
|
||||
NONSPECIFIC_CURRENT i
|
||||
RANGE gbar, gh, eh
|
||||
GLOBAL ninf, ntau
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(S) = (siemens)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
|
||||
gbar = .0001 (S/cm2)
|
||||
|
||||
eh = -30 (mV)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gh (mho/cm2)
|
||||
i (mA/cm2)
|
||||
ninf
|
||||
ntau (ms)
|
||||
}
|
||||
|
||||
STATE {
|
||||
n
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
n = ninf
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gh = gbar * n
|
||||
i = gh*(v - eh)
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
n' = (ninf - n)/ntau
|
||||
}
|
||||
|
||||
PROCEDURE rates(v (mV)) {
|
||||
ninf = 1/(1+exp((v+90.1(mV))/9.9(mV)))
|
||||
ntau = (1000) * (0.19 (s) + 0.72 (s)*exp(-((v-(-81.5(mV)))/11.9(mV))^2))
|
||||
}
|
||||
134
cnmodel/mechanisms/ihpyr.mod
Normal file
134
cnmodel/mechanisms/ihpyr.mod
Normal file
@@ -0,0 +1,134 @@
|
||||
TITLE ihpyr.mod DCN pyramidal cell model H-current
|
||||
|
||||
COMMENT
|
||||
|
||||
This model is part a Dorsal Cochlear Nucleus Pyramidal point cell
|
||||
based on kinetic data from Kanold and Manis (1999) and Kanold's dissertation (1999)
|
||||
|
||||
-- 15 Jan 1999 P. Manis
|
||||
|
||||
Added export of start states for some variables to do perturbation tests
|
||||
These start values replace the "inf" values used in the initialization procedure
|
||||
Note that if the start variable is set to a value less than 0,
|
||||
then the default initialization will be done. Typically I use a value of -1 for this flagging
|
||||
Note also that it is possible to set the initial values > 1 but this is meaningless in terms of
|
||||
the present equations.
|
||||
-- 5 Feb 1999 P. Manis
|
||||
|
||||
Added Patrick's version of ih as ihpyr
|
||||
Model is from Destexhe and Babloyantz 1993; Destexhe et al. 1993
|
||||
|
||||
|
||||
2/10/02. P. Manis.
|
||||
7/23/2014 P. Manis - separated from pyr.mod.
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
}
|
||||
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX ihpyr
|
||||
USEION na READ ena WRITE ina
|
||||
USEION k READ ek WRITE ik
|
||||
NONSPECIFIC_CURRENT i
|
||||
: USEION h READ eh WRITE ih VALENCE 1
|
||||
RANGE eh
|
||||
:
|
||||
RANGE gh, kh_m_inf, kh_n_inf, aih, gbar, ghvshift
|
||||
RANGE kh_m_tau, kh_n_tau
|
||||
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius (degC)
|
||||
dt (ms)
|
||||
ek (mV) : = -81.5 (mV)
|
||||
ena (mV) : = 50.0 (mV)
|
||||
gbar = 0.00025 (mho/cm2) <0,1e9>
|
||||
ghvshift = 0 (mV)
|
||||
eh (mV) : = -43.0(mV)
|
||||
}
|
||||
|
||||
STATE {
|
||||
khm khn
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gh (mho/cm2)
|
||||
ina (mA/cm2)
|
||||
ik (mA/cm2)
|
||||
ih (mA/cm2)
|
||||
i (mA/cm2)
|
||||
kh_m_inf kh_n_inf
|
||||
kh_m_tau kh_n_tau
|
||||
aih
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
aih = khm*khn
|
||||
gh = gbar*aih
|
||||
ih = gh*(v - eh)
|
||||
i = ih
|
||||
}
|
||||
|
||||
UNITSOFF
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
khm = kh_m_inf
|
||||
khn = kh_n_inf
|
||||
}
|
||||
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
khm' = (kh_m_inf - khm) / kh_m_tau
|
||||
khn' = (kh_n_inf - khn) / kh_n_tau
|
||||
}
|
||||
|
||||
|
||||
LOCAL q10
|
||||
|
||||
PROCEDURE rates(v(mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
q10 = 3^((celsius - 22)/10 (degC))
|
||||
|
||||
:"kh" adaptation of Destexhe hyp-activated cation current by Patrick Kanold
|
||||
kh_m_inf = kh_m(v)
|
||||
kh_n_inf = kh_n(v)
|
||||
kh_m_tau = kh_mt(v)
|
||||
kh_n_tau = kh_nt(v)
|
||||
}
|
||||
|
||||
: Make these as functions so we can view them from hoc, although this
|
||||
: may slow things down a bit
|
||||
|
||||
|
||||
FUNCTION kh_m(x (mV)) {
|
||||
kh_m = 1/(1+exp((x+68.9+ghvshift)/6.5))
|
||||
}
|
||||
|
||||
FUNCTION kh_n(x (mV)) {
|
||||
kh_n = 1/(1+exp((x+68.9+ghvshift)/6.5)) : same as kh_m, but for completeness, compute this
|
||||
}
|
||||
|
||||
FUNCTION kh_mt(v (mV)) {
|
||||
kh_mt = exp((v+183.6+ghvshift)/15.24)
|
||||
}
|
||||
|
||||
FUNCTION kh_nt(v (mV)) {
|
||||
kh_nt = exp((v+158.6+ghvshift)/11.2)/(1+exp((v+75+ghvshift)/5.5))
|
||||
}
|
||||
|
||||
|
||||
|
||||
142
cnmodel/mechanisms/ihpyr_adj.mod
Normal file
142
cnmodel/mechanisms/ihpyr_adj.mod
Normal file
@@ -0,0 +1,142 @@
|
||||
TITLE ihpyr_adj.mod DCN pyramidal cell model H-current
|
||||
|
||||
COMMENT
|
||||
|
||||
This model is part a Dorsal Cochlear Nucleus Pyramidal point cell
|
||||
based on kinetic data from Kanold and Manis (1999) and Kanold's dissertation (1999)
|
||||
|
||||
-- 15 Jan 1999 P. Manis
|
||||
|
||||
Added export of start states for some variables to do perturbation tests
|
||||
These start values replace the "inf" values used in the initialization procedure
|
||||
Note that if the start variable is set to a value less than 0,
|
||||
then the default initialization will be done. Typically I use a value of -1 for this flagging
|
||||
Note also that it is possible to set the initial values > 1 but this is meaningless in terms of
|
||||
the present equations.
|
||||
-- 5 Feb 1999 P. Manis
|
||||
|
||||
Added Patrick's version of ih as ihpyr
|
||||
Model is from Destexhe and Babloyantz 1993; Destexhe et al. 1993
|
||||
|
||||
|
||||
2/10/02. P. Manis.
|
||||
7/23/2014 P. Manis - separated from pyr.mod.
|
||||
|
||||
7/23/2018 P. Manis - created "ihpyr_adj"
|
||||
ihpyr_adj has an adjustable q10 for fitting against experimental data
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
}
|
||||
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX ihpyr_adj
|
||||
USEION na READ ena WRITE ina
|
||||
USEION k READ ek WRITE ik
|
||||
NONSPECIFIC_CURRENT i
|
||||
: USEION h READ eh WRITE ih VALENCE 1
|
||||
RANGE eh
|
||||
:
|
||||
RANGE gh, kh_m_inf, kh_n_inf, aih, gbar, ghvshift
|
||||
RANGE kh_m_tau, kh_n_tau
|
||||
GLOBAL q10, q10f
|
||||
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius (degC)
|
||||
dt (ms)
|
||||
ek (mV) : = -81.5 (mV)
|
||||
ena (mV) : = 50.0 (mV)
|
||||
gbar = 0.00025 (mho/cm2) <0,1e9>
|
||||
ghvshift = 0 (mV)
|
||||
eh (mV) : = -43.0(mV)
|
||||
q10 = 3.0 (1)
|
||||
}
|
||||
|
||||
STATE {
|
||||
khm khn
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gh (mho/cm2)
|
||||
ina (mA/cm2)
|
||||
ik (mA/cm2)
|
||||
ih (mA/cm2)
|
||||
i (mA/cm2)
|
||||
kh_m_inf kh_n_inf
|
||||
kh_m_tau kh_n_tau
|
||||
aih
|
||||
q10f (1)
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
aih = khm*khn
|
||||
gh = gbar*aih
|
||||
ih = gh*(v - eh)
|
||||
i = ih
|
||||
}
|
||||
|
||||
UNITSOFF
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
khm = kh_m_inf
|
||||
khn = kh_n_inf
|
||||
}
|
||||
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
khm' = (kh_m_inf - khm) / kh_m_tau
|
||||
khn' = (kh_n_inf - khn) / kh_n_tau
|
||||
}
|
||||
|
||||
|
||||
: LOCAL q10f
|
||||
|
||||
PROCEDURE rates(v(mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
q10f = q10^((celsius - 22)/10 (degC))
|
||||
|
||||
:"kh" adaptation of Destexhe hyp-activated cation current by Patrick Kanold
|
||||
: adding q10 does not shift activation curves
|
||||
kh_m_inf = kh_m(v)
|
||||
kh_n_inf = kh_n(v)
|
||||
: adding the q10 just changes the rate for the taus (1/(a+b))
|
||||
kh_m_tau = kh_mt(v)/q10f
|
||||
kh_n_tau = kh_nt(v)/q10f
|
||||
}
|
||||
|
||||
: Make these as functions so we can view them from hoc, although this
|
||||
: may slow things down a bit
|
||||
|
||||
|
||||
FUNCTION kh_m(x (mV)) {
|
||||
kh_m = 1/(1+exp((x+68.9+ghvshift)/6.5))
|
||||
}
|
||||
|
||||
FUNCTION kh_n(x (mV)) {
|
||||
kh_n = 1/(1+exp((x+68.9+ghvshift)/6.5)) : same as kh_m, but for completeness, compute this
|
||||
}
|
||||
|
||||
FUNCTION kh_mt(v (mV)) {
|
||||
kh_mt = exp((v+183.6+ghvshift)/15.24)
|
||||
}
|
||||
|
||||
FUNCTION kh_nt(v (mV)) {
|
||||
kh_nt = exp((v+158.6+ghvshift)/11.2)/(1+exp((v+75+ghvshift)/5.5))
|
||||
}
|
||||
|
||||
|
||||
|
||||
155
cnmodel/mechanisms/ihsgc_apical.mod
Executable file
155
cnmodel/mechanisms/ihsgc_apical.mod
Executable file
@@ -0,0 +1,155 @@
|
||||
TITLE ihsgc-apical.mod - Spiral Ganglion Cell Ih current for Apical Region
|
||||
|
||||
COMMENT
|
||||
Ih for Spiral ganglion cells.
|
||||
Kinetcs are based on average fits to mouse SGCs,
|
||||
This model is for just the apical cell group.
|
||||
Data used to establish the kinetic parameters were collected by
|
||||
Qing Liu and Robin Davis (Rutgers).
|
||||
Data were taken at room temperature.
|
||||
Kinetic parameters were extracted by curve fitting for fast and
|
||||
slow components from activation and deactivation (using
|
||||
the program Ihfit4b.py).
|
||||
|
||||
Implementation by Paul B. Manis, January-April, 2012.
|
||||
Revised December 2013, January 2014.
|
||||
# of parameters in the fit were decreased (tau uses one v and scale factor).
|
||||
Parameters are shown in the tables in Liu et al., JARO 2014.
|
||||
|
||||
March 13, 2014: Corrected version with boltzmax for slow component
|
||||
July 2014: made threadsafe, changed solver
|
||||
|
||||
pmanis@med.unc.edu
|
||||
|
||||
Note: vshift parameter is nominally 0. This parameter can
|
||||
shift the entire activation and rate curves, keeping them
|
||||
in register for each component of the conductance.
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX ihsgcApical
|
||||
NONSPECIFIC_CURRENT i
|
||||
RANGE gbar, gh, ih, eh, vshift
|
||||
RANGE vh, k, vhs, ks
|
||||
RANGE rinf, rtau, sinf, stau
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius = 22 (degC)
|
||||
dt (ms)
|
||||
gbar = 0.00318 (mho/cm2) <0,1e9>
|
||||
eh = -41 (mV)
|
||||
|
||||
: Parameters from kinetic analysis
|
||||
: Format for NEURON MOD file:
|
||||
|
||||
: (Run on date = 2014-01-01 12:55:35.786524 )
|
||||
|
||||
: lmfit, Constrained model t(v) = DC + 1/(a * exp((v+vh)/k1) + a*exp(-(v+vh)/k2))
|
||||
: A. Fast component (Fast trace):
|
||||
|
||||
: Boltzmann:
|
||||
vh = -101.831 (mV)
|
||||
k = 12.431 (mV)
|
||||
vshift = 0.0 (mV)
|
||||
afast = 0.4225 : fraction that is fast.
|
||||
|
||||
: Tau
|
||||
taufac = 1.0 (1)
|
||||
taumin = 0 (ms)
|
||||
tausc1 = 0.00445778 (/ms) : (ms)
|
||||
vtau1 = 87.0705 (mV)
|
||||
kfac1 = 53.0338 (mV)
|
||||
kfac2 = 21.5365 (mV)
|
||||
|
||||
|
||||
: B. Slow component (Cyan trace):
|
||||
: (Run on date = 2014-01-01 12:55:35.786883 )
|
||||
|
||||
: Boltzmann:
|
||||
svh1 = -86.762 (mV)
|
||||
sk1 = 4.430 (mV) : double boltzmann
|
||||
svh2 = -115.227 (mV)
|
||||
sk2 = 9.675 (mV)
|
||||
svshift = 0.0 (mV)
|
||||
sba2 = 0.400557 : relative amplitude slow component 2 compared to slow 1 (slow2/(slow2+slow1))
|
||||
aslow = 0.5775 : total slow
|
||||
boltzmax = 0.5019571 : normalization factor
|
||||
: (computed numerically in Sage to make double boltz max = 1.0)
|
||||
|
||||
: stau
|
||||
staufac = 1.0 (1)
|
||||
staumin = 0 (ms)
|
||||
stausc1 = 0.00093656 (/ms) : (ms)
|
||||
svtau1 = 89.6097 (mV)
|
||||
skfac1 = 25.392 (mV)
|
||||
skfac2 = 26.4195 (mV)
|
||||
|
||||
}
|
||||
|
||||
STATE {
|
||||
r
|
||||
s
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gh (mho/cm2)
|
||||
i (mA/cm2)
|
||||
ih (mA/cm2)
|
||||
rinf
|
||||
rtau (ms)
|
||||
sinf
|
||||
stau (ms)
|
||||
q10 ()
|
||||
}
|
||||
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gh = gbar*(afast*(r^2)+aslow*s) : Balance between fast and slow determined by afast and aslow
|
||||
ih = gh*(v - eh)
|
||||
i = ih
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
q10 = 3.0^((celsius - 22.0)/10.0 (degC)) : adjust for temperature...
|
||||
rates(v)
|
||||
r = rinf
|
||||
s = sinf
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
r' = (rinf - r)/rtau
|
||||
s' = (sinf - s)/stau
|
||||
}
|
||||
|
||||
LOCAL rt, st
|
||||
PROCEDURE rates(v (mV)) { : Computes rate and activation at voltage = v.
|
||||
|
||||
: fast component - standard HH-like kinetics.
|
||||
rinf = 1.0 / (1+exp((v - vh + vshift) / k))^0.5
|
||||
rt = tausc1*exp((v + vtau1 + vshift) / kfac1) + tausc1*exp(-(v + vtau1 + vshift) / kfac2)
|
||||
rtau = (taumin + taufac/rt)
|
||||
|
||||
: slow component
|
||||
: double boltzman activation function (decreasing conductance), unequal sharing.
|
||||
sinf = 1. / (1 + exp((v - svh1 + vshift) / sk1))
|
||||
st = 1. / (1 + exp((v - svh2 + vshift) / sk2))
|
||||
sinf = (1-sba2)*sinf - sba2*st
|
||||
sinf = sinf/boltzmax : make sinf [0..1]
|
||||
stau = staufac / (stausc1*exp((v + svtau1 + vshift) / skfac1) + stausc1*exp(-(v + svtau1 + vshift) / skfac2))
|
||||
stau = (stau + staumin)
|
||||
}
|
||||
|
||||
154
cnmodel/mechanisms/ihsgc_basalmiddle.mod
Executable file
154
cnmodel/mechanisms/ihsgc_basalmiddle.mod
Executable file
@@ -0,0 +1,154 @@
|
||||
TITLE ihsgc-basalmiddle.mod - Spiral Ganglion Cell Ih current for basal and middle Regions
|
||||
|
||||
COMMENT
|
||||
Ih for Spiral ganglion cells.
|
||||
Kinetcs are based on average fits to mouse SGCs,
|
||||
This model is for the basal and middle cell groups (averaged).
|
||||
Data used to establish the kinetic parameters were collected by
|
||||
Qing Liu and Robin Davis (Rutgers).
|
||||
Data were taken at room temperature.
|
||||
Kinetic parameters were extracted by curve fitting for fast and
|
||||
slow components from activation and deactivation (using
|
||||
the program Ihfit4b.py).
|
||||
|
||||
Implementation by Paul B. Manis, January-April, 2012.
|
||||
Revised December 2013, January 2014.
|
||||
# of parameters in the fit were decreased (tau uses one v and scale factor).
|
||||
Parameters are shown in the tables in Liu et al., JARO 2014.
|
||||
|
||||
March 13, 2014: Corrected version with boltzmax for slow component
|
||||
July 2014: made threadsafe, changed solver
|
||||
|
||||
pmanis@med.unc.edu
|
||||
|
||||
Note: vshift parameter is nominally 0. This parameter can
|
||||
shift the entire activation and rate curves, keeping them
|
||||
in register for each component of the conductance.
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX ihsgcBasalMiddle
|
||||
NONSPECIFIC_CURRENT i
|
||||
RANGE gbar, gh, ih, eh, vshift
|
||||
RANGE vh, k, vhs, ks
|
||||
RANGE rinf, rtau, sinf, stau
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius = 22 (degC)
|
||||
dt (ms)
|
||||
gbar = 0.00318 (mho/cm2) <0,1e9>
|
||||
eh = -41 (mV)
|
||||
|
||||
: Parameters from kinetic analysis
|
||||
: Formatted for NEURON MOD file
|
||||
: (Run on date = 2014-01-01 12:52:22.776598 )
|
||||
|
||||
: lmfit, Constrained model t(v) = DC + 1/(a * exp((v+vh)/k1) + a*exp(-(v+vh)/k2))
|
||||
: A. Fast component (Fast trace):
|
||||
|
||||
: Boltzmann:
|
||||
vh = -105.298 (mV)
|
||||
k = 12.359 (mV)
|
||||
vshift = 0.0 (mV)
|
||||
afast = 0.4471 : fraction that is fast.
|
||||
|
||||
: Tau
|
||||
taufac = 1.0 (1)
|
||||
taumin = 0 (ms)
|
||||
tausc1 = 0.00417518 (/ms)
|
||||
vtau1 = 87.0836 (mV)
|
||||
kfac1 = 28.1667 (mV)
|
||||
kfac2 = 21.4809 (mV)
|
||||
|
||||
|
||||
: B. Slow component:
|
||||
: (Run on date = 2014-01-01 12:52:22.777259 )
|
||||
: Boltzmann:
|
||||
svh1 = -91.860 (mV)
|
||||
sk1 = 4.883 (mV) : double boltzmann
|
||||
svh2 = -110.209 (mV)
|
||||
sk2 = 3.927 (mV)
|
||||
svshift = 0.0 (mV)
|
||||
sba2 = 0.337216 : relative amplitude slow component 2 compared to slow 1 (slow2/(slow2+slow1))
|
||||
aslow = 0.5529 : total slow
|
||||
boltzmax = 0.5551729 : normalization factor
|
||||
: (computed numerically in Sage to make double boltz max = 1.0)
|
||||
|
||||
: stau
|
||||
staufac = 1.0 (1)
|
||||
staumin = 0 (ms)
|
||||
stausc1 = 0.00104354 (/ms)
|
||||
svtau1 = 105.816 (mV)
|
||||
skfac1 = 40.0291 (mV)
|
||||
skfac2 = 20.2273 (mV)
|
||||
|
||||
}
|
||||
|
||||
STATE {
|
||||
r
|
||||
s
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gh (mho/cm2)
|
||||
i (mA/cm2)
|
||||
ih (mA/cm2)
|
||||
rinf
|
||||
rtau (ms)
|
||||
sinf
|
||||
stau (ms)
|
||||
q10 ()
|
||||
}
|
||||
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gh = gbar*(afast*(r^2)+aslow*s) : Balance between fast and slow determined by afast and aslow
|
||||
ih = gh*(v - eh)
|
||||
i = ih
|
||||
}
|
||||
|
||||
|
||||
INITIAL {
|
||||
q10 = 3.0^((celsius - 22.0)/10.0 (degC)) : adjust for temperature...
|
||||
rates(v)
|
||||
r = rinf
|
||||
s = sinf
|
||||
}
|
||||
|
||||
DERIVATIVE states { : Updates state variables r and s
|
||||
rates(v) : at the current voltage
|
||||
r' = (rinf - r )/rtau
|
||||
s' = (sinf - s)/stau
|
||||
}
|
||||
|
||||
LOCAL rt, st
|
||||
PROCEDURE rates(v (mV)) { : Computes rate and activation at voltage = v.
|
||||
|
||||
: fast component - standard HH-like kinetics.
|
||||
rinf = 1.0 / (1+exp((v - vh + vshift) / k))^0.5
|
||||
rt = tausc1*exp((v + vtau1 + vshift) / kfac1) + tausc1*exp(-(v + vtau1 + vshift) / kfac2)
|
||||
rtau = (taumin + taufac/rt)
|
||||
|
||||
: slow component
|
||||
: double boltzman activation function (decreasing conductance), unequal sharing.
|
||||
sinf = 1. / (1 + exp((v - svh1 + vshift) / sk1))
|
||||
st = 1. / (1 + exp((v - svh2 + vshift) / sk2))
|
||||
sinf = (1-sba2)*sinf - sba2*st
|
||||
sinf = sinf/boltzmax : make sinf [0..1]
|
||||
|
||||
stau = staufac / (stausc1*exp((v + svtau1 + vshift) / skfac1) + stausc1*exp(-(v + svtau1 + vshift) / skfac2))
|
||||
stau = (stau + staumin)
|
||||
}
|
||||
79
cnmodel/mechanisms/ihvcn.mod
Normal file
79
cnmodel/mechanisms/ihvcn.mod
Normal file
@@ -0,0 +1,79 @@
|
||||
TITLE jsr.mod VCN conductances
|
||||
|
||||
COMMENT
|
||||
Ih for VCN neurons - average from several studies in auditory neurons
|
||||
|
||||
Implementation by Paul B. Manis, April (JHU) and Sept, (UNC)1999.
|
||||
revised 2/28/04 pbm
|
||||
|
||||
pmanis@med.unc.edu
|
||||
|
||||
Modifed implementation; includes all temperature scaling, passes modlunit
|
||||
7/10/2014 pbm
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX ihvcn
|
||||
NONSPECIFIC_CURRENT i
|
||||
RANGE gbar, gh, i, eh
|
||||
GLOBAL rinf, rtau
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
dt (ms)
|
||||
gbar = 0.00318 (mho/cm2) <0,1e9>
|
||||
q10tau = 3.0
|
||||
}
|
||||
|
||||
STATE {
|
||||
r
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
celsius (degC)
|
||||
gh (mho/cm2)
|
||||
eh (mV)
|
||||
i (mA/cm2)
|
||||
rinf
|
||||
rtau (ms)
|
||||
q10 ()
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
|
||||
gh = gbar*r
|
||||
i = gh*(v - eh)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
q10 = q10tau^((celsius - 22)/10 (degC)) : if you don't like room temp, it can be changed!
|
||||
rates(v)
|
||||
r = rinf
|
||||
}
|
||||
|
||||
DERIVATIVE states { :Computes state variables m, h, and n
|
||||
rates(v) : at the current v and dt.
|
||||
r' = (rinf - r)/rtau
|
||||
}
|
||||
|
||||
PROCEDURE rates(v (mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
|
||||
rinf = 1 / (1+exp((v + 76) / 7 (mV)))
|
||||
rtau = (100000 (ms)/ (237*exp((v+60) / 12 (mV)) + 17*exp(-(v+60) / 14 (mV)))) + 25
|
||||
rtau = rtau/q10
|
||||
|
||||
}
|
||||
|
||||
188
cnmodel/mechanisms/inav11.mod
Executable file
188
cnmodel/mechanisms/inav11.mod
Executable file
@@ -0,0 +1,188 @@
|
||||
:
|
||||
: ichanWT2005.mod
|
||||
:
|
||||
: Alan Goldin Lab, University of California, Irvine
|
||||
: Jay Lickfett - Last Modified: 6 July 2005
|
||||
:
|
||||
: This file is the Nav1.1 wild-type channel model described in:
|
||||
:
|
||||
: Barela et al. An Epilepsy Mutation in the Sodium Channel SCN1A That Decreases
|
||||
: Channel Excitability. J. Neurosci. 26(10): p. 2714-2723
|
||||
:
|
||||
:
|
||||
: The model is derived from the one described in:
|
||||
:
|
||||
: Spampanato et al. (2004a) Increased Neuronal Firing in Computer Simulations
|
||||
: of Sodium Channel Mutations that Cause Generalized Epilepsy with Febrile Seizures Plus.
|
||||
: Journal of Neurophysiology 91:2040-2050
|
||||
:
|
||||
: and
|
||||
:
|
||||
: Spampanato et al. (2004b) A Novel Epilepsy Mutation
|
||||
: in the Sodium Channel SCN1A Identifies a Cytoplasmic Domain for
|
||||
: Beta Subunit Interaction. J. Neurosci. 24(44):10022-10034
|
||||
:
|
||||
|
||||
: delayed rectifier removed (p.b.manis 2/22/2009)
|
||||
|
||||
|
||||
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(uF) = (microfarad)
|
||||
(molar) = (1/liter)
|
||||
(nA) = (nanoamp)
|
||||
(mM) = (millimolar)
|
||||
(um) = (micron)
|
||||
(S) = (siemens)
|
||||
FARADAY = 96520 (coul)
|
||||
R = 8.3134 (joule/degC)
|
||||
|
||||
}
|
||||
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX nav11
|
||||
USEION na READ ena WRITE ina VALENCE 1
|
||||
RANGE gna
|
||||
RANGE gbar
|
||||
RANGE minf, mtau, hinf, htau, sinf, stau, inat, m, h, s
|
||||
RANGE vsna : voltage shift parameter
|
||||
}
|
||||
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 100 WITH 100 (ms)}
|
||||
|
||||
|
||||
PARAMETER {
|
||||
vsna = 4.3 (mV)
|
||||
celsius (degC)
|
||||
dt (ms)
|
||||
ena (mV)
|
||||
:enat = 50 (mV)
|
||||
gbar = 0.1 (mho/cm2)
|
||||
q10 = 3.0 (1)
|
||||
}
|
||||
|
||||
|
||||
ASSIGNED {
|
||||
|
||||
v (mV)
|
||||
gna (mho/cm2)
|
||||
ina (mA/cm2)
|
||||
minf hinf sinf
|
||||
mtau (ms) htau (ms) stau (ms)
|
||||
mexp hexp sexp
|
||||
: vsna (mV)
|
||||
}
|
||||
|
||||
|
||||
STATE {
|
||||
m h s
|
||||
}
|
||||
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gna = gbar*m*m*m*h*s
|
||||
ina = gna*(v - ena)
|
||||
}
|
||||
|
||||
|
||||
UNITSOFF
|
||||
|
||||
|
||||
INITIAL {
|
||||
|
||||
trates(v)
|
||||
|
||||
m = minf
|
||||
h = hinf
|
||||
s = sinf
|
||||
|
||||
}
|
||||
|
||||
|
||||
DERIVATIVE states { : Computes state variables m, h, s and n
|
||||
: at the current v and dt.
|
||||
rates(v)
|
||||
m' = (minf - m)/mtau
|
||||
h' = (hinf - h)/htau
|
||||
s' = (sinf - s)/stau
|
||||
|
||||
}
|
||||
|
||||
|
||||
LOCAL qt
|
||||
|
||||
|
||||
PROCEDURE rates(v (mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
|
||||
LOCAL alpha, beta, sum
|
||||
qt = q10^((celsius - 22)/10) : original recordings in Barela et al made at "room temperature"
|
||||
|
||||
|
||||
: "m" sodium activation system
|
||||
minf = f_minf(v)
|
||||
mtau = f_mtau(v)/qt
|
||||
|
||||
: "h" sodium fast inactivation system
|
||||
hinf = f_hinf(v)
|
||||
htau = f_htau(v)/qt
|
||||
|
||||
: "s" sodium slow inactivation system
|
||||
sinf = f_sinf(v)
|
||||
stau = f_stau(v)/qt
|
||||
|
||||
}
|
||||
|
||||
|
||||
PROCEDURE trates(v (mV)) { :Build table with rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
LOCAL tinc
|
||||
|
||||
TABLE minf, mexp, hinf, hexp, sinf, sexp, mtau, htau, stau
|
||||
DEPEND dt, celsius FROM -100 TO 100 WITH 200
|
||||
|
||||
rates(v) : not consistently executed from here if usetable_hh == 1
|
||||
: so don't expect the tau values to be tracking along with
|
||||
: the inf values in hoc
|
||||
|
||||
tinc = -dt : * q10 q10 is handled in rates, above
|
||||
mexp = 1 - exp(tinc/mtau)
|
||||
hexp = 1 - exp(tinc/htau)
|
||||
sexp = 1 - exp(tinc/stau)
|
||||
}
|
||||
|
||||
FUNCTION f_minf(v (mV)) {
|
||||
f_minf = 1/(1+exp(-(v+27.4+vsna)*4.7*0.03937))
|
||||
|
||||
}
|
||||
FUNCTION f_mtau(v (mV)) {
|
||||
f_mtau = 0.15
|
||||
}
|
||||
|
||||
FUNCTION f_hinf(v (mV)) {
|
||||
f_hinf = 1/(1+exp((v+41.9+vsna)/6.7))
|
||||
}
|
||||
|
||||
FUNCTION f_htau(v (mV)) {
|
||||
f_htau = 23.12*exp(-0.5*((v+77.58+vsna)/43.92)^2)
|
||||
}
|
||||
|
||||
|
||||
FUNCTION f_sinf(v (mV)) {
|
||||
f_sinf = 1/(1+exp((v+46.0+vsna)/6.6))
|
||||
}
|
||||
|
||||
FUNCTION f_stau(v (mV)) {
|
||||
f_stau = 1000*140.4*exp(-0.5*((v+71.3+vsna)/30.9)^2)
|
||||
}
|
||||
|
||||
|
||||
UNITSON
|
||||
|
||||
136
cnmodel/mechanisms/jsrnaf.mod
Normal file
136
cnmodel/mechanisms/jsrnaf.mod
Normal file
@@ -0,0 +1,136 @@
|
||||
TITLE jsrnaf.mod VCN Na conductance, fast model
|
||||
|
||||
COMMENT
|
||||
gnaf is the modified form used in his
|
||||
1993 M.S. thesis (as in Rothman et al., J. Neurophysiol. 70:2562, 1993),
|
||||
with rapid recovery from inactivation for potentials below rest.
|
||||
|
||||
Implementation by Paul B. Manis, April and Sept, 1999.
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
? interface
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX jsrna
|
||||
USEION na READ ena WRITE ina
|
||||
RANGE gbar
|
||||
RANGE gna, vsna
|
||||
RANGE minf, hinf, mtau, htau
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
dt (ms)
|
||||
ena = 55 (mV)
|
||||
gbar = 0.25 (mho/cm2) <0,1e9>
|
||||
vsna = 0 (mV)
|
||||
q10 = 3.0 (1)
|
||||
}
|
||||
|
||||
STATE {
|
||||
m h
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gna (mho/cm2)
|
||||
ina (mA/cm2)
|
||||
minf hinf
|
||||
mtau (ms) htau (ms)
|
||||
celsius (degC)
|
||||
}
|
||||
|
||||
LOCAL mexp, hexp
|
||||
|
||||
? currents
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gna = gbar*(m^3)*h
|
||||
ina = gna*(v - ena)
|
||||
}
|
||||
|
||||
UNITSOFF
|
||||
|
||||
INITIAL {
|
||||
trates(v)
|
||||
m = minf
|
||||
h = hinf
|
||||
}
|
||||
|
||||
DERIVATIVE states { :Computes state variables m, h, and n
|
||||
trates(v) : at the current v and dt.
|
||||
m' = (minf - m)/mtau
|
||||
h' = (hinf - h)/htau
|
||||
}
|
||||
|
||||
LOCAL qt
|
||||
|
||||
PROCEDURE rates(v (mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
LOCAL alpha, beta, sum
|
||||
|
||||
qt = q10^((celsius - 22)/10 (degC)) : R&M'03 used 3
|
||||
|
||||
: Note qt temperature here cancels in minf (a/(a+b))
|
||||
:"m" sodium activation system - JSR
|
||||
alpha = -0.36*qt*vtrap((v+49),-3)
|
||||
beta = 0.4*qt*vtrap((v+58),20)
|
||||
sum = alpha + beta
|
||||
mtau = 1/sum
|
||||
minf = alpha/sum
|
||||
|
||||
:"h" sodium inactivation system - JSR
|
||||
alpha = 2.4*qt/(1+exp((v+68-vsna)/3 (mV))) + 0.8*qt/(1+exp(v+61.3-vsna))
|
||||
beta = 3.6*qt/(1+exp(-(v+21-vsna)/10 (mV)))
|
||||
sum = alpha + beta
|
||||
htau = 1/sum
|
||||
hinf = alpha/sum
|
||||
|
||||
|
||||
|
||||
|
||||
: jsr modified sodium channel - defined in terms of alpha and beta this time
|
||||
: am = (0.36*q10*(v+49))/(1-exp(-((v+49)/3)))
|
||||
: am = -(0.36*q10*vtrap(-(v+49),3))
|
||||
: bm = -(0.40*q10*(v+58))/(1-exp((v+58)/20))
|
||||
: bm = (0.40*q10*vtrap((v+58),20))
|
||||
: ah = ((2.4*q10)/(1+exp((v+68)/3))) + (0.8*qten/(1+exp(v+61.3)))
|
||||
: bh = (3.6*q10)/(1+exp(-(v+21)/10))
|
||||
|
||||
: minf = am/(am+bm)
|
||||
: hinf = ah/(ah+bh)
|
||||
|
||||
: mtau = 1/(am+bm)
|
||||
: htau = 1/(ah+bh)
|
||||
|
||||
}
|
||||
|
||||
PROCEDURE trates(v (mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
LOCAL tinc
|
||||
|
||||
rates(v) : not consistently executed from here if usetable_hh == 1
|
||||
: so don't expect the tau values to be tracking along with
|
||||
: the inf values in hoc
|
||||
|
||||
tinc = -dt : * q10 # handled in rates now
|
||||
mexp = 1 - exp(tinc/mtau)
|
||||
hexp = 1 - exp(tinc/htau)
|
||||
}
|
||||
|
||||
FUNCTION vtrap(x,y) { :Traps for 0 in denominator of rate eqns.
|
||||
if (fabs(x/y) < 1e-6) {
|
||||
vtrap = y*(1 - x/y/2)
|
||||
}else{
|
||||
vtrap = x/(exp(x/y) - 1)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
104
cnmodel/mechanisms/ka.mod
Normal file
104
cnmodel/mechanisms/ka.mod
Normal file
@@ -0,0 +1,104 @@
|
||||
TITLE klt.mod The low threshold conductance of cochlear nucleus neurons
|
||||
|
||||
COMMENT
|
||||
|
||||
NEURON implementation of Jason Rothman's measurements of VCN conductances.
|
||||
|
||||
This file implements the transient potassium current found in ventral cochlear
|
||||
nucleus "Type I" cells, which are largely "stellate" or "multipolar" cells (Manis and
|
||||
Marx, 1991; Rothman and Manis, 2003a,b; Manis et al, 1996). The current is likely
|
||||
mediated by Kv4.2 potassium channel subunits, but this has not been directly
|
||||
demonstrated. The specific implementation is described in Rothman and Manis, J.
|
||||
Neurophysiol. 2003, in the appendix. Measurements were made from isolated
|
||||
neurons from adult guinea pig, under reasonably stringent voltage clamp conditions.
|
||||
The measured current is sensitive to 4-aminopyridine.
|
||||
Original implementation by Paul B. Manis, April (JHU) and Sept, (UNC)1999.
|
||||
|
||||
File split implementaiton, April 1, 2004.
|
||||
|
||||
Contact: pmanis@med.unc.edu
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX ka
|
||||
USEION k READ ek WRITE ik
|
||||
RANGE gbar, gka, ik
|
||||
GLOBAL ainf, binf, cinf, atau, btau, ctau
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
dt (ms)
|
||||
gbar = 0.00477 (mho/cm2) <0,1e9>
|
||||
q10tau = 3.0
|
||||
q10g = 2.0
|
||||
}
|
||||
|
||||
STATE {
|
||||
a b c
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
celsius (degC) : model is defined on measurements made at room temp in Baltimore
|
||||
ik (mA/cm2)
|
||||
ek (mV)
|
||||
gka (mho/cm2)
|
||||
ainf binf cinf
|
||||
atau (ms) btau (ms) ctau (ms)
|
||||
qg () : computed q10 for gnabar based on q10g
|
||||
q10 ()
|
||||
}
|
||||
|
||||
LOCAL aexp, bexp, cexp
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
|
||||
gka = gbar*(a^4)*b*c
|
||||
ik = gka*(v - ek)
|
||||
|
||||
}
|
||||
|
||||
|
||||
INITIAL {
|
||||
qg = q10g^((celsius-22)/10 (degC))
|
||||
q10 = q10tau^((celsius - 22)/10 (degC)) : if you don't like room temp, it can be changed!
|
||||
rates(v)
|
||||
a = ainf
|
||||
b = binf
|
||||
c = cinf
|
||||
}
|
||||
|
||||
DERIVATIVE states { :Computes state variables m, h, and n
|
||||
rates(v) : at the current v and dt.
|
||||
a' = (ainf - a)/atau
|
||||
b' = (binf - b)/btau
|
||||
c' = (cinf - c)/ctau
|
||||
}
|
||||
|
||||
|
||||
PROCEDURE rates(v (mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
|
||||
ainf = (1 / (1 + exp(-1*(v + 31) / 6 (mV))))^0.25
|
||||
binf = 1 / (1 + exp((v + 66) / 7 (mV)))^0.5
|
||||
cinf = 1 / (1 + exp((v + 66) / 7 (mV)))^0.5
|
||||
|
||||
atau = (100 (ms)/ (7*exp((v+60) / 14 (mV)) + 29*exp(-(v+60) / 24 (mV)))) + 0.1
|
||||
atau = atau/q10
|
||||
btau = (1000 (ms) / (14*exp((v+60) / 27 (mV)) + 29*exp(-(v+60) / 24 (mV)))) + 1
|
||||
btau = btau/q10
|
||||
ctau = (90 (ms)/ (1 + exp((-66-v) / 17 (mV)))) + 10
|
||||
ctau = ctau/q10
|
||||
}
|
||||
|
||||
72
cnmodel/mechanisms/kcnq.mod
Normal file
72
cnmodel/mechanisms/kcnq.mod
Normal file
@@ -0,0 +1,72 @@
|
||||
TITLE KCNQ potassium channel for GPe neuron
|
||||
|
||||
COMMENT
|
||||
modeled by Gunay et al., 2008
|
||||
implemented in NEURON by Kitano, 2011
|
||||
Threadsafe and unit checking, P.B. Manis, 2014
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mV) = (millivolt)
|
||||
(mA) = (milliamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX kcnq
|
||||
USEION k READ ek WRITE ik
|
||||
RANGE gbar, gk, iKCNQ
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
dt (ms)
|
||||
gbar = 0.001 (mho/cm2)
|
||||
iKCNQ = 0.0 (mA/cm2)
|
||||
ek (mV)
|
||||
|
||||
theta_m = -61.0 (mV)
|
||||
k_m = 19.5 (mV)
|
||||
tau_m0 = 6.7 (ms)
|
||||
tau_m1 = 100.0 (ms)
|
||||
phi_m = -61.0 (mV)
|
||||
sigma_m0 = 35.0 (mV)
|
||||
sigma_m1 = -25.0 (mV)
|
||||
}
|
||||
|
||||
STATE {
|
||||
m
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
ik (mA/cm2)
|
||||
gk (mho/cm2)
|
||||
minf
|
||||
taum (ms)
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gk = gbar*m*m*m*m
|
||||
ik = gk * (v-ek)
|
||||
iKCNQ = ik
|
||||
}
|
||||
|
||||
|
||||
INITIAL {
|
||||
settables(v)
|
||||
m = minf
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
settables(v)
|
||||
m' = (minf - m)/taum
|
||||
}
|
||||
|
||||
PROCEDURE settables(v (mV)) {
|
||||
TABLE minf, taum FROM -100 TO 100 WITH 400
|
||||
|
||||
minf = 1.0 / (1.0 + exp((theta_m - v)/k_m))
|
||||
taum = tau_m0 + (tau_m1 - tau_m0)/(exp((phi_m - v)/sigma_m0) + exp((phi_m - v)/sigma_m1))
|
||||
}
|
||||
92
cnmodel/mechanisms/kdpyr.mod
Normal file
92
cnmodel/mechanisms/kdpyr.mod
Normal file
@@ -0,0 +1,92 @@
|
||||
TITLE kdpyr.mod DCN pyramidal cell model, delayed rectifier
|
||||
|
||||
COMMENT
|
||||
|
||||
This is part of a model implements a Dorsal Cochlear Nucleus Pyramidal point cell
|
||||
based on kinetic data from Kanold and Manis (1999) and Kanold's dissertation (1999)
|
||||
|
||||
-- 15 Jan 1999 P. Manis
|
||||
|
||||
Added export of start states for some variables to do perturbation tests
|
||||
These start values replace the "inf" values used in the initialization procedure
|
||||
Note that if the start variable is set to a value less than 0,
|
||||
then the default initialization will be done. Typically I use a value of -1 for this flagging
|
||||
Note also that it is possible to set the initial values > 1 but this is meaningless in terms of
|
||||
the present equations.
|
||||
-- 5 Feb 1999 P. Manis
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX kdpyr
|
||||
USEION k READ ek WRITE ik
|
||||
RANGE gbar, gk : delayed rectifier
|
||||
RANGE ntau: time constants delayed rectifier
|
||||
RANGE kd_avh
|
||||
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius (degC)
|
||||
dt (ms)
|
||||
ek (mV) : = -81.5 (mV)
|
||||
gbar = 0.006667 (mho/cm2) <0,1e9>
|
||||
ntau = 0.5 (ms) <0.1,100>
|
||||
kd_avh = -40 (mV)
|
||||
}
|
||||
|
||||
STATE {
|
||||
n
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gk (mho/cm2)
|
||||
ik (mA/cm2)
|
||||
ninf
|
||||
}
|
||||
|
||||
LOCAL nexp
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gk = gbar*n*n
|
||||
ik = gk*(v - ek)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
n = ninf
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
n' = (ninf - n) / ntau
|
||||
}
|
||||
|
||||
LOCAL q10
|
||||
|
||||
PROCEDURE rates(v(mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
LOCAL alpha, beta, sum
|
||||
TABLE ninf, ntau DEPEND celsius FROM -200 TO 100 WITH 400
|
||||
|
||||
q10 = 3^((celsius - 22)/10 (degC))
|
||||
: "n" potassium activation system
|
||||
ninf = kd_m(v)
|
||||
}
|
||||
|
||||
: Make these as functions so we can view them from hoc, although this
|
||||
: may slow things down a bit
|
||||
FUNCTION kd_m(x (mV)) { : potassium activation
|
||||
kd_m = 1/(1+exp(-(x-kd_avh)/(3 (mV)))) : flat time constants
|
||||
}
|
||||
|
||||
111
cnmodel/mechanisms/kht.mod
Normal file
111
cnmodel/mechanisms/kht.mod
Normal file
@@ -0,0 +1,111 @@
|
||||
TITLE kht.mod The high threshold conductance of cochlear nucleus neurons
|
||||
|
||||
COMMENT
|
||||
|
||||
NEURON implementation of Jason Rothman's measurements of VCN conductances.
|
||||
|
||||
This file implements the high threshold potassium current found in several brainstem
|
||||
nuclei of the auditory system, including the spherical and globular bushy cells
|
||||
(Manis and Marx, 1991; Rothman and Manis, 2003a,b) and multipolar (stellate)
|
||||
cells of the ventral cochlear nucleus, principal cells of the medial
|
||||
nucleus of the trapzoid body (Brew and Forsythe, 1995, Wang and Kaczmarek,
|
||||
1997) and neurons of the medial superior olive. The current is likely mediated by
|
||||
Kv3.1 potassium channel subunits. The specific
|
||||
implementation is described in Rothman and Manis, J. Neurophysiol. 2003, in the
|
||||
appendix. Measurements were made from isolated neurons from adult guinea pig,
|
||||
under reasonably stringent voltage clamp conditions. The measured current is
|
||||
sensitive to 4-aminopyridine and TEA, but is spared by mamba snake toxi
|
||||
dendrotoxin I.
|
||||
|
||||
|
||||
Similar conductrances are found in the homologous neurons of the avian auditory
|
||||
system (Reyes and Rubel; Zhang and Trussell; Rathouz and Trussell), and the
|
||||
conductance described here, in the absence of more detailed kinetic measurements
|
||||
, is probably suitable for use in modeling that system.
|
||||
|
||||
|
||||
Original implementation by Paul B. Manis, April (JHU) and Sept, (UNC)1999.
|
||||
|
||||
File split implementation, February 28, 2004.
|
||||
|
||||
Contact: pmanis@med.unc.edu
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX kht
|
||||
USEION k READ ek WRITE ik
|
||||
RANGE gbar, gkht, ik, q10g
|
||||
GLOBAL ninf, pinf, ntau, ptau
|
||||
}
|
||||
|
||||
:INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
ASSIGNED {
|
||||
celsius (degC) : model is defined on measurements made at room temp in Baltimore: 22 degC
|
||||
ik (mA/cm2)
|
||||
ek (mV)
|
||||
gkht (mho/cm2)
|
||||
pinf ninf
|
||||
ptau (ms)
|
||||
ntau (ms)
|
||||
qg () : computed q10 for gnabar based on q10g
|
||||
q10 ()
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
dt (ms)
|
||||
gbar = 0.01592 (mho/cm2) <0,1e9>
|
||||
nf = 0.85 <0,1> :proportion of n vs p kinetics
|
||||
q10tau = 3.0
|
||||
q10g = 2.0
|
||||
}
|
||||
|
||||
STATE {
|
||||
n p
|
||||
}
|
||||
|
||||
LOCAL nexp, pexp
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
|
||||
gkht = qg*gbar*(nf*(n^2) + (1-nf)*p)
|
||||
ik = gkht*(v - ek)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
qg = q10g^((celsius-22)/10 (degC))
|
||||
q10 = q10tau^((celsius - 22)/10 (degC))
|
||||
rates(v)
|
||||
p = pinf
|
||||
n = ninf
|
||||
}
|
||||
|
||||
DERIVATIVE states { :Computes state variables m, h, and n
|
||||
rates(v) : at the current v and dt.
|
||||
n' = (ninf - n)/ntau
|
||||
p' = (pinf - p)/ptau
|
||||
}
|
||||
|
||||
PROCEDURE rates(v (mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
|
||||
ninf = (1 + exp(-(v + 15) / 5 (mV)))^-0.5
|
||||
pinf = 1 / (1 + exp(-(v + 23) / 6 (mV)))
|
||||
|
||||
ntau = (100 (ms)/ (11*exp((v+60) / 24 (mV)) + 21*exp(-(v+60) / 23 (mV)))) + 0.7
|
||||
ntau = ntau/q10
|
||||
ptau = (100 (ms)/ (4*exp((v+60) / 32 (mV)) + 5*exp(-(v+60) / 22 (mV)))) + 5
|
||||
ptau = ptau/q10
|
||||
|
||||
}
|
||||
|
||||
|
||||
128
cnmodel/mechanisms/kif.mod
Normal file
128
cnmodel/mechanisms/kif.mod
Normal file
@@ -0,0 +1,128 @@
|
||||
TITLE kif.mod DCN pyramidal cell model fast transient current
|
||||
|
||||
COMMENT
|
||||
|
||||
This model implements a fast transient potassium current from
|
||||
Dorsal Cochlear Nucleus Pyramidal cells
|
||||
based on kinetic data from Kanold and Manis (1999) and Kanold's dissertation (1999)
|
||||
-- 15 Jan 1999 P. Manis
|
||||
2/10/02. P. Manis.
|
||||
Pulled from pyr.mod 7/24/2014
|
||||
ENDCOMMENT
|
||||
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
SUFFIX kif
|
||||
USEION k READ ek WRITE ik
|
||||
|
||||
RANGE gkif, kif_a_inf, kif_i_inf : fast inactivating potassium current
|
||||
RANGE akif, gbar
|
||||
RANGE kif_a_tau, kif_i_tau
|
||||
RANGE kif_a_start, kif_i_start
|
||||
RANGE kif_ivh, kif_avh, kif_hivh
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius (degC)
|
||||
dt (ms)
|
||||
ek (mV) : = -81.5 (mV)
|
||||
ena (mV) : = 50.0 (mV)
|
||||
gbar = 0.0125 (mho/cm2) <0,1e9>
|
||||
|
||||
kif_ivh = -89.6 (mV)
|
||||
kif_avh = -57.0 (mV)
|
||||
kif_hivh = -87.0 (mV)
|
||||
kif_a_start = -1 (1)
|
||||
kif_i_start = -1 (1)
|
||||
}
|
||||
|
||||
STATE {
|
||||
kifa kifi
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gkif (mho/cm2)
|
||||
ik (mA/cm2)
|
||||
kif_a_inf (1)
|
||||
kif_i_inf (1)
|
||||
kif_a_tau (ms)
|
||||
kif_i_tau (ms)
|
||||
akif ()
|
||||
q10 ()
|
||||
}
|
||||
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
akif = kifa*kifa*kifa*kifa*kifi
|
||||
gkif = gbar*akif
|
||||
ik = gkif*(v - ek)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
q10 = 3^((celsius - 22)/10 (degC))
|
||||
rates(v)
|
||||
if(kif_a_start < 0) { : if xx_(i/a)_start is > 0, then perturbation is done at onset of computations.
|
||||
kifa = kif_a_inf
|
||||
} else {
|
||||
kifa = kif_a_start
|
||||
}
|
||||
if(kif_i_start < 0) {
|
||||
kifi = kif_i_inf
|
||||
} else {
|
||||
kifi = kif_i_start
|
||||
}
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
kifa' = (kif_a_inf - kifa) / kif_a_tau
|
||||
kifi' = (kif_i_inf - kifi) / kif_i_tau
|
||||
}
|
||||
|
||||
|
||||
PROCEDURE rates(v(mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
: LOCAL alpha, beta, sum
|
||||
: TABLE kif_a_inf, kif_a_tau, kif_i_inf, kif_i_tau DEPEND celsius, kif_avh, kif_ivh FROM -200 TO 100 WITH 400
|
||||
: "kif" fast inactivation potassium channel - activation and inactivation
|
||||
kif_a_inf = kif_m(v)
|
||||
kif_i_inf = kif_h(v)
|
||||
kif_a_tau = kif_mt(v)
|
||||
kif_i_tau = kif_ht(v)
|
||||
}
|
||||
|
||||
: Make these as functions so we can view them from hoc, although this
|
||||
: may slow things down a bit
|
||||
|
||||
FUNCTION kif_m(v ) { : ikif activation
|
||||
kif_m = 1.0/(1+exp(-(v-kif_avh)/25.8 (mV)))
|
||||
}
|
||||
|
||||
FUNCTION kif_h(v (mV)) { : ikif inactivation
|
||||
kif_h = 1.0/(1+exp((v-kif_ivh)/6.7 (mV)))
|
||||
}
|
||||
|
||||
FUNCTION kif_mt(v (mV)) (ms) { : ikif activation tau
|
||||
LOCAL x
|
||||
x = 0.15 * exp((v-kif_avh)/10 (mV)) + 0.3 *exp(-(v-kif_avh)/10 (mV))
|
||||
x = 0.5 + (1.0 /x)
|
||||
kif_mt = (x * 1.0 (ms))/q10
|
||||
}
|
||||
|
||||
FUNCTION kif_ht(v (mV)) (ms) { : ikif inactivation tau
|
||||
LOCAL x
|
||||
x = 0.015 * exp((v-kif_hivh)/20 (mV))+0.03*exp(-(v-kif_hivh)/20 (mV))
|
||||
x = 10 + (1./x)
|
||||
kif_ht = (x * 1.0 (ms)) /q10
|
||||
}
|
||||
|
||||
|
||||
108
cnmodel/mechanisms/kir.mod
Executable file
108
cnmodel/mechanisms/kir.mod
Executable file
@@ -0,0 +1,108 @@
|
||||
TITLE KIR channel
|
||||
COMMENT
|
||||
Reference: Steephen JE, Manchanda R (2009) Differences in biophysical
|
||||
properties of nucleus accumbens medium spiny neurons emerging from
|
||||
inactivation of inward rectifying potassium currents. J Comput Neurosci [PubMed]
|
||||
|
||||
Found on ModelDB, 1/21/2013 PBManis
|
||||
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
NEURON {
|
||||
SUFFIX KIR
|
||||
USEION k READ ek WRITE ik
|
||||
RANGE g, ik, gbar
|
||||
GLOBAL minf, mtau
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(uA) = (microamp)
|
||||
(mV) = (millivolt)
|
||||
(mS) = (millimho)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
celsius (degC)
|
||||
ek (mV)
|
||||
gbar = 1.4e-4 (mho/cm2) <0,1e9>
|
||||
m_vh = -82 (mV) : half activation
|
||||
m_ve = 13 (mV) : slope
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
v (mV)
|
||||
g (mho/cm2)
|
||||
ik (mA/cm2)
|
||||
minf (1)
|
||||
mtau (ms)
|
||||
qt (1)
|
||||
}
|
||||
|
||||
STATE {
|
||||
m
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
g = gbar*m
|
||||
ik = g*(v - ek)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
qt = 3^((celsius-35)/10)
|
||||
rates(v)
|
||||
m = minf
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
m' = (minf-m)/mtau
|
||||
}
|
||||
|
||||
FUNCTION_TABLE tabmtau(v(mV)) (ms)
|
||||
|
||||
: rates() computes rate and other constants at present v
|
||||
: call once from hoc to initialize inf at resting v
|
||||
|
||||
PROCEDURE rates(v(mV)) {
|
||||
: mtau = tabmtau(v)
|
||||
mtau = tabmtau(v)/qt
|
||||
minf = 1/(1 + exp((v - m_vh)/m_ve))
|
||||
}
|
||||
|
||||
COMMENT
|
||||
/* TABLES
|
||||
The tables here are built as vecs in hoc, and then loaded into the mod file arrays before use...
|
||||
|
||||
*
|
||||
* Steephen, J. E., & Manchanda, R. (2009). Differences in biophysical properties of nucleus accumbens medium spiny neurons emerging from inactivation of inward rectifying potassium currents. J Comput Neurosci,
|
||||
* doi:10.1007/s10827-009-0161-7
|
||||
*/
|
||||
|
||||
//KIR
|
||||
objref vecmtau_KIR, vecv_KIR
|
||||
vecmtau_KIR = new Vector()
|
||||
vecv_KIR = new Vector()
|
||||
vecv_KIR.indgen(-120, 0, 10)
|
||||
vecmtau_KIR.append(7.465, 7.465, 7.465, 8, 9.435, 10.755, 12.12, 13.795, 15.385, 14.285, 11.765, 8.89, 8) // At 35 deg C
|
||||
table_tabmtau_KIR(&vecmtau_KIR.x[0], vecv_KIR.size, &vecv_KIR.x[0])
|
||||
|
||||
//inKIR
|
||||
objref vecv_inKIR, vechinf_inKIR, vechtau_inKIR, vecv_tau_inKIR
|
||||
vecv_tau_inKIR = new Vector()
|
||||
vechtau_inKIR= new Vector()
|
||||
vecv_tau_inKIR.append(-120,-90, -50)
|
||||
vechtau_inKIR.append(7.767, 15, 25.333) // At 35 deg C
|
||||
table_tabhtau_inKIR(&vechtau_inKIR.x[0],vecv_tau_inKIR.size, &vecv_tau_inKIR.x[0])
|
||||
|
||||
vecv_inKIR = new Vector()
|
||||
vechinf_inKIR = new Vector()
|
||||
vecv_inKIR.append(-120,-90, -50)
|
||||
vechinf_inKIR.append(0, 0.13, 1)
|
||||
table_tabhinf_inKIR(&vechinf_inKIR.x[0], vecv_inKIR.size, &vecv_inKIR.x[0])
|
||||
table_tabmtau_inKIR(&vecmtau_KIR.x[0], vecv_KIR.size, &vecv_KIR.x[0])
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
123
cnmodel/mechanisms/kis.mod
Normal file
123
cnmodel/mechanisms/kis.mod
Normal file
@@ -0,0 +1,123 @@
|
||||
TITLE kis.mod DCN pyramidal cell model Slow transient K current
|
||||
|
||||
COMMENT
|
||||
|
||||
|
||||
This model implements the slow transient potassium current from
|
||||
Dorsal Cochlear Nucleus Pyramidal cells
|
||||
based on kinetic data from Kanold and Manis (1999) and Kanold's dissertation (1999)
|
||||
|
||||
-- 15 Jan 1999 P. Manis
|
||||
|
||||
2/10/02, 7/24/2014. P. Manis.
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
}
|
||||
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX kis
|
||||
USEION k READ ek WRITE ik
|
||||
RANGE gkis, kis_a_inf, kis_i_inf : fast inactivating potassium current
|
||||
RANGE akis, gbar
|
||||
RANGE kis_a_tau, kis_i_tau
|
||||
RANGE kis_a_start, kis_i_start
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius (degC)
|
||||
dt (ms)
|
||||
ek (mV) : = -81.5 (mV)
|
||||
ena (mV) : = 50.0 (mV)
|
||||
gbar = 0.0033333 (mho/cm2) <0,1e9>
|
||||
|
||||
kis_ivh = -40.9 (mV)
|
||||
kis_avh = -38.4 (mV)
|
||||
kis_a_start = -1
|
||||
kis_i_start = -1
|
||||
}
|
||||
|
||||
STATE {
|
||||
kisa kisi
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gkis (mho/cm2)
|
||||
ik (mA/cm2)
|
||||
kis_a_inf kis_i_inf
|
||||
kis_a_tau (ms)
|
||||
kis_i_tau (ms)
|
||||
akis
|
||||
q10 ()
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
akis = kisa*kisa*kisa*kisa*kisi
|
||||
gkis = gbar*akis
|
||||
ik = gkis*(v - ek)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
q10 = 3^((celsius - 22)/10 (degC))
|
||||
rates(v)
|
||||
if(kis_a_start < 0) { : if xx_(i/a)_start is > 0, then perturbation is done at onset of computations.
|
||||
kisa = kis_a_inf
|
||||
} else {
|
||||
kisa = kis_a_start
|
||||
}
|
||||
if(kis_i_start < 0) {
|
||||
kisi = kis_i_inf
|
||||
} else {
|
||||
kisi = kis_i_start
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
kisa' = (kis_a_inf - kisa) / kis_a_tau
|
||||
kisi' = (kis_i_inf - kisi) / kis_i_tau
|
||||
}
|
||||
|
||||
PROCEDURE rates(v (mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
|
||||
: "kis" fast inactivation potassium channel - activation and inactivation
|
||||
kis_a_inf = kis_m(v)
|
||||
kis_i_inf = kis_h(v)
|
||||
kis_a_tau = kis_mt(v)
|
||||
kis_i_tau = kis_ht(v)
|
||||
}
|
||||
|
||||
: Make these as functions so we can view them from hoc, although this
|
||||
: may slow things down a bit
|
||||
|
||||
FUNCTION kis_m(v (mV)) { : ikis activation
|
||||
kis_m = 1/(1+exp(-(v-kis_avh)/23.7 (mV)))
|
||||
}
|
||||
|
||||
FUNCTION kis_h(v (mV)) { : ikis inactivation
|
||||
kis_h = 1/(1+exp((v-kis_ivh)/9 (mV)))
|
||||
}
|
||||
|
||||
FUNCTION kis_mt(v (mV)) (ms) { : ikis activation tau
|
||||
LOCAL x
|
||||
x = 0.15*exp((v-kis_avh)/10 (mV)) + 0.3*exp(-(v-kis_avh)/10 (mV))
|
||||
x = 0.5 + (1.0 /x)
|
||||
kis_mt = (x * 1.0 (ms))/q10
|
||||
}
|
||||
|
||||
FUNCTION kis_ht(v (mV)) (ms) { : ikis inactivation tau
|
||||
kis_ht = 200 (ms)
|
||||
}
|
||||
|
||||
109
cnmodel/mechanisms/klt.mod
Normal file
109
cnmodel/mechanisms/klt.mod
Normal file
@@ -0,0 +1,109 @@
|
||||
TITLE klt.mod The low threshold conductance of cochlear nucleus neurons
|
||||
|
||||
COMMENT
|
||||
|
||||
NEURON implementation of Jason Rothman's measurements of VCN conductances.
|
||||
|
||||
This file implements the low threshold potassium current found in several brainstem
|
||||
nuclei of the auditory system, including the spherical and globular bushy cells
|
||||
(Manis and Marx, 1991; Rothman and Manis, 2003a,b) and octopus cells (Bal and
|
||||
Oertel, 2000) of the ventral cochlear nucleus, principal cells of the medial
|
||||
nucleus of the trapzoid body (Brew and Forsythe, 1995, Wang and Kaczmarek,
|
||||
1997) and neurons of the medial superior olive. The current is likely mediated by
|
||||
heteromultimers of Kv1.1 and Kv1.2 potassium channel subunits. The specific
|
||||
implementation is described in Rothman and Manis, J. Neurophysiol. 2003, in the
|
||||
appendix. Measurements were made from isolated neurons from adult guinea pig,
|
||||
under reasonably stringent voltage clamp conditions. The measured current is
|
||||
sensitive to the mamba snake toxin dendrotoxin-I.
|
||||
|
||||
|
||||
Similar conductrances are found in the homologous neurons of the avian auditory
|
||||
system (Reyes and Rubel; Zhang and Trussell; Rathouz and Trussell), and the
|
||||
conductance described here, in the absence of more detailed kinetic measurements
|
||||
, is probably suitable for use in modeling that system.
|
||||
|
||||
|
||||
Original implementation by Paul B. Manis, April (JHU) and Sept, (UNC)1999.
|
||||
|
||||
File split implementation, February 28, 2004.
|
||||
|
||||
Contact: pmanis@med.unc.edu
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX klt
|
||||
USEION k READ ek WRITE ik
|
||||
RANGE gbar, gklt, ik, q10g
|
||||
GLOBAL winf, zinf, wtau, ztau
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
dt (ms)
|
||||
gbar = 0.01592 (mho/cm2) <0,1e9>
|
||||
zss = 0.5 <0,1> : steady state inactivation of glt
|
||||
q10tau = 3.0
|
||||
q10g = 2.0
|
||||
}
|
||||
|
||||
STATE {
|
||||
w z
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
celsius (degC) : model is defined on measurements made at room temp in Baltimore
|
||||
ik (mA/cm2)
|
||||
ek (mV)
|
||||
gklt (mho/cm2)
|
||||
winf zinf
|
||||
wtau (ms) ztau (ms)
|
||||
qg () : computed q10 for gnabar based on q10g
|
||||
q10 ()
|
||||
}
|
||||
|
||||
LOCAL wexp, zexp
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
|
||||
gklt = qg*gbar*(w^4)*z
|
||||
ik = gklt*(v - ek)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
qg = q10g^((celsius-22)/10 (degC))
|
||||
q10 = q10tau^((celsius - 22)/10 (degC)) : if you don't like room temp, it can be changed!
|
||||
rates(v)
|
||||
w = winf
|
||||
z = zinf
|
||||
}
|
||||
|
||||
DERIVATIVE states { :Computes state variables m, h, and n
|
||||
rates(v) : at the current v and dt.
|
||||
w' = (winf - w)/wtau
|
||||
z' = (zinf - z)/ztau
|
||||
}
|
||||
|
||||
|
||||
PROCEDURE rates(v (mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
|
||||
winf = (1 / (1 + exp(-(v + 48) / 6 (mV))))^0.25
|
||||
zinf = zss + ((1-zss) / (1 + exp((v + 71) / 10 (mV))))
|
||||
|
||||
wtau = (100 (ms)/ (6*exp((v+60) / 6 (mV)) + 16*exp(-(v+60) / 45 (mV)))) + 1.5
|
||||
wtau = wtau/q10
|
||||
ztau = (1000 (ms)/ (exp((v+60) / 20 (mV)) + exp(-(v+60) / 8 (mV)))) + 50
|
||||
ztau = ztau/q10
|
||||
}
|
||||
|
||||
94
cnmodel/mechanisms/kpkj.mod
Normal file
94
cnmodel/mechanisms/kpkj.mod
Normal file
@@ -0,0 +1,94 @@
|
||||
: HH TEA-sensitive Purkinje potassium current
|
||||
: Created 8/5/02 - nwg
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX kpkj
|
||||
USEION k READ ek WRITE ik
|
||||
RANGE gbar, ik, gk
|
||||
GLOBAL minf, hinf, mtau, htau
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mV) = (millivolt)
|
||||
(mA) = (milliamp)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
|
||||
gbar = .004 (mho/cm2)
|
||||
|
||||
mivh = -24 (mV)
|
||||
mik = 15.4 (mV)
|
||||
mty0 = .00012851 (s)
|
||||
mtvh1 = 100.7 (mV)
|
||||
mtk1 = 12.9 (mV)
|
||||
mtvh2 = -56.0 (mV)
|
||||
mtk2 = -23.1 (mV)
|
||||
|
||||
hiy0 = .31
|
||||
hiA = .78
|
||||
hivh = -5.802 (mV)
|
||||
hik = 11.2 (mV)
|
||||
|
||||
ek (mV)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gk (mho/cm2)
|
||||
ik (mA/cm2)
|
||||
minf
|
||||
mtau (ms)
|
||||
hinf
|
||||
htau (ms)
|
||||
}
|
||||
|
||||
STATE {
|
||||
m
|
||||
h
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
m = minf
|
||||
h = hinf
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gk = gbar * m^3 * h
|
||||
ik = gk * (v - ek)
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
m' = (minf - m) / mtau
|
||||
h' = (hinf - h) / htau
|
||||
}
|
||||
|
||||
PROCEDURE rates( Vm (mV)) {
|
||||
LOCAL v
|
||||
v = Vm + 11 (mV) : Account for Junction Potential
|
||||
minf = 1/(1+exp(-(v-mivh)/mik))
|
||||
mtau = mtau_func(v)
|
||||
hinf = hiy0 + hiA/(1+exp((v-hivh)/hik))
|
||||
htau = 1000 * htau_func(v)
|
||||
}
|
||||
|
||||
FUNCTION mtau_func (v (mV)) (ms) {
|
||||
if (v < -35 (mV)) {
|
||||
mtau_func = (1000)*(3.4225e-5+.00498*exp(-v/-28.29 (mV)))*3 (s)
|
||||
} else {
|
||||
mtau_func = (1000)*(mty0 + 1(s)/(exp((v+mtvh1)/mtk1)+exp((v+mtvh2)/mtk2)))
|
||||
}
|
||||
}
|
||||
|
||||
FUNCTION htau_func(Vm (mV)) (ms) {
|
||||
if ( Vm > 0) {
|
||||
htau_func = (1000)*(0.0012 (s) + 0.0023(s)*exp(-0.141 *Vm / 1 (mV)))
|
||||
} else {
|
||||
htau_func = (1000)*(1.2202e-05(s) + .012(s) * exp(-((Vm-(-56.3 (mV)))/49.6 (mV))^2))
|
||||
}
|
||||
}
|
||||
|
||||
67
cnmodel/mechanisms/kpkj2.mod
Normal file
67
cnmodel/mechanisms/kpkj2.mod
Normal file
@@ -0,0 +1,67 @@
|
||||
: HH Low TEA-sensitive Purkinje potassium current
|
||||
: Created 8/7/02 - nwg
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX kpkj2
|
||||
USEION k READ ek WRITE ik
|
||||
RANGE gbar, ik, gk
|
||||
GLOBAL ninf, ntau
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mV) = (millivolt)
|
||||
(mA) = (milliamp)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
gbar = .002 (mho/cm2)
|
||||
|
||||
nivh = -24 (mV)
|
||||
nik = 20.4 (mV)
|
||||
|
||||
ek (mV)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gk (mho/cm2)
|
||||
ik (mA/cm2)
|
||||
ninf (1)
|
||||
ntau (ms)
|
||||
}
|
||||
|
||||
STATE {
|
||||
n
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
n = ninf
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gk = gbar * n^4
|
||||
ik = gk * (v - ek)
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
n' = (ninf - n) / ntau
|
||||
}
|
||||
|
||||
PROCEDURE rates(Vm (mV)) {
|
||||
LOCAL v
|
||||
v = Vm + 11 : Account for Junction Potential
|
||||
ninf = 1/(1+exp(-(v-nivh)/nik))
|
||||
ntau = 1000 * ntau_func(v)
|
||||
}
|
||||
|
||||
FUNCTION ntau_func(v (mV)) (ms) {
|
||||
if (v < -20) {
|
||||
ntau_func = 0.000688 (ms) + 1 (ms)/(exp((v+64.2 (mV))/6.5 (mV))+exp((v-141.5 (mV))/-34.8 (mV)))
|
||||
} else {
|
||||
ntau_func = 0.00016 (ms) + 0.0008 (ms) *exp(-0.0267 * v /(1 (mV)))
|
||||
}
|
||||
}
|
||||
63
cnmodel/mechanisms/kpkjslow.mod
Normal file
63
cnmodel/mechanisms/kpkjslow.mod
Normal file
@@ -0,0 +1,63 @@
|
||||
: HH Slow TEA-insensitive Purkinje potassium current
|
||||
: Created 8/7/02 - nwg
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX kpkjslow
|
||||
USEION k READ ek WRITE ik
|
||||
RANGE gbar, ik, gk
|
||||
GLOBAL ninf, ntau
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mV) = (millivolt)
|
||||
(mA) = (milliamp)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
gbar = 0.004 (mho/cm2)
|
||||
|
||||
nivh = -16.5 (mV)
|
||||
nik = 18.4 (mV)
|
||||
|
||||
ek (mV)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gk (mho/cm2)
|
||||
ik (mA/cm2)
|
||||
ninf
|
||||
ntau (ms)
|
||||
}
|
||||
|
||||
STATE {
|
||||
n
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
n = ninf
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gk = gbar * n^4
|
||||
ik = gk * (v - ek)
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
n' = (ninf - n) / ntau
|
||||
}
|
||||
|
||||
PROCEDURE rates(Vm (mV)) {
|
||||
LOCAL v
|
||||
v = Vm + 11 : Account for Junction Potential
|
||||
ninf = 1/(1+exp(-(v-nivh)/nik))
|
||||
ntau = 1000 * ntau_func(v)
|
||||
}
|
||||
|
||||
FUNCTION ntau_func(v (mV)) (ms){
|
||||
ntau_func = 0.000796 (ms) + 1 (ms)/(exp((v+73.2 (mV))/11.7 (mV))+exp((v-306.7 (mV))/-74.2(mV)))
|
||||
}
|
||||
111
cnmodel/mechanisms/kpksk.mod
Normal file
111
cnmodel/mechanisms/kpksk.mod
Normal file
@@ -0,0 +1,111 @@
|
||||
TITLE Slow Ca-dependent potassium current
|
||||
:
|
||||
: Ca++ dependent K+ current IC responsible for slow AHP
|
||||
: Differential equations
|
||||
:
|
||||
: Model based on a first order kinetic scheme
|
||||
:
|
||||
: <closed> + n cai <-> <open> (alpha,beta)
|
||||
:
|
||||
: Following this model, the activation fct will be half-activated at
|
||||
: a concentration of Cai = (beta/alpha)^(1/n) = cac (parameter)
|
||||
:
|
||||
: The mod file is here written for the case n=2 (2 binding sites)
|
||||
: ---------------------------------------------
|
||||
:
|
||||
: This current models the "slow" IK[Ca] (IAHP):
|
||||
: - potassium current
|
||||
: - activated by intracellular calcium
|
||||
: - NOT voltage dependent
|
||||
:
|
||||
: A minimal value for the time constant has been added
|
||||
:
|
||||
: Ref: Destexhe et al., J. Neurophysiology 72: 803-818, 1994.
|
||||
:
|
||||
: Modifications by Arthur Houweling for use in MyFirstNEURON
|
||||
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX kpksk
|
||||
USEION k READ ek WRITE ik
|
||||
USEION ca READ cai
|
||||
RANGE m_inf, tau_m, gbar, gk
|
||||
GLOBAL beta, cac
|
||||
RANGE ik
|
||||
}
|
||||
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(molar) = (1/liter)
|
||||
(mM) = (millimolar)
|
||||
}
|
||||
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius (degC)
|
||||
dt (ms)
|
||||
ek (mV)
|
||||
cai (mM)
|
||||
gbar = .01 (mho/cm2)
|
||||
beta = 0.002 (1/ms) : backward rate constant
|
||||
cac = 0.010 (mM) : middle point of activation fct
|
||||
taumin = 0.1 (ms) : minimal value of the time cst
|
||||
}
|
||||
|
||||
|
||||
STATE {
|
||||
m
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
ik (mA/cm2)
|
||||
gk (mho/cm2)
|
||||
m_inf
|
||||
tau_m (ms)
|
||||
tadj ()
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states :METHOD euler
|
||||
gk = gbar * m*m
|
||||
ik = gk * (v - ek)
|
||||
}
|
||||
|
||||
:DERIVATIVE states {
|
||||
: evaluate_fct(v,cai)
|
||||
:
|
||||
: m'= (m_inf-m) / tau_m
|
||||
:}
|
||||
|
||||
PROCEDURE states() {
|
||||
evaluate_fct(v,cai)
|
||||
|
||||
m= m + (1-exp(-dt/tau_m))*(m_inf-m)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
:
|
||||
: activation kinetics are assumed to be at 22 deg. C
|
||||
: Q10 is assumed to be 3
|
||||
:
|
||||
tadj = 3 ^ ((celsius-22.0)/10 (degC))
|
||||
|
||||
evaluate_fct(v,cai)
|
||||
m = m_inf
|
||||
}
|
||||
|
||||
PROCEDURE evaluate_fct(v(mV),cai(mM)) { LOCAL car
|
||||
|
||||
car = (cai/cac)^2
|
||||
|
||||
m_inf = car / ( 1 + car )
|
||||
tau_m = 1 / beta / (1 + car) / tadj
|
||||
|
||||
if(tau_m < taumin) { tau_m = taumin } : min value of time cst
|
||||
}
|
||||
32
cnmodel/mechanisms/leak.mod
Normal file
32
cnmodel/mechanisms/leak.mod
Normal file
@@ -0,0 +1,32 @@
|
||||
TITLE passive (leak) membrane channel
|
||||
|
||||
UNITS {
|
||||
(mV) = (millivolt)
|
||||
(mA) = (milliamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX leak
|
||||
NONSPECIFIC_CURRENT i
|
||||
RANGE gbar, erev, i
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
gbar = 0.001 (mho/cm2)
|
||||
erev = -65 (mV)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
i (mA/cm2)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
|
||||
}
|
||||
BREAKPOINT {
|
||||
i = gbar*(v - erev)
|
||||
}
|
||||
|
||||
|
||||
379
cnmodel/mechanisms/multisite.mod
Normal file
379
cnmodel/mechanisms/multisite.mod
Normal file
@@ -0,0 +1,379 @@
|
||||
TITLE Multisite synapse
|
||||
|
||||
COMMENT
|
||||
-----------------------------------------------------------------------------
|
||||
Multi-site synapse with independent release sites. Each site operates independently
|
||||
and releases a vesicle upon presynaptic depolarization with a probability
|
||||
determined by the history of activity, using the Dittman and Regehr (1998, 2000)
|
||||
model.
|
||||
|
||||
Revised from coh2.mod, coh3.mod, and coh4.mod.
|
||||
The Dittman and Regeher (1998, 2000) release model with
|
||||
facilitation closely fits Auditory Nerve data from mouse over
|
||||
a wide range of frequencies.
|
||||
The model DOES NOT include the postsynaptic receptors or desensitization, since
|
||||
these should be treated separately (couple XMTR to an AMPA receptor model,
|
||||
such as the Trussell-Raman model)
|
||||
|
||||
Range variables:
|
||||
nZones: is the number of active zones simulated in this calyx model. Each zone
|
||||
can be connected to a separate PSD.
|
||||
F (0.4): The base release probability
|
||||
k0 (1/1.75): /s, baseline recovery rate from depletion (slow rate)
|
||||
kmax (1/0.025): /s, maximal recovery rate from depletion (fast rate)
|
||||
td (0.05) : time constant for fast calcium-dependent recovery, sec
|
||||
kd (0.7) : affinity of fast recovery process for calcium sensor
|
||||
kf (0.5) : affinity of facilitation process
|
||||
tf (0.01) : rate of facilitation process (slow) seconds
|
||||
dD (0.02): calcium that drives recovery (ca influx per AP)
|
||||
dF (0.02): calcium that drives facilitation
|
||||
|
||||
Added latency and variable delay (latstd, latency standard deviation in msec)
|
||||
around the mean spike time. 4/5/2011 pbm.
|
||||
|
||||
Version 4 uses a log-normal distribution to determine release latencies.
|
||||
The calculation is built-in instead of being passed through an array.
|
||||
The lognormal distribution describes the individual vesicle release time
|
||||
course at this synapse as measured by Isaacson and Walmsley, 1996. Note that
|
||||
they used a gamma distribution in some plots, but the lognormal distribution
|
||||
seems to fit their published data at least as well.
|
||||
The parameters of the distribution, as well as the release latency,
|
||||
are controlled by an exponential function whose parameters are initialized at
|
||||
run time.
|
||||
10/19/2011 Paul B. Manis, UNC Chapel Hill
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
DEFINE MAX_ZONES 1000 : maximum number of zones in this model
|
||||
DEFINE EVENT_N 10000 : number of entries in the Event Distribution (e.g., as sampled)
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
POINT_PROCESS MultiSiteSynapse
|
||||
RANGE F, k0, kmax, taud, kd, tauf, kf
|
||||
RANGE nZones, multisite, rseed, latency, latstd, debug
|
||||
RANGE dD, dF, XMTR, glu, CaDi, CaFi
|
||||
RANGE Fn, Dn
|
||||
RANGE TTotal
|
||||
RANGE nRequests, nReleases
|
||||
RANGE Identifier : just a number so we can report which instance is active
|
||||
RANGE tau_g, amp_g
|
||||
: Distributions for stochastic release and testing (Sept, Oct, 2011):
|
||||
RANGE EventLatencies, EventTime : returns the first EVENT_N latencies and absolute times at which they were used
|
||||
RANGE ev_index : count in the EventLatencies (in case we are "short")
|
||||
: parameters for latency shift during repetitive stimulation (Oct 19, 2011)
|
||||
RANGE Dep_Flag : Depression flag (0 to remove depression; 1 to allow DKR control of facilitation and depression)
|
||||
RANGE Lat_Flag, Lat_t0, Lat_A0, Lat_tau : Lat_Flag = 0 means fixed latency (set by "latency" above)
|
||||
: otherwise, latency = latency for t < Lat_t0
|
||||
: latency = latency + Lat_A0*(1-exp(-(t-Lat_t0)/Lat_tau))
|
||||
: parameters for lognorm distribution shift during repetitive stimulation (Oct 19, 2011)
|
||||
RANGE LN_Flag, LN_t0, LN_A0, LN_tau : LN_Flag = 0 means fixed sigma as well
|
||||
: otherwise, sigma = latstd for t < LN_t0
|
||||
: sigma = latstd + LN_A0*(1-exp(-(t-LN_t0)/LN_tau))
|
||||
|
||||
: externally assigned pointers to RNG functions
|
||||
POINTER uniform_rng : for deciding the number of active synapses when multisite==0
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(mM) = (milli/liter)
|
||||
(uM) = (micro/liter)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
dt (ms)
|
||||
amp_g = 1.0 (mM) : amplitude of transmitter pulse
|
||||
tau_g = 0.5 (ms) : duration of transmitter pulse
|
||||
dD = 0.02 (1) : calcium influx driving recovery per AP
|
||||
dF = 0.02 (1) : calcium influx driving facilitation per AP
|
||||
F = 0.5 (1) : basal facilitation
|
||||
k0 = 0.0005714(/ms) : slow recovery from depletion (1.0/1.75)
|
||||
kmax = 0.040 (/ms) : fast recovery from depletion (1/0.025)
|
||||
taud = 50.0 (ms) : time constant for fast calcium dependent recovery
|
||||
kd = 0.7 (1) : affinity of fast recovery process for calcium sensor
|
||||
tauf = 10.0 (ms) : rate of slow facilitation process
|
||||
kf = 0.5 (1) : affinity of slow facilitation process
|
||||
: taus = 1 (ms) : defined by DKR but not used here
|
||||
: ks = 0.5 (1)
|
||||
: glu = 1 (mM)
|
||||
rseed (1) : random number generator seed (for SCOP module)
|
||||
latency = 0.0 (ms)
|
||||
latstd = 0.0 (ms)
|
||||
|
||||
: Time course of latency shift in release during repetitive stimulation
|
||||
Lat_Flag = 0 (1) : 0 means fixed latency, 1 means lognormal distribution
|
||||
Lat_t0 = 0.0 (ms) : minimum time since simulation start before changes in latency are calculated
|
||||
Lat_A0 = 0.0 (ms) : size of latency shift from t0 to infinity
|
||||
Lat_tau = 100.0 (ms) : rate of change of latency shift (from fit of a+b(1-exp(-t/tau)))
|
||||
: Statistical control of log-normal release shape over time during repetitive stimulation
|
||||
LN_Flag = 0 (1) : 0 means fixed values for all time
|
||||
LN_t0 = 0.0 (ms) : : minimum time since simulation start before changes in distribution are calculated
|
||||
LN_A0 = 0.0 (ms) : size of change in sigma from t0 to infinity
|
||||
LN_tau = 100.0 (ms) : rate of change of sigma over time (from fit of a+b*(1-exp(-t/tau)))
|
||||
|
||||
: control flags - if debug is 1, show all, if 2, just "some"
|
||||
debug = 0
|
||||
Identifier = 0
|
||||
Dep_Flag = 1 (1) : 1 means use depression calculations; 0 means always set release probability to F
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
: Externally set assignments
|
||||
nZones (1) : number of zones in the model
|
||||
multisite (1) : whether zones are modeled individually (1) or as a single, variable-amplitude zone (0)
|
||||
nRequests (1)
|
||||
nReleases (1)
|
||||
EventLatencies[EVENT_N] (0)
|
||||
EventTime[EVENT_N] (0)
|
||||
tRelease[MAX_ZONES] (ms) : time of last release
|
||||
|
||||
: Internal calculated variables
|
||||
Fn (1)
|
||||
Dn (1)
|
||||
CaDn (1)
|
||||
CaFn (1)
|
||||
CaDi (1)
|
||||
CaFi (1)
|
||||
eta (1)
|
||||
tSpike (ms) : time of last spike
|
||||
tstep(ms)
|
||||
TTotal(0)
|
||||
tspike (ms)
|
||||
latzone (ms)
|
||||
vesicleLatency (ms)
|
||||
sigma (ms)
|
||||
gindex (0)
|
||||
ev_index (0)
|
||||
scrand (0)
|
||||
|
||||
uniform_rng
|
||||
}
|
||||
|
||||
: Function prototypes needed to assign RNG function pointers
|
||||
VERBATIM
|
||||
double nrn_random_pick(void* r);
|
||||
void* nrn_random_arg(int argpos);
|
||||
ENDVERBATIM
|
||||
|
||||
: Return a pick from uniform distribution.
|
||||
: (distribution parameters are set externally)
|
||||
FUNCTION rand_uniform() {
|
||||
VERBATIM
|
||||
_lrand_uniform = nrn_random_pick(_p_uniform_rng);
|
||||
ENDVERBATIM
|
||||
}
|
||||
|
||||
: Function to allow RNG to be externally set
|
||||
PROCEDURE setUniformRNG() {
|
||||
VERBATIM
|
||||
{
|
||||
void** pv = (void**)(&_p_uniform_rng);
|
||||
*pv = nrn_random_arg(1);
|
||||
}
|
||||
ENDVERBATIM
|
||||
}
|
||||
|
||||
|
||||
STATE {
|
||||
XMTR[MAX_ZONES] (mM) : per-zone neurotransmitter concentration
|
||||
N_ACTIVE[MAX_ZONES] (1) : number of zones actively releasing
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
: VERBATIM
|
||||
: fprintf(stdout, "MultiSiteSynapse: Calyx #%d Initialized with Random Seed: %d\n", (int)Identifier, (int)rseed);
|
||||
: ENDVERBATIM
|
||||
|
||||
TTotal = 0
|
||||
nRequests = 0
|
||||
nReleases = 0
|
||||
set_seed(rseed)
|
||||
tSpike = -1e9
|
||||
latzone = 0.0
|
||||
sigma = 0.0
|
||||
vesicleLatency = 0.0
|
||||
gindex = 0
|
||||
ev_index = 0
|
||||
scrand = 0.0
|
||||
CaDi = 1.0
|
||||
CaFi = 0.0
|
||||
CaDn = 1.0
|
||||
CaFn = 0.0
|
||||
Fn = F
|
||||
Dn = 1.0
|
||||
FROM i = 0 TO (nZones-1) {
|
||||
XMTR[i] = 0
|
||||
N_ACTIVE[i] = 1
|
||||
tRelease[i] = tSpike
|
||||
}
|
||||
update_dkr(t-tSpike)
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE release
|
||||
}
|
||||
|
||||
LOCAL tz, n_relzones, amp
|
||||
PROCEDURE release() {
|
||||
: Once released, the transmitter packet has a defined smooth time course in the "cleft"
|
||||
: represented by the product of rising and falling exponentials.
|
||||
: update glutamate in cleft
|
||||
if (multisite == 1) {
|
||||
: Update glutamate waveform for each active release zone
|
||||
n_relzones = nZones
|
||||
}
|
||||
else {
|
||||
: Update aggregate glutamate waveform for only the first release zone
|
||||
n_relzones = 1
|
||||
}
|
||||
|
||||
FROM i = 0 TO (nZones-1) { : for each zone in the synapse
|
||||
if (t >= tRelease[i] && t < tRelease[i] + 5.0 * tau_g) {
|
||||
tz = t - tRelease[i] : time since onset of release
|
||||
: calculate glutamate waveform (Xie & Manis 2013 Supplementary Eq. 1)
|
||||
XMTR[i] = amp_g * (1.0-exp(-tz/(tau_g/3.0))) * exp(-(tz-(tau_g/3.0))/tau_g)
|
||||
}
|
||||
else {
|
||||
XMTR[i] = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PROCEDURE update_dkr(tstep (ms)) {
|
||||
: update the facilitation and depletion variables
|
||||
: from the Dittman-Regehr model.
|
||||
: Updates are done with each new presynaptic AP event.
|
||||
if(tstep > 0.0) {
|
||||
CaDi = CaDi + dD
|
||||
CaFi = CaFi + dF
|
||||
CaDn = CaDi * exp (-tstep/taud)
|
||||
CaFn = CaFi * exp (-tstep/tauf)
|
||||
eta = (kd/CaDi + 1.0)/(kd/CaDi + exp(-tstep/taud))
|
||||
eta = eta^(-(kmax-k0)*taud)
|
||||
Dn = 1.0-(1.0-(1.0-Fn)*Dn)*exp(-k0*tstep)*eta
|
||||
Fn = F + (1.0-F)/(1.0+kf/CaFn)
|
||||
CaDi = CaDn
|
||||
CaFi = CaFn
|
||||
}
|
||||
if (Dep_Flag == 0) { : no depression
|
||||
Dn = 1.0 : set to 1
|
||||
Fn = F : set to initial value to set release probability constant
|
||||
}
|
||||
: VERBATIM
|
||||
: if (debug >= 2 ){
|
||||
: fprintf(stdout, "update start t = %f ts=%f: F=%7.2f CaDi = %g CaFi = %g\n", \
|
||||
: t, tstep, F, CaDi, CaFi);
|
||||
: fprintf(stdout, " vars: taud=%g: tauf=%g kd = %g kmax= %g\n", taud, tauf, kd, kmax);
|
||||
: fprintf(stdout, " CaDi = %g CaFi = %g\n", CaDi, CaFi);
|
||||
: fprintf(stdout, " CaDn = %g CaFn = %g\n", CaDn, CaFn);
|
||||
: fprintf(stdout, " eta: %g\n", eta);
|
||||
: fprintf(stdout, " Fn=%7.2f Dn: %7.2f CaDi = %g CaFi = %g,\n", \
|
||||
: Fn, Dn, CaDi, CaFi);
|
||||
: }
|
||||
: ENDVERBATIM
|
||||
}
|
||||
|
||||
|
||||
NET_RECEIVE(weight) {
|
||||
: A spike has been received; process synaptic release
|
||||
|
||||
: First, update DKR state to determine new release probability
|
||||
update_dkr(t - tSpike)
|
||||
tSpike = t : save the time of spike
|
||||
|
||||
TTotal = 0 : reset total transmitter from this calyx for each release
|
||||
nRequests = nRequests + 1 : count the number of inputs that we received
|
||||
|
||||
: Next, process vesicle release using new release probability
|
||||
if (multisite == 1) {
|
||||
release_multisite()
|
||||
}
|
||||
else {
|
||||
release_singlesite()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PROCEDURE release_multisite() {
|
||||
: Vesicle release procedure for multi-site terminal.
|
||||
: Loops over multiple zones using release probability Fn*Dn to decide whether
|
||||
: each site will release, and selecting an appropriate release latency.
|
||||
|
||||
: The synapse can release one vesicle per AP per zone, with a probability 0<p<1.
|
||||
: The probability, p, is defined by the time evolution of a Dittman-Regher model
|
||||
: of release, whose parameters are set during initialization.
|
||||
: The vesicle can be released over a variable time interval defined by a lognormal
|
||||
: distribution, plus a fixed latency.
|
||||
|
||||
FROM i = 0 TO (nZones-1) { : for each zone in the synapse
|
||||
if(tRelease[i] < t) {
|
||||
scrand = scop_random()
|
||||
: look to make release if we have not already (single vesicle per zone per spike)
|
||||
: check for release and release probability - assume infinite supply of vesicles
|
||||
if (scrand < Fn*Dn) {
|
||||
nReleases = nReleases + 1 : count number of releases since inception
|
||||
TTotal = TTotal + 1 : count total releases this trial.
|
||||
|
||||
: Compute the median latency for this vesicle.
|
||||
if (Lat_Flag == 0 || t < Lat_t0) {
|
||||
vesicleLatency = latency : use a fixed value
|
||||
}
|
||||
else {
|
||||
vesicleLatency = latency + Lat_A0*(1-exp(-(t-Lat_t0)/Lat_tau)) : latency rises during train
|
||||
}
|
||||
: Now compute distribution around that latency
|
||||
: if LN_Flag is 1, we adjust the sigma values over time, otherwise we just use a fixed value.
|
||||
: The following math applies:
|
||||
: lognormal dist = exp(X), where X = gaussian(mu, sigma).
|
||||
: The median of the lognormal dist. is e^mu; Note that if mu is 0, then the median is 1.0
|
||||
: The mode of the lognormal dist is e^(u-sigma^2).
|
||||
: Note that normrand is a SCoP function, see http://cns.iaf.cnrs-gif.fr/files/scopman.html
|
||||
if (LN_Flag == 0 || t < LN_t0) { : use fixed sigma in lognormal distribution for all time.
|
||||
if (latstd > 0.0) {
|
||||
latzone = normrand(0.0, latstd) : set a latency for the zone with one draw from the distribution
|
||||
latzone = exp(latzone) - 1.0 + vesicleLatency : the latency should not be too short....
|
||||
}
|
||||
else {
|
||||
latzone = vesicleLatency : fixed value
|
||||
}
|
||||
}
|
||||
else {
|
||||
sigma = latstd + LN_A0*(1-exp(-(t-LN_t0)/LN_tau)) : time-dependent std shift
|
||||
latzone = normrand(0.0, sigma)
|
||||
latzone = exp(latzone)-1.0 + vesicleLatency
|
||||
}
|
||||
if (latzone < 0.0) { : this is to be safe... must have causality.
|
||||
latzone = 0.0
|
||||
}
|
||||
if (ev_index < EVENT_N) { : save event distribution list for verification
|
||||
EventLatencies[ev_index] = latzone
|
||||
EventTime[ev_index] = t
|
||||
ev_index = ev_index + 1
|
||||
}
|
||||
|
||||
: release time for this event
|
||||
tRelease[i] = t + latzone
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PROCEDURE release_singlesite() {
|
||||
LOCAL pr
|
||||
tRelease[0] = t
|
||||
pr = Fn * Dn
|
||||
FROM i = 0 TO (nZones-1) {
|
||||
if (rand_uniform() < pr) {
|
||||
TTotal = TTotal + 1 : count total releases this trial.
|
||||
}
|
||||
}
|
||||
: Tell PSD to multiply its final current by the number of active zones
|
||||
N_ACTIVE[0] = TTotal
|
||||
printf("Release: %f\n", TTotal)
|
||||
}
|
||||
100
cnmodel/mechanisms/na.mod
Normal file
100
cnmodel/mechanisms/na.mod
Normal file
@@ -0,0 +1,100 @@
|
||||
TITLE na.mod A sodium channel for cochlear nucleus neurons
|
||||
|
||||
COMMENT
|
||||
|
||||
NEURON implementation of Jason Rothman's measurements of VCN conductances.
|
||||
|
||||
This file implements the average brain sodium current used in the Rothman model.
|
||||
In the absence of direct measurements in the VCN, this is a fair assumption.
|
||||
The model differs from the one used in Rothman et al, (1993) in that the steep
|
||||
voltage dependence of recovery from inactivation in that model is missing. This
|
||||
may affect the refractory period. To use the other model, use najsr.mod instead.
|
||||
|
||||
Original implementation by Paul B. Manis, April (JHU) and Sept, (UNC)1999.
|
||||
|
||||
File split implementaiton, April 1, 2004.
|
||||
|
||||
Contact: pmanis@med.unc.edu
|
||||
|
||||
Modifed implementation; includes all temperature scaling, passes modlunit
|
||||
7/10/2014 pbm
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX na
|
||||
USEION na READ ena WRITE ina
|
||||
RANGE gbar, gna, ina
|
||||
GLOBAL hinf, minf, htau, mtau
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
dt (ms)
|
||||
ena (mV)
|
||||
gbar = 0.07958 (mho/cm2) <0,1e9>
|
||||
q10tau = 3.0
|
||||
q10g = 2.0
|
||||
|
||||
}
|
||||
|
||||
STATE {
|
||||
m h
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
celsius (degC) : model is defined on measurements made at room temp in Baltimore
|
||||
ina (mA/cm2)
|
||||
gna (mho/cm2)
|
||||
minf hinf
|
||||
mtau (ms) htau (ms)
|
||||
qg () : computed q10 for gnabar based on q10g
|
||||
q10 ()
|
||||
|
||||
}
|
||||
|
||||
LOCAL mexp, hexp
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
|
||||
gna = qg*gbar*(m^3)*h
|
||||
ina = gna*(v - ena)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
qg = q10g^((celsius-22)/10 (degC))
|
||||
q10 = q10tau^((celsius - 22)/10 (degC)) : if you don't like room temp, it can be changed!
|
||||
rates(v)
|
||||
m = minf
|
||||
h = hinf
|
||||
}
|
||||
|
||||
DERIVATIVE states { :Computes state variables m, h, and n
|
||||
rates(v) : at the current v and dt.
|
||||
m' = (minf - m)/mtau
|
||||
h' = (hinf - h)/htau
|
||||
}
|
||||
|
||||
PROCEDURE rates(v (mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
|
||||
: average sodium channel
|
||||
minf = 1 / (1+exp(-(v + 38) / 7 (mV)))
|
||||
hinf = 1 / (1+exp((v + 65) / 6 (mV)))
|
||||
|
||||
mtau = (10 (ms)/ (5*exp((v+60) / 18 (mV)) + 36*exp(-(v+60) / 25 (mV)))) + 0.04
|
||||
mtau = mtau/q10
|
||||
htau = (100 (ms)/ (7*exp((v+60) / 11 (mV)) + 10*exp(-(v+60) / 25 (mV)))) + 0.6
|
||||
htau = htau/q10
|
||||
}
|
||||
|
||||
103
cnmodel/mechanisms/nacn.mod
Executable file
103
cnmodel/mechanisms/nacn.mod
Executable file
@@ -0,0 +1,103 @@
|
||||
TITLE nacn.mod A sodium conductance for a ventral cochlear nucleus neuron model
|
||||
|
||||
COMMENT
|
||||
|
||||
NEURON implementation of Jason Rothman's measurements of VCN conductances.
|
||||
|
||||
This file implements the average brain sodium current used in the Rothman model.
|
||||
In the absence of direct measurements in the VCN, this is a fair assumption.
|
||||
The model differs from the one used in Rothman et al, (1993) in that the steep
|
||||
voltage dependence of recovery from inactivation in that model is missing. This
|
||||
may affect the refractory period. To use the other model, use najsr.mod instead.
|
||||
|
||||
Original implementation by Paul B. Manis, April (JHU) and Sept, (UNC)1999.
|
||||
|
||||
File split implementaiton, April 1, 2004.
|
||||
|
||||
Does not pass modlunit.
|
||||
Should work at 22C and scales by Rothman and Manis, 2003c for temperature
|
||||
|
||||
Contact: pmanis@med.unc.edu
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX nacn
|
||||
USEION na READ ena WRITE ina
|
||||
RANGE gbar, gna, ina
|
||||
GLOBAL hinf, minf, htau, mtau
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius (degC) : 22 (degC) model is defined on measurements made at room temp in Baltimore
|
||||
dt (ms)
|
||||
ena (mV)
|
||||
gbar = 0.07958 (mho/cm2) <0,1e9>
|
||||
q10tau = 3.0 : q10 for rates
|
||||
}
|
||||
|
||||
STATE {
|
||||
m h
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
ina (mA/cm2)
|
||||
gna (mho/cm2)
|
||||
minf hinf
|
||||
mtau (ms) htau (ms)
|
||||
q10 ()
|
||||
|
||||
}
|
||||
|
||||
LOCAL mexp, hexp
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gna = gbar*(m^3)*h
|
||||
ina = gna*(v - ena)
|
||||
}
|
||||
|
||||
UNITSOFF
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
m = minf
|
||||
h = hinf
|
||||
}
|
||||
|
||||
DERIVATIVE states { :Computes state variables m, h, and n
|
||||
rates(v) : at the current v and dt.
|
||||
m' = (minf - m)/mtau : m = m + mexp*(minf-m)
|
||||
h' = (hinf - h)/htau : h = h + hexp*(hinf-h)
|
||||
|
||||
}
|
||||
|
||||
LOCAL qt
|
||||
|
||||
PROCEDURE rates(v) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
|
||||
q10 = q10tau^((celsius - 22)/10) : if you don't like room temp, it can be changed!
|
||||
|
||||
: average sodium channel
|
||||
minf = 1 / (1+exp(-(v + 38) / 7))
|
||||
hinf = 1 / (1+exp((v + 65) / 6))
|
||||
|
||||
mtau = (10 / (5*exp((v+60) / 18) + 36*exp(-(v+60) / 25))) + 0.04
|
||||
mtau = mtau/q10
|
||||
htau = (100 / (7*exp((v+60) / 11) + 10*exp(-(v+60) / 25))) + 0.6
|
||||
htau = htau/q10
|
||||
}
|
||||
|
||||
|
||||
UNITSON
|
||||
138
cnmodel/mechanisms/nacncoop.mod
Normal file
138
cnmodel/mechanisms/nacncoop.mod
Normal file
@@ -0,0 +1,138 @@
|
||||
TITLE nacn.mod A sodium conductance for a ventral cochlear nucleus neuron model
|
||||
|
||||
COMMENT
|
||||
|
||||
NEURON implementation of Jason Rothman's measurements of VCN conductances.
|
||||
|
||||
This file implements a modified version of the average brain sodium current
|
||||
used in the Rothman and Manis 2003 models.
|
||||
|
||||
The model differs from the one used in Rothman et al, (1993) in that the steep
|
||||
voltage dependence of recovery from inactivation in that model is missing. This
|
||||
may affect the refractory period. To use the other model, use jsrnaf.mod instead.
|
||||
|
||||
Original implementation by Paul B. Manis, April 1999 (JHU) and Sept 1999 (UNC-CH).
|
||||
|
||||
File split implementation, April 1, 2004.
|
||||
|
||||
|
||||
Version nacncoop implements a cooperative sodium channel model built on the kinetics
|
||||
of the original nacn model (R&M2003c). The motivation is to make a sodium channel with
|
||||
faster activation kinetics, by introducing cooperativity between a subset of channels.
|
||||
The model is based on concepts and implementation similar to Oz et al.
|
||||
J.Comp. Neurosci. 39: 63, 2015, and Huang et al., PloSOne 7:e37729, 2012.
|
||||
The cooperative channels are modeled with the same kinetics as the non-cooperative
|
||||
channels, but are treated as a separate subset (fraction: p). The cooperativity is
|
||||
introduced by shifting the voltage "seen" by the channels by KJ*m^3*h, which moves
|
||||
the channels to a faster regime (essentially, they experience a depolarized membrane
|
||||
potential that depends on their current gating state, relative to the main population
|
||||
of channels).
|
||||
|
||||
A subpopulation of Na channels (p [0..1]) experiences a small voltage-dependent shift
|
||||
in the gating kinetics. The shift is determined by KJ
|
||||
|
||||
This version does not have all the temperature scaling. Does not pass modlunit.
|
||||
Should work at 22C, appears to work at other temperatures ok.
|
||||
|
||||
Contact: pmanis@med.unc.edu
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
(nA) = (nanoamp)
|
||||
}
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX nacncoop
|
||||
USEION na READ ena WRITE ina
|
||||
RANGE gbar, gna, ina, p, KJ
|
||||
RANGE vsna : voltage shift parameter
|
||||
GLOBAL hinf, minf, htau, mtau, hinf2, minf2, htau2, mtau2
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius (degC) : 22 (degC) model is defined at room temp in Baltimore
|
||||
dt (ms)
|
||||
ena (mV)
|
||||
gbar = 0.07958 (mho/cm2) <0,1e9>
|
||||
q10 = 3.0 : q10 for rates
|
||||
p = 0.0 (): fraction of cooperative channels (0-1)
|
||||
KJ = 0 (mV) : coupling strength between cooperative channels (0-1000mV is usable range)
|
||||
: setting either KJ = 0 or p = 0 will remove cooperativity.
|
||||
vsna = 0 (mV)
|
||||
}
|
||||
|
||||
STATE {
|
||||
m h m2 h2
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
ina (mA/cm2)
|
||||
gna (mho/cm2)
|
||||
vNa (mV) : shifted V for cooperative behavior
|
||||
minf hinf minf2 hinf2
|
||||
mtau (ms) htau (ms) mtau2 (ms) htau2 (ms)
|
||||
|
||||
}
|
||||
|
||||
LOCAL mexp, hexp, mexp2, hexp2
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
|
||||
gna = gbar*(p*(m2^3*h2) + (1.-p)*(m^3)*h)
|
||||
ina = gna*(v - ena)
|
||||
}
|
||||
|
||||
UNITSOFF
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
m = minf
|
||||
h = hinf
|
||||
m2 = minf2
|
||||
h2 = hinf2
|
||||
vNa = v + vsna + KJ*m^3*h
|
||||
}
|
||||
|
||||
DERIVATIVE states { :Computes state variables m, h, and n
|
||||
rates(v) : at the current v and dt.
|
||||
m' = (minf - m)/mtau
|
||||
h' = (hinf - h)/htau
|
||||
m2' = (minf2 - m2)/mtau2
|
||||
h2' = (hinf2 - h2)/htau2
|
||||
vNa = v + vsna + KJ*m^3*h : note addition of vsna shift here so that we do not add it in rates
|
||||
}
|
||||
|
||||
LOCAL qt
|
||||
|
||||
PROCEDURE rates(v) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
|
||||
qt = q10^((celsius - 22)/10) : if you don't like room temp, it can be changed!
|
||||
|
||||
: average sodium channel
|
||||
minf = 1 / (1+exp(-(v + 38 + vsna) / 7))
|
||||
hinf = 1 / (1+exp((v + 65 + vsna) / 6))
|
||||
mtau = (10 / (5*exp((v + 60 + vsna) / 18) + 36*exp(-(v + 60+vsna) / 25))) + 0.04
|
||||
mtau = mtau/qt
|
||||
htau = (100 / (7*exp((v + 60 + vsna) / 11) + 10*exp(-(v + 60 + vsna) / 25))) + 0.6
|
||||
htau = htau/qt
|
||||
|
||||
: cooperative group of channels
|
||||
minf2 = 1 / (1+exp(-(vNa + 38) / 7))
|
||||
hinf2 = 1 / (1+exp((vNa + 65) / 6))
|
||||
mtau2 = (10 / (5*exp((vNa+60) / 18) + 36*exp(-(vNa+60) / 25))) + 0.04
|
||||
mtau2 = mtau2/qt
|
||||
htau2 = (100 / (7*exp((vNa+60) / 11) + 10*exp(-(vNa+60) / 25))) + 0.6
|
||||
htau2 = htau2/qt
|
||||
|
||||
}
|
||||
|
||||
UNITSON
|
||||
130
cnmodel/mechanisms/nap.mod
Executable file
130
cnmodel/mechanisms/nap.mod
Executable file
@@ -0,0 +1,130 @@
|
||||
TITLE nap.mod Persistent sodium conductance
|
||||
|
||||
COMMENT
|
||||
|
||||
|
||||
Persistent sodium current from deSchutter and Bower, J. Neurophys.
|
||||
71:375, 1994.
|
||||
|
||||
|
||||
2/10/02, 10/10/2014. P. Manis.
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
}
|
||||
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX nap
|
||||
USEION na READ ena WRITE ina
|
||||
|
||||
RANGE nap_inf, nap_tau, napi_inf, napi_tau
|
||||
RANGE gbar, gnap
|
||||
RANGE nap_A, nap_B, nap_C, nap_D, nap_E, nap_F, nap_G, nap_H
|
||||
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius (degC)
|
||||
dt (ms)
|
||||
ena (mV) : = 50.0 (mV)
|
||||
gbar = 0.00001 (mho/cm2) <0,1e9>
|
||||
q10tau = 3.0
|
||||
q10g = 2.0
|
||||
|
||||
nap_shift = 0 (mV)
|
||||
|
||||
nap_A = 200 (/ms): parameters from Bowers et al.
|
||||
nap_B = 1
|
||||
nap_C = -18 (mV)
|
||||
nap_D = -16 (mV)
|
||||
nap_E = 25 (/ms)
|
||||
nap_F = 1
|
||||
nap_G = 58 (mV)
|
||||
nap_H = 8 (mV)
|
||||
}
|
||||
|
||||
STATE {
|
||||
nap napi
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gnap (mho/cm2)
|
||||
ina (mA/cm2)
|
||||
nap_inf
|
||||
nap_tau (ms)
|
||||
nap_tau1 (/ms)
|
||||
nap_tau2 (/ms)
|
||||
napi_inf
|
||||
napi_tau (ms)
|
||||
napi_tau1 (/ms)
|
||||
napi_tau2 (/ms)
|
||||
qg () : computed q10 for gnabar based on q10g
|
||||
q10 ()
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gnap = gbar*nap*nap*nap*napi
|
||||
ina = gnap*(v-ena)
|
||||
}
|
||||
|
||||
|
||||
INITIAL {
|
||||
qg = q10g^((celsius-22)/10 (degC))
|
||||
q10 = q10tau^((celsius - 22)/10 (degC)) : if you don't like room temp, it can be changed!
|
||||
rates(v)
|
||||
nap = nap_inf
|
||||
napi = napi_inf
|
||||
}
|
||||
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
nap' = (nap_inf - nap) / nap_tau
|
||||
napi' = (napi_inf - napi) / napi_tau
|
||||
}
|
||||
|
||||
|
||||
PROCEDURE rates(v (mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
LOCAL x
|
||||
: "nap" persistent sodium system
|
||||
nap_inf = na_p(v + nap_shift)
|
||||
nap_tau1 = nap_A/(nap_B + exp((v + nap_shift + nap_C)/nap_D))
|
||||
nap_tau2 = nap_E/(nap_F + exp((v + nap_shift + nap_G)/nap_H))
|
||||
nap_tau = 1./(nap_tau1 + nap_tau2)
|
||||
|
||||
:nap_tau = na_ptau(v + nap_shift)
|
||||
|
||||
: "nap" persistent sodium system - inactivation...
|
||||
napi_inf = na_pi(v + nap_shift)
|
||||
napi_tau1 = (1 (/ms)) /(0.06435/(1+exp((v + nap_shift + 73.26415)/3.71928 (mV))))
|
||||
napi_tau2 = (0.13496 (/ms))/(1 +exp((v + nap_shift + 10.27853)/(-9.09334 (mV))))
|
||||
napi_tau = 1 /(napi_tau1 + napi_tau2)
|
||||
}
|
||||
|
||||
LOCAL p
|
||||
|
||||
FUNCTION na_p(v (mV)) { : persistent sodium activation
|
||||
: Bowers
|
||||
p = nap_A/(nap_B + exp((v + nap_shift + nap_C)/nap_D))
|
||||
na_p = p/(p+nap_E/(nap_F + exp((v + nap_shift + nap_G)/nap_H)))
|
||||
}
|
||||
|
||||
|
||||
FUNCTION na_pi(x (mV)) { : persistent sodium inactivation
|
||||
: Bowers
|
||||
na_pi = 0.06435/(1+exp((x+73.26415)/3.71928 (mV)))
|
||||
na_pi = na_pi/(na_pi + (0.13496/(1+exp((v+10.27853)/(-9.09334 (mV))))))
|
||||
}
|
||||
|
||||
|
||||
137
cnmodel/mechanisms/napyr.mod
Normal file
137
cnmodel/mechanisms/napyr.mod
Normal file
@@ -0,0 +1,137 @@
|
||||
TITLE pyrna.mod DCN pyramidal cell model sodium channel
|
||||
|
||||
COMMENT
|
||||
|
||||
Revised version of DCN Pyramidal cell model sodium channel
|
||||
|
||||
This model implements part of a Dorsal Cochlear Nucleus Pyramidal point cell
|
||||
based on kinetic data from Kanold and Manis (1999) and Kanold's dissertation (1999)
|
||||
|
||||
-- 15 Jan 1999 P. Manis
|
||||
|
||||
This mechanism is the fast sodium channel portion of the model.
|
||||
|
||||
|
||||
Orignal: 2/10/02. P. Manis.
|
||||
|
||||
Extraced from Pyr.mod, 7/24/2014.
|
||||
|
||||
ENDCOMMENT
|
||||
|
||||
|
||||
UNITS {
|
||||
(mA) = (milliamp)
|
||||
(mV) = (millivolt)
|
||||
}
|
||||
|
||||
|
||||
NEURON {
|
||||
THREADSAFE
|
||||
SUFFIX napyr
|
||||
USEION na READ ena WRITE ina
|
||||
RANGE gna, minf, hinf, ninf, gbar : sodium channels and delayed rectifier
|
||||
RANGE mtau, htau, ntau : time constants for sodium channels and delayed rectifier
|
||||
}
|
||||
|
||||
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
||||
|
||||
PARAMETER {
|
||||
v (mV)
|
||||
celsius (degC)
|
||||
dt (ms)
|
||||
ek (mV) : = -81.5 (mV)
|
||||
ena (mV) : = 50.0 (mV)
|
||||
gbar = 0.02857 (mho/cm2) <0,1e9>
|
||||
mtau0 = 0.05 (ms) <0.01,100>
|
||||
htau0 = 0.5 (ms) <0.1,100>
|
||||
ntau = 0.5 (ms) <0.1,100>
|
||||
}
|
||||
|
||||
STATE {
|
||||
m h
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
gna (mho/cm2)
|
||||
ina (mA/cm2)
|
||||
minf hinf mtau htau
|
||||
}
|
||||
|
||||
LOCAL mexp, hexp
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE states METHOD cnexp
|
||||
gna = gbar*m*m*h
|
||||
ina = gna*(v - ena)
|
||||
}
|
||||
|
||||
UNITSOFF
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
m = minf
|
||||
h = hinf
|
||||
}
|
||||
|
||||
DERIVATIVE states {
|
||||
rates(v)
|
||||
m' = (minf - m) / mtau
|
||||
h' = (hinf - h) / htau
|
||||
}
|
||||
|
||||
LOCAL q10
|
||||
|
||||
|
||||
PROCEDURE rates(v(mV)) { :Computes rate and other constants at current v.
|
||||
:Call once from HOC to initialize inf at resting v.
|
||||
LOCAL alpha, beta, sum
|
||||
TABLE minf, mtau, hinf, htau DEPEND celsius FROM -200 TO 100 WITH 400
|
||||
|
||||
UNITSOFF
|
||||
q10 = 3^((celsius - 22)/10)
|
||||
|
||||
: "m" sodium activation system
|
||||
minf = na_m(v)
|
||||
mtau = na_mt(v)
|
||||
|
||||
: "h" sodium inactivation system
|
||||
hinf = na_h(v)
|
||||
htau = na_ht(v)
|
||||
|
||||
}
|
||||
|
||||
: Make these as functions so we can view them from hoc, although this
|
||||
: may slow things down a bit
|
||||
|
||||
FUNCTION na_m(x) { : sodium activation
|
||||
na_m = 1/(1+exp(-(x+38)/3.0)) : POK version
|
||||
: na_m = alphbet(x,35,0,5,-10) :de Schutter (doesn't work well in our version)
|
||||
: na_m = na_m/(na_m + alphbet(x,7,0,65,20))
|
||||
}
|
||||
|
||||
FUNCTION na_mt(x) { : sodium activation with taus
|
||||
na_mt = mtau0 : flat time constants
|
||||
: na_mt = alphbet(x,35,0,5,-10)
|
||||
: na_mt = 1/(na_mt + alphbet(x,7,0,65,20))
|
||||
}
|
||||
|
||||
FUNCTION na_h(x) { : sodium inactivation
|
||||
na_h = 1/(1+exp((x+43)/3.0)) : flat time constants (POK version)
|
||||
: na_h = alphbet(x,0.225,1,80,10)
|
||||
: na_h = na_h/(na_h + alphbet(x,7.5,0,-3,-18))
|
||||
}
|
||||
|
||||
FUNCTION na_ht(x) { : sodium inactivation tau
|
||||
na_ht = htau0 : POK: flat time constants
|
||||
: na_ht = alphbet(x,0.225,1,80,10) : de Schutter version (doesn't work well with other stuff)
|
||||
: na_ht = 1/(na_ht + alphbet(x,7.5,0,-3,-18))
|
||||
}
|
||||
|
||||
|
||||
FUNCTION alphbet(x,A,B,C,D) { : alpha/beta general functions for
|
||||
: transcrbing GENESIS models
|
||||
alphbet = A/(B+exp((x+C)/D))
|
||||
}
|
||||
|
||||
UNITSON
|
||||
|
||||
17
cnmodel/mechanisms/pkjlk.mod
Normal file
17
cnmodel/mechanisms/pkjlk.mod
Normal file
@@ -0,0 +1,17 @@
|
||||
TITLE Purkinje Leak Current
|
||||
|
||||
: A passive purkinje cell leak current
|
||||
NEURON {
|
||||
SUFFIX lkpkj
|
||||
NONSPECIFIC_CURRENT i
|
||||
RANGE i, e, gbar
|
||||
}
|
||||
PARAMETER {
|
||||
gbar = 5e-5 (siemens/cm2) < 0, 1e9 >
|
||||
e = -60.5 (millivolt)
|
||||
}
|
||||
ASSIGNED {
|
||||
i (milliamp/cm2)
|
||||
v (millivolt)
|
||||
}
|
||||
BREAKPOINT { i = gbar*(v - e) }
|
||||
196
cnmodel/mechanisms/rsg.mod
Normal file
196
cnmodel/mechanisms/rsg.mod
Normal file
@@ -0,0 +1,196 @@
|
||||
TITLE Rsg sodium channel
|
||||
: Resurgent sodium channel (with blocking particle)
|
||||
: with updated kinetic parameters from Raman and Bean
|
||||
|
||||
NEURON {
|
||||
SUFFIX naRsg
|
||||
USEION na READ ena WRITE ina
|
||||
RANGE gna, gbar
|
||||
}
|
||||
|
||||
UNITS {
|
||||
(mV) = (millivolt)
|
||||
(S) = (siemens)
|
||||
}
|
||||
|
||||
PARAMETER {
|
||||
gbar = .015 (S/cm2)
|
||||
|
||||
: kinetic parameters
|
||||
Con = 0.005 (/ms) : closed -> inactivated transitions
|
||||
Coff = 0.5 (/ms) : inactivated -> closed transitions
|
||||
Oon = .75 (/ms) : open -> Ineg transition
|
||||
Ooff = 0.005 (/ms) : Ineg -> open transition
|
||||
alpha = 150 (/ms) : activation
|
||||
beta = 3 (/ms) : deactivation
|
||||
gamma = 150 (/ms) : opening
|
||||
delta = 40 (/ms) : closing, greater than BEAN/KUO = 0.2
|
||||
epsilon = 1.75 (/ms) : open -> Iplus for tau = 0.3 ms at +30 with x5
|
||||
zeta = 0.03 (/ms) : Iplus -> open for tau = 25 ms at -30 with x6
|
||||
|
||||
: Vdep
|
||||
x1 = 20 (mV) : Vdep of activation (alpha)
|
||||
x2 = -20 (mV) : Vdep of deactivation (beta)
|
||||
x3 = 1e12 (mV) : Vdep of opening (gamma)
|
||||
x4 = -1e12 (mV) : Vdep of closing (delta)
|
||||
x5 = 1e12 (mV) : Vdep into Ipos (epsilon)
|
||||
x6 = -25 (mV) : Vdep out of Ipos (zeta)
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
alfac : microscopic reversibility factors
|
||||
btfac
|
||||
|
||||
: rates
|
||||
f01 (/ms)
|
||||
f02 (/ms)
|
||||
f03 (/ms)
|
||||
f04 (/ms)
|
||||
f0O (/ms)
|
||||
fip (/ms)
|
||||
f11 (/ms)
|
||||
f12 (/ms)
|
||||
f13 (/ms)
|
||||
f14 (/ms)
|
||||
f1n (/ms)
|
||||
fi1 (/ms)
|
||||
fi2 (/ms)
|
||||
fi3 (/ms)
|
||||
fi4 (/ms)
|
||||
fi5 (/ms)
|
||||
fin (/ms)
|
||||
|
||||
b01 (/ms)
|
||||
b02 (/ms)
|
||||
b03 (/ms)
|
||||
b04 (/ms)
|
||||
b0O (/ms)
|
||||
bip (/ms)
|
||||
b11 (/ms)
|
||||
b12 (/ms)
|
||||
b13 (/ms)
|
||||
b14 (/ms)
|
||||
b1n (/ms)
|
||||
bi1 (/ms)
|
||||
bi2 (/ms)
|
||||
bi3 (/ms)
|
||||
bi4 (/ms)
|
||||
bi5 (/ms)
|
||||
bin (/ms)
|
||||
|
||||
v (mV)
|
||||
ena (mV)
|
||||
ina (milliamp/cm2)
|
||||
gna (S/cm2)
|
||||
}
|
||||
|
||||
STATE {
|
||||
C1 FROM 0 TO 1
|
||||
C2 FROM 0 TO 1
|
||||
C3 FROM 0 TO 1
|
||||
C4 FROM 0 TO 1
|
||||
C5 FROM 0 TO 1
|
||||
I1 FROM 0 TO 1
|
||||
I2 FROM 0 TO 1
|
||||
I3 FROM 0 TO 1
|
||||
I4 FROM 0 TO 1
|
||||
I5 FROM 0 TO 1
|
||||
O FROM 0 TO 1
|
||||
B FROM 0 TO 1
|
||||
I6 FROM 0 TO 1
|
||||
}
|
||||
|
||||
BREAKPOINT {
|
||||
SOLVE activation METHOD sparse
|
||||
gna = gbar * O : O is "open state"
|
||||
ina = gna * (v - ena)
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
rates(v)
|
||||
SOLVE seqinitial
|
||||
}
|
||||
|
||||
KINETIC activation
|
||||
{
|
||||
rates(v)
|
||||
~ C1 <-> C2 (f01,b01)
|
||||
~ C2 <-> C3 (f02,b02)
|
||||
~ C3 <-> C4 (f03,b03)
|
||||
~ C4 <-> C5 (f04,b04)
|
||||
~ C5 <-> O (f0O,b0O)
|
||||
~ O <-> B (fip,bip)
|
||||
~ O <-> I6 (fin,bin)
|
||||
~ I1 <-> I2 (f11,b11)
|
||||
~ I2 <-> I3 (f12,b12)
|
||||
~ I3 <-> I4 (f13,b13)
|
||||
~ I4 <-> I5 (f14,b14)
|
||||
~ I5 <-> I6 (f1n,b1n)
|
||||
~ C1 <-> I1 (fi1,bi1)
|
||||
~ C2 <-> I2 (fi2,bi2)
|
||||
~ C3 <-> I3 (fi3,bi3)
|
||||
~ C4 <-> I4 (fi4,bi4)
|
||||
~ C5 <-> I5 (fi5,bi5)
|
||||
|
||||
CONSERVE C1 + C2 + C3 + C4 + C5 + O + B + I1 + I2 + I3 + I4 + I5 + I6 = 1
|
||||
}
|
||||
|
||||
LINEAR seqinitial { : sets initial equilibrium
|
||||
~ I1*bi1 + C2*b01 - C1*( fi1+f01) = 0
|
||||
~ C1*f01 + I2*bi2 + C3*b02 - C2*(b01+fi2+f02) = 0
|
||||
~ C2*f02 + I3*bi3 + C4*b03 - C3*(b02+fi3+f03) = 0
|
||||
~ C3*f03 + I4*bi4 + C5*b04 - C4*(b03+fi4+f04) = 0
|
||||
~ C4*f04 + I5*bi5 + O*b0O - C5*(b04+fi5+f0O) = 0
|
||||
~ C5*f0O + B*bip + I6*bin - O*(b0O+fip+fin) = 0
|
||||
~ O*fip + B*bip = 0
|
||||
|
||||
~ C1*fi1 + I2*b11 - I1*( bi1+f11) = 0
|
||||
~ I1*f11 + C2*fi2 + I3*b12 - I2*(b11+bi2+f12) = 0
|
||||
~ I2*f12 + C3*fi3 + I4*bi3 - I3*(b12+bi3+f13) = 0
|
||||
~ I3*f13 + C4*fi4 + I5*b14 - I4*(b13+bi4+f14) = 0
|
||||
~ I4*f14 + C5*fi5 + I6*b1n - I5*(b14+bi5+f1n) = 0
|
||||
|
||||
~ C1 + C2 + C3 + C4 + C5 + O + B + I1 + I2 + I3 + I4 + I5 + I6 = 1
|
||||
}
|
||||
|
||||
PROCEDURE rates(v(mV) )
|
||||
{
|
||||
alfac = (Oon/Con)^(1/4)
|
||||
btfac = (Ooff/Coff)^(1/4)
|
||||
f01 = 4 * alpha * exp(v/x1)
|
||||
f02 = 3 * alpha * exp(v/x1)
|
||||
f03 = 2 * alpha * exp(v/x1)
|
||||
f04 = 1 * alpha * exp(v/x1)
|
||||
f0O = gamma * exp(v/x3)
|
||||
fip = epsilon * exp(v/x5)
|
||||
f11 = 4 * alpha * alfac * exp(v/x1)
|
||||
f12 = 3 * alpha * alfac * exp(v/x1)
|
||||
f13 = 2 * alpha * alfac * exp(v/x1)
|
||||
f14 = 1 * alpha * alfac * exp(v/x1)
|
||||
f1n = gamma * exp(v/x3)
|
||||
fi1 = Con
|
||||
fi2 = Con * alfac
|
||||
fi3 = Con * alfac^2
|
||||
fi4 = Con * alfac^3
|
||||
fi5 = Con * alfac^4
|
||||
fin = Oon
|
||||
|
||||
b01 = 1 * beta * exp(v/x2)
|
||||
b02 = 2 * beta * exp(v/x2)
|
||||
b03 = 3 * beta * exp(v/x2)
|
||||
b04 = 4 * beta * exp(v/x2)
|
||||
b0O = delta * exp(v/x4)
|
||||
bip = zeta * exp(v/x6)
|
||||
b11 = 1 * beta * btfac * exp(v/x2)
|
||||
b12 = 2 * beta * btfac * exp(v/x2)
|
||||
b13 = 3 * beta * btfac * exp(v/x2)
|
||||
b14 = 4 * beta * btfac * exp(v/x2)
|
||||
b1n = delta * exp(v/x4)
|
||||
bi1 = Coff
|
||||
bi2 = Coff * btfac
|
||||
bi3 = Coff * btfac^2
|
||||
bi4 = Coff * btfac^3
|
||||
bi5 = Coff * btfac^4
|
||||
bin = Ooff
|
||||
}
|
||||
|
||||
40
cnmodel/mechanisms/tests/test_mechanisms.py
Normal file
40
cnmodel/mechanisms/tests/test_mechanisms.py
Normal file
@@ -0,0 +1,40 @@
|
||||
import numpy as np
|
||||
from neuron import h
|
||||
from cnmodel.util import reset
|
||||
|
||||
|
||||
def test_max_open_probability():
|
||||
reset(
|
||||
raiseError=False
|
||||
) # reset() fails as unable to remove all neuron objects, unless we ignore the error
|
||||
sec = h.Section()
|
||||
|
||||
# Create AMPA and NMDA mechanisms
|
||||
# AMPA uses mode=0; no rectification
|
||||
apsd = h.AMPATRUSSELL(0.5, sec=sec)
|
||||
# For NMDA we will hold the cell at +40 mV
|
||||
npsd = h.NMDA_Kampa(0.5, sec=sec)
|
||||
|
||||
# And a presynaptic terminal to provide XMTR input
|
||||
term = h.MultiSiteSynapse(0.5, sec=sec)
|
||||
term.nZones = 1
|
||||
h.setpointer(term._ref_XMTR[0], "XMTR", apsd)
|
||||
h.setpointer(term._ref_XMTR[0], "XMTR", npsd)
|
||||
|
||||
h.celsius = 34.0
|
||||
h.finitialize()
|
||||
op = [[], []]
|
||||
for i in range(100):
|
||||
# force very high transmitter concentration for every timestep
|
||||
term.XMTR[0] = 10000
|
||||
sec.v = 40.0
|
||||
h.fadvance()
|
||||
op[0].append(apsd.Open)
|
||||
op[1].append(npsd.Open)
|
||||
|
||||
assert np.allclose(max(op[0]), apsd.MaxOpen)
|
||||
assert np.allclose(max(op[1]), npsd.MaxOpen)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_max_open_probability()
|
||||
72
cnmodel/mechanisms/vecevent.mod
Normal file
72
cnmodel/mechanisms/vecevent.mod
Normal file
@@ -0,0 +1,72 @@
|
||||
: Vector stream of events
|
||||
: From NEURON source: nrn/examples/nrniv/netcon/vecevent.mod
|
||||
|
||||
NEURON {
|
||||
ARTIFICIAL_CELL VecStim
|
||||
}
|
||||
|
||||
ASSIGNED {
|
||||
index
|
||||
etime (ms)
|
||||
space
|
||||
}
|
||||
|
||||
INITIAL {
|
||||
index = 0
|
||||
element()
|
||||
if (index > 0) {
|
||||
net_send(etime - t, 1)
|
||||
}
|
||||
}
|
||||
|
||||
NET_RECEIVE (w) {
|
||||
if (flag == 1) {
|
||||
net_event(t)
|
||||
element()
|
||||
if (index > 0) {
|
||||
net_send(etime - t, 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VERBATIM
|
||||
extern double* vector_vec();
|
||||
extern int vector_capacity();
|
||||
extern void* vector_arg();
|
||||
ENDVERBATIM
|
||||
|
||||
PROCEDURE element() {
|
||||
VERBATIM
|
||||
{ void* vv; int i, size; double* px;
|
||||
i = (int)index;
|
||||
if (i >= 0) {
|
||||
vv = *((void**)(&space));
|
||||
if (vv) {
|
||||
size = vector_capacity(vv);
|
||||
px = vector_vec(vv);
|
||||
if (i < size) {
|
||||
etime = px[i];
|
||||
index += 1.;
|
||||
}else{
|
||||
index = -1.;
|
||||
}
|
||||
}else{
|
||||
index = -1.;
|
||||
}
|
||||
}
|
||||
}
|
||||
ENDVERBATIM
|
||||
}
|
||||
|
||||
PROCEDURE play() {
|
||||
VERBATIM
|
||||
void** vv;
|
||||
vv = (void**)(&space);
|
||||
*vv = (void*)0;
|
||||
if (ifarg(1)) {
|
||||
*vv = vector_arg(1);
|
||||
}
|
||||
ENDVERBATIM
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user