create a
a	{nseg=1 diam=20 L=20 
	insert kht ek_kht=-77
	insert pas g_pas=1/10000 Ra=150 cm=1}
access a

tstop=100
vlow=-80
vhigh=30
dt=0.1
celsius=22
usetable_kht = 0

frac=0
color=1

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,"Kht: steady-state activation (n,p)")
gk.addexpr("ninf_kht",1,2, 2*tstop,0,2)
gk.addexpr("pinf_kht",2,2, 2*tstop,0,2)

gt = new Graph(0)
gt.view(vlow,0,vhigh-vlow,25,0,0,100,200)
gt.exec_menu("New Axis")
gt.exec_menu("10% Zoom out")
gt.label(0.1,0.9,"Kht: n, p time constants")
gt.addexpr("ntau_kht",1,2, 2*tstop,0,2)
gt.addexpr("ptau_kht",2,2, 2*tstop,0,2)

gs = new Graph(0)
gs.view(0,-70,150,70,0,0,100,200)
gs.exec_menu("New Axis")
gs.exec_menu("10% Zoom out")
gs.label(0.1,0.9,"+0.1 nA current injection")
gs.exec_menu("Keep Lines")

xpanel("")
xbutton("run ", "run()")
xvalue("color","color",1)
xpanel()
b.intercept(0)
b.map("Kht kinetics (Rothman and Manis 2003c)",100,0,200,600)

c.intercept(1)
gf = new Graph(0)
gf.view(0,-2,150,22,0,0,100,100)
gf.exec_menu("New Axis")
gf.exec_menu("10% Zoom out")
gf.label(0.4,0.95,"kht current (nA)")
gf.label(0.3,0.08,"-80mV ")
gf.label(0.3,0.85,"+30mV ")
gf.exec_menu("Keep Lines")
c.intercept(0)
c.map("Kht Currents in Voltage Clamp",390,0,500,370)

vc = new SEClamp(0.5)
ic = new IClamp(0.5)

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

gk.flush()
doNotify()


gt.begin()
gt.color(2)
for (v=vlow; v<vhigh; v=v+1) {
    trates_kht(v)
    gt.plot(v)
}

gt.flush()
doNotify()

gkhtbar_kht= 0.01592

gs.addexpr("a.v(0.1)",color,1, 2*tstop,0,2)
gf.addexpr("ik_kht*area(0.5)*1e-2",color,1, 2*tstop,0,2) // *10=pA, *1e-2=nA

gs.begin()
ic.del=5
ic.dur=100
ic.amp=0.10
v=-62
finitialize(v)
fcurrent()
e_pas=v+(ik_kht)/g_pas
t=0
while (t<tstop*1.5) {
    fadvance()
    gs.plot(t)
    }
gs.flush()
doNotify()
ic.amp=0

gkhtbar_kht=0.01592
k=30
while (k>=-80) {
	t=0
	vc.amp1=-62
	vc.dur1=5
	vc.amp2=k
	vc.dur2=ic.dur
	vc.amp3=vc.amp1
	vc.dur3=50
	forall {finitialize(-62)}
	fcurrent()
	while (t<tstop*1.5) {
    	fadvance()
    	gf.plot(t)
	}
	gf.flush()
	doNotify()
	k=k-10
	gf.begin()
}
vc.dur1=0
vc.dur2=0
vc.dur3=0
}