Skip to content

Commit

Permalink
Merge pull request #2 from OpenSourceBrain/development
Browse files Browse the repository at this point in the history
Test on linux & mac 14
  • Loading branch information
pgleeson authored Apr 9, 2024
2 parents a0a47e7 + d0f33bd commit 281de79
Show file tree
Hide file tree
Showing 12 changed files with 271 additions and 12 deletions.
23 changes: 16 additions & 7 deletions .github/workflows/omv-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Continuous builds

on:
push:
branches: [ main, development ]
branches: [ main, development, experimental ]
pull_request:
branches: [ main, development ]
branches: [ main, development, experimental ]

jobs:
build:
Expand All @@ -14,15 +14,24 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [ 3.9 ]
runs-on: [ ubuntu-latest, macos-latest, macos-11 ]
engine: [ jNeuroML, jNeuroML_NEURON, jNeuroML_EDEN, jNeuroML_validate, EDEN, "EDEN:0.2.0" ]
runs-on: [ ubuntu-latest, macos-14 ]
engine:
- jNeuroML
- jNeuroML_NEURON
- jNeuroML_EDEN
- "jNeuroML_EDEN:0.2.3"
- jNeuroML_validate
- "EDEN:0.2.0"
- "EDEN:0.2.2"
- "EDEN:0.2.3"

python-version: [ "3.10" ]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pip-install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ jobs:
runs-on: [ubuntu-latest, macos-latest, windows-latest]

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@
x86_64
*_nrn.py
arm64
/NeuroML2/hhcell.hoc
/NeuroML2/report.*.txt
2 changes: 1 addition & 1 deletion NeuroML2/.test.2007.jnmleden.omt
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ experiments:
spike detection:
method: threshold
threshold: 0
tolerance: 0.000
tolerance: 3.667537832120739e-08 # due to slight difference on mac/linux of eden...
2 changes: 1 addition & 1 deletion NeuroML2/.test.eden.omt
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ experiments:
spike detection:
method: threshold
threshold: 0
tolerance: 0
tolerance: 3.667537832120739e-08 # due to slight difference on mac/linux of eden...
28 changes: 28 additions & 0 deletions NeuroML2/.test.ex5.eden.omt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Script for running automated tests on OSB using Travis-CI, see https://github.com/OpenSourceBrain/osb-model-validation

target: LEMS_NML2_Ex5_DetCell.xml
engine: jNeuroML_EDEN
mep: .test.ex5.mep
experiments:
v:
observables:
spike times:
file:
path: ex5_v.dat
columns: [0,1]
scaling: [1000, 1000]
spike detection:
method: threshold
threshold: 0
tolerance: 0.0035033174501254887
m:
observables:
spike times:
file:
path: ex5_vars.dat
columns: [0,1]
scaling: [1000, 1]
spike detection:
method: threshold
threshold: 0.9
tolerance: 0.0035249957767891716
28 changes: 28 additions & 0 deletions NeuroML2/.test.ex5.jnml.omt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Script for running automated tests on OSB using Travis-CI, see https://github.com/OpenSourceBrain/osb-model-validation

target: LEMS_NML2_Ex5_DetCell.xml
engine: jNeuroML
mep: .test.ex5.mep
experiments:
v:
observables:
spike times:
file:
path: ex5_v.dat
columns: [0,1]
scaling: [1000, 1000]
spike detection:
method: threshold
threshold: 0
tolerance: 0.005542225676726113
m:
observables:
spike times:
file:
path: ex5_vars.dat
columns: [0,1]
scaling: [1000, 1]
spike detection:
method: threshold
threshold: 0.9
tolerance: 0.005574638211610937
28 changes: 28 additions & 0 deletions NeuroML2/.test.ex5.jnmlnrn.omt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Script for running automated tests on OSB using Travis-CI, see https://github.com/OpenSourceBrain/osb-model-validation

target: LEMS_NML2_Ex5_DetCell.xml
engine: jNeuroML_NEURON
mep: .test.ex5.mep
experiments:
v:
observables:
spike times:
file:
path: ex5_v.dat
columns: [0,1]
scaling: [1000, 1000]
spike detection:
method: threshold
threshold: 0
tolerance: 0
m:
observables:
spike times:
file:
path: ex5_vars.dat
columns: [0,1]
scaling: [1000, 1]
spike detection:
method: threshold
threshold: 0.9
tolerance: 0
9 changes: 9 additions & 0 deletions NeuroML2/.test.ex5.mep
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
system: Test Ex0

