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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
TITLE Cardiac second inward current
COMMENT
modified From DiFrancesco & Noble 1985 Phil Trans R Soc Lond 307:353-398
modified for Neuron by FE GANNIER
francois.gannier@univ-tours.fr (University of TOURS)
ENDCOMMENT
INCLUDE "Unit.inc"
INCLUDE "Volume.inc"
NEURON {
SUFFIX Isi
USEION ca READ cao, cai WRITE ica
USEION k READ ko, ki WRITE ik
USEION na READ nao, nai WRITE ina
RANGE P, ica, ik, ina, isi
GLOBAL minf, mtau, hinf, htau
}
PARAMETER {
P = 15 (nA/mM)
alpha_f2 = 5 (/s)
Kmf2 = 0.001 (mM)
}
STATE { : d, f, f2
m n h
}
ASSIGNED {
v (mV)
celsius (degC) : 37
isi (mA/cm2)
ica (mA/cm2)
ik (mA/cm2)
ina (mA/cm2)
eca (mV)
minf ninf hinf
mtau (ms)
ntau (ms)
htau (ms)
cai (mM)
cao (mM)
nai (mM)
nao (mM)
ki (mM)
ko (mM)
beta_f2 (/s)
}
LOCAL RT
INITIAL {
RT = (1000)*R*(273.15+celsius)
rate(v)
m = minf
n = ninf
h = hinf
}
BREAKPOINT { LOCAL com, com2, Eo, icat, inat, ikt
SOLVE states METHOD derivimplicit
Eo = v - 50
com = (1e-06)* P/S*Eo*F/RT * m*n*h
icat = 4*com /(1 - exp(-2*Eo*F/RT))*(cai*exp(100(mV)*F/RT) - cao*exp(-2*F*Eo/RT))
ica = icat
com2 = 0.01*com /(1 - exp(-Eo*F/RT))
ikt = com2*(ki*exp(50(mV)*F/RT) - ko*exp(-F*Eo/RT))
ik = ikt
inat = com2*(nai*exp(50(mV)*F/RT) - nao*exp(-F*Eo/RT))
ina = inat
isi = inat + ikt + icat
}
DERIVATIVE states { : d, f, f2
rate(v)
m' = (minf - m)/mtau
n' = (ninf - n)/ntau
h' = (0.001)*(alpha_f2 - h * (alpha_f2 + beta_f2))
beta_f2 = cai * alpha_f2 / Kmf2
}
FUNCTION alp(v(mV), i) (/ms) { : order d, f
LOCAL Eo, E1
if (i==0) {
Eo = v + 24
if (fabs(Eo*1(/mV)) < 1e-5)
{
alp = (0.001)*120 (/s)
}
else
{
alp = (0.001)*30(/s/mV)*Eo / (1 - exp(-Eo/4(mV)))
}
} else if (i==1) {
E1 = v + 34
if (fabs(E1*1(/mV)) < 1e-5)
{
alp = (0.001)*25 (/s)
}
else
{
alp = (0.001)*6.25(/mV/s)*E1/(exp(E1/4(mV))-1)
}
}
}
FUNCTION bet(v(mV), i) (/ms) { : order d,f
LOCAL Eo
if (i==0) {
Eo = v + 24
if (fabs(Eo*1(/mV)) < 1e-5)
{
bet = (0.001)*120 (/s)
}
else
{
bet = (0.001)*12(/mV/s) *Eo / (exp(Eo/10(mV)) -1)
}
} else if (i==1) {
bet = (0.001)*50(/s)/(1 + exp(-(v + 34)/4(mV)))
}
}
PROCEDURE rate(v (mV)) { LOCAL a,b :
TABLE minf, mtau, ninf, ntau FROM -100 TO 100 WITH 200
a = alp(v,0) b = bet(v,0)
mtau = 1/(a + b)
minf = a * mtau
a = alp(v,1) b = bet(v,1)
ntau = 1/(a + b)
ninf = a * ntau
}
|