load_file("nrngui.hoc") cvode.active(1) dist=12 Rm = 28000 RmDend = Rm/2 RmSoma = Rm RmAx = Rm Cm = 1 CmSoma= Cm CmAx = Cm CmDend = Cm*2 RaAll= 150 RaSoma=150 RaAx = 50 Vrest = -65 dt = 0.2 gna = .032 AXONM = 2 gkdr = 0.003 celsius = 34.0 KMULT = 0.008 KMULTP = 0.008 sh=0 freq=20 ghd=0.0006 tstop=500 objref nc, np,g, b, rsyn, s, apc, stim, psyn xopen("n160_mod.nrn") // geometry file access soma[5] distance() apc = new APCount(0.5) apc.thresh=-20 apical[0] { psyn = new Exp2Syn(0.5) psyn.e=0 psyn.tau1 = 2 psyn.tau2 = 20 } apical[dist] { tmp=0.5 s = new NetStimm(tmp) s.interval=2500 s.number = 1.e9 s.start=0 s.noise=1 s.interval=1000/freq rsyn = new Exp2Syn(tmp) rsyn.e=0 rsyn.tau1 = 2 rsyn.tau2 = 20 } nc = new NetCon(s,rsyn,0,0,0) np = new NetCon(s,psyn,0,0,0) b = new VBox() b.intercept(1) g = new Graph() g.size(0,tstop,-70,30) g.exec_menu("Keep Lines") g.addvar("soma[5].v(0.5)",2,0, 2*tstop,0,2) xpanel("",1) xbutton("distal ", "rund()") xbutton("proximal ", "runp()") xpanel() b.intercept(0) b.map() proc init() { axon[1] { insert nax gbar_nax=gna * AXONM insert kdr gkdrbar_kdr=gkdr insert pas e_pas=Vrest g_pas = 1/RmAx Ra=RaAx cm=CmAx insert kap gkabar_kap = KMULTP*0.2 } axon[0] { insert nax gbar_nax=gna * AXONM insert kdr gkdrbar_kdr=gkdr insert pas e_pas=Vrest g_pas = 1/RmAx Ra=RaAx cm=CmAx insert kap gkabar_kap = KMULTP*0.2 } for i=0,NumSoma-1 soma[i] { insert hd ghdbar_hd=ghd vhalfl_hd=-82+sh insert na3 gbar_na3=gna ar2_na3=1 insert kdr gkdrbar_kdr=gkdr insert kap gkabar_kap = KMULTP insert pas e_pas=Vrest g_pas = 1/RmSoma Ra=RaSoma cm=CmSoma } for i=0,NumBasal-1 basal[i] { insert na3 gbar_na3=gna ar2_na3=1 insert kdr gkdrbar_kdr=gkdr insert kap gkabar_kap=KMULTP insert pas e_pas=Vrest g_pas = 1/RmDend Ra=RaAll cm=CmDend } for i=0,NumApical-1 apical[i] { insert pas e_pas=Vrest g_pas = 1/RmDend Ra=RaAll cm=CmDend if (diam>0.5 && distance(0.5)<500) { insert hd ghdbar_hd=ghd insert na3 ar2_na3=0.8 gbar_na3=gna insert kdr gkdrbar_kdr=gkdr insert kap insert kad gkabar_kap=0 gkabar_kad=0 for (x){ xdist = distance(x) if (xdist>500) {xdist=500} ghdbar_hd(x) = ghd*(1+1.5*xdist/100) if (xdist > 100){ vhalfl_hd=-90+sh gkabar_kad(x) = KMULT*(1+xdist/100) } else { vhalfl_hd=-82+sh gkabar_kap(x) = KMULTP*(1+xdist/100) } } } } t=0 forall { v=Vrest if (ismembrane("nax") || ismembrane("na3")) {ena=55} if (ismembrane("kdr") || ismembrane("kap") || ismembrane("kad")) {ek=-90} if (ismembrane("hd") ) {ehd_hd=-30} } finitialize(v) fcurrent() forall { for (x) { if (ismembrane("na3")||ismembrane("nax")){e_pas(x)=v(x)+(ina(x)+ik(x))/g_pas(x) if (ismembrane("hd")) {e_pas(x)=e_pas(x)+i_hd(x)/g_pas(x)} } else { e_pas(x)=v(x) } } } cvode.re_init() cvode.event(tstop) access soma[5] g.begin() g.plot(t) } proc step() { fadvance() g.plot(t) g.flush() doNotify() } proc run() { init() while(t