experiments:
v:
expected:
spike times: [102.22, 118.46, 134.5, 150.51999999999998, 166.55, 182.57999999999998, 198.6, 214.63, 230.65, 246.68, 262.71, 278.72999999999996, 294.76000000000005, 310.79, 326.81, 342.84, 358.86, 374.89, 390.92, 406.94, 422.97, 439.0, 455.02, 471.05, 487.07, 503.09999999999997, 519.13, 535.15, 551.18, 567.2, 583.23, 599.26, 615.2800000000001, 631.3100000000001, 647.34, 663.3599999999999, 679.3900000000001, 695.41, 711.4399999999999, 727.4699999999999, 743.49, 759.52, 775.55, 791.57, 807.6, 823.62, 839.65, 855.68, 871.7, 887.73]
m:
expected:
spike times: [102.44, 118.69, 134.72, 150.75, 166.77, 182.79999999999998, 198.83, 214.85000000000002, 230.88, 246.9, 262.93, 278.96, 294.98, 311.01, 327.04, 343.06, 359.09000000000003, 375.11, 391.14, 407.16999999999996, 423.19, 439.22, 455.25, 471.27000000000004, 487.3, 503.32, 519.35, 535.38, 551.4, 567.43, 583.45, 599.48, 615.51, 631.5300000000001, 647.5600000000001, 663.59, 679.61, 695.64, 711.66, 727.6899999999999, 743.72, 759.74, 775.77, 791.8, 807.8199999999999, 823.85, 839.87, 855.9, 871.93, 887.95]
64 changes: 64 additions & 0 deletions NeuroML2/LEMS_NML2_Ex5_DetCell.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<Lems>

<!-- Example with Simple cell specifying segment details-->

<!-- This is a file which can be read and executed by the LEMS Interpreter.
It imports the LEMS definitions of the core NeuroML 2 Components,
imports in "pure" NeuroML 2 and contains some LEMS elements for running
a simulation -->


<Target component="sim1" reportFile="report.ex5.txt"/>

<Include file="Cells.xml"/>
<Include file="Networks.xml"/>
<Include file="Simulation.xml"/>


<!-- Including file with a <neuroml> root, a "real" NeuroML 2 file -->
<Include file="NML2_SingleCompHHCell.nml"/>


<Simulation id="sim1" length="1000ms" step="0.01ms" target="net1">

<Display id="d1" title="Ex5: HH cell with simple morphology: voltage" timeScale="1ms" xmin="0" xmax="300" ymin="-90" ymax="50">
<Line id="v" quantity="hhpop[0]/v" scale="1mV" color="#cccccc" timeScale="1ms"/>
<Line id="spiking" quantity="hhpop[0]/spiking" scale="0.1V" color="#004040" timeScale="1ms"/>
<!--<Line id="l3" quantity="hhpop[0]/debugVal" scale="1V" color="#999999" timeScale="1ms"/>-->
</Display>
<Display id="d2" title="Ex5: HH cell with simple morphology: rate variables" timeScale="1ms" xmin="0" xmax="300" ymin="-0.1" ymax="1.1">
<Line id="m" quantity="hhpop[0]/bioPhys1/membraneProperties/naChans/naChan/m/q" scale="1" color="#000000" timeScale="1ms"/>
<Line id="h" quantity="hhpop[0]/bioPhys1/membraneProperties/naChans/naChan/h/q" scale="1" color="#ff0000" timeScale="1ms"/>
<Line id="n" quantity="hhpop[0]/bioPhys1/membraneProperties/kChans/kChan/n/q" scale="1" color="#0000ff" timeScale="1ms"/>
</Display>
<Display id="d3" title="Ex5: HH cell with simple morphology: current densities" timeScale="1ms" xmin="0" xmax="300" ymin="-0.1" ymax="1.1">
<Line id="ina" quantity="hhpop[0]/bioPhys1/membraneProperties/naChans/iDensity" scale="1" color="#000000" timeScale="1ms"/>
<Line id="ik" quantity="hhpop[0]/bioPhys1/membraneProperties/kChans/iDensity" scale="1" color="#ff0000" timeScale="1ms"/>
</Display>
<Display id="d4" title="Ex5: HH cell with simple morphology: conductance densities" timeScale="1ms" xmin="0" xmax="300" ymin="-50" ymax="350">
<Line id="gna" quantity="hhpop[0]/bioPhys1/membraneProperties/naChans/gDensity" scale="1" color="#000000" timeScale="1ms"/>
<Line id="gk" quantity="hhpop[0]/bioPhys1/membraneProperties/kChans/gDensity" scale="1" color="#ff0000" timeScale="1ms"/>
</Display>


