Skip to content

Commit 2944109

Browse files
committed
Add granule cell & more tests
1 parent 87c44b4 commit 2944109

20 files changed

+1005
-1
lines changed

.github/workflows/omv-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
fail-fast: false
1616
matrix:
1717
python-version: [ 3.9 ]
18-
engine: [ jNeuroML, jNeuroML_NEURON, jNeuroML_validate, jNeuroML_Moose ]
18+
engine: [ jNeuroML, jNeuroML_NEURON, jNeuroML_validate, jNeuroML_Moose, jNeuroML_EDEN, jNeuroML_NetPyNE ]
1919

2020
steps:
2121
- uses: actions/checkout@v4

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,10 @@ tests.log
1212
x86_64
1313
arm64
1414
__pycache__
15+
*_code.gen.*
16+
/NeuroML2/GranuleCell/*.dat
17+
/NeuroML2/GranuleCell/*.mod
18+
/NeuroML2/GranuleCell/*.hoc
19+
*_eden.py
20+
*_netpyne.py
21+
/NeuroML2/GranuleCell/simulator.props
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Script for running automated tests on OSB models, see https://github.com/OpenSourceBrain/osb-model-validation
2+
3+
target: LEMS_GranuleCell_LowDt.xml
4+
engine: jNeuroML
5+
mep: .test.mep
6+
experiments:
7+
Current clamp:
8+
observables:
9+
spike times:
10+
file:
11+
path: Gran_0.dat
12+
columns: [0,1]
13+
scaling: [1000, 1000]
14+
spike detection:
15+
method: threshold
16+
threshold: 0
17+
tolerance: 0.005045 # relatively large tolerance due to inaccuracy of jLEMS's simple numerical integration methods
18+
Ca concentration:
19+
observables:
20+
spike times:
21+
file:
22+
path: Gran_0.Gran_CaPool_98_CONC_ca.dat
23+
columns: [0,1]
24+
scaling: [1000, 1]
25+
spike detection:
26+
method: threshold
27+
threshold: 0.0016
28+
tolerance: 0.005006
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Script for running automated tests on OSB models, see https://github.com/OpenSourceBrain/osb-model-validation
2+
3+
target: LEMS_GranuleCell_LowDt.xml
4+
engine: jNeuroML_EDEN
5+
mep: .test.mep
6+
experiments:
7+
Current clamp:
8+
observables:
9+
spike times:
10+
file:
11+
path: Gran_0.dat
12+
columns: [0,1]
13+
scaling: [1000, 1000]
14+
spike detection:
15+
method: threshold
16+
threshold: 0
17+
tolerance: 0.0009466481426621017
18+
Ca concentration:
19+
observables:
20+
spike times:
21+
file:
22+
path: Gran_0.Gran_CaPool_98_CONC_ca.dat
23+
columns: [0,1]
24+
scaling: [1000, 1]
25+
spike detection:
26+
method: threshold
27+
threshold: 0.0016
28+
tolerance: 0.0009426209285668374
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Script for running automated tests on OSB models, see https://github.com/OpenSourceBrain/osb-model-validation
2+
3+
target: LEMS_GranuleCell_LowDt.xml
4+
engine: jNeuroML_NetPyNE
5+
mep: .test.mep
6+
experiments:
7+
Current clamp:
8+
observables:
9+
spike times:
10+
file:
11+
path: Gran_0.dat
12+
columns: [0,1]
13+
scaling: [1000, 1000]
14+
spike detection:
15+
method: threshold
16+
threshold: 0
17+
tolerance: 0.0000
18+
Ca concentration:
19+
observables:
20+
spike times:
21+
file:
22+
path: Gran_0.Gran_CaPool_98_CONC_ca.dat
23+
columns: [0,1]
24+
scaling: [1000, 1]
25+
spike detection:
26+
method: threshold
27+
threshold: 0.0016
28+
tolerance: 0.0000
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Script for running automated tests on OSB models, see https://github.com/OpenSourceBrain/osb-model-validation
2+
3+
target: LEMS_GranuleCell_LowDt.xml
4+
engine: jNeuroML_NEURON
5+
mep: .test.mep
6+
experiments:
7+
Current clamp:
8+
observables:
9+
spike times:
10+
file:
11+
path: Gran_0.dat
12+
columns: [0,1]
13+
scaling: [1000, 1000]
14+
spike detection:
15+
method: threshold
16+
threshold: 0
17+
tolerance: 0.0000
18+
Ca concentration:
19+
observables:
20+
spike times:
21+
file:
22+
path: Gran_0.Gran_CaPool_98_CONC_ca.dat
23+
columns: [0,1]
24+
scaling: [1000, 1]
25+
spike detection:
26+
method: threshold
27+
threshold: 0.0016
28+
tolerance: 0.0000

NeuroML2/GranuleCell/.test.mep

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
system: Testing a single compartment cell
2+
3+
experiments:
4+
Current clamp:
5+
expected:
6+
spike times: [108.261, 135.871, 161.896, 187.363, 212.561, 237.626, 262.629, 287.602, 312.565, 337.526, 362.49, 387.457, 412.43, 437.406, 462.388, 487.373, 512.362, 537.354, 562.349, 587.346]
7+
Ca concentration:
8+
expected:
9+
spike times: [108.602, 136.257, 162.294, 187.764, 212.961, 238.024, 263.023, 287.994, 312.955, 337.913, 362.875, 387.841, 412.812, 437.788, 462.768, 487.752, 512.741, 537.732, 562.726, 587.723]
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Script for running automated tests on OSB using Travis-CI, see https://github.com/OpenSourceBrain/osb-model-validation
2+
# Still in development, subject to change without notice!!
3+
4+
# This test will validate all of the NeuroML 2 files in the current directory using: jnml -validate *.nml
5+
target: "*.nml"
6+
engine: jNeuroML_validate
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?xml version="1.0" encoding="ISO-8859-1"?>
2+
<neuroml xmlns="http://www.neuroml.org/schema/neuroml2" 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_v2beta4.xsd" id="GranPassiveCond">
3+
4+
<notes>ChannelML file containing a single Channel description</notes>
5+
6+
<ionChannel id="GranPassiveCond" conductance="10pS" type="ionChannelPassive">
7+
8+
<notes>Simple leak conductance for Granule cell</notes>
9+
10+
<annotation>
11+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
12+
<rdf:Description rdf:about="GranPassiveCond">
13+
14+
<bqmodel:isDescribedBy xmlns:bqmodel="http://biomodels.net/model-qualifiers/">
15+
<rdf:Bag>
16+
<rdf:li>Maex, R and De Schutter, E.
17+
Synchronization of Golgi and Granule Cell Firing in a Detailed Network Model of the
18+
cerebellar Granule Cell Layer. J Neurophysiol, Nov 1998; 80: 2521 - 2537</rdf:li>
19+
<rdf:li rdf:resource="http://www.ncbi.nlm.nih.gov/pubmed/9819260"/>
20+
</rdf:Bag>
21+
</bqmodel:isDescribedBy>
22+
23+
</rdf:Description>
24+
</rdf:RDF>
25+
</annotation>
26+
27+
</ionChannel>
28+
29+
</neuroml>
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<?xml version="1.0" encoding="ISO-8859-1"?>
2+
<neuroml xmlns="http://www.neuroml.org/schema/neuroml2" 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_v2beta4.xsd" id="Gran_CaHVA_98">
3+
4+
<notes>A channel from Maex, R and De Schutter, E. Synchronization of Golgi and Granule Cell Firing in a
5+
Detailed Network Model of the Cerebellar Granule Cell Layer</notes>
6+
7+
<ionChannel id="Gran_CaHVA_98" conductance="10pS" type="ionChannelHH" species="ca">
8+
9+
<notes>A High Voltage Activated Ca2+ channel</notes>
10+
11+
<annotation>
12+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
13+
<rdf:Description rdf:about="Gran_CaHVA_98">
14+
15+
<bqmodel:isDescribedBy xmlns:bqmodel="http://biomodels.net/model-qualifiers/">
16+
<rdf:Bag>
17+
<rdf:li>Maex, R and De Schutter, E.
18+
Synchronization of Golgi and Granule Cell Firing in a Detailed Network Model of the
19+
cerebellar Granule Cell Layer. J Neurophysiol, Nov 1998; 80: 2521 - 2537</rdf:li>
20+
<rdf:li rdf:resource="http://www.ncbi.nlm.nih.gov/pubmed/9819260"/>
21+
</rdf:Bag>
22+
</bqmodel:isDescribedBy>
23+
24+
25+
<bqbiol:isVersionOf xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
26+
<rdf:Bag>
27+
<rdf:li>Calcium channels</rdf:li>
28+
<rdf:li rdf:resource="http://senselab.med.yale.edu/neurondb/channelGene2.aspx#table1"/>
29+
</rdf:Bag>
30+
</bqbiol:isVersionOf>
31+
32+
</rdf:Description>
33+
</rdf:RDF>
34+
</annotation>
35+
36+
<gate id="m" type="gateHHrates" instances="2">
37+
<q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="17.350264793 degC"/>
38+
<!--Note: offset from ChannelML file incorporated into the midpoint of rates!!-->
39+
<forwardRate type="HHSigmoidRate" rate="1600per_s" scale="0.01388888889V" midpoint="0.015V"/>
40+
<reverseRate type="HHExpLinearRate" rate="100per_s" scale="-0.005V" midpoint="0.0011000000000000003V"/>
41+
</gate>
42+
43+
<gate id="h" type="gateHHrates" instances="1">
44+
<q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="17.350264793 degC"/>
45+
<!--Note: offset from ChannelML file incorporated into the midpoint of rates!!-->
46+
<forwardRate type="Gran_CaHVA_98_h_alpha_rate"/>
47+
<reverseRate type="Gran_CaHVA_98_h_beta_rate"/>
48+
</gate>
49+
50+
</ionChannel>
51+
52+
<ComponentType name="Gran_CaHVA_98_h_alpha_rate" extends="baseVoltageDepRate">
53+
<Constant name="TIME_SCALE" dimension="time" value="1 s"/>
54+
<Constant name="VOLT_SCALE" dimension="voltage" value="1 V"/>
55+
<Constant name="offset" dimension="voltage" value="0.010V"/>
56+
57+
<Dynamics>
58+
<DerivedVariable name="V" dimension="none" value="(v - offset) / VOLT_SCALE"/>
59+
<ConditionalDerivedVariable name="r" exposure="r" dimension="per_time">
60+
<Case condition="V .lt. ( -0.060 )" value="( 5.0 ) / TIME_SCALE"/>
61+
<Case value="( 5 * (exp (-50 * (V - (-0.060))))) / TIME_SCALE"/>
62+
</ConditionalDerivedVariable>
63+
</Dynamics>
64+
65+
</ComponentType>
66+
67+
<ComponentType name="Gran_CaHVA_98_h_beta_rate" extends="baseVoltageDepRate">
68+
<Constant name="TIME_SCALE" dimension="time" value="1 s"/>
69+
<Constant name="VOLT_SCALE" dimension="voltage" value="1 V"/>
70+
<Constant name="offset" dimension="voltage" value="0.010V"/>
71+
72+
<Dynamics>
73+
<DerivedVariable name="V" dimension="none" value="(v - offset) / VOLT_SCALE"/>
74+
<ConditionalDerivedVariable name="r" exposure="r" dimension="per_time">
75+
<Case condition="V .lt. ( -0.060 )" value="( 0 ) / TIME_SCALE"/>
76+
<Case value="( 5 - (5 * (exp (-50 * (V - (-0.060)))))) / TIME_SCALE"/>
77+
</ConditionalDerivedVariable>
78+
</Dynamics>
79+
80+
</ComponentType>
81+
82+
</neuroml>

0 commit comments

Comments
 (0)