// file created to control purkinje simulation load_file("nrngui.hoc") objref vce // voltage clamp objref g[9] // some graphs objref vgraphbox, hgraphbox1, hgraphbox2 vgraphbox=new VBox() vgraphbox.intercept(1) hgraphbox1=new HBox() hgraphbox1.intercept(1) for i=0,2 { g[i]=new Graph() g[i].exec_menu("Keep Lines") } hgraphbox1.intercept(0) hgraphbox1.map() hgraphbox2=new HBox() hgraphbox2.intercept(1) for i=3,8 { g[i]=new Graph() g[i].exec_menu("Keep Lines") } hgraphbox2.intercept(0) hgraphbox2.map() vgraphbox.intercept(0) vec_sizes = tstop/dt + 1 // recorded traces are all this size soma vce=new VClamp(0) vchold=-71 vctestbase=-69 vce.dur[0]=5 vce.amp[0]=vchold vce.dur[1]=100 vce.amp[1]=vctestbase vce.dur[2]=5 vce.amp[2]=vchold load_file("runctrl.ses") vcincrement=10 vcsteps=3 proc voltfamily() { tstop=vce.dur[0]+vce.dur[1]+vce.dur[2] vce.amp[0]=vchold vce.amp[2]=vchold for j=0, vcsteps-1 { x=vctestbase+j*vcincrement vce.amp[1]=x // if (verbose) {print "test volt amplitude: ",x} init() run() $o2.line(g[$1], dt) for i=0,$o2.size()-1 { $o4.printf("%g %g\n", $o3.x[i], $o2.x[i]) } if (stoppedrun()) { break } } } verbose=1 // 6B if (verbose) { print "generating 6B (K fast)" } vchold=-71 vcincrement=10 vcsteps=8 vce.dur[1]=100 vce.dur[2]=30 steps_per_ms=1 dt=0.001 objref Kfast Kfast= new Vector(vec_sizes) Kfast.record(&soma.i_K1_Khaliq03( 0.5 )) objref tlog tlog = new Vector(vec_sizes,0) tlog.record (&t) objref logfile logfile = new File() logfile.wopen ("Kfast.dat") voltfamily(0, Kfast, tlog, logfile) // first parameter is graph number, second is current object vector g[0].label(.5,.85,"K fast") logfile.close() // 6D if (verbose) { print "generating 6D (K mid)" } vchold=-71 vcincrement=10 vcsteps=9 vce.dur[1]=100 vce.dur[2]=30 steps_per_ms=1 dt=0.001 objref Kmid Kmid= new Vector(vec_sizes) Kmid.record(&soma.i_K2_Khaliq03( 0.5 )) objref tlog tlog = new Vector(vec_sizes) tlog.record (&t) objref logfile logfile = new File() logfile.wopen ("Kmid.dat") voltfamily(1, Kmid, tlog, logfile) // first parameter is graph number, second is current object vector g[1].label(.5,.9,"K mid") logfile.close() // 6F if (verbose) { print "generating 6F (K slow)" } vchold=-71 vcincrement=10 vctestbase=-61 vcsteps=8 vce.dur[1]=100 vce.dur[2]=30 steps_per_ms=1 dt=0.001 objref Kslow Kslow= new Vector(vec_sizes) Kslow.record(&soma.i_K3_Khaliq03( 0.5 )) objref tlog tlog = new Vector(vec_sizes) tlog.record (&t) objref logfile logfile = new File() logfile.wopen ("Kslow.dat") voltfamily(2, Kslow, tlog, logfile) // first parameter is graph number, second is current object vector g[2].label(.5,.9,"K slow") logfile.close() // 6H if (verbose) { print "generating 6H (BK)" } vchold=-90 vcincrement=10 vcsteps=5 vce.dur[0]=2 vce.dur[1]=20 vce.dur[2]=5 steps_per_ms=40 dt=.001 objref BK BK= new Vector(vec_sizes) BK.record(&soma.i_CaBK_Khaliq03( 0.5 )) objref tlog tlog = new Vector(vec_sizes) tlog.record (&t) objref logfile logfile = new File() logfile.wopen ("BK.dat") vctestbase=-40 voltfamily(3, BK, tlog, logfile) // first parameter is graph number, second is current object vector g[3].label(.5,.9,"BK") logfile.close() // 6J if (verbose) { print "generating 6J (P-type Ca)" } vchold=-90 vcincrement=10 vctestbase=-90 vcsteps=11 vce.dur[1]=10 vce.dur[2]=5 steps_per_ms=4 dt=.001 objref IP IP= new Vector(vec_sizes) IP.record(&soma.i_CaP_Khaliq03( 0.5 )) objref tlog tlog = new Vector(vec_sizes) tlog.record (&t) objref logfile logfile = new File() logfile.wopen ("CaP.dat") voltfamily(4, IP, tlog, logfile) // first parameter is graph number, second is current object vector g[4].label(.5,.95,"P-type Ca") logfile.close() // 6L if (verbose) { print "generating 6L (Ih)" } vchold=-50 vcincrement=-10 vctestbase=-60 vcsteps=7 vce.dur[0]=100 vce.dur[1]=1200 vce.dur[2]=300 steps_per_ms=1 dt=0.001 objref Ih Ih= new Vector(vec_sizes) Ih.record(&soma.i_Ih_Khaliq03( 0.5 )) objref tlog tlog = new Vector(vec_sizes) tlog.record (&t) objref logfile logfile = new File() logfile.wopen ("Ih.dat") voltfamily(5, Ih, tlog, logfile) // first parameter is graph number, second is current object vector g[5].label(.5,.95,"Ih") logfile.close() // 6N if (verbose) { print "generating 6N (leak)" } vchold=-71 vcincrement=10 vctestbase=-91 vcsteps=5 vce.dur[0]=10 vce.dur[1]=100 vce.dur[2]=30 steps_per_ms=1 dt=0.001 objref leak leak= new Vector(vec_sizes) leak.record(&soma.i_Leak_Khaliq03( 0.5 )) objref tlog tlog = new Vector(vec_sizes) tlog.record (&t) objref logfile logfile = new File() logfile.wopen ("Leak.dat") voltfamily(6, leak, tlog, logfile) // first parameter is graph number, second is current object vector g[6].label(.5,.95,"I leak") logfile.close() // Narsg if (verbose) { print "generating Narsg" } vchold=-71 vcincrement=10 vctestbase=-60 vcsteps=9 vce.dur[1]=100 vce.dur[2]=30 steps_per_ms=1 dt=0.001 objref narsg narsg = new Vector(vec_sizes) narsg.record(&soma.i_Narsg_Khaliq03( 0.5 )) objref tlog tlog = new Vector(vec_sizes) tlog.record (&t) objref logfile logfile = new File() logfile.wopen ("Narsg.dat") voltfamily(7, narsg, tlog, logfile) g[7].label(.5,.95,"Narsg") logfile.close() // Caint if (verbose) { print "generating Caint" } objref Caint Caint= new Vector(vec_sizes) Caint.record(&soma.comp95_cac_Khaliq03(0.5)) objref tlog tlog = new Vector(vec_sizes) tlog.record (&t) objref logfile logfile = new File() logfile.wopen ("Caint.dat") dt = 0.001 vchold=-90 vctestbase=-40 vcincrement=10 vcsteps=5 vce.dur[1]=5 vce.dur[2]=20 voltfamily(8, Caint, tlog, logfile) // first parameter is graph number, second is current object vector g[8].label(.5,.9,"Caint") logfile.close() for i=0, 8 { g[i].exec_menu("View = plot") } vgraphbox.map()