/*---------------------------------------------------------------------------- demo file for first order kinetic synapse mechanism --------------------------------------------------- Glutamate postsynaptic currents; idem Fig.1 of neural Computation paper. Reference: Destexhe, A., Mainen, Z. and Sejnowski, T.J. An efficient method for computing synaptic conductances based on a kinetic model of receptor binding. Neural Computation, 6: 14-18, 1994. ----------------------------------------------------------------------------*/ //---------------------------------------------------------------------------- // load and define general graphical procedures //---------------------------------------------------------------------------- // xopen("$(NEURONHOME)/lib/hoc/stdrun.hoc") load_file("nrngui.hoc") objectvar g[20] // max 20 graphs ngraph = 0 proc addgraph() { local ii // define subroutine to add a new graph // addgraph("variable", minvalue, maxvalue) ngraph = ngraph+1 ii = ngraph-1 g[ii] = new Graph() g[ii].size(0,tstop,$2,$3) g[ii].xaxis() g[ii].yaxis() g[ii].addvar($s1,1,0) g[ii].save_name("graphList[0].") graphList[0].append(g[ii]) } // nrnmainmenu() // create main menu nrncontrolmenu() // create control menu //---------------------------------------------------------------------------- // general parameters //---------------------------------------------------------------------------- dt=0.025 tstop = 15 // 15 for single psp, 25 for train runStopAt = tstop steps_per_ms = 1/dt celsius = 36 v_init = -70 //---------------------------------------------------------------------------- // create compartments and insert passive properties //---------------------------------------------------------------------------- create PRE,POST forall { diam=10 L=10 insert pas g_pas=1/5000 e_pas=v_init } //---------------------------------------------------------------------------- // insert presynaptic mechanisms //---------------------------------------------------------------------------- access PRE // insert Hodgk-Hux. Na+ and K+ currents for spikes insert hh2 ek = -90 gnabar_hh2 = 0.1 gkbar_hh2 = 0.03 objectvar stim // insert current injection PRE stim = new IClamp(.5) // command for version nrn3a8 or newer // PRE stim = new PulseStim(.5) // command for older NEURON versions stim.del = 0 stim.dur = 2 // 2 ms for single psp, 10 ms for train of psps stim.amp = 0.1 //---------------------------------------------------------------------------- // insert postsynaptic mechansisms //---------------------------------------------------------------------------- objectvar c c = new GLU() // create synapse POST c.loc(0.5) // assign postsynaptic compartment setpointer c.pre, PRE.v(0.5) // assign presynaptic compartment Cmax_GLU = 1 // (mM) max transmitter concentration Cdur_GLU = 1 // (ms) transmitter duration (rising phase) Alpha_GLU = 2 // (/ms mM) forward (binding) rate Beta_GLU = 1 // (/ms) backward (unbinding) rate Erev_GLU = 0 // (mV) reversal potential Prethresh_GLU = 0 // (mV) voltage level nec for release Deadtime_GLU = 1 // (ms) mimimum time between release events c.gmax = 0.001 // (umho) maximum conductance //---------------------------------------------------------------------------- // add graphs //---------------------------------------------------------------------------- addgraph("POST.v(0.5)",v_init-5,v_init+20) addgraph("c.C",0,1) g[1].addvar("c.R",1,0) addgraph("c.i",-0.05,0.00001) addgraph("PRE.v(0.5)",-90,40)