-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdemo_gaba_neuralcomputation.oc
127 lines (88 loc) · 3.54 KB
/
demo_gaba_neuralcomputation.oc
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
/*----------------------------------------------------------------------------
demo file for first order kinetic synapse mechanism
---------------------------------------------------
GABA-A 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") //lets file run if clicked on in windows explorer
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 = 25 // 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 = 10 // 2 ms for single psp, 10 ms for train of psps
stim.amp = 0.1
//----------------------------------------------------------------------------
// insert postsynaptic mechansisms
//----------------------------------------------------------------------------
objectvar c
c = new GABA() // create synapse
POST c.loc(0.5) // assign postsynaptic compartment
setpointer c.pre, PRE.v(0.5) // assign presynaptic compartment
Cmax_GABA = 1 // (mM) max transmitter concentration
Cdur_GABA = 1 // (ms) transmitter duration (rising phase)
Alpha_GABA = 0.5 // (/ms mM) forward (binding) rate
Beta_GABA = 0.1 // (/ms) backward (unbinding) rate
Erev_GABA = -80 // (mV) reversal potential
Prethresh_GABA = 0 // (mV) voltage level nec for release
Deadtime_GABA = 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)
addgraph("c.C",0,1)
g[1].addvar("c.R",1,0)
addgraph("c.i",-0.00001,0.01)
addgraph("PRE.v(0.5)",-90,40)