-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathampa.hoc
134 lines (95 loc) · 3.93 KB
/
ampa.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
/*----------------------------------------------------------------------------
Simplified kinetic synapse mechanism
------------------------------------
Demo file to show the behavior of a synaptic currents mediated by
glutamate AMPA/kainate 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.025
tstop = 40 // 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)
// note: for older versions of neuron, use PulseStim instead of IClamp
stim.del = 2
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 AMPA() // create synapse
POST c.loc(0.5) // assign postsynaptic compartment
setpointer c.pre, PRE.v(0.5) // assign presynaptic compartment
Cmax_AMPA = 1 // (mM) max transmitter concentration
Cdur_AMPA = 1 // (ms) transmitter duration (rising phase)
Alpha_AMPA = 1.1 // (/ms mM) forward (binding) rate
Beta_AMPA = 0.19 // (/ms) backward (unbinding) rate
Erev_AMPA = 0 // (mV) reversal potential
Prethresh_AMPA = 0 // (mV) voltage level nec for release
Deadtime_AMPA = 1 // (ms) mimimum time between release events
c.gmax = 0.0001 // (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-2,v_init+8)