load_file("initactivesdRichy.hoc") cvode_active(1) // use variable time step // close the fig 9 button window if (PWManager[0].count>1) { // if this file run directly do nothing PWManager[0].close(1) } objref OuterVBox, InnerHBox[3],A1, B1, C1 objref A2, B2, C2 objref A3, B3, C3 objref vvec, tvec vvec = new Vector() tvec = new Vector() vvec.record(&soma[0].v(0.5)) tvec.record(&t) proc fig9() { OuterVBox = new VBox() OuterVBox.intercept(1) InnerHBox[0] = new HBox() InnerHBox[0].intercept(1) fig9A1() fig9B1() fig9C1() InnerHBox[0].intercept(0) InnerHBox[0].map() InnerHBox[1] = new HBox() InnerHBox[1].intercept(1) fig9A2() fig9B2() fig9C2() InnerHBox[1].intercept(0) InnerHBox[1].map() InnerHBox[2] = new HBox() InnerHBox[2].intercept(1) fig9A3() fig9B3() fig9C3() InnerHBox[2].intercept(0) InnerHBox[2].map() OuterVBox.intercept(0) OuterVBox.map() } // sine wave current_step_on/_off objref sin_current_clamp_vec, sin_current_clamp_tvec sin_current_clamp_vec = new Vector() sin_current_clamp_tvec = new Vector() sin_current_clamp_tvec.indgen(0,1999,5) sin_current_clamp_vec.indgen(0,PI*20-PI/20,PI/20) sin_current_clamp_vec.apply("sin").mul(0.010) // -10 to 10 pA // to see on a graph: sin_current_clamp_vec.line(Graph[2],sin_current_clamp_tvec) objref current_clamp proc sin_current_step_on() { current_step_on() current_clamp.del = 0 current_clamp.dur=2000 tstop = 2000 sin_current_clamp_vec.play(¤t_clamp.amp,sin_current_clamp_tvec) } proc sin_current_step_off() { sin_current_clamp_vec.play_remove() current_clamp.amp=0 } // current_step_on/_off proc current_step_on() { soma[0] current_clamp = new IClamp(0.5) current_clamp.del=466 current_clamp.dur=1000 current_clamp.amp=0.015 // 15 pA in nA } proc current_step_off() { current_clamp.amp=0.0 // nA } // the following two functions switches between using IM and IMminret proc xe991_on() { forall { if (ismembrane("IM")) { gbar_IM=0 gbar_IMminret = 0.0 } } } proc xe991_off() { forall { if (ismembrane("IM")) { gbar_IM=0.000075 gbar_IMminret = 0 } } } proc switch_to_IMminret() { forall { if (ismembrane("IM")) { gbar_IM=0 gbar_IMminret = 0.000075 } } } proc switch_to_IM() { forall { if (ismembrane("IM")) { gbar_IMminret=0 gbar_IM = 0.000075 } } } proc fig9A1() { print "calculating fig 9 A1" tstop=4000 init() run() A1 = new Graph() vvec.line(A1,tvec) // A1.exec_menu("View = plot") A1.view_size(0,-tstop*0.10,tstop*1.1,-90-15,60+15) } proc fig9B1() { print "calculating fig 9 B1" current_step_on() tstop=4000 init() run() B1 = new Graph() vvec.line(B1,tvec) // B1.exec_menu("View = plot") B1.view_size(0,-tstop*0.10,tstop*1.1,-90-15,60+15) current_step_off() } proc fig9C1() { print "calculating fig 9 C1" sin_current_step_on() tstop=2000 init() run() C1 = new Graph() vvec.line(C1,tvec) // C1.exec_menu("View = plot") C1.view_size(0,-tstop*0.10,tstop*1.1,-90-15,60+15) sin_current_step_off() } proc fig9A2() { print "calculating fig 9A2" xe991_on() tstop=4000 init() run() A2 = new Graph() vvec.line(A2,tvec) // A2.exec_menu("View = plot") A2.view_size(0,-tstop*0.10,tstop*1.1,-90-15,60+15) xe991_off() } proc fig9B2() { print "calculating fig 9B2" xe991_on() current_step_on() tstop=4000 init() run() B2 = new Graph() vvec.line(B2,tvec) // B2.exec_menu("View = plot") B2.view_size(0,-tstop*0.10,tstop*1.1,-90-15,60+15) xe991_off() current_step_off() } proc fig9C2() { print "calculating fig 9C2" xe991_on() sin_current_step_on() tstop=2000 init() run() C2 = new Graph() vvec.line(C2,tvec) // C2.exec_menu("View = plot") C2.view_size(0,-tstop*0.10,tstop*1.1,-90-15,60+15) xe991_off() sin_current_step_off() } proc fig9A3() { print "calculating fig 9 A3" switch_to_IMminret() tstop=4000 init() run() A3 = new Graph() vvec.line(A3,tvec) // A3.exec_menu("View = plot") A3.view_size(0,-tstop*0.10,tstop*1.1,-90-15,60+15) switch_to_IM() } proc fig9B3() { print "calculating fig 9 B3" switch_to_IMminret() current_step_on() tstop=4000 init() run() B3 = new Graph() vvec.line(B3,tvec) // B3.exec_menu("View = plot") B3.view_size(0,-tstop*0.10,tstop*1.1,-90-15,60+15) switch_to_IM() current_step_off() } proc fig9C3() { print "calculating fig 9 C3" switch_to_IMminret() sin_current_step_on() tstop=2000 init() run() C3 = new Graph() vvec.line(C3,tvec) // C3.exec_menu("View = plot") C3.view_size(0,-tstop*0.10,tstop*1.1,-90-15,60+15) switch_to_IM() sin_current_step_off() } // CntrlBox has fig buttons and run cntrl in it objref CntrlBox CntrlBox=new HBox() CntrlBox.intercept(1) // bring up a run control nrncontrolmenu() tstop=4000 xpanel("Lawrence et al. 2006") xlabel(" ") xbutton("Create Fig 9 A1","fig9A1()") xbutton("Create Fig 9 B1","fig9B1()") xbutton("Create Fig 9 C1","fig9C1()") xlabel("") xbutton("Create Fig 9 A2","fig9A2()") xbutton("Create Fig 9 B2","fig9B2()") xbutton("Create Fig 9 C2","fig9C2()") xlabel("") xbutton("Create Fig 9 A3","fig9A3()") xbutton("Create Fig 9 B3","fig9B3()") xbutton("Create Fig 9 C3","fig9C3()") xlabel("") xbutton("Create all of Fig 9","fig9()") xlabel("") xpanel() CntrlBox.intercept(0) CntrlBox.map()