-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnmda.hoc
138 lines (97 loc) · 4 KB
/
nmda.hoc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/*----------------------------------------------------------------------------
Simplified kinetic synapse mechanism
------------------------------------
Demo file to show the behavior of a synaptic currents mediated by
glutamate NMDA receptors, modeled using a minimal two-state kinetic
model.
Kinetic model from Destexhe, A., Mainen, Z.F. and Sejnowski, T.J.
Neural Computation, 6: 14-18, 1994.
See details in:
Destexhe, A., Mainen, Z.F. and Sejnowski, T.J. Kinetic models of
synaptic transmission. In: Methods in Neuronal Modeling (2nd edition;
edited by Koch, C. and Segev, I.), MIT press, Cambridge, 1998, pp. 1-25.
(electronic copy available at http://cns.iaf.cnrs-gif.fr)
Written by Alain Destexhe, Laval University, 1995
----------------------------------------------------------------------------*/
//----------------------------------------------------------------------------
// load and define general graphical procedures
//----------------------------------------------------------------------------
// xopen("$(NEURONHOME)/lib/hoc/stdrun.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])
}
if(ismenu==0) {
nrnmainmenu() // create main menu
nrncontrolmenu() // crate control menu
ismenu=1
}
//----------------------------------------------------------------------------
// general parameters
//----------------------------------------------------------------------------
dt=0.1
tstop = 500
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)
// note: for older versions of neuron, use PulseStim instead of IClamp
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 = 2 // (mM) physiological extracell magnesium
c.gmax = 0.0002 // (umho) maximum conductance
mg_NMDA = 0 // put in zero magnesium for the demo
//----------------------------------------------------------------------------
// 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.001, 0.0001)
addgraph("POST.v(0.5)",v_init-2,v_init+4)