forked from ModelDBRepository/267187
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGenerateExamples.py
92 lines (77 loc) · 2.44 KB
/
GenerateExamples.py
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
from neuromllite import *
from neuromllite.NetworkGenerator import *
from neuromllite.utils import create_new_model
import sys
def generate(cell, config, parameters=None):
reference = "%s_%s" % (config, cell)
cell_id = "%s" % cell
cell_nmll = Cell(id=cell_id, neuroml2_source_file="%s.cell.nml" % (cell))
amps = [-4, 0, 4, 8, 12, 16, 20]
stim_delay = 100
stim_dur = 500
post_stim = 100
extra_init = 0
if cell == "RMD":
amps = [-2, 2, 6, 10]
stim_delay = 10
stim_dur = 50
post_stim = 90
extra_init = 0
sim, net = create_new_model(
reference,
duration=extra_init + stim_delay + stim_dur + post_stim,
dt=0.025, # ms
temperature=34, # degC
default_region="Worm",
parameters=parameters,
cell_for_default_population=cell_nmll,
)
net.populations[0].size = len(amps)
for i in amps:
ins = InputSource(
id="iclamp_stim_%s" % str(i).replace("-", "min"),
neuroml2_input="PulseGenerator",
parameters={
"amplitude": "%spA" % i,
"delay": "%sms" % (extra_init + stim_delay),
"duration": "%sms" % (stim_dur),
},
)
net.input_sources.append(ins)
net.inputs.append(
Input(
id="input_%s" % ins.id,
input_source=ins.id,
population=net.populations[0].id,
cell_ids=[amps.index(i)],
)
)
if config == "Fig7B":
hyp_amp = -15
hyp_delay = 50
hyp_dur = 20
ins = InputSource(
id="iclamp_hyp",
neuroml2_input="PulseGenerator",
parameters={
"amplitude": "%spA" % hyp_amp,
"delay": "%sms" % (extra_init + stim_delay + stim_dur + hyp_delay),
"duration": "%sms" % (hyp_dur),
},
)
net.input_sources.append(ins)
net.inputs.append(
Input(
id="input_%s" % ins.id,
input_source=ins.id,
population=net.populations[0].id,
percentage=100,
)
)
net.to_json_file()
return sim, net
if __name__ == "__main__":
sim, net = generate("AWCon", config="Fig4C")
check_to_generate_or_run(sys.argv, sim)
sim, net = generate("RMD", config="Fig7B")
check_to_generate_or_run(sys.argv, sim)