/*----------------------------------------------------------------------------
demo file for first order kinetic synapse mechanism
---------------------------------------------------
This file provides a simulation of glutamaterergic EPSP's in a
passive compartment. A presyaptic compartment (PRE) is created and
contains Hodgkin-Huxley Na/K currents for generating action potentials.
A current pulse is injected in PRE to elicit a train of spikes.
For each spike an EPSP is generated in the postsynaptic compartment
(POST). The number of presynaptic spikes can be adjusted by changing
the pulse duration (stim.dur).
Whole-cell recorded postsynaptic currents mediated by NMDA receptors
(Hessler et al., Nature 366: 569-572, 1993) were used to estimate the
parameters of the present simulations; the fit was performed using a
simplex algorithm (see Destexhe, A., Mainen, Z.F. and Sejnowski, T.J.
Fast kinetic models for simulating AMPA, NMDA, GABA(A) and GABA(B)
receptors. In: Computation and Neural Systems, Vol. 4, Kluwer
Academic Press, in press, 1995). The voltage-dependence of the Mg2+
block of the NMDA was modeled by an instantaneous function, assuming
that Mg2+ binding was very fast (see Jahr & Stevens, J. Neurosci 10:
1830-1837, 1990; Jahr & Stevens, J. Neurosci 10: 3178-3182, 1990).
To see the voltage-dependence of the NMDA response, play with different
values of the resting membrane potential (e_pas in POST).
Alain Destexhe, The Salk Institute, 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() // crate control menu
//----------------------------------------------------------------------------
// general parameters
//----------------------------------------------------------------------------
dt=0.025
tstop = 150
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 = 10
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 NMDA() // create synapse
POST c.loc(0.5) // assign postsynaptic compartment
setpointer c.pre, PRE.v(0.5) // assign presynaptic compartment
Cmax_NMDA = 1 // (mM) max transmitter concentration
Cdur_NMDA = 1 // (ms) transmitter duration (rising phase)
Alpha_NMDA = 0.072 // (/ms mM) forward (binding) rate
Beta_NMDA = 0.0066 // (/ms) backward (unbinding) rate
Erev_NMDA = 0 // (mV) reversal potential
Prethresh_NMDA = 0 // (mV) voltage level nec for release
Deadtime_NMDA = 1 // (ms) mimimum time between release events
mg_NMDA = 1 // (mM) external Mg++ concentration
c.gmax = 0.001 // (umho) maximum conductance
//----------------------------------------------------------------------------
// add graphs
//----------------------------------------------------------------------------
addgraph("PRE.v(0.5)",-90,40)
addgraph("c.C",0,1)
g[1].addvar("c.R",1,0)
addgraph("c.i",-0.005,0.00001)
addgraph("POST.v(0.5)",v_init-5,v_init+20)
|