load_file("nrngui.hoc") load_file("mitral-modeldb.hoc") load_file("gap.hoc") load_file("correl.hoc") cvode_active(1) Vrest = -65 dt = 0.1 celsius=35 tstop=300 ntuft=1 ngap=1 objref gap[ngap] objref g, b, nil, stim[ntuft], stim2[ntuft] objref mt[2], outfile, correl objref mitral1, mitral2, tmitral1, tmitral2 mitral1 = new Vector() tmitral1 = new Vector() mitral2 = new Vector() tmitral2 = new Vector() for i=0, 1 { mt[i] = new Mitral() } mt[0].soma { cvode.record(&v(.5), mitral1, tmitral1) } mt[1].soma { cvode.record(&v(.5), mitral2, tmitral2) } amp=0 delay=20 ggap=0.0 rel=0.95 gap[0] = new Gap() mt[0].tuftden gap[0].src(rel) mt[1].tuftden gap[0].target(rel) gap[0].g(ggap) b = new VBox() b.intercept(1) g = new Graph() g.size(0,tstop,-70,30) g.xaxis(1) g.addvar("mt[0].soma.v(0.5)",1,1,2*tstop,0,2) g.addvar("mt[1].soma.v(0.5)",2,1,2*tstop,0,2) g.addexpr("(mt[1].tuftden.v(rel)-mt[0].tuftden.v(rel))*ggap",3,2,2*tstop,0,2) g.exec_menu("10% Zoom out") g.color(1) g.label(0.3,0.05,"M1-soma") g.color(2) g.label(0.5,0.05,"M2-soma") g.color(3) g.label(0.7,0.05,"I-gap") xpanel("",1) xbutton("control - no GJ (fig.6A)", "runc()") xbutton("with GJ (fig.6B)", "rung()") xbutton("with GJ & Na+ block (fig.6C)", "rungb()") xpanel() b.intercept(0) b.map() i=0 mt[0].tuftden { stim[i]=new IClamp(0.25) stim[i].del=0 stim[i].dur=tstop stim[i].amp=0.02 } mt[1].tuftden { stim2[i]=new IClamp(0.25) stim2[i].del=10 stim2[i].dur=tstop stim2[i].amp=0.02 } proc init() { t=0 flag=0 finitialize(Vrest) fcurrent() forall { v=Vrest if (ismembrane("nax")) {e_pas=v+(ina+ik)/g_pas} else {e_pas=v} } cvode.re_init() g.begin() } proc advance() { fadvance() g.plot(t) g.flush() doNotify() } proc run() { stdinit() continuerun(tstop) g.flush() doNotify() correl = new CrossCorrelation(mitral1, tmitral1, mitral2, tmitral2) } proc runc() { ggap=0.0 mt[1].tuftden { gbar_nax =0.04 } gap[0].g(ggap) run() } proc rung() { ggap=0.37 gap[0].g(ggap) mt[1].tuftden { gbar_nax =0.04 } run() } proc rungb() { ggap=0.37 gap[0].g(ggap) mt[1].tuftden { gbar_nax =0 } run() }