-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathKCC2_vol.mod
104 lines (90 loc) · 2.97 KB
/
KCC2_vol.mod
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
:------------------------------------------------------------------------------
TITLE Model of KCC2 transport
:------------------------------------------------------------------------------
NEURON {
SUFFIX KCC2_Vol :KCC2_Transport
USEION k READ ki, ko VALENCE 1
USEION cl READ icl, ecl, clo WRITE cli VALENCE -1
USEION mkcc2 READ mkcc2i VALENCE 1
RANGE axD, gtonic, itonic
RANGE R_T, r_T
RANGE D, v_T, V_T, transport
GLOBAL celsius
}
UNITS {
(mV) = (millivolt)
(um) = (micron)
(mA) = (milliamp)
(M) = (1/liter)
(mM) = (milliM)
(J) = (joule)
(S) = (siemens)
F = (faraday) (coulombs)
R = (k-mole) (joule/degC)
PI = (pi) (1)
}
PARAMETER {
axD = 1 (um2/ms) < 0, 1e9 > : axial chloride diffusion constant
R_T = 29.8 (mM) < 0, 1e9 > : Michaelis constant for KCC2 ion transport (Kd from Raimondo lab UCT)
r_T = 5.07 (/s) < 0, 1e9 > : rate of transport of KCC2-bound ions across the membrane (Note that r_T is essentially mM/s because we treat mkcc2i as an ion -- 5.07 from Raimondo lab UCT)
gtonic = 1.7e-4 (S/cm2) : tonic conductance
}
ASSIGNED {
v (mV) : membrane voltage
diam (um) : compartment diameter
L (um) : compartment length
icl (mA/cm2) : chloride current
ik (mA/cm2) : potassium current
itonic (mA/cm2) : tonic GABA current
clo (mM) : external chloride concentration
ko (mM) : external potassium concentration
ecl (mV) : chloride reversal potential
celsius (degC) : temperature
mkcc2i (mM) : concentration of membrane-bound KCC2
D () : KCC2 driving force direction
V_T (mM/s) : max rate of ion transport by KCC2
v_T (mM/s) : rate of ion transport by KCC2
transport (mM/s) : rate of ion transport accounting for direction
}
STATE {
cli (mM) : internal chloride concentration
ki (mM) : internal potassium concentration
}
INITIAL {
itonic = 0
D = 0
V_T = 0
v_T = 0
transport = 0
}
BREAKPOINT {
SOLVE state METHOD sparse
}
KINETIC state {
tonicgaba(v,ecl)
transport_mm(cli, ki, mkcc2i,diam)
driveforce(cli, clo, ki, ko)
COMPARTMENT PI*diam*diam/4 { cli }
LONGITUDINAL_DIFFUSION axD*PI*diam*diam/4 { cli }
: synaptic chloride current - KCC2 efflux + tonic GABA current
~ cli << ((1e4)*icl*diam*PI/F + (1e-3)*transport*PI*diam*diam/4 + (1e4)*itonic*diam*PI/F)
}
PROCEDURE tonicgaba(Vm (mV), Em (mV)) {
itonic = gtonic * (Vm - Em)
}
PROCEDURE transport_mm(Cint (mM), Kint (mM), Mkcc2int (mM), diam (um)) {
V_T = r_T*(Mkcc2int)
v_T = (12.76/diam)*V_T*Kint*Cint/((Kint + R_T)*(Cint + R_T))
}
PROCEDURE driveforce(Cint (mM), Cout (mM), Kint (mM), Kout (mM)) {
D = (Kout/Kint) - (Cint/Cout)
if (D > 0) {
transport = v_T
}
if (D < 0) {
transport = -v_T
}
if (D == 0) {
transport = 0
}
}