Skip to content

Commit 4fa3145

Browse files
authored
Merge pull request #69 from openworm/development
Add intial nmllite version
2 parents f36b01c + 49d0ccd commit 4fa3145

5 files changed

Lines changed: 195 additions & 0 deletions

File tree

.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,15 @@ OpenWormMuscleModel.egg-info
4141
/NeuroML2/*_main.json
4242
arm64
4343
/NeuroML2/LEMS_NeuronMuscle_eden.py
44+
/NeuroML2/nmllite/CaPool.nml
45+
/NeuroML2/nmllite/IClamp_SingleCompMuscle.gv.png
46+
/NeuroML2/nmllite/IClamp_SingleCompMuscle.net.png
47+
/NeuroML2/nmllite/LEMS_Sim_IClamp_SingleCompMuscle.png
48+
/NeuroML2/nmllite/LEMS_Sim_IClamp_SingleCompMuscle.xml
49+
/NeuroML2/nmllite/Leak.channel.nml
50+
/NeuroML2/nmllite/*dat
51+
/NeuroML2/nmllite/SingleCompMuscle.cell.nml
52+
/NeuroML2/nmllite/ca_boyle.channel.nml
53+
/NeuroML2/nmllite/k_fast.channel.nml
54+
/NeuroML2/nmllite/k_slow.channel.nml
55+
/NeuroML2/nmllite/report.Sim_IClamp_SingleCompMuscle.txt
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
from neuromllite import *
2+
from neuromllite.NetworkGenerator import *
3+
from neuromllite.utils import create_new_model
4+
import sys
5+
6+
sys.path.append("..")
7+
8+
9+
def generate(cell, duration=45, config='IClamp',parameters = None):
10+
11+
reference = "%s_%s"%(config, cell)
12+
13+
cell_id = '%sCell'%cell
14+
cell_nmll = Cell(id=cell_id, neuroml2_source_file='../%s.cell.nml'%(cell))
15+
16+
################################################################################
17+
### Add some inputs
18+
19+
if 'IClamp' in config:
20+
21+
if not parameters:
22+
parameters = {}
23+
parameters['stim_amp'] = '700pA'
24+
parameters['offset_stim_amp'] = '-120 pA'
25+
26+
input_source0 = InputSource(id='iclamp_stim',
27+
neuroml2_input='PulseGenerator',
28+
parameters={'amplitude':'stim_amp', 'delay':'5ms', 'duration':'20ms'})
29+
30+
input_source1 = InputSource(id='iclamp_offset',
31+
neuroml2_input='PulseGenerator',
32+
parameters={'amplitude':'offset_stim_amp', 'delay':'0ms', 'duration':'10000ms'})
33+
34+
35+
else:
36+
37+
if not parameters:
38+
parameters = {}
39+
parameters['average_rate'] = '100 Hz'
40+
parameters['number_per_cell'] = '10'
41+
42+
input_source0 = InputSource(id='pfs0',
43+
neuroml2_input='PoissonFiringSynapse',
44+
parameters={'average_rate':'average_rate',
45+
'synapse':syn_exc.id,
46+
'spike_target':"./%s"%syn_exc.id})
47+
48+
sim, net = create_new_model(reference,
49+
duration,
50+
dt=0.025, # ms
51+
temperature=34, # degC
52+
default_region='Worm',
53+
parameters = parameters,
54+
cell_for_default_population=cell_nmll,
55+
input_for_default_population=input_source0)
56+
57+
net.input_sources.append(input_source1)
58+
net.inputs.append(Input(id='input_offset',
59+
input_source=input_source1.id,
60+
population=net.populations[0].id,
61+
percentage=100))
62+
net.to_json_file()
63+
64+
return sim, net
65+
66+
67+
68+
if __name__ == "__main__":
69+
70+
sim, net = generate('SingleCompMuscle', 45, config="IClamp")
71+
72+
73+
check_to_generate_or_run(sys.argv, sim)
74+
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
{
2+
"IClamp_SingleCompMuscle": {
3+
"version": "NeuroMLlite v0.5.9",
4+
"notes": "A network model: IClamp_SingleCompMuscle",
5+
"parameters": {
6+
"stim_amp": "700pA",
7+
"offset_stim_amp": "-120 pA"
8+
},
9+
"cells": {
10+
"SingleCompMuscleCell": {
11+
"neuroml2_source_file": "../SingleCompMuscle.cell.nml"
12+
}
13+
},
14+
"input_sources": {
15+
"iclamp_stim": {
16+
"parameters": {
17+
"amplitude": "stim_amp",
18+
"delay": "5ms",
19+
"duration": "20ms"
20+
},
21+
"neuroml2_input": "PulseGenerator"
22+
},
23+
"iclamp_offset": {
24+
"parameters": {
25+
"amplitude": "offset_stim_amp",
26+
"delay": "0ms",
27+
"duration": "10000ms"
28+
},
29+
"neuroml2_input": "PulseGenerator"
30+
}
31+
},
32+
"regions": {
33+
"Worm": {
34+
"x": 0.0,
35+
"y": 0.0,
36+
"z": 0.0,
37+
"width": 1000.0,
38+
"height": 100.0,
39+
"depth": 1000.0
40+
}
41+
},
42+
"populations": {
43+
"pop_SingleCompMuscleCell": {
44+
"size": 1,
45+
"component": "SingleCompMuscleCell",
46+
"properties": {
47+
"color": "0.8 0 0"
48+
},
49+
"random_layout": {
50+
"region": "Worm"
51+
}
52+
}
53+
},
54+
"inputs": {
55+
"Stim_iclamp_stim": {
56+
"input_source": "iclamp_stim",
57+
"population": "pop_SingleCompMuscleCell",
58+
"percentage": 100
59+
},
60+
"input_offset": {
61+
"input_source": "iclamp_offset",
62+
"population": "pop_SingleCompMuscleCell",
63+
"percentage": 100
64+
}
65+
},
66+
"temperature": 34.0
67+
}
68+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<neuroml xmlns="http://www.neuroml.org/schema/neuroml2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.neuroml.org/schema/neuroml2 https://raw.github.com/NeuroML/NeuroML2/development/Schemas/NeuroML2/NeuroML_v2.3.1.xsd" id="IClamp_SingleCompMuscle">
2+
<notes>Generated by NeuroMLlite v0.5.9
3+
Generated network: IClamp_SingleCompMuscle
4+
Generation seed: 1234
5+
NeuroMLlite parameters:
6+
offset_stim_amp = -120 pA
7+
stim_amp = 700pA</notes>
8+
<include href="../SingleCompMuscle.cell.nml"/>
9+
<pulseGenerator id="iclamp_stim" delay="5ms" duration="20ms" amplitude="700pA"/>
10+
<pulseGenerator id="iclamp_offset" delay="0ms" duration="10000ms" amplitude="-120 pA"/>
11+
<network id="IClamp_SingleCompMuscle" type="networkWithTemperature" temperature="34.0degC">
12+
<notes>A network model: IClamp_SingleCompMuscle</notes>
13+
<property tag="recommended_dt_ms" value="0.025"/>
14+
<property tag="recommended_duration_ms" value="45.0"/>
15+
<population id="pop_SingleCompMuscleCell" component="SingleCompMuscleCell" size="1" type="populationList">
16+
<property tag="color" value="0.8 0 0"/>
17+
<property tag="region" value="Worm"/>
18+
<instance id="0">
19+
<location x="966.453535692138757" y="44.073259917535268" z="7.491470058587191"/>
20+
</instance>
21+
</population>
22+
<inputList id="Stim_iclamp_stim" population="pop_SingleCompMuscleCell" component="iclamp_stim">
23+
<input id="0" target="../pop_SingleCompMuscleCell/0/SingleCompMuscleCell" destination="synapses"/>
24+
</inputList>
25+
<inputList id="input_offset" population="pop_SingleCompMuscleCell" component="iclamp_offset">
26+
<input id="0" target="../pop_SingleCompMuscleCell/0/SingleCompMuscleCell" destination="synapses"/>
27+
</inputList>
28+
</network>
29+
</neuroml>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"Sim_IClamp_SingleCompMuscle": {
3+
"version": "NeuroMLlite v0.5.9",
4+
"network": "IClamp_SingleCompMuscle.json",
5+
"duration": 45.0,
6+
"dt": 0.025,
7+
"seed": 12345,
8+
"record_traces": {
9+
"all": "*"
10+
}
11+
}
12+
}

0 commit comments

Comments
 (0)