-
Notifications
You must be signed in to change notification settings - Fork 1
/
gabab.hoc
139 lines (99 loc) · 4.15 KB
/
gabab.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
139
/*----------------------------------------------------------------------------
Simplified kinetic synapse mechanism
------------------------------------
Demo file to show the behavior of synaptic currents mediated by
GABA-B receptors, modeled using a minimal three-state kinetic model.
Kinetic model from Destexhe, A. and Sejnowski, T.J. Proc. Natl.
Acad. Sci. USA 92: 9515-9519, 1995.
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 = 1000
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 = 5
stim.dur = 28 // 2 ms for single presyn spike, 28 ms for burst of 10
stim.amp = 0.1
//----------------------------------------------------------------------------
// insert postsynaptic mechansisms
//----------------------------------------------------------------------------
objectvar c
c = new GABAb() // create synapse
POST c.loc(0.5) // assign postsynaptic compartment
setpointer c.pre, PRE.v(0.5) // assign presynaptic compartment
Cmax_GABAb = 1 // (mM) max transmitter concentration
Cdur_GABAb = 1 // (ms) transmitter duration (rising phase)
K1_GABAb = 0.09 // (/ms mM) forward binding rate to receptor
K2_GABAb = 0.0012 // (/ms) backward (unbinding) rate of receptor
K3_GABAb = 0.18 // (/ms) rate of G-protein production
K4_GABAb = 0.034 // (/ms) rate of G-protein decay
KD_GABAb = 100 // dissociation constant of K+ channel
n_GABAb = 4 // nb of binding sites of G-protein on K+
Erev_GABAb = -95 // (mV) reversal potential (E_K)
Prethresh_GABAb = 0 // (mV) voltage level nec for release
Deadtime_GABAb = 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.G",0,10)
addgraph("c.i",-0.0001,0.001)
addgraph("POST.v(0.5)",v_init-4,v_init+1)