if (name_declared("pkgversions") != 4 ) { execute("strdef pkgversions") } sprint(pkgversions,"%sVCaGraph = $Revision: 1.5 $, ",pkgversions) load_file("RPlot.hoc") load_file("FormatFile.hoc") load_file("GraphUtils.hoc") begintemplate VCaGraph public addvar, glist, rprintfile, save strdef cmd objref vb objref hblist objref glist objref this objref file, rp objref gu objref xvl, yvl objref areas // VCaGraph(double rows, double cols) // This takes four arguments: left, top, width and height proc init() { local i, j rows=2 vb = new VBox() hblist = new List() glist = new List() vb.intercept(1) glist.append(new Graph(0)) glist.object(0).view(0, -80, 100, 40, 930, 304, 300.48, 200.32) glist.append(new Graph(0)) glist.object(1).view(0, 0, 100, 0.01, 930, 304, 300.48, 200.32) glist.append(new Graph(0)) glist.object(2).view(0, 0, 100, 1, 930, 304, 300.48, 200.32) glist.append(new Graph(0)) glist.object(3).view(0, 0, 100, 0.1 , 930, 304, 300.48, 200.32) vb.intercept(0) vb.map("Spine variables", $1, $2, $3, $4) sprint(cmd,"graphList[0].append(%s.glist.object(0))", this) execute1(cmd) sprint(cmd,"graphList[2].append(%s.glist.object(1))", this) execute1(cmd) sprint(cmd,"graphList[2].append(%s.glist.object(2))", this) execute1(cmd) sprint(cmd,"graphList[2].append(%s.glist.object(3))", this) execute1(cmd) rp = new RPlot() gu = new GraphUtils() areas = new Vector() } // // addvar(NmdaAmpaSpineSynStim input, double col, double linewidth) // Add voltage, calcium concntration, block value and calcium current from INPUT with particular // colour COL and linewidth LINEWIDTH // proc addvar() { sprint(cmd,"%s.glist.object(0).addvar(\"%s.spine.head.v( 0.5 )\",%d,%d)", this, $o1, $2, $3) execute1(cmd) sprint(cmd,"%s.glist.object(1).addvar(\"%s.spine.head.cai( 0.5 )\",%d,%d)", this, $o1, $2, $3) execute1(cmd) sprint(cmd,"%s.glist.object(2).addvar(\"%s.nmdasyn.b\",%d,%d)", this, $o1, $2, $3) execute1(cmd) sprint(cmd,"%s.glist.object(3).addvar(\"%s.nmdasyn.ica\",%d,%d)", this, $o1, $2, $3) execute1(cmd) sprint(cmd,"%s.glist.object(3).addvar(\"%s.ampasyn.ica\",%d,%d)", this, $o1, $2, $3) execute1(cmd) sprint(cmd,"%s.glist.object(3).addvar(\"%s.spine.head.ica( 0.5 )\",%d,%d)", this, $o1, $2, $3) execute1(cmd) $o1.spine.head areas.append(area(0.5)) } // rprintfile(String epsfilename, Double SaveFile) proc rprintfile() { local i, j if (numarg() == 1) { rp.create_rfile() } if (numarg() == 2) { if ($2 != 0) { rp.create_rfile($s1) } } rp.start_plot($s1) rp.set_mfrow(rows,1) for i=0,rows-1 { rp.add_graph(glist.object(i)) } rp.end_plot() rp.run() } // // save(File FILE) // savie recordings from all panels to file handle FILE // proc save() { localobj file file = $o1 xvl = new List() yvl = new List() file.printvec("areas",areas) gu.getlines_list(glist.object(0),xvl,yvl) file.printlistasmat("tvsyn",xvl) file.printlistasmat("vsyn",yvl) xvl.remove_all() yvl.remove_all() gu.getlines_list(glist.object(1),xvl,yvl) file.printlistasmat("tcasyn",xvl) file.printlistasmat("casyn",yvl) xvl.remove_all() yvl.remove_all() gu.getlines_list(glist.object(2),xvl,yvl) file.printlistasmat("tbsyn",xvl) file.printlistasmat("bsyn",yvl) xvl.remove_all() yvl.remove_all() gu.getlines_list(glist.object(3),xvl,yvl) file.printlistasmat("ticasyn",xvl) file.printlistasmat("icasyn",yvl) xvl.remove_all() yvl.remove_all() } endtemplate VCaGraph