COMMENT
Cl22OMs: chloride conducting 22OMs opsin model
ENDCOMMENT
NEURON{
SUFFIX Cl22OMs
POINTER Iopto
USEION cl READ cli, clo, ecl WRITE icl VALENCE -1
RANGE gmax, g, o, da, Erev, tauo, tauda, oinf, dainf, Rinf, EvarFlag, iopsin
RANGE Iratio, tauOn, tauOff, tauInact, tauRecov, Oinf_p1, Oinf_p2
}
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
(mS) = (millisiemens)
(um) = (micron)
(S) = (siemens)
(W) = (watt)
}
PARAMETER{
gmax = 0.012885323820985 (S/cm2)
Erev = -85 (mV)
EvarFlag = 0
clo
cli
dainf
oinf
scaling
Oinf_p1 = 2.837 : 2.473
Oinf_p2 = 0.942 : 0.677
Iratio = 0.8
tauOn = 0.018
tauOff = 140.014
tauInact = 236.82
tauRecov = 4803
}
ASSIGNED{
v (mV)
icl (mA/cm2)
ecl (mV)
g (S/cm2)
tauo (s)
tauda (s)
Iopto (W/m2)
iopsin (mA/cm2)
}
STATE{
o da
}
INITIAL{
o=0
da=1
Iopto=0
scaling = 0
}
BREAKPOINT{
SOLVE states METHOD cnexp
g = gmax*o*da
if (EvarFlag == 0) {iopsin = g*(v-Erev)}
if (EvarFlag == 1) {iopsin = g*(v-ecl)}
icl = iopsin
}
DERIVATIVE states{
ss(-65, Iopto)
o' = (oinf-o)/tauo
da' = (dainf-da)/tauda
}
PROCEDURE ss(vm(mV),Io(W/m2)){
if (Io == 0) {oinf = 0} else {oinf = 1/(1+exp(Oinf_p1/Oinf_p2)*Iopto^(-1/(Oinf_p2*log(10))))}
if (Io == 0) {dainf = 1} else {dainf = Iratio}
if (Io == 0) {tauo = tauOff} else {tauo = tauOn}
if (Io == 0) {tauda = tauRecov} else {tauda = tauInact}
}