<OutputFile id="of0" fileName="ex5_v.dat">
<OutputColumn id="v" quantity="hhpop[0]/v"/>
</OutputFile>

<OutputFile id="of1" fileName="ex5_vars.dat">
<OutputColumn id="m" quantity="hhpop[0]/bioPhys1/membraneProperties/naChans/naChan/m/q"/>
<OutputColumn id="h" quantity="hhpop[0]/bioPhys1/membraneProperties/naChans/naChan/h/q"/>
<OutputColumn id="n" quantity="hhpop[0]/bioPhys1/membraneProperties/kChans/kChan/n/q"/>
</OutputFile>

<!-- Not supported by EDEN...
<OutputFile id="of2" fileName="results/ex5_curr_dens.dat">
<OutputColumn id="ina" quantity="hhpop[0]/bioPhys1/membraneProperties/naChans/iDensity"/>
<OutputColumn id="ik" quantity="hhpop[0]/bioPhys1/membraneProperties/kChans/iDensity"/>
</OutputFile>-->


</Simulation>


</Lems>
90 changes: 90 additions & 0 deletions NeuroML2/NML2_SingleCompHHCell.nml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>

<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 ../Schemas/NeuroML2/NeuroML_v2beta4.xsd"
id="NML2_SingleCompHHCell">

<!-- Single compartment cell with HH channels -->

<!-- This is a "pure" NeuroML 2 file. It can be included in a LEMS file for use in a simulaton
by the LEMS interpreter, see LEMS_NML2_Ex5_DetCell.xml -->

<ionChannelHH id="passiveChan" conductance="10pS">
<notes>Leak conductance</notes>
</ionChannelHH>


<ionChannelHH id="naChan" conductance="10pS" species="na">
<notes>Na channel</notes>

<gateHHrates id="m" instances="3">
<forwardRate type="HHExpLinearRate" rate="1per_ms" midpoint="-40mV" scale="10mV"/>
<reverseRate type="HHExpRate" rate="4per_ms" midpoint="-65mV" scale="-18mV"/>
</gateHHrates>

<gateHHrates id="h" instances="1">
<forwardRate type="HHExpRate" rate="0.07per_ms" midpoint="-65mV" scale="-20mV"/>
<reverseRate type="HHSigmoidRate" rate="1per_ms" midpoint="-35mV" scale="10mV"/>
</gateHHrates>

</ionChannelHH>


<ionChannelHH id="kChan" conductance="10pS" species="k">

<gateHHrates id="n" instances="4">
<forwardRate type="HHExpLinearRate" rate="0.1per_ms" midpoint="-55mV" scale="10mV"/>
<reverseRate type="HHExpRate" rate="0.125per_ms" midpoint="-65mV" scale="-80mV"/>
</gateHHrates>

</ionChannelHH>



<cell id="hhcell">

<morphology id="morph1">
<segment id="0" name="soma">
<proximal x="0" y="0" z="0" diameter="17.841242"/> <!--Gives a convenient surface area of 1000.0 um^2-->
<distal x="0" y="0" z="0" diameter="17.841242"/>
</segment>

<segmentGroup id="soma_group">
<member segment="0"/>
</segmentGroup>

</morphology>

<biophysicalProperties id="bioPhys1">

<membraneProperties>

<channelDensity id="leak" ionChannel="passiveChan" condDensity="3.0 S_per_m2" erev="-54.3mV" ion="non_specific"/>
<channelDensity id="naChans" ionChannel="naChan" condDensity="120.0 mS_per_cm2" erev="50.0 mV" ion="na"/>
<channelDensity id="kChans" ionChannel="kChan" condDensity="360 S_per_m2" erev="-77mV" ion="k"/>

<spikeThresh value="-20mV"/>
<specificCapacitance value="1.0 uF_per_cm2"/>
<initMembPotential value="-65mV"/>

</membraneProperties>

<intracellularProperties>
<resistivity value="0.03 kohm_cm"/> <!-- Note: not used in single compartment simulations -->
</intracellularProperties>

</biophysicalProperties>

</cell>

<pulseGenerator id="pulseGen1" delay="100ms" duration="800ms" amplitude="0.08nA"/>


<network id="net1">
<population id="hhpop" component="hhcell" size="1"/>
<explicitInput target="hhpop[0]" input="pulseGen1"/>
</network>

</neuroml>

3 changes: 2 additions & 1 deletion NeuroML2/clean.sh
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
rm x86_64 *.c *.so *.dat
rm -rf x86_64 arm64
mv *nrn.py LEMS*_eden.py *.c *.so *.dat *.mod *txt *.hoc /tmp

0 comments on commit 281de79

Please sign in to comment.