load_file("nrngui.hoc")
cvode.active(1)
cvode.atol(1.e-3)
create a
a	{nseg=1 diam=5 L=5 
	insert kdrgc ek=-85
	insert pas g_pas=1/10000 Ra=150 cm=1}
access a

tstop=500
vlow=-100
vhigh=50
dt=0.01

mtfac=1
htfac=500

objref gk, b,gt,vc, gs,c, gf,ic
b = new VBox()
c = new VBox()
b.intercept(1)
gk = new Graph(0)
gk.view(vlow,0,vhigh-vlow,1,0,0,100,200)
gk.exec_menu("New Axis")
gk.exec_menu("10% Zoom out")
gk.label(0.1,0.9,"Figs.5-7B: steady-states")
gk.addexpr("minf_kdrgc",3,2, 2*tstop,0,2)
gk.addexpr("hinf_kdrgc",2,2, 2*tstop,0,2)

gt = new Graph(0)
gt.view(vlow,0,vhigh-vlow,15,0,0,100,200)
gt.exec_menu("New Axis")
gt.exec_menu("10% Zoom out")
gt.label(0.1,0.9,"time constants (scale in ms)")
gt.addexpr("mtau_kdrgc/mtfac",3,2, 2*tstop,0,2)
gt.addexpr("htau_kdrgc/htfac",2,2, 2*tstop,0,2)

xpanel("")
xbutton("run ", "run()")
xpanel()
b.intercept(0)
b.map("K-DR kinetics for RGC",100,0,200,400)

c.intercept(1)
gs = new Graph(0)
gs.view(0,0,tstop,1200,0,0,100,200)
gs.exec_menu("New Axis")
gs.exec_menu("10% Zoom out")
gs.label(0.1,0.9,"current (pA), step from -100mV, Fig.4B with postnatal parameters")
gs.exec_menu("Keep Lines")

c.intercept(0)
c.map("activation",390,0,500,370)

vc = new SEClamp(0.5)

proc run() {
gk.begin()
for (v=vlow; v<vhigh; v=v+1) {
    trates_kdrgc(v)
    gk.plot(v)
}
gk.flush()
doNotify()

gt.begin()
gt.mark(45,4.3/mtfac,"+",12,5,2)
gt.mark(25,5.6/mtfac,"+",12,5,2)
gt.mark(15,7.7/mtfac,"+",12,5,2)
gt.mark(0,11.9/mtfac,"+",12,5,2)
gt.mark(-45,3800/htfac,"+",12,6,2)
gt.mark(-32,1300/htfac,"+",12,6,2)
gt.mark(-15,760/htfac,"+",12,6,2)
gt.color(2)
gt.label(0.1,0.75,"tau_inact./500")
gt.color(3)
gt.label(0.7,0.7,"tau_act.")
for (v=vlow; v<vhigh; v=v+1) {
    trates_kdrgc(v)
    gt.plot(v)
}
gt.flush()
doNotify()

//gbar_kdrgc=0.02
gs.color(5)
gs.label(0.6,0.25,"0")
gs.color(4)
gs.label(0.6,0.17,"-10")
gs.color(6)
gs.label(0.6,0.4,"10")
gs.color(7)
gs.label(0.6,0.6,"20")

gs.begin()
k=-10
color=4
while (k<21) {
gs.addexpr("ik*area(0.5)*10",color,1, 2*tstop,0,2) // *10=pA, *1e-2=nA
t=0
vc.amp1=-100
vc.dur1=0.2
vc.amp2=k
vc.dur2=tstop
forall {finitialize(vc.amp1)}
while (t<tstop) {
    fadvance()
    gs.plot(t)
    }
gs.flush()
doNotify()
k=k+10
color=color+1
gs.begin()
}
}