-
Notifications
You must be signed in to change notification settings - Fork 1
/
timing_db.hoc
140 lines (123 loc) · 2.17 KB
/
timing_db.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
140
load_file("nrngui.hoc")
cvode.active(1)
Rm = 10000
CmSoma= 1
RaSoma=150
Vrest = -65
dt = 0.05
gna = .015
gkdr = 0.002
celsius = 34.0
ka = 0.025
gavre=1.
gdeve=0.
gavri=0.15
gdevi=0.0
sd=0
tstop=1000
objref nc, nci, g, b, rsyn, rsyni, apc
create soma, apical
connect soma(1), apical(0)
access soma
apc = new APCount(0.5)
apc.thresh=0
apical {
rsyn = new pnoise(0.1)
rsyni = new pnoise(0.1)
nc = new NetCon(rsyn,rsyn)
nci = new NetCon(rsyni,rsyni)
}
b = new VBox()
b.intercept(1)
g = new Graph()
g.size(0,tstop,-70,30)
g.addvar("soma.v(0.5)",2,1, 2*tstop,0,2)
g.color(1)
g.label(0.3,0.9,"production of a 0.5 sec interval")
g.xaxis(1)
g.begin()
xpanel("")
xbutton("run", "runu()")
xvalue("inhibition","gavri")
xpanel()
b.intercept(0)
b.map()
meant=50
rsyn.e=0
rsyn.alp=2.4
rsyn.eps=3
rsyn.bet=1
rsyn.count=0
rsyn.start=0
rsyn.gavr=gavre
rsyn.meant=meant
rsyn.type=-1
rsyn.sd=sd
meanti=25
rsyni.e=-80
rsyni.alp=3.5
rsyni.eps=20
rsyni.bet=1
rsyni.count=0
rsyni.start=0
rsyni.meant=meanti
rsyni.rfreq=0
rsyni.type=-1
rsyni.sd=0
soma { L=10 diam=10 nseg=1
insert na3 gbar_na3=gna ar2_na3=1
insert kdr gkdrbar_kdr=gkdr
insert kap gkabar_kap = ka
insert pas e_pas=Vrest g_pas = 1/Rm Ra=RaSoma cm=CmSoma
}
apical { L=400 diam=1 nseg=10
insert na3 gbar_na3=gna ar2_na3=1
insert kdr gkdrbar_kdr=gkdr
insert kap gkabar_kap = ka
insert pas e_pas=Vrest g_pas = 1/Rm Ra=RaSoma cm=CmSoma
}
proc init() {
t=0
forall {
v=Vrest
ena=55
ek=-90
}
finitialize(v)
fcurrent()
forall {e_pas=v+(ina+ik)/g_pas}
nc.event(0)
nci.event(0)
cvode.re_init()
}
proc step() {
fadvance()
g.plot(t)
g.flush()
doNotify()
}
proc run() {
g.begin()
init()
while(apc.n<5 && t<tstop) { step()}
}
proc runu() {
print " production of a 0.5 sec interval"
sum=0
k=0
for i=0,4 {
t=0
rsyn.rfreq=0
rsyni.gavr=gavri
run()
if (t<tstop) {
k=k+1
print " subject n. ",i+1," produced ",t/1000, " sec"
sum=sum+t/1000
} else {
print " subject n. ",i+1,": simulation time too short "
}
}
print " average interval produced: ",sum/k, " sec"
}