-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpp_clus_synback_glu.hoc
More file actions
336 lines (318 loc) · 10.3 KB
/
Copy pathpp_clus_synback_glu.hoc
File metadata and controls
336 lines (318 loc) · 10.3 KB
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
/* distribute pulse packet inputs across dendrite */
//
// insert synaptic background activity conductance
//
// 10,000 synapses excitatory 0.1 Hz rate
// 1,000 synapses inhibitory 1 Hz rate
// inserted as 100 synapses each:
// E 100 synapses 10 Hz (1 spike in 100 ms)
// I 100 synapses 10 Hz (1 spike in 100 ms)
//
// cluster these synapses on apical dendrite section 640 to 740
//
// spike times drawn from uniform distribution
// Poisson trains were too complicated
// could not figure out how to insert multiple spike times into
// synapses
// clustered pulsepacket is injected into dendritic section
// dendA1_00000000000010 from (0.0) to (1.0) (=200 um)
//
// 110209 kampa@hifo.uzh.ch
printf("clus synback \n")
nsyn = 5
sigmasyn = 0 // in ms
maxsyn = 100
ii=0
forsec dendritic_only {ii=ii+1}
maxesyn = ii
maxisyn = ii
maxtime = 100
syngmax = 0.8
egmax = 0.001
igmax = 0.003
nmda2ampa = 0.6
objref r,p,er,ep,syn[nsyn],seedy,ns
//objref pploc1, pploc2,pploc3,pploc4,pploc5,pploc6
objref pploc[300]
pploc= new Vector()
objref esyn[maxesyn], isyn[maxisyn]
ns= new Random()
seedy = new Random()
dummy = seedy.uniform(0,1000)
ns =new Random()
r = new Random(7) // reproducible with seed
p = new Random(13)
// but not sure if repick does replace as well
objref randsec,randsecdend,randsecsyn
er = new Random()
dummy = er.discunif(0,maxesyn-1)
ep = new Random()
dummy = ep.discunif(0, maxtime)
for i=1,299 { pploc[i]= new SectionList ()}
/*
-------Complete-Dendritic-SectionList-----------------------------------
a1_1 pploc[1].append()
a1_11 pploc[2].append()
a1_111 pploc[3].append()
a1_1111 pploc[4].append()
a1_1112 pploc[5].append()
a1_112 pploc[6].append()
a1_1121 pploc[7].append()
a1_1122 pploc[8].append()
a1_12 pploc[9].append()
a1_121 pploc[10].append()
a1_1211 pploc[11].append()
a1_1212 pploc[12].append()
a1_122 pploc[13].append()
a1_1221 pploc[14].append()
a1_1222 pploc[15].append()
a1_12221 pploc[16].append()
a1_12222 pploc[17].append()
a2_1 pploc[18].append()
a2_11 pploc[19].append()
a2_111 pploc[20].append()
a2_1111 pploc[21].append()
a2_1112 pploc[22].append()
a2_112 pploc[23].append()
a2_1121 pploc[24].append()
a2_1122 pploc[25].append()
a2_12 pploc[26].append()
a2_121 pploc[27].append()
a2_1211 pploc[28].append()
a2_12111 pploc[29].append()
a2_121111 pploc[30].append()
a2_121112 pploc[31].append()
a2_12112 pploc[32].append()
a2_121121 pploc[33].append()
a2_1211211 pploc[34].append()
a2_1211212 pploc[35].append()
a2_12112121 pploc[36].append()
a2_12112122 pploc[37].append()
a2_121122 pploc[38].append()
a2_1212 pploc[39].append()
a2_12121 pploc[40].append()
a2_121211 pploc[41].append()
a2_121212 pploc[42].append()
a2_12122 pploc[43].append()
a2_122 pploc[44].append()
a2_1221 pploc[45].append()
a2_12211 pploc[46].append()
a2_12212 pploc[47].append()
a2_1222 pploc[48].append()
a2_12221 pploc[49].append()
a2_12222 pploc[50].append()
a3_1 pploc[51].append()
a3_11 pploc[52].append()
a3_111 pploc[53].append()
a3_1111 pploc[54].append()
a3_1112 pploc[55].append()
a3_11121 pploc[56].append()
a3_11122 pploc[57].append()
a3_112 pploc[58].append()
a3_1121 pploc[59].append()
a3_1122 pploc[60].append()
a3_12 pploc[61].append()
a3_121 pploc[62].append()
a3_1211 pploc[63].append()
a3_1212 pploc[64].append()
a3_12121 pploc[65].append()
a3_12122 pploc[66].append()
a3_121221 pploc[67].append()
a3_121222 pploc[68].append()
a3_1212221 pploc[69].append()
a3_1212222 pploc[70].append()
a3_12122221 pploc[71].append()
a3_12122222 pploc[72].append()
a3_121222221 pploc[73].append()
a3_1212222211 pploc[74].append()
a3_12122222111 pploc[75].append()
a3_12122222112 pploc[76].append()
a3_1212222212 pploc[77].append()
a3_121222222 pploc[78].append()
a3_1212222221 pploc[79].append()
a3_1212222222 pploc[80].append()
a3_12122222221 pploc[81].append()
a3_12122222222 pploc[82].append()
a3_122 pploc[83].append()
a3_1221 pploc[84].append()
a3_12211 pploc[85].append()
a3_12212 pploc[86].append()
a3_1222 pploc[87].append()
a4_1 pploc[88].append()
a4_11 pploc[89].append()
a4_111 pploc[90].append()
a4_1111 pploc[91].append()
a4_1112 pploc[92].append()
a4_11121 pploc[93].append()
a4_11122 pploc[94].append()
a4_112 pploc[95].append()
a4_1121 pploc[96].append()
a4_1122 pploc[97].append()
a4_12 pploc[98].append()
a4_121 pploc[99].append()
a4_122 pploc[100].append()
a4_1221 pploc[101].append()
a4_1222 pploc[102].append()
a4_12221 pploc[103].append()
a4_12222 pploc[104].append()
-------------------------------------------------------------------------------------
//L2-3 Basal Dendrites for PRS
-------------------------------------------------------------------------------------
a2_121 pploc[1].append()
a3_111 pploc[2].append()
a3_1211 pploc[3].append()
a4_1122 pploc[4].append()
a4_12221 pploc[5].append()
a1_12222 pploc[6].append()
a4_1121 pploc[7].append()
a3_12121 pploc[8].append()
a3_121221 pploc[9].append()
a1_1211 pploc[10].append()
-------------------------------------------------------------------------------------
//L2-3 Proximal Dendrites for PRS
-------------------------------------------------------------------------------------
a2_1211 pploc[1].append()
a2_1112 pploc[2].append()
a3_1111 pploc[3].append()
a3_1112 pploc[4].append()
a2_1222 pploc[5].append()
a2_1122 pploc[6].append()
a2_12212 pploc[7].append()
a1_1212 pploc[8].append()
a2_1212 pploc[9].append()
a4_1221 pploc[10].append()
-------------------------------------------------------------------------------------
//L2-3 Apical Dendrites for PRS
-------------------------------------------------------------------------------------
a2_1211212 pploc[1].append()
a2_1211211 pploc[2].append()
a2_121211 pploc[3].append()
a2_121212 pploc[4].append()
a2_12221 pploc[5].append()
a2_12222 pploc[6].append()
a3_1122 pploc[7].append()
a3_121222222 pploc[8].append()
a3_121222221 pploc[9].append()
a3_121221 pploc[10].append()
a3_1222 pploc[11].append()
a2_12122 pploc[12].append()
a3_11121 pploc[13].append()
a3_1111 pploc[14].append()
a3_1212221 pploc[15].append()
a4_1221 pploc[16].append()
a2_121122 pploc[18].append()
a3_12122222111 pploc[19].append()
a3_12122222112 pploc[20].append()
-------------------------------------------------------------------------------------
*/
a1_12222 pploc[1].append()
// insert pulse packet synapses and init onset time
/*
proc random_nonrep_dend() {local i
dummy = p.normal(0, sigmasyn^2)
// draw random numbers without redrawing same ones
randsecdend = new Vector()
dummy = r.discunif(0,numbranches-1)
for i=1,numbranches {
exists = 0
while (exists>-1) {
dummy = r.repick()
exists = randsecdend.indwhere("==",dummy)
}
randsecdend.append(dummy)
}
}
r = new Random()
p = new Random()
*/
proc random_nonrep_syn() {
dummy = p.normal(0, sigmasyn^2)
// draw random numbers without redrawing same ones
randsecsyn = new Vector()
dummy = r.discunif(0,maxsyn-1)
for k=1,nsyn {
exists = 0
while (exists>-1) {
dummy = r.repick()
exists = randsecsyn.indwhere("==",dummy)
}
randsecsyn.append(dummy)
}
}
proc init_pp() {local i
dummy = int(r.uniform(0.1,0.9)) // not 0 or 1, see below
dummy = p.normal(0, sigmasyn^2)
objref syn[nsyn]
m=0
numbranches=1
b=int(nsyn/numbranches)
//dsyn=1/b
//random_nonrep_dend()
for j=1,numbranches{
y=0
for i=1, b{
m=m+1
random_nonrep_syn()
forsec pploc [1]{
//print dendloc,b,synloc
tempsynloc = (randsecsyn.x(j-1))/100
if (tempsynloc<0.1){
synloc=0.1
} else if (tempsynloc>=1) {
synloc=0.9
} else {
synloc=tempsynloc
}
syn[m-1] = new glutamate(synloc)
syn[m-1].del=1020 + p.repick()
syn[m-1].gmax=syngmax
syn[m-1].ntar=nmda2ampa
}
}// synaptic distribution
}//number of branches
}//initpp
// insert background activity synapses
proc make_synback() {
// insert one synapse in each section
ii = 0
forsec dendritic_only {
esyn[ii] = new syn_g(0.5)
esyn[ii].gmax = egmax
esyn[ii].tau0=0.2
esyn[ii].tau1=2
isyn[ii] = new syn_gi(0.5)
isyn[ii].gmax = igmax
isyn[ii].tau0=0.6
isyn[ii].tau1=6
ii = ii+1
}
maxesyn = ii
maxisyn = ii
}
proc init_esyn() {local i
for i=1,maxesyn {
esyn[i-1].onset=1000 + ep.repick()
}
}
proc init_isyn() {local i
for i=1,maxisyn {
isyn[i-1].onset=1000 + ep.repick()
}
}
objref stfunc,shape
shape=new Shape(0)
shape.view(-792.112, -154.611, 1363.32, 1185.94, 5, 340, 300, 260)
shape.show(0)
proc make_shape_plot(){//DRAWS THE POINTS ON THE CELL
shape.point_mark_remove()
for i=0,nsyn-1{
//shape.point_mark(esyn[i], 5, 4, 5)
}
for i=0,nsyn-1{
//shape.point_mark(isyn[i], 3, 4, 5)
}
for i=0,nsyn-1{
shape.point_mark(syn[i], 2, 4, 4)
}
access soma
}///END SHAPE