diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 60b99d1..cfb639f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,5 @@ -# This workflow will build a Java project with Maven -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven -name: Test commits +name: Build all NML Java on: push: @@ -11,20 +9,21 @@ on: jobs: build: - runs-on: ubuntu-latest strategy: + fail-fast: false matrix: - java: [ 8, 11, 16, 17 ] + java: [ '8', '11', '16', '17', '19' ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v1 + uses: actions/setup-java@v3 with: java-version: ${{ matrix.java }} java-package: jdk + distribution: 'adopt' - name: Install NeuroML 2 with Maven run: | @@ -44,7 +43,7 @@ jobs: mvn dependency:tree ./jnml -v cd .. - + - name: Install OMV run: | pwd @@ -55,7 +54,7 @@ jobs: omv list -V env pip freeze - + - name: Test examples using OMV run: | cd $GITHUB_WORKSPACE/NeuroML2/LEMSexamples diff --git a/.github/workflows/omv-ci.yml b/.github/workflows/omv-ci.yml new file mode 100644 index 0000000..bec4a7c --- /dev/null +++ b/.github/workflows/omv-ci.yml @@ -0,0 +1,51 @@ +name: Run OMV tests + +on: + push: + branches: [ master, development, experimental, documentation_update, osb* ] + pull_request: + branches: [ master, development, experimental, documentation_update, osb* ] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [ 3.9 ] + engine: + - jNeuroML + - jNeuroML_Brian2 + - jNeuroML_EDEN + - jNeuroML_NEURON + - jNeuroML_NetPyNE + - jNeuroML_MOOSE + - jNeuroML_validate + - PyLEMS_NeuroML2 + + steps: + - uses: actions/checkout@v3 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + - name: Install OMV + run: | + pip install git+https://github.com/OpenSourceBrain/osb-model-validation + pip install scipy sympy matplotlib cython pandas tables + + pip install 'numpy<=1.23.0' # see https://github.com/OpenSourceBrain/osb-model-validation/issues/91 + + + - name: Run OMV tests on engine ${{ matrix.engine }} + run: | + omv all -V --engine=${{ matrix.engine }} + + - name: OMV final version info + run: | + omv list -V # list installed engines + env + pip list diff --git a/.gitignore b/.gitignore index 024d011..e58f53e 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,7 @@ examples/*.pov /LEMSexamples/test/x86_64 /LEMSexamples/report.ex*.txt /LEMSexamples/results/*.spikes +/LEMSexamples/*.gen.so +/LEMSexamples/tmp +arm64 +/examples/NML2_SingleCompHHCell.nml__flattened.xml diff --git a/HISTORY.md b/HISTORY.md index ca37e28..6c10873 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -8,6 +8,17 @@ and [LEMS](https://github.com/LEMS/LEMS), but also the Python ([libNeuroML](http **Only contributors who are not [NeuroML Editors](https://neuroml.org/editors) are specifically pointed out below.** +v2.3 / 2022-??-?? +-------------------- + +* **Renamed the main Schema from NeuroML_v2.2.xsd to [NeuroML_v2.3.xsd](https://github.com/NeuroML/NeuroML2/blob/master/Schemas/NeuroML2/NeuroML_v2.3).** + +* Added new cell type `` + + + +... + v2.2 / 2021-12-15 -------------------- diff --git a/LEMSexamples/LEMS_NML2_Ex15_CaDynamics.xml b/LEMSexamples/LEMS_NML2_Ex15_CaDynamics.xml index 69eeea7..24c5e96 100644 --- a/LEMSexamples/LEMS_NML2_Ex15_CaDynamics.xml +++ b/LEMSexamples/LEMS_NML2_Ex15_CaDynamics.xml @@ -253,7 +253,7 @@ - @@ -286,7 +286,7 @@ - + @@ -315,8 +315,8 @@ @@ -353,20 +353,21 @@ - + - + - + - + + @@ -392,11 +393,24 @@ - - @@ -405,4 +419,4 @@ - \ No newline at end of file + diff --git a/LEMSexamples/LEMS_NML2_Ex18_GHK.xml b/LEMSexamples/LEMS_NML2_Ex18_GHK.xml index 3eafedd..52d3502 100644 --- a/LEMSexamples/LEMS_NML2_Ex18_GHK.xml +++ b/LEMSexamples/LEMS_NML2_Ex18_GHK.xml @@ -13,7 +13,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -53,7 +53,7 @@ - + - + diff --git a/LEMSexamples/LEMS_NML2_Ex24_FractionalConductance.xml b/LEMSexamples/LEMS_NML2_Ex24_FractionalConductance.xml index 4772b6d..ab634d2 100644 --- a/LEMSexamples/LEMS_NML2_Ex24_FractionalConductance.xml +++ b/LEMSexamples/LEMS_NML2_Ex24_FractionalConductance.xml @@ -1,17 +1,17 @@ - + - - + + - + @@ -106,7 +106,7 @@ - + @@ -114,23 +114,23 @@ - - - + + + - + - + - - - + + + @@ -146,7 +146,7 @@ - + @@ -168,42 +168,50 @@ - + + - - + + + - - - - + + + + - - - + + + - - - + + + + - + + - + - - - - - - + + + + + + + + + + - + diff --git a/LEMSexamples/LEMS_NML2_Ex5_DetCell.xml b/LEMSexamples/LEMS_NML2_Ex5_DetCell.xml index 14fa879..2e745f8 100644 --- a/LEMSexamples/LEMS_NML2_Ex5_DetCell.xml +++ b/LEMSexamples/LEMS_NML2_Ex5_DetCell.xml @@ -3,8 +3,8 @@ @@ -20,7 +20,7 @@ - + @@ -39,20 +39,26 @@ - - + + - - - + + + - - - - - - + + + + + + + + - \ No newline at end of file + diff --git a/LEMSexamples/test/.test.ex0.jnml.omt b/LEMSexamples/test/.test.ex0.jnml.omt index 25f5aeb..16e55d7 100644 --- a/LEMSexamples/test/.test.ex0.jnml.omt +++ b/LEMSexamples/test/.test.ex0.jnml.omt @@ -14,7 +14,7 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.000103245345356 + tolerance: 0.00010324534535558631 iafTauRefPop0: observables: spike times: @@ -25,7 +25,7 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.000217391304348 + tolerance: 0.0002173913043479373 iafPop0: observables: spike times: @@ -47,4 +47,4 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.00029197080292 + tolerance: 0.00029197080291964994 diff --git a/LEMSexamples/test/.test.ex0.jnmleden.omt b/LEMSexamples/test/.test.ex0.jnmleden.omt new file mode 100644 index 0000000..51a8777 --- /dev/null +++ b/LEMSexamples/test/.test.ex0.jnmleden.omt @@ -0,0 +1,50 @@ +# Script for running automated tests on OSB using Travis-CI, see https://github.com/OpenSourceBrain/osb-model-validation + +target: ../LEMS_NML2_Ex0_IaF.xml +engine: jNeuroML_EDEN +mep: .test.ex0.mep +experiments: + iafTauPop0: + observables: + spike times: + file: + path: ../results/iaf_v.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: -55.1 + tolerance: 4.016467506678352e-08 + iafTauRefPop0: + observables: + spike times: + file: + path: ../results/iaf_v.dat + columns: [0,2] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: -55.1 + tolerance: 0.00010867391304343428 + iafPop0: + observables: + spike times: + file: + path: ../results/iaf_v.dat + columns: [0,3] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: -55.1 + tolerance: 0.00014932775619959672 + iafRefPop0: + observables: + spike times: + file: + path: ../results/iaf_v.dat + columns: [0,4] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: -55.1 + tolerance: 0.0002189781021897893 diff --git a/LEMSexamples/test/.test.ex1.jnmlbrian2.omt b/LEMSexamples/test/.test.ex1.jnmlbrian2.omt index 33f6646..fee3592 100644 --- a/LEMSexamples/test/.test.ex1.jnmlbrian2.omt +++ b/LEMSexamples/test/.test.ex1.jnmlbrian2.omt @@ -14,4 +14,4 @@ experiments: spike detection: method: threshold threshold: 0 - tolerance: 0.00307936823284 + tolerance: 0.0030793682328399945 diff --git a/LEMSexamples/test/.test.ex1.pylems.omt b/LEMSexamples/test/.test.ex1.pylems.omt index 168e9ab..20261fc 100644 --- a/LEMSexamples/test/.test.ex1.pylems.omt +++ b/LEMSexamples/test/.test.ex1.pylems.omt @@ -14,4 +14,4 @@ experiments: spike detection: method: threshold threshold: 0 - tolerance: 0.00317871 + tolerance: 0.0031787026920254624 diff --git a/LEMSexamples/test/.test.ex14.jnml.omt b/LEMSexamples/test/.test.ex14.jnml.omt index eb06c96..da29547 100644 --- a/LEMSexamples/test/.test.ex14.jnml.omt +++ b/LEMSexamples/test/.test.ex14.jnml.omt @@ -15,7 +15,7 @@ experiments: spike detection: method: threshold threshold: -50.1 - tolerance: 0.000448 + tolerance: 0.0004471414883424601 pop_IF_cond_alpha: observables: @@ -27,7 +27,7 @@ experiments: spike detection: method: threshold threshold: -50.1 - tolerance: 0.00062 + tolerance: 0.0006190161769562318 pop_EIF_cond_exp_isfa_ista: observables: @@ -39,7 +39,7 @@ experiments: spike detection: method: threshold threshold: -45 - tolerance: 0.00526 + tolerance: 0.005258009293225811 pop_HH_cond_exp: observables: @@ -51,7 +51,7 @@ experiments: spike detection: method: threshold threshold: 0 - tolerance: 0.000969 + tolerance: 0.0009680542110359693 pop_post_0: observables: @@ -63,7 +63,7 @@ experiments: spike detection: method: threshold threshold: -64 - tolerance: 0.0047079 + tolerance: 0.004707896426278445 pop_post_1: observables: spike times: @@ -74,7 +74,7 @@ experiments: spike detection: method: threshold threshold: -64 - tolerance: 0.004365 + tolerance: 0.0006429489927132692 pop_post_2: observables: spike times: @@ -85,7 +85,7 @@ experiments: spike detection: method: threshold threshold: -61.5 - tolerance: 0.000527 + tolerance: 0.0005269481272263558 pop_post_3: observables: spike times: @@ -96,7 +96,7 @@ experiments: spike detection: method: threshold threshold: -60.3 - tolerance: 0.000582 + tolerance: 0.0005811506783431604 pop_post_1_g: @@ -109,7 +109,7 @@ experiments: spike detection: method: threshold threshold: 0.003 - tolerance: 0.00467 + tolerance: 0.004669852302345706 pop_post_2_g: observables: @@ -121,4 +121,4 @@ experiments: spike detection: method: threshold threshold: 0.003 - tolerance: 0.004153 + tolerance: 0.0004616805170822513 diff --git a/LEMSexamples/test/.test.ex15.jnml.omt b/LEMSexamples/test/.test.ex15.jnml.omt index 8a55dbe..61e67cf 100644 --- a/LEMSexamples/test/.test.ex15.jnml.omt +++ b/LEMSexamples/test/.test.ex15.jnml.omt @@ -1,5 +1,5 @@ # Script for running automated tests on OSB using Travis-CI, see https://github.com/OpenSourceBrain/osb-model-validation - + target: ../LEMS_NML2_Ex15_CaDynamics.xml engine: jNeuroML mep: .test.ex15.mep @@ -7,12 +7,33 @@ experiments: v: observables: spike times: - file: + file: path: ../results/ex15_v.dat columns: [0,1] scaling: [1000, 1000] - spike detection: + spike detection: method: threshold threshold: 0 tolerance: 0.005044726617700581 # relatively large tolerance due to inaccuracy of jLEMS's simple numerical integration methods - + cond dens naf: + observables: + spike times: + file: + path: ../results/ex15_cond_dens.dat + columns: [0,1] + scaling: [1000, 1] + spike detection: + method: threshold + threshold: 0.55 + tolerance: 0.0050401936253064465 + cond dens ca: + observables: + spike times: + file: + path: ../results/ex15_cond_dens.dat + columns: [0,2] + scaling: [1000, 1] + spike detection: + method: threshold + threshold: 0.55 + tolerance: 0.0050459137291754864 diff --git a/LEMSexamples/test/.test.ex15.jnmlnrn.omt b/LEMSexamples/test/.test.ex15.jnmlnrn.omt index 32f2120..df6dc06 100644 --- a/LEMSexamples/test/.test.ex15.jnmlnrn.omt +++ b/LEMSexamples/test/.test.ex15.jnmlnrn.omt @@ -1,5 +1,5 @@ # Script for running automated tests on OSB using Travis-CI, see https://github.com/OpenSourceBrain/osb-model-validation - + target: ../LEMS_NML2_Ex15_CaDynamics.xml engine: jNeuroML_NEURON mep: .test.ex15.mep @@ -7,11 +7,33 @@ experiments: v: observables: spike times: - file: + file: path: ../results/ex15_v.dat columns: [0,1] scaling: [1000, 1000] - spike detection: + spike detection: method: threshold threshold: 0 - tolerance: 0 \ No newline at end of file + tolerance: 0 + cond dens naf: + observables: + spike times: + file: + path: ../results/ex15_cond_dens.dat + columns: [0,1] + scaling: [1000, 1] + spike detection: + method: threshold + threshold: 0.55 + tolerance: 0 + cond dens ca: + observables: + spike times: + file: + path: ../results/ex15_cond_dens.dat + columns: [0,2] + scaling: [1000, 1] + spike detection: + method: threshold + threshold: 0.55 + tolerance: 0 diff --git a/LEMSexamples/test/.test.ex15.mep b/LEMSexamples/test/.test.ex15.mep index 94c833c..2d49cf6 100644 --- a/LEMSexamples/test/.test.ex15.mep +++ b/LEMSexamples/test/.test.ex15.mep @@ -3,4 +3,19 @@ system: Test Ex15 experiments: v: expected: - spike times: [108.261, 135.87099999999998, 161.89600000000002, 187.363, 212.561, 237.626, 262.629, 287.60200000000003, 312.565, 337.526, 362.48999999999995, 387.457, 412.43, 437.406, 462.38800000000003, 487.373, 512.362, 537.354, 562.3489999999999, 587.346] \ No newline at end of file + spike times: [108.261, 135.87099999999998, 161.89600000000002, 187.363, 212.561, 237.626, 262.629, 287.60200000000003, 312.565, 337.526, 362.48999999999995, 387.457, 412.43, 437.406, 462.38800000000003, 487.373, 512.362, 537.354, 562.3489999999999, 587.346] + cond dens naf: + expected: + spike times: [107.432, 134.745, 160.802, 186.28300000000002, 211.489, 236.559, 261.564, 286.539, 311.503, 336.46500000000003, 361.42800000000005, 386.396, 411.36899999999997, 436.346, 461.32800000000003, 486.313, 511.302, 536.295, 561.289, 586.287] + cond dens ca: + expected: + spike times: [108.315, 135.93, 161.956, 187.423, 212.621, 237.687, 262.689, 287.663, 312.62600000000003, 337.58700000000005, 362.55, 387.517, 412.49, 437.467, 462.44800000000004, 487.433, 512.422, 537.415, 562.409, 587.406] + cond dens kdr: + expected: + spike times: [108.032, 135.83700000000002, 161.913, 187.403, 212.617, 237.69299999999998, 262.702, 287.68, 312.645, 337.60699999999997, 362.57099999999997, 387.53900000000004, 412.512, 437.48900000000003, 462.46999999999997, 487.45500000000004, 512.445, 537.437, 562.431, 587.429] + cond dens ka: + expected: + spike times: [108.032, 135.83700000000002, 161.913, 187.403, 212.617, 237.69299999999998, 262.702, 287.68, 312.645, 337.60699999999997, 362.57099999999997, 387.53900000000004, 412.512, 437.48900000000003, 462.46999999999997, 487.45500000000004, 512.445, 537.437, 562.431, 587.429] + cond dens kca: + expected: + spike times: [108.032, 135.83700000000002, 161.913, 187.403, 212.617, 237.69299999999998, 262.702, 287.68, 312.645, 337.60699999999997, 362.57099999999997, 387.53900000000004, 412.512, 437.48900000000003, 462.46999999999997, 487.45500000000004, 512.445, 537.437, 562.431, 587.429] diff --git a/LEMSexamples/test/.test.ex16.jnml.omt b/LEMSexamples/test/.test.ex16.jnml.omt index 5c1017f..f22cc9a 100644 --- a/LEMSexamples/test/.test.ex16.jnml.omt +++ b/LEMSexamples/test/.test.ex16.jnml.omt @@ -14,7 +14,7 @@ experiments: spike detection: method: threshold threshold: 0 - tolerance: 0.0000283 + tolerance: 2.821073418449185e-05 array: observables: spike times: @@ -36,5 +36,5 @@ experiments: spike detection: method: threshold threshold: 0 - tolerance: 0.000136 + tolerance: 0.00013585351447132978 diff --git a/LEMSexamples/test/.test.ex19.jnml.omt b/LEMSexamples/test/.test.ex19.jnml.omt index 8bda5b9..50c5926 100644 --- a/LEMSexamples/test/.test.ex19.jnml.omt +++ b/LEMSexamples/test/.test.ex19.jnml.omt @@ -14,7 +14,7 @@ experiments: spike detection: method: threshold threshold: -69.5 - tolerance: 0.000595 + tolerance: 0.0005517826825127141 cell1: observables: spike times: @@ -25,5 +25,5 @@ experiments: spike detection: method: threshold threshold: -69.5 - tolerance: 0.000549 + tolerance: 0.0005482729402381759 diff --git a/LEMSexamples/test/.test.ex19a.jnml.omt b/LEMSexamples/test/.test.ex19a.jnml.omt index 7f69aa5..2329f16 100644 --- a/LEMSexamples/test/.test.ex19a.jnml.omt +++ b/LEMSexamples/test/.test.ex19a.jnml.omt @@ -14,7 +14,7 @@ experiments: spike detection: method: threshold threshold: -69.5 - tolerance: 0.000551783 + tolerance: 0.0005517826825127141 cell1: observables: spike times: @@ -25,5 +25,5 @@ experiments: spike detection: method: threshold threshold: -69.5 - tolerance: 0.000549 + tolerance: 0.0005482729402381759 diff --git a/LEMSexamples/test/.test.ex19a.jnmlnetpyne.omt b/LEMSexamples/test/.test.ex19a.jnmlnetpyne.omt index c93a279..4832e91 100644 --- a/LEMSexamples/test/.test.ex19a.jnmlnetpyne.omt +++ b/LEMSexamples/test/.test.ex19a.jnmlnetpyne.omt @@ -14,7 +14,7 @@ experiments: spike detection: method: threshold threshold: -69.5 - tolerance: 2.04398659145e-05 # Slight difference since Netpyne uses Parallel Neuron... + tolerance: 2.043986591446101e-05 # Slight difference since Netpyne uses Parallel Neuron... cell1: observables: spike times: @@ -25,5 +25,5 @@ experiments: spike detection: method: threshold threshold: -69.5 - tolerance: 0.00011576 # Slight difference since Netpyne uses Parallel Neuron... + tolerance: 0.00011575413821050024 # Slight difference since Netpyne uses Parallel Neuron... diff --git a/LEMSexamples/test/.test.ex20a.jnml.omt b/LEMSexamples/test/.test.ex20a.jnml.omt index 2151791..7e9d9e6 100644 --- a/LEMSexamples/test/.test.ex20a.jnml.omt +++ b/LEMSexamples/test/.test.ex20a.jnml.omt @@ -14,7 +14,7 @@ experiments: spike detection: method: threshold threshold: 0 - tolerance: 0.00328 + tolerance: 0.0032729103726082866 cell1: observables: spike times: @@ -25,5 +25,5 @@ experiments: spike detection: method: threshold threshold: -64.4 - tolerance: 0.0032 + tolerance: 0.0031956858241373462 diff --git a/LEMSexamples/test/.test.ex21.jnml.omt b/LEMSexamples/test/.test.ex21.jnml.omt index 2f213c6..41af3f2 100644 --- a/LEMSexamples/test/.test.ex21.jnml.omt +++ b/LEMSexamples/test/.test.ex21.jnml.omt @@ -14,4 +14,4 @@ experiments: spike detection: method: threshold threshold: 0.4 - tolerance: 1e-05 + tolerance: 9.61982453430972e-06 diff --git a/LEMSexamples/test/.test.ex24.jnml.omt b/LEMSexamples/test/.test.ex24.jnml.omt new file mode 100644 index 0000000..d65ae83 --- /dev/null +++ b/LEMSexamples/test/.test.ex24.jnml.omt @@ -0,0 +1,17 @@ +# Script for running automated tests on OSB using Travis-CI, see https://github.com/OpenSourceBrain/osb-model-validation + +target: ../LEMS_NML2_Ex24_FractionalConductance.xml +engine: jNeuroML +mep: .test.ex24.mep +experiments: + v: + observables: + spike times: + file: + path: ../results/ex24_v.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0.004396248534583988 diff --git a/LEMSexamples/test/.test.ex24.jnmlnrn.omt b/LEMSexamples/test/.test.ex24.jnmlnrn.omt new file mode 100644 index 0000000..7696cc2 --- /dev/null +++ b/LEMSexamples/test/.test.ex24.jnmlnrn.omt @@ -0,0 +1,17 @@ +# Script for running automated tests on OSB using Travis-CI, see https://github.com/OpenSourceBrain/osb-model-validation + +target: ../LEMS_NML2_Ex24_FractionalConductance.xml +engine: jNeuroML_NEURON +mep: .test.ex24.mep +experiments: + v: + observables: + spike times: + file: + path: ../results/ex24_v.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0.0 diff --git a/LEMSexamples/test/.test.ex24.mep b/LEMSexamples/test/.test.ex24.mep new file mode 100644 index 0000000..2ebf1fb --- /dev/null +++ b/LEMSexamples/test/.test.ex24.mep @@ -0,0 +1,6 @@ +system: Test Ex24 + +experiments: + v: + expected: + spike times: [26.49, 40.739999999999995, 54.519999999999996, 68.24, 157.23000000000002] diff --git a/LEMSexamples/test/.test.ex26.jnml.omt b/LEMSexamples/test/.test.ex26.jnml.omt index 9041794..e64aae6 100644 --- a/LEMSexamples/test/.test.ex26.jnml.omt +++ b/LEMSexamples/test/.test.ex26.jnml.omt @@ -13,7 +13,7 @@ experiments: scaling: [1000, 1000] spike detection: method: threshold - tolerance: 0.000824 + tolerance: 0.0008233502120126329 pre2: observables: spike times: @@ -23,7 +23,7 @@ experiments: scaling: [1000, 1000] spike detection: method: threshold - tolerance: 0.00163 + tolerance: 0.0016230002318570178 post3: observables: spike times: @@ -34,7 +34,7 @@ experiments: spike detection: method: threshold threshold: -64.9 - tolerance: 0.000675 + tolerance: 0.0006741573033705991 post5: observables: spike times: @@ -45,7 +45,7 @@ experiments: spike detection: method: threshold threshold: -64.9 - tolerance: 0.000781 + tolerance: 0.0007801438932069167 post6: observables: spike times: @@ -56,7 +56,7 @@ experiments: spike detection: method: threshold threshold: -64.33 - tolerance: 0.00077 + tolerance: 0.0007690128303719501 post8: observables: spike times: @@ -67,5 +67,5 @@ experiments: spike detection: method: threshold threshold: -64.33 - tolerance: 0.001031 + tolerance: 0.0010306622004639067 diff --git a/LEMSexamples/test/.test.ex5.jnml.omt b/LEMSexamples/test/.test.ex5.jnml.omt index dfbf8ef..a9b8df6 100644 --- a/LEMSexamples/test/.test.ex5.jnml.omt +++ b/LEMSexamples/test/.test.ex5.jnml.omt @@ -14,7 +14,7 @@ experiments: spike detection: method: threshold threshold: 0 - tolerance: 0.0034 + tolerance: 0.0032729103726082866 m: observables: spike times: @@ -25,4 +25,4 @@ experiments: spike detection: method: threshold threshold: 0.9 - tolerance: 0.0034 + tolerance: 0.0033697128199969193 diff --git a/LEMSexamples/test/.test.ex5.jnmlbrian2.omt b/LEMSexamples/test/.test.ex5.jnmlbrian2.omt index 2bb3185..100186f 100644 --- a/LEMSexamples/test/.test.ex5.jnmlbrian2.omt +++ b/LEMSexamples/test/.test.ex5.jnmlbrian2.omt @@ -14,7 +14,7 @@ experiments: spike detection: method: threshold threshold: 0 - tolerance: 0.001712 + tolerance: 0.0017119838872103473 m: observables: spike times: @@ -25,4 +25,4 @@ experiments: spike detection: method: threshold threshold: 0.9 - tolerance: 0.00166 + tolerance: 0.0016597092994015616 diff --git a/LEMSexamples/test/.test.ex5.jnmleden.omt b/LEMSexamples/test/.test.ex5.jnmleden.omt new file mode 100644 index 0000000..1bbfeb3 --- /dev/null +++ b/LEMSexamples/test/.test.ex5.jnmleden.omt @@ -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: ../results/ex5_v.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0.001963746223565029 + m: + observables: + spike times: + file: + path: ../results/ex5_vars.dat + columns: [0,1] + scaling: [1000, 1] + spike detection: + method: threshold + threshold: 0.9 + tolerance: 0.002011768847759278 diff --git a/LEMSexamples/test/.test.ex5.jnmlmoose.omt b/LEMSexamples/test/.test.ex5.jnmlmoose.omt index 0b3b65c..a78fe58 100644 --- a/LEMSexamples/test/.test.ex5.jnmlmoose.omt +++ b/LEMSexamples/test/.test.ex5.jnmlmoose.omt @@ -14,4 +14,4 @@ experiments: spike detection: method: threshold threshold: 0 - tolerance: 0.000985869208018 + tolerance: 0.0009566968781470178 diff --git a/LEMSexamples/test/.test.ex5.pylems.omt b/LEMSexamples/test/.test.ex5.pylems.omt index 22f9184..65a386b 100644 --- a/LEMSexamples/test/.test.ex5.pylems.omt +++ b/LEMSexamples/test/.test.ex5.pylems.omt @@ -14,7 +14,7 @@ experiments: spike detection: method: threshold threshold: 0 - tolerance: 0.001713 + tolerance: 0.0017119838869209783 m: observables: spike times: @@ -25,4 +25,4 @@ experiments: spike detection: method: threshold threshold: 0.9 - tolerance: 0.00167 + tolerance: 0.0016597092991110977 diff --git a/LEMSexamples/test/.test.ex6.pylems.omt b/LEMSexamples/test/.test.ex6.pylems.omt index 98a76f5..25091e4 100644 --- a/LEMSexamples/test/.test.ex6.pylems.omt +++ b/LEMSexamples/test/.test.ex6.pylems.omt @@ -14,7 +14,7 @@ experiments: spike detection: method: threshold threshold: -32 - tolerance: 0.0155 + tolerance: 0.0001740795539690298 g: observables: spike times: @@ -25,4 +25,4 @@ experiments: spike detection: method: threshold threshold: 1e-11 - tolerance: 0.00742 + tolerance: 0.00013229263125557245 diff --git a/LEMSexamples/test/.test.ex9.jnmlbrian.omt b/LEMSexamples/test/.test.ex9.jnmleden.omt similarity index 68% rename from LEMSexamples/test/.test.ex9.jnmlbrian.omt rename to LEMSexamples/test/.test.ex9.jnmleden.omt index 9cb9d29..5ae9dad 100644 --- a/LEMSexamples/test/.test.ex9.jnmlbrian.omt +++ b/LEMSexamples/test/.test.ex9.jnmleden.omt @@ -1,26 +1,26 @@ # Script for running automated tests on OSB using Travis-CI, see https://github.com/OpenSourceBrain/osb-model-validation - -target: ../LEMS_NML2_Ex9_FN.xml -engine: jNeuroML_Brian + +target: ../LEMS_NML2_Ex9_FN.xml +engine: jNeuroML_EDEN mep: .test.ex9.mep experiments: V: observables: spike times: - file: + file: path: ../results/ex9.dat columns: [0,1] scaling: [1000, 1000] - spike detection: + spike detection: method: derivative - tolerance: 0.004099 + tolerance: 4.098360645390339e-08 W: observables: spike times: - file: + file: path: ../results/ex9.dat columns: [0,2] scaling: [1000, 1] - spike detection: + spike detection: method: derivative - tolerance: 0.000616 + tolerance: 5.0276520911579816e-08 diff --git a/LEMSexamples/test/.test.ex9.pylems.omt b/LEMSexamples/test/.test.ex9.pylems.omt index 998bb18..9f2d1c5 100644 --- a/LEMSexamples/test/.test.ex9.pylems.omt +++ b/LEMSexamples/test/.test.ex9.pylems.omt @@ -13,7 +13,7 @@ experiments: scaling: [1000, 1000] spike detection: method: derivative - tolerance: 0.004099 + tolerance: 0.004098360655740874 W: observables: spike times: @@ -23,4 +23,4 @@ experiments: scaling: [1000, 1] spike detection: method: derivative - tolerance: 0.000616 + tolerance: 0.0006150061500774979 diff --git a/NeuroML2CoreTypes/Cells.xml b/NeuroML2CoreTypes/Cells.xml index 122164f..2cb48db 100644 --- a/NeuroML2CoreTypes/Cells.xml +++ b/NeuroML2CoreTypes/Cells.xml @@ -667,19 +667,19 @@ - - + + - + - + @@ -1387,7 +1387,7 @@ - + @@ -1418,7 +1418,7 @@ extends="baseCellMembPotCap" description="Cell based on the modified Izhikevich model in Izhikevich 2007, Dynamical systems in neuroscience, MIT Press"> - + - - - + + + - - - - + + + + - + @@ -1471,22 +1471,22 @@ extends="baseCellMembPotCap" description="Model based on Brette R and Gerstner W (2005) Adaptive Exponential Integrate-and-Fire Model as an Effective Description of Neuronal Activity. J Neurophysiol 94:3637-3642"> - - - - - - - + + + + + + + - + - - + + - + @@ -1600,7 +1600,7 @@ + description="Reduced CA3 cell model from Pinsky, P.F., Rinzel, J. Intrinsic and network rhythmogenesis in a reduced traub model for CA3 neurons. J Comput Neurosci 1, 39-60 (1994). See https://github.com/OpenSourceBrain/PinskyRinzelModel"> @@ -1638,8 +1638,8 @@ - - + + @@ -1747,5 +1747,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NeuroML2CoreTypes/NeuroMLCoreDimensions.xml b/NeuroML2CoreTypes/NeuroMLCoreDimensions.xml index cf7ef80..7e820a6 100644 --- a/NeuroML2CoreTypes/NeuroMLCoreDimensions.xml +++ b/NeuroML2CoreTypes/NeuroMLCoreDimensions.xml @@ -54,7 +54,7 @@ - + @@ -63,8 +63,8 @@ - - + + @@ -76,7 +76,7 @@ - + @@ -86,13 +86,14 @@ - + - + + @@ -110,11 +111,12 @@ - + + - + @@ -139,6 +141,7 @@ + @@ -146,5 +149,6 @@ + diff --git a/NeuroML2CoreTypes/Simulation.xml b/NeuroML2CoreTypes/Simulation.xml index 7737bff..b6290ef 100644 --- a/NeuroML2CoreTypes/Simulation.xml +++ b/NeuroML2CoreTypes/Simulation.xml @@ -13,6 +13,7 @@ + @@ -102,4 +103,11 @@ + + + + + + + diff --git a/NeuroML2CoreTypes/Synapses.xml b/NeuroML2CoreTypes/Synapses.xml index 7e76884..0e4b007 100644 --- a/NeuroML2CoreTypes/Synapses.xml +++ b/NeuroML2CoreTypes/Synapses.xml @@ -536,6 +536,8 @@ + + @@ -544,7 +546,7 @@ - + diff --git a/README.md b/README.md index 50efeaf..f3aee50 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ NeuroML 2 ========= -[![GitHub CI](https://github.com/NeuroML/NeuroML2/actions/workflows/ci.yml/badge.svg)](https://github.com/NeuroML/NeuroML2/actions/workflows/ci.yml) +[![GitHub CI](https://github.com/NeuroML/NeuroML2/actions/workflows/ci.yml/badge.svg)](https://github.com/NeuroML/NeuroML2/actions/workflows/ci.yml) [![Run OMV tests](https://github.com/NeuroML/NeuroML2/actions/workflows/omv-ci.yml/badge.svg)](https://github.com/NeuroML/NeuroML2/actions/workflows/omv-ci.yml) + [![GitHub](https://img.shields.io/github/license/NeuroML/NeuroML2)](https://github.com/NeuroML/NeuroML2/blob/master/LICENSE.lesser) [![GitHub pull requests](https://img.shields.io/github/issues-pr/NeuroML/NeuroML2)](https://github.com/NeuroML/NeuroML2/pulls) [![GitHub issues](https://img.shields.io/github/issues/NeuroML/NeuroML2)](https://github.com/NeuroML/NeuroML2/issues) @@ -25,5 +26,5 @@ Robert C. Cannon, Padraig Gleeson, Sharon Crook, Gautham Ganapathy, Boris Marin, For information on how to contribute to the NeuroML initiative, see [here](https://docs.neuroml.org/Devdocs/DevSOP.html). -This code is distributed under the terms of the GNU Lesser General Public License. +This code is distributed under the terms of the [GNU Lesser General Public License](https://github.com/NeuroML/NeuroML2/blob/master/LICENSE.lesser). diff --git a/Schemas/NeuroML2/NeuroML_v2.3.xsd b/Schemas/NeuroML2/NeuroML_v2.3.xsd new file mode 100644 index 0000000..6106a6f --- /dev/null +++ b/Schemas/NeuroML2/NeuroML_v2.3.xsd @@ -0,0 +1,3963 @@ + + + + + + + + An id attribute for elements which need to be identified uniquely (normally just within their parent element). + + + + + + + + A value for a physical quantity in NeuroML 2, e.g. 20, -60.0mV or 5nA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An id string for pointing to an entry in an annotation element related to a MIRIAM resource. Based on metaid of SBML + + + + + + + + An id string for pointing to an entry in the NeuroLex ontology. Use of this attribute is a shorthand for a full + RDF based reference to the MIRIAM Resource urn:miriam:neurolex, with an bqbiol:is qualifier + + + + + + + + + A path referring to another component. + + + + + + + + + An attribute useful as id of segments, connections, etc: integer >=0 only! + + + + + + + + + + + Integer >=1 only! + + + + + + + + + + + Double >0 only + + + + + + + + Value which is either 0 or 1 + + + + + + + + + + + + + Textual human readable notes related to the element in question. It's useful to put these into + the NeuroML files instead of XML comments, as the notes can be extracted and repeated in the files to which the NeuroML is mapped. + + + + + + + A property ( a **tag** and **value** pair ), which can be on any **baseStandalone** either as a direct child, or within an **Annotation** . Generally something which helps the visual display or facilitates simulation of a Component, but is not a core physiological property. Common examples include: **numberInternalDivisions,** equivalent of nseg in NEURON; **radius,** for a radius to use in graphical displays for abstract cells ( i. e. without defined morphologies ); **color,** the color to use for a **Population** or **populationList** of cells; **recommended_dt_ms,** the recommended timestep to use for simulating a **Network** , **recommended_duration_ms** the recommended duration to use when running a **Network** + + + + + + + + + + + + A structured annotation containing metadata, specifically RDF or **property** elements + + + + + + + + + + + + + + Contains an extension to NeuroML by creating custom LEMS ComponentType. + + + + + + + + + + + + + + + + + + LEMS ComponentType for Constant. + + + + + + + + + + + + + LEMS Exposure (ComponentType property) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LEMS DerivedParamter element + + + + + + + + + + + + + + + + + + + + + + + + + + + + LEMS ComponentType for Dynamics + + + + + + + + + + + + + + + LEMS ComponentType for DerivedVariable + + + + + + + + + + + + + + + + + + + LEMS ComponentType for ConditionalDerivedVariable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Float value restricted to between 1 and 0 + + + + + + + + + + + + The root NeuroML element. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Various types of cells which are defined in NeuroML 2. This list will be expanded... + + + + + + + + + + + + + + + + + + + + + Various types of cells which are defined in NeuroML 2 based on PyNN standard cell models. + + + + + + + + + + + + + + Various types of synapse which are defined in NeuroML 2. This list will be expanded... + + + + + + + + + + + + + + + + + + Various types of synapse which are defined in NeuroML 2 based on PyNN standard cell/synapse models. + + + + + + + + + + + Various types of inputs which are defined in NeuroML2. This list will be expanded... + + + + + + + + + + + + + + + + + + + + + + + + + Various types of input which are defined in NeuroML 2 based on PyNN standard cell/synapse models. + + + + + + + + Various types of concentration model which are defined in NeuroML 2. This list will be expanded... + + + + + + + + + + + + + + + + + + + + + + A kinetic scheme based ion channel with multiple **gateKS** s, each of which consists of multiple **KSState** s and **KSTransition** s giving the rates of transition between them +\n +:param conductance: +:type conductance: conductance + + + + + + + + + + + + + + + + + Note **ionChannel** and **ionChannelHH** are currently functionally identical. This is needed since many existing examples use ionChannel, some use ionChannelHH. NeuroML v2beta4 should remove one of these, probably ionChannelHH. +\n +:param conductance: +:type conductance: conductance + + + + + + + + + + + + + + + + + + + + + + + + Note **ionChannel** and **ionChannelHH** are currently functionally identical. This is needed since many existing examples use ionChannel, some use ionChannelHH. NeuroML v2beta4 should remove one of these, probably ionChannelHH. +\n +:param conductance: +:type conductance: conductance + + + + + + + + + + Same as **ionChannel** , but with a **vShift** parameter to change voltage activation of gates. The exact usage of **vShift** in expressions for rates is determined by the individual gates. +\n +:param vShift: +:type vShift: voltage +:param conductance: +:type conductance: conductance + + + + + + + + + + + + + + + + + + + A value for the conductance scaling which varies as a standard function of the difference between the current temperature, **temperature,** and the temperature at which the conductance was originally determined, **experimentalTemp** +\n +:param q10Factor: +:type q10Factor: none +:param experimentalTemp: +:type experimentalTemp: temperature + + + + + + + + + + + + + + + + + + + + + + + + + A **KSState** with **relativeConductance** of 0 +\n +:param relativeConductance: +:type relativeConductance: none + + + + + + + + + + + + A **KSState** with **relativeConductance** of 1 +\n +:param relativeConductance: +:type relativeConductance: none + + + + + + + + + + + + A forward only **KSTransition** for a **gateKS** which specifies a **rate** ( type **baseHHRate** ) which follows one of the standard Hodgkin Huxley forms ( e. g. **HHExpRate** , **HHSigmoidRate** , **HHExpLinearRate** + + + + + + + + + + + + + + + + A reverse only **KSTransition** for a **gateKS** which specifies a **rate** ( type **baseHHRate** ) which follows one of the standard Hodgkin Huxley forms ( e. g. **HHExpRate** , **HHSigmoidRate** , **HHExpLinearRate** + + + + + + + + + + + + + + + + + + + + + + KS Transition specified in terms of time constant **tau** and steady state **inf** + + + + + + + + + + + + + + + + A gate which consists of multiple **KSState** s and **KSTransition** s giving the rates of transition between them +\n +:param instances: +:type instances: none + + + + + + + + + + + + + + + + + + + + + + Note all sub elements for gateHHrates, gateHHratesTau, gateFractional etc. allowed here. Which are valid should be constrained by what type is set + + + + + + + + + + + + + + + + + + + + + Gate which follows the general Hodgkin Huxley formalism +\n +:param instances: +:type instances: none + + + + + + + + + + + + + + + + + + + Gate which follows the general Hodgkin Huxley formalism +\n +:param instances: +:type instances: none + + + + + + + + + + + + + + + + + + + Gate which follows the general Hodgkin Huxley formalism +\n +:param instances: +:type instances: none + + + + + + + + + + + + + + + + + + + + + Gate which follows the general Hodgkin Huxley formalism +\n +:param instances: +:type instances: none + + + + + + + + + + + + + + + + + + + + Gate which follows the general Hodgkin Huxley formalism +\n +:param instances: +:type instances: none + + + + + + + + + + + + + + + + + + + + Gate which follows the general Hodgkin Huxley formalism but is instantaneous, so tau = 0 and gate follows exactly inf value +\n +:param instances: +:type instances: none + + + + + + + + + + + + + + + + + Gate composed of subgates contributing with fractional conductance +\n +:param instances: +:type instances: none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Model of an intracellular buffering mechanism for **ion** ( currently hard Coded to be calcium, due to requirement for **iCa** ) which has a baseline level **restingConc** and tends to this value with time course **decayConstant.** The ion is assumed to occupy a shell inside the membrane of thickness **shellThickness.** +\n +:param restingConc: +:type restingConc: concentration +:param decayConstant: +:type decayConstant: time +:param shellThickness: +:type shellThickness: length + + + + + + + + + + + + + + + + + + Model of buffering of concentration of an ion ( currently hard coded to be calcium, due to requirement for **iCa** ) which has a baseline level **restingConc** and tends to this value with time course **decayConstant.** A fixed factor **rho** is used to scale the incoming current *independently of the size of the compartment* to produce a concentration change. +\n +:param restingConc: +:type restingConc: concentration +:param decayConstant: +:type decayConstant: time +:param rho: +:type rho: rho_factor + + + + + + + + + + + + + + + + + + + + + Base type for all synapses, i. e. ComponentTypes which produce a current ( dimension current ) and change Dynamics in response to an incoming event. cno_0000009 + + + + + + + + + + + Base type for synapses with a dependence on membrane potential + + + + + + + + + + + Synapse model which produces a synaptic current. + + + + + + + + + + + Synapse model which exposes a conductance **g** in addition to producing a current. Not necessarily ohmic!! cno_0000027 +\n +:param gbase: Baseline conductance, generally the maximum conductance following a single spike +:type gbase: conductance +:param erev: Reversal potential of the synapse +:type erev: voltage + + + + + + + + + + + + + Synapse model suited for a sum of two expTwoSynapses which exposes a conductance **g** in addition to producing a current. Not necessarily ohmic!! cno_0000027 +\n +:param gbase1: Baseline conductance 1 +:type gbase1: conductance +:param gbase2: Baseline conductance 2 +:type gbase2: conductance +:param erev: Reversal potential of the synapse +:type erev: voltage + + + + + + + + + + + + + + Gap junction/single electrical connection +\n +:param conductance: +:type conductance: conductance + + + + + + + + + + + + Dummy synapse which emits no current. Used as presynaptic endpoint for analog synaptic connection. + + + + + + + + + + + Behaves just like a one way gap junction. +\n +:param conductance: +:type conductance: conductance + + + + + + + + + + + + Graded/analog synapse. Based on synapse in Methods of http://www. nature.com/neuro/journal/v7/n12/abs/nn1352.html +\n +:param conductance: +:type conductance: conductance +:param delta: Slope of the activation curve +:type delta: voltage +:param k: Rate constant for transmitter-receptor dissociation rate +:type k: per_time +:param Vth: The half-activation voltage of the synapse +:type Vth: voltage +:param erev: The reversal potential of the synapse +:type erev: voltage + + + + + + + + + + + + + + + + Alpha current synapse: rise time and decay time are both **tau.** +\n +:param tau: Time course for rise and decay +:type tau: time +:param ibase: Baseline current increase after receiving a spike +:type ibase: current + + + + + + + + + + + + + Ohmic synapse model where rise time and decay time are both **tau.** Max conductance reached during this time ( assuming zero conductance before ) is **gbase** * **weight.** +\n +:param tau: Time course of rise/decay +:type tau: time +:param gbase: Baseline conductance, generally the maximum conductance following a single spike +:type gbase: conductance +:param erev: Reversal potential of the synapse +:type erev: voltage + + + + + + + + + + + + Ohmic synapse model whose conductance rises instantaneously by ( **gbase** * **weight** ) on receiving an event, and which decays exponentially to zero with time course **tauDecay** +\n +:param tauDecay: Time course of decay +:type tauDecay: time +:param gbase: Baseline conductance, generally the maximum conductance following a single spike +:type gbase: conductance +:param erev: Reversal potential of the synapse +:type erev: voltage + + + + + + + + + + + + Ohmic synapse model whose conductance waveform on receiving an event has a rise time of **tauRise** and a decay time of **tauDecay.** Max conductance reached during this time ( assuming zero conductance before ) is **gbase** * **weight.** +\n +:param tauRise: +:type tauRise: time +:param tauDecay: +:type tauDecay: time +:param gbase: Baseline conductance, generally the maximum conductance following a single spike +:type gbase: conductance +:param erev: Reversal potential of the synapse +:type erev: voltage + + + + + + + + + + + + + Ohmic synapse similar to expTwoSynapse but consisting of two components that can differ in decay times and max conductances but share the same rise time. +\n +:param tauRise: +:type tauRise: time +:param tauDecay1: +:type tauDecay1: time +:param tauDecay2: +:type tauDecay2: time +:param gbase1: Baseline conductance 1 +:type gbase1: conductance +:param gbase2: Baseline conductance 2 +:type gbase2: conductance +:param erev: Reversal potential of the synapse +:type erev: voltage + + + + + + + + + + + + + + Synapse consisting of two independent synaptic mechanisms ( e. g. AMPA-R and NMDA-R ), which can be easily colocated in connections + + + + + + + + + + + + + + Biexponential synapse that allows for optional block and plasticity mechanisms, which can be expressed as child elements. +\n +:param tauRise: +:type tauRise: time +:param tauDecay: +:type tauDecay: time +:param gbase: Baseline conductance, generally the maximum conductance following a single spike +:type gbase: conductance +:param erev: Reversal potential of the synapse +:type erev: voltage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Base type of any cell ( e. g. point neuron like **izhikevich2007Cell** , or a morphologically detailed **Cell** with **segment** s ) which can be used in a **population** + + + + + + + + + + + Integrate and fire cell which returns to its leak reversal potential of **leakReversal** with a time constant **tau** +\n +:param leakReversal: +:type leakReversal: voltage +:param tau: +:type tau: time +:param thresh: The membrane potential at which to emit a spiking event and reset voltage +:type thresh: voltage +:param reset: The value the membrane potential is reset to on spiking +:type reset: voltage + + + + + + + + + + + + + + + Integrate and fire cell which returns to its leak reversal potential of **leakReversal** with a time course **tau.** It has a refractory period of **refract** after spiking +\n +:param refract: +:type refract: time +:param leakReversal: +:type leakReversal: voltage +:param tau: +:type tau: time +:param thresh: The membrane potential at which to emit a spiking event and reset voltage +:type thresh: voltage +:param reset: The value the membrane potential is reset to on spiking +:type reset: voltage + + + + + + + + + + + + Integrate and fire cell with capacitance **C,** **leakConductance** and **leakReversal** +\n +:param leakConductance: +:type leakConductance: conductance +:param leakReversal: +:type leakReversal: voltage +:param thresh: +:type thresh: voltage +:param reset: +:type reset: voltage +:param C: Total capacitance of the cell membrane +:type C: capacitance + + + + + + + + + + + + + + + + Integrate and fire cell with capacitance **C,** **leakConductance,** **leakReversal** and refractory period **refract** +\n +:param refract: +:type refract: time +:param leakConductance: +:type leakConductance: conductance +:param leakReversal: +:type leakReversal: voltage +:param thresh: +:type thresh: voltage +:param reset: +:type reset: voltage +:param C: Total capacitance of the cell membrane +:type C: capacitance + + + + + + + + + + + + Cell based on the 2003 model of Izhikevich, see http://izhikevich.org/publications/spikes.htm +\n +:param v0: Initial membrane potential +:type v0: voltage +:param a: Time scale of the recovery variable U +:type a: none +:param b: Sensitivity of U to the subthreshold fluctuations of the membrane potential V +:type b: none +:param c: After-spike reset value of V +:type c: none +:param d: After-spike increase to U +:type d: none +:param thresh: Spike threshold +:type thresh: voltage + + + + + + + + + + + + + + + + + Any cell with a membrane potential **v** with voltage units and a membrane capacitance **C.** Also defines exposed value **iSyn** for current due to external synapses and **iMemb** for total transmembrane current ( usually channel currents plus **iSyn** ) +\n +:param C: Total capacitance of the cell membrane +:type C: capacitance + + + + + + + + + + + + + + + + + + Cell based on the modified Izhikevich model in Izhikevich 2007, Dynamical systems in neuroscience, MIT Press +\n +:param v0: Initial membrane potential +:type v0: voltage +:param k: +:type k: conductance_per_voltage +:param vr: Resting membrane potential +:type vr: voltage +:param vt: Spike threshold +:type vt: voltage +:param vpeak: Peak action potential value +:type vpeak: voltage +:param a: Time scale of recovery variable u +:type a: per_time +:param b: Sensitivity of recovery variable u to subthreshold fluctuations of membrane potential v +:type b: conductance +:param c: After-spike reset value of v +:type c: voltage +:param d: After-spike increase to u +:type d: current +:param C: Total capacitance of the cell membrane +:type C: capacitance + + + + + + + + + + + + + + + + + + + + Model based on Brette R and Gerstner W ( 2005 ) Adaptive Exponential Integrate-and-Fire Model as an Effective Description of Neuronal Activity. J Neurophysiol 94:3637-3642 +\n +:param gL: Leak conductance +:type gL: conductance +:param EL: Leak reversal potential +:type EL: voltage +:param VT: Spike threshold +:type VT: voltage +:param thresh: Spike detection threshold +:type thresh: voltage +:param reset: Reset potential +:type reset: voltage +:param delT: Slope factor +:type delT: voltage +:param tauw: Adaptation time constant +:type tauw: time +:param refract: Refractory period +:type refract: time +:param a: Sub-threshold adaptation variable +:type a: conductance +:param b: Spike-triggered adaptation variable +:type b: current +:param C: Total capacitance of the cell membrane +:type C: capacitance + + + + + + + + + + + + + + + + + + + + + Simple dimensionless model of spiking cell from FitzHugh and Nagumo. Superseded by **fitzHughNagumo1969Cell** ( See https://github.com/NeuroML/NeuroML2/issues/42 ) +\n +:param I: +:type I: none + + + + + + + + + + + + The Fitzhugh Nagumo model is a two-dimensional simplification of the Hodgkin-Huxley model of spike generation in squid giant axons. This system was suggested by FitzHugh ( FitzHugh R. [1961]: Impulses and physiological states in theoretical models of nerve membrane. Biophysical J. 1:445-466 ), who called it " Bonhoeffer-van der Pol model ", and the equivalent circuit by Nagumo et al. ( Nagumo J. , Arimoto S. , and Yoshizawa S. [1962] An active pulse transmission line simulating nerve axon. Proc IRE. 50:2061-2070. 1962 ). This version corresponds to the one described in FitzHugh R. [1969]: Mathematical models of excitation and propagation in nerve. Chapter 1 ( pp. 1-85 in H. P. Schwan, ed. Biological Engineering, McGraw-Hill Book Co. , N. Y. ) +\n +:param a: +:type a: none +:param b: +:type b: none +:param I: plays the role of an external injected current +:type I: none +:param phi: +:type phi: none +:param V0: +:type V0: none +:param W0: +:type W0: none + + + + + + + + + + + + + + + + + Reduced CA3 cell model from Pinsky, P. F. , Rinzel, J. Intrinsic and network rhythmogenesis in a reduced traub model for CA3 neurons. J Comput Neurosci 1, 39-60 ( 1994 ). See https://github.com/OpenSourceBrain/PinskyRinzelModel +\n +:param iSoma: +:type iSoma: currentDensity +:param iDend: +:type iDend: currentDensity +:param gLs: +:type gLs: conductanceDensity +:param gLd: +:type gLd: conductanceDensity +:param gNa: +:type gNa: conductanceDensity +:param gKdr: +:type gKdr: conductanceDensity +:param gCa: +:type gCa: conductanceDensity +:param gKahp: +:type gKahp: conductanceDensity +:param gKC: +:type gKC: conductanceDensity +:param gc: +:type gc: conductanceDensity +:param eNa: +:type eNa: voltage +:param eCa: +:type eCa: voltage +:param eK: +:type eK: voltage +:param eL: +:type eL: voltage +:param pp: +:type pp: none +:param cm: +:type cm: specificCapacitance +:param alphac: +:type alphac: none +:param betac: +:type betac: none +:param gNmda: +:type gNmda: conductanceDensity +:param gAmpa: +:type gAmpa: conductanceDensity +:param qd0: +:type qd0: none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Hindmarsh Rose model is a simplified point cell model which captures complex firing patterns of single neurons, such as periodic and chaotic bursting. It has a fast spiking subsystem, which is a generalization of the FitzHugh-Nagumo system, coupled to a slower subsystem which allows the model to fire bursts. The dynamical variables x, y, z correspond to the membrane potential, a recovery variable, and a slower adaptation current, respectively. See Hindmarsh J. L. , and Rose R. M. ( 1984 ) A model of neuronal bursting using three coupled first order differential equations. Proc. R. Soc. London, Ser. B 221:87–102. +\n +:param a: cubic term in x nullcline +:type a: none +:param b: quadratic term in x nullcline +:type b: none +:param c: constant term in y nullcline +:type c: none +:param d: quadratic term in y nullcline +:type d: none +:param r: timescale separation between slow and fast subsystem ( r greater than 0; r much less than 1 ) +:type r: none +:param s: related to adaptation +:type s: none +:param x1: related to the system's resting potential +:type x1: none +:param v_scaling: scaling of x for physiological membrane potential +:type v_scaling: voltage +:param x0: +:type x0: none +:param y0: +:type y0: none +:param z0: +:type z0: none +:param C: Total capacitance of the cell membrane +:type C: capacitance + + + + + + + + + + + + + + + + + + + + + + Cell with **segment** s specified in a **morphology** element along with details on its **biophysicalProperties** . NOTE: this can only be correctly simulated using jLEMS when there is a single segment in the cell, and **v** of this cell represents the membrane potential in that isopotential segment. + + + + + + + + + + + + + + + + + + + + + + Variant of cell with two independent Ca2+ pools. Cell with **segment** s specified in a **morphology** element along with details on its **biophysicalProperties** . NOTE: this can only be correctly simulated using jLEMS when there is a single segment in the cell, and **v** of this cell represents the membrane potential in that isopotential segment. + + + + + + + + + + + + + The collection of **segment** s which specify the 3D structure of the cell, along with a number of **segmentGroup** s + + + + + + + + + + + + + + A segment defines the smallest unit within a possibly branching structure ( **morphology** ), such as a dendrite or axon. Its **id** should be a nonnegative integer ( usually soma/root = 0 ). Its end points are given by the **proximal** and **distal** points. The **proximal** point can be omitted, usually because it is the same as a point on the **parent** segment, see **proximal** for details. **parent** specifies the parent segment. The first segment of a **cell** ( with no **parent** ) usually represents the soma. The shape is normally a cylinder ( radii of the **proximal** and **distal** equal, but positions different ) or a conical frustum ( radii and positions different ). If the x, y, x positions of the **proximal** and **distal** are equal, the segment can be interpreted as a sphere, and in this case the radii of these points must be equal. NOTE: LEMS does not yet support multicompartmental modelling, so the Dynamics here is only appropriate for single compartment modelling. + + + + + + + + + + + + + + + + + + + + + + + + + + Base type for ComponentTypes which specify an ( **x,** **y,** **z** ) coordinate along with a **diameter.** Note: no dimension used in the attributes for these coordinates! These are assumed to have dimension micrometer ( 10^-6 m ). This is due to micrometers being the default option for the majority of neuronal morphology formats, and dimensions are omitted here to facilitate reading and writing of morphologies in NeuroML. +\n +:param x: x coordinate of the point. Note: no dimension used, see description of **point3DWithDiam** for details. +:type x: none +:param y: y coordinate of the ppoint. Note: no dimension used, see description of **point3DWithDiam** for details. +:type y: none +:param z: z coordinate of the ppoint. Note: no dimension used, see description of **point3DWithDiam** for details. +:type z: none +:param diameter: Diameter of the ppoint. Note: no dimension used, see description of **point3DWithDiam** for details. +:type diameter: none + + + + + + + + + + + + + + + A method to describe a group of **segment** s in a **morphology** , e. g. soma_group, dendrite_group, axon_group. While a name is useful to describe the group, the **neuroLexId** attribute can be used to explicitly specify the meaning of the group, e. g. sao1044911821 for 'Neuronal Cell Body', sao1211023249 for 'Dendrite'. The **segment** s in this group can be specified as: a list of individual **member** segments; a **path** , all of the segments along which should be included; a **subTree** of the **cell** to include; other segmentGroups to **include** ( so all segments from those get included here ). An **inhomogeneousParameter** can be defined on the region of the cell specified by this group ( see **variableParameter** for usage ). + + + + + + + + + + + + + + + + + + + + + An inhomogeneous parameter specified across the **segmentGroup** ( see **variableParameter** for usage ). + + + + + + + + + + + + + + + + Allowed metrics for InhomogeneousParam + + + + + + + + What to do at the proximal point when creating an inhomogeneous parameter + + + + + + + + + + + What to do at the distal point when creating an inhomogeneous parameter + + + + + + + + + + + A single identified **segment** which is part of the **segmentGroup** + + + + + + + + + + + Include all members of another **segmentGroup** in this group + + + + + + + + + + + Include all the **segment** s between those specified by **from** and **to** , inclusive + + + + + + + + + + + + + + Include all the **segment** s distal to that specified by **from** in the **segmentGroup** + + + + + + + + + + + + + + + + + + + + + + + + The biophysical properties of the **cell** , including the **membraneProperties** and the **intracellularProperties** + + + + + + + + + + + + + + + The biophysical properties of the **cell** , including the **membraneProperties2CaPools** and the **intracellularProperties2CaPools** for a cell with two Ca pools + + + + + + + + + + + + + + + Properties specific to the membrane, such as the **populations** of channels, **channelDensities,** **specificCapacitance,** etc. + + + + + + + + + + + + + + + + + + + + + + + + + Variant of membraneProperties with 2 independent Ca pools + + + + + + + + + + + + + + Membrane potential at which to emit a spiking event. Note, usually the spiking event will not be emitted again until the membrane potential has fallen below this value and rises again to cross it in a positive direction +\n +:param value: +:type value: voltage + + + + + + + + + + + + + Capacitance per unit area +\n +:param value: +:type value: specificCapacitance + + + + + + + + + + + + + Explicitly set initial membrane potential for the cell +\n +:param value: +:type value: voltage + + + + + + + + + + + + + The resistivity, or specific axial resistance, of the cytoplasm +\n +:param value: +:type value: resistivity + + + + + + + + + + + + + Population of a **number** of ohmic ion channels. These each produce a conductance **channelg** across a reversal potential **erev,** giving a total current **i.** Note that active membrane currents are more frequently specified as a density over an area of the **cell** using **channelDensity** +\n +:param number: The number of channels present. This will be multiplied by the time varying conductance of the individual ion channel ( which extends **baseIonChannel** ) to produce the total conductance +:type number: none +:param erev: The reversal potential of the current produced +:type erev: voltage + + + + + + + + + + + + + + + + + + + + + + + + Specifies a time varying ohmic conductance density, which is distributed on a region of the **cell.** The conductance density of the channel is not uniform, but is set using the **variableParameter** . Note, there is no dynamical description of this in LEMS yet, as this type only makes sense for multicompartmental cells. A ComponentType for this needs to be present to enable export of NeuroML 2 multicompartmental cells via LEMS/jNeuroML to NEURON +\n +:param erev: The reversal potential of the current produced +:type erev: voltage + + + + + + + + + + + + + + + + + + + + Specifies a time varying conductance density, which is distributed on a region of the **cell,** and whose reversal potential is calculated from the Nernst equation. Hard coded for Ca only!. The conductance density of the channel is not uniform, but is set using the **variableParameter** . Note, there is no dynamical description of this in LEMS yet, as this type only makes sense for multicompartmental cells. A ComponentType for this needs to be present to enable export of NeuroML 2 multicompartmental cells via LEMS/jNeuroML to NEURON + + + + + + + + + + + + + + + + + + Specifies a time varying conductance density, which is distributed on a region of the **cell,** and whose current is calculated from the Goldman-Hodgkin-Katz equation. Hard coded for Ca only!. The conductance density of the channel is not uniform, but is set using the **variableParameter** . Note, there is no dynamical description of this in LEMS yet, as this type only makes sense for multicompartmental cells. A ComponentType for this needs to be present to enable export of NeuroML 2 multicompartmental cells via LEMS/jNeuroML to NEURON + + + + + + + + + + + + + + + + + + Specifies a time varying ohmic conductance density, **gDensity,** which is distributed on an area of the **cell** ( specified in **membraneProperties** ) with fixed reversal potential **erev** producing a current density **iDensity** +\n +:param erev: The reversal potential of the current produced +:type erev: voltage +:param condDensity: +:type condDensity: conductanceDensity + + + + + + + + + + + + + + + + + + + + + + + + Same as **channelDensity** , but with a **vShift** parameter to change voltage activation of gates. The exact usage of **vShift** in expressions for rates is determined by the individual gates. +\n +:param vShift: +:type vShift: voltage +:param erev: The reversal potential of the current produced +:type erev: voltage +:param condDensity: +:type condDensity: conductanceDensity + + + + + + + + + + + + Specifies a time varying conductance density, **gDensity,** which is distributed on an area of the **cell,** producing a current density **iDensity** and whose reversal potential is calculated from the Nernst equation. Hard coded for Ca only! See https://github.com/OpenSourceBrain/ghk-nernst. +\n +:param condDensity: +:type condDensity: conductanceDensity + + + + + + + + + + + + + + + + + + + + + + + This component is similar to the original component type **channelDensityNernst** but it is changed in order to have a reversal potential that depends on a second independent Ca++ pool ( ca2 ). See https://github.com/OpenSourceBrain/ghk-nernst. +\n +:param condDensity: +:type condDensity: conductanceDensity + + + + + + + + + + + + Specifies a time varying conductance density, **gDensity,** which is distributed on an area of the cell, producing a current density **iDensity** and whose reversal potential is calculated from the Goldman Hodgkin Katz equation. Hard coded for Ca only! See https://github.com/OpenSourceBrain/ghk-nernst. +\n +:param permeability: +:type permeability: permeability + + + + + + + + + + + + + + + + + + + + Time varying conductance density, **gDensity,** which is distributed on an area of the cell, producing a current density **iDensity.** Modified version of Jaffe et al. 1994 ( used also in Lawrence et al. 2006 ). See https://github.com/OpenSourceBrain/ghk-nernst. +\n +:param condDensity: +:type condDensity: conductanceDensity + + + + + + + + + + + + + + + + + + + + + Specifies a **parameter** ( e. g. condDensity ) which can vary its value across a **segmentGroup.** The value is calculated from **value** attribute of the **inhomogeneousValue** subelement. This element is normally a child of **channelDensityNonUniform** , **channelDensityNonUniformNernst** or **channelDensityNonUniformGHK** and is used to calculate the value of the conductance, etc. which will vary on different parts of the cell. The **segmentGroup** specified here needs to define an **inhomogeneousParameter** ( referenced from **inhomogeneousParameter** in the **inhomogeneousValue** ), which calculates a **variable** ( e. g. p ) varying across the cell ( e. g. based on the path length from soma ), which is then used in the **value** attribute of the **inhomogeneousValue** ( so for example condDensity = f( p ) ) + + + + + + + + + + + Specifies the **value** of an **inhomogeneousParameter.** For usage see **variableParameter** + + + + + + + + + + + + + Description of a chemical species identified by **ion,** which has internal, **concentration,** and external, **extConcentration** values for its concentration +\n +:param initialConcentration: +:type initialConcentration: concentration +:param initialExtConcentration: +:type initialExtConcentration: concentration + + + + + + + + + + + + + + + + + + + + + + + + + + + Biophysical properties related to the intracellular space within the **cell** , such as the **resistivity** and the list of ionic **species** present. **caConc** and **caConcExt** are explicitly exposed here to facilitate accessing these values from other Components, even though **caConcExt** is clearly not an intracellular property + + + + + + + + + + + + + + Variant of intracellularProperties with 2 independent Ca pools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generates a constant current pulse of a certain **amplitude** for a specified **duration** after a **delay.** Scaled by **weight,** if set +\n +:param delay: Delay before change in current. Current is zero prior to this. +:type delay: time +:param duration: Duration for holding current at amplitude. Current is zero after delay + duration. +:type duration: time +:param amplitude: Amplitude of current pulse +:type amplitude: current + + + + + + + + + + + + + + Dimensionless equivalent of **pulseGenerator** . Generates a constant current pulse of a certain **amplitude** for a specified **duration** after a **delay.** Scaled by **weight,** if set +\n +:param delay: Delay before change in current. Current is zero prior to this. +:type delay: time +:param duration: Duration for holding current at amplitude. Current is zero after delay + duration. +:type duration: time +:param amplitude: Amplitude of current pulse +:type amplitude: none + + + + + + + + + + + + + + Generates a sinusoidally varying current after a time **delay,** for a fixed **duration.** The **period** and maximum **amplitude** of the current can be set as well as the **phase** at which to start. Scaled by **weight,** if set +\n +:param phase: Phase ( between 0 and 2*pi ) at which to start the varying current ( i. e. at time given by delay ) +:type phase: none +:param delay: Delay before change in current. Current is zero prior to this. +:type delay: time +:param duration: Duration for holding current at amplitude. Current is zero after delay + duration. +:type duration: time +:param amplitude: Maximum amplitude of current +:type amplitude: current +:param period: Time period of oscillation +:type period: time + + + + + + + + + + + + + + + + Dimensionless equivalent of **sineGenerator** . Generates a sinusoidally varying current after a time **delay,** for a fixed **duration.** The **period** and maximum **amplitude** of the current can be set as well as the **phase** at which to start. Scaled by **weight,** if set +\n +:param phase: Phase ( between 0 and 2*pi ) at which to start the varying current ( i. e. at time given by delay ) +:type phase: none +:param delay: Delay before change in current. Current is zero prior to this. +:type delay: time +:param duration: Duration for holding current at amplitude. Current is zero after delay + duration. +:type duration: time +:param amplitude: Maximum amplitude of current +:type amplitude: none +:param period: Time period of oscillation +:type period: time + + + + + + + + + + + + + + + + Generates a ramping current after a time **delay,** for a fixed **duration.** During this time the current steadily changes from **startAmplitude** to **finishAmplitude.** Scaled by **weight,** if set +\n +:param delay: Delay before change in current. Current is baselineAmplitude prior to this. +:type delay: time +:param duration: Duration for holding current at amplitude. Current is baselineAmplitude after delay + duration. +:type duration: time +:param startAmplitude: Amplitude of linearly varying current at time delay +:type startAmplitude: current +:param finishAmplitude: Amplitude of linearly varying current at time delay + duration +:type finishAmplitude: current +:param baselineAmplitude: Amplitude of current before time delay, and after time delay + duration +:type baselineAmplitude: current + + + + + + + + + + + + + + + + Dimensionless equivalent of **rampGenerator** . Generates a ramping current after a time **delay,** for a fixed **duration.** During this time the dimensionless current steadily changes from **startAmplitude** to **finishAmplitude.** Scaled by **weight,** if set +\n +:param delay: Delay before change in current. Current is baselineAmplitude prior to this. +:type delay: time +:param duration: Duration for holding current at amplitude. Current is baselineAmplitude after delay + duration. +:type duration: time +:param startAmplitude: Amplitude of linearly varying current at time delay +:type startAmplitude: none +:param finishAmplitude: Amplitude of linearly varying current at time delay + duration +:type finishAmplitude: none +:param baselineAmplitude: Amplitude of current before time delay, and after time delay + duration +:type baselineAmplitude: none + + + + + + + + + + + + + + + + Generates a current which is the sum of all its child **basePointCurrent** element, e. g. can be a combination of **pulseGenerator** , **sineGenerator** elements producing a single **i.** Scaled by **weight,** if set + + + + + + + + + + + + + + + Generates a current which is the sum of all its child **basePointCurrentDL** elements, e. g. can be a combination of **pulseGeneratorDL** , **sineGeneratorDL** elements producing a single **i.** Scaled by **weight,** if set + + + + + + + + + + + + + + + Voltage clamp. Applies a variable current **i** to try to keep parent at **targetVoltage.** Not yet fully tested!!! Consider using voltageClampTriple!! +\n +:param delay: Delay before change in current. Current is zero prior to this. +:type delay: time +:param duration: Duration for attempting to keep parent at targetVoltage. Current is zero after delay + duration. +:type duration: time +:param targetVoltage: Current will be applied to try to get parent to this target voltage +:type targetVoltage: voltage +:param simpleSeriesResistance: Current will be calculated by the difference in voltage between the target and parent, divided by this value +:type simpleSeriesResistance: resistance + + + + + + + + + + + + + + + Voltage clamp with 3 clamp levels. Applies a variable current **i** ( through **simpleSeriesResistance** ) to try to keep parent cell at **conditioningVoltage** until time **delay,** **testingVoltage** until **delay** + **duration,** and **returnVoltage** afterwards. Only enabled if **active** = 1. +\n +:param active: Whether the voltage clamp is active ( 1 ) or inactive ( 0 ). +:type active: none +:param delay: Delay before switching from conditioningVoltage to testingVoltage. +:type delay: time +:param duration: Duration to hold at testingVoltage. +:type duration: time +:param conditioningVoltage: Target voltage before time delay +:type conditioningVoltage: voltage +:param testingVoltage: Target voltage between times delay and delay + duration +:type testingVoltage: voltage +:param returnVoltage: Target voltage after time duration +:type returnVoltage: voltage +:param simpleSeriesResistance: Current will be calculated by the difference in voltage between the target and parent, divided by this value +:type simpleSeriesResistance: resistance + + + + + + + + + + + + + + + + + + Emits a single spike at the specified **time** +\n +:param time: Time at which to emit one spike event +:type time: time + + + + + + + + + + + + Set of spike ComponentTypes, each emitting one spike at a certain time. Can be used to feed a predetermined spike train into a cell + + + + + + + + + + + + + Spike array connected to a single **synapse,** producing a current triggered by each **spike** in the array. + + + + + + + + + + + + + + + Simple generator of spikes at a regular interval set by **period** +\n +:param period: Time between spikes. The first spike will be emitted after this time. +:type period: time + + + + + + + + + + + + Generator of spikes with a random interspike interval of at least **minISI** and at most **maxISI** +\n +:param maxISI: Maximum interspike interval +:type maxISI: time +:param minISI: Minimum interspike interval +:type minISI: time + + + + + + + + + + + + + Generator of spikes whose ISI is distributed according to an exponential PDF with scale: 1 / **averageRate** +\n +:param averageRate: The average rate at which spikes are emitted +:type averageRate: per_time + + + + + + + + + + + + Generator of spikes whose ISI distribution is the maximum entropy distribution over [ **minimumISI,** +infinity ) with mean: 1 / **averageRate** +\n +:param minimumISI: The minimum interspike interval +:type minimumISI: time +:param averageRate: The average rate at which spikes are emitted +:type averageRate: per_time + + + + + + + + + + + + Poisson spike generator firing at **averageRate,** which is connected to single **synapse** that is triggered every time a spike is generated, producing an input current. See also **transientPoissonFiringSynapse** . +\n +:param averageRate: The average rate at which spikes are emitted +:type averageRate: per_time + + + + + + + + + + + + + + Poisson spike generator firing at **averageRate** after a **delay** and for a **duration,** connected to single **synapse** that is triggered every time a spike is generated, providing an input current. Similar to ComponentType **poissonFiringSynapse** . +\n +:param averageRate: +:type averageRate: per_time +:param delay: +:type delay: time +:param duration: +:type duration: time + + + + + + + + + + + + + + + + + + + Network containing: **population** s ( potentially of type **populationList** , and so specifying a list of cell **location** s ); **projection** s ( with lists of **connection** s ) and/or **explicitConnection** s; and **inputList** s ( with lists of **input** s ) and/or **explicitInput** s. Note: often in NeuroML this will be of type **networkWithTemperature** if there are temperature dependent elements ( e. g. ion channels ). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initial attempt to specify 3D region for placing cells. Work in progress. . . + + + + + + + + + + + + + + + A population of components, with just one parameter for the **size,** i. e. number of components to create. Note: quite often this is used with type= **populationList** which means the size is determined by the number of **instance** s ( with **location** s ) in the list. The **size** attribute is still set, and there will be a validation error if this does not match the number in the list. +\n +:param size: Number of instances of this Component to create when the population is instantiated +:type size: none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Specifies a single instance of a component in a **population** ( placed at **location** ). + + + + + + + + + + + + + + + + + + + + Specifies the ( x, y, z ) location of a single **instance** of a component in a **population** +\n +:param x: +:type x: none +:param y: +:type y: none +:param z: +:type z: none + + + + + + + + + + + + + + + + + + + + + + + + + Explicit event connection between named components, which gets processed via a new instance of a **synapse** component which is created on the target component + + + + + + + + + + + + + + + Base for projection (set of synaptic connections) between two populations + + + + + + + + + + + Projection from one population, **presynapticPopulation** to another, **postsynapticPopulation,** through **synapse.** Contains lists of **connection** or **connectionWD** elements. + + + + + + + + + + + + + + + Base of all synaptic connections (chemical/electrical/analog, etc.) inside projections + + + + + + + + + + + Base of all synaptic connections with preCellId, postSegmentId, etc. + Note: this is not the best name for these attributes, since Id is superfluous, hence BaseConnectionNewFormat + + + + + + + + + + + + + + + Base of all synaptic connections with preCell, postSegment, etc. + See BaseConnectionOldFormat + + + + + + + + + + + + + + + Event connection directly between named components, which gets processed via a new instance of a **synapse** component which is created on the target component. Normally contained inside a **projection** element. + + + + + + + + + + Event connection between named components, which gets processed via a new instance of a synapse component which is created on the target component, includes setting of **weight** and **delay** for the synaptic connection +\n +:param weight: +:type weight: none +:param delay: +:type delay: time + + + + + + + + + + + + + A projection between **presynapticPopulation** to another **postsynapticPopulation** through gap junctions. + + + + + + + + + + + + + + + To enable connections between populations through gap junctions. + + + + + + + + + + + To enable connections between populations through gap junctions. Populations need to be of type **populationList** and contain **instance** and **location** elements. + + + + + + + + + To enable connections between populations through gap junctions. Populations need to be of type **populationList** and contain **instance** and **location** elements. Includes setting of **weight** for the connection +\n +:param weight: +:type weight: none + + + + + + + + + + + + A projection between **presynapticPopulation** and **postsynapticPopulation** through components **preComponent** at the start and **postComponent** at the end of a **continuousConnection** or **continuousConnectionInstance** . Can be used for analog synapses. + + + + + + + + + + + + + + + An instance of a connection in a **continuousProjection** between **presynapticPopulation** to another **postsynapticPopulation** through a **preComponent** at the start and **postComponent** at the end. Can be used for analog synapses. + + + + + + + + + + + + An instance of a connection in a **continuousProjection** between **presynapticPopulation** to another **postsynapticPopulation** through a **preComponent** at the start and **postComponent** at the end. Populations need to be of type **populationList** and contain **instance** and **location** elements. Can be used for analog synapses. + + + + + + + + + An instance of a connection in a **continuousProjection** between **presynapticPopulation** to another **postsynapticPopulation** through a **preComponent** at the start and **postComponent** at the end. Populations need to be of type **populationList** and contain **instance** and **location** elements. Can be used for analog synapses. Includes setting of **weight** for the connection +\n +:param weight: +:type weight: none + + + + + + + + + + + + An explicit input ( anything which extends **basePointCurrent** ) to a target cell in a population + + + + + + + + + + + + + An explicit list of **input** s to a **population.** + + + + + + + + + + + + + + + + Specifies a single input to a **target,** optionally giving the **segmentId** ( default 0 ) and **fractionAlong** the segment ( default 0. 5 ). + + + + + + + + + + + + + + Specifies input lists. Can set **weight** to scale individual inputs. +\n +:param weight: +:type weight: none + + + + + + + + + + + + + + + Base type of any PyNN standard cell model. Note: membrane potential **v** has dimensions voltage, but all other parameters are dimensionless. This is to facilitate translation to and from PyNN scripts in Python, where these parameters have implicit units, see http://neuralensemble.org/trac/PyNN/wiki/StandardModels +\n +:param cm: +:type cm: none +:param i_offset: +:type i_offset: none +:param tau_syn_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_E: none +:param tau_syn_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_I: none +:param v_init: +:type v_init: none + + + + + + + + + + + + + + + + Base type of any PyNN standard integrate and fire model +\n +:param tau_refrac: +:type tau_refrac: none +:param v_thresh: +:type v_thresh: none +:param tau_m: +:type tau_m: none +:param v_rest: +:type v_rest: none +:param v_reset: +:type v_reset: none +:param cm: +:type cm: none +:param i_offset: +:type i_offset: none +:param tau_syn_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_E: none +:param tau_syn_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_I: none +:param v_init: +:type v_init: none + + + + + + + + + + + + + + + + Base type of conductance based PyNN IaF cell models +\n +:param e_rev_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type e_rev_E: none +:param e_rev_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type e_rev_I: none +:param tau_refrac: +:type tau_refrac: none +:param v_thresh: +:type v_thresh: none +:param tau_m: +:type tau_m: none +:param v_rest: +:type v_rest: none +:param v_reset: +:type v_reset: none +:param cm: +:type cm: none +:param i_offset: +:type i_offset: none +:param tau_syn_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_E: none +:param tau_syn_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_I: none +:param v_init: +:type v_init: none + + + + + + + + + + + + + Leaky integrate and fire model with fixed threshold and alpha-function-shaped post-synaptic current +\n +:param tau_refrac: +:type tau_refrac: none +:param v_thresh: +:type v_thresh: none +:param tau_m: +:type tau_m: none +:param v_rest: +:type v_rest: none +:param v_reset: +:type v_reset: none +:param cm: +:type cm: none +:param i_offset: +:type i_offset: none +:param tau_syn_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_E: none +:param tau_syn_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_I: none +:param v_init: +:type v_init: none + + + + + + + + + + + Leaky integrate and fire model with fixed threshold and decaying-exponential post-synaptic current +\n +:param tau_refrac: +:type tau_refrac: none +:param v_thresh: +:type v_thresh: none +:param tau_m: +:type tau_m: none +:param v_rest: +:type v_rest: none +:param v_reset: +:type v_reset: none +:param cm: +:type cm: none +:param i_offset: +:type i_offset: none +:param tau_syn_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_E: none +:param tau_syn_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_I: none +:param v_init: +:type v_init: none + + + + + + + + + + + Leaky integrate and fire model with fixed threshold and alpha-function-shaped post-synaptic conductance +\n +:param e_rev_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type e_rev_E: none +:param e_rev_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type e_rev_I: none +:param tau_refrac: +:type tau_refrac: none +:param v_thresh: +:type v_thresh: none +:param tau_m: +:type tau_m: none +:param v_rest: +:type v_rest: none +:param v_reset: +:type v_reset: none +:param cm: +:type cm: none +:param i_offset: +:type i_offset: none +:param tau_syn_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_E: none +:param tau_syn_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_I: none +:param v_init: +:type v_init: none + + + + + + + + + + + Leaky integrate and fire model with fixed threshold and exponentially-decaying post-synaptic conductance +\n +:param e_rev_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type e_rev_E: none +:param e_rev_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type e_rev_I: none +:param tau_refrac: +:type tau_refrac: none +:param v_thresh: +:type v_thresh: none +:param tau_m: +:type tau_m: none +:param v_rest: +:type v_rest: none +:param v_reset: +:type v_reset: none +:param cm: +:type cm: none +:param i_offset: +:type i_offset: none +:param tau_syn_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_E: none +:param tau_syn_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_I: none +:param v_init: +:type v_init: none + + + + + + + + + + + Adaptive exponential integrate and fire neuron according to Brette R and Gerstner W ( 2005 ) with exponentially-decaying post-synaptic conductance +\n +:param v_spike: +:type v_spike: none +:param delta_T: +:type delta_T: none +:param tau_w: +:type tau_w: none +:param a: +:type a: none +:param b: +:type b: none +:param e_rev_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type e_rev_E: none +:param e_rev_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type e_rev_I: none +:param tau_refrac: +:type tau_refrac: none +:param v_thresh: +:type v_thresh: none +:param tau_m: +:type tau_m: none +:param v_rest: +:type v_rest: none +:param v_reset: +:type v_reset: none +:param cm: +:type cm: none +:param i_offset: +:type i_offset: none +:param tau_syn_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_E: none +:param tau_syn_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_I: none +:param v_init: +:type v_init: none + + + + + + + + + + + + + + + + Adaptive exponential integrate and fire neuron according to Brette R and Gerstner W ( 2005 ) with alpha-function-shaped post-synaptic conductance +\n +:param v_spike: +:type v_spike: none +:param delta_T: +:type delta_T: none +:param tau_w: +:type tau_w: none +:param a: +:type a: none +:param b: +:type b: none +:param e_rev_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type e_rev_E: none +:param e_rev_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type e_rev_I: none +:param tau_refrac: +:type tau_refrac: none +:param v_thresh: +:type v_thresh: none +:param tau_m: +:type tau_m: none +:param v_rest: +:type v_rest: none +:param v_reset: +:type v_reset: none +:param cm: +:type cm: none +:param i_offset: +:type i_offset: none +:param tau_syn_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_E: none +:param tau_syn_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_I: none +:param v_init: +:type v_init: none + + + + + + + + + + + Single-compartment Hodgkin-Huxley-type neuron with transient sodium and delayed-rectifier potassium currents using the ion channel models from Traub. +\n +:param gbar_K: +:type gbar_K: none +:param gbar_Na: +:type gbar_Na: none +:param g_leak: +:type g_leak: none +:param e_rev_K: +:type e_rev_K: none +:param e_rev_Na: +:type e_rev_Na: none +:param e_rev_leak: +:type e_rev_leak: none +:param v_offset: +:type v_offset: none +:param e_rev_E: +:type e_rev_E: none +:param e_rev_I: +:type e_rev_I: none +:param cm: +:type cm: none +:param i_offset: +:type i_offset: none +:param tau_syn_E: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_E: none +:param tau_syn_I: This parameter is never used in the NeuroML2 description of this cell! Any synapse producing a current can be placed on this cell +:type tau_syn_I: none +:param v_init: +:type v_init: none + + + + + + + + + + + + + + + + + + + + Base type for all PyNN synapses. Note, the current **I** produced is dimensionless, but it requires a membrane potential **v** with dimension voltage +\n +:param tau_syn: +:type tau_syn: none + + + + + + + + + + + + Conductance based synapse with instantaneous rise and single exponential decay ( with time constant tau_syn ) +\n +:param e_rev: +:type e_rev: none +:param tau_syn: +:type tau_syn: none + + + + + + + + + + + + Alpha synapse: rise time and decay time are both tau_syn. Conductance based synapse. +\n +:param e_rev: +:type e_rev: none +:param tau_syn: +:type tau_syn: none + + + + + + + + + + + + Current based synapse with instantaneous rise and single exponential decay ( with time constant tau_syn ) +\n +:param tau_syn: +:type tau_syn: none + + + + + + + + + + + + Alpha synapse: rise time and decay time are both tau_syn. Current based synapse. +\n +:param tau_syn: +:type tau_syn: none + + + + + + + + + + + + Spike source, generating spikes according to a Poisson process. +\n +:param start: +:type start: time +:param duration: +:type duration: time +:param rate: +:type rate: per_time + + + + + + + + + + + + + + + + + + Base element without ID specified *yet*, e.g. for an element with a particular requirement on its id which does not comply with NmlId (e.g. Segment needs nonNegativeInteger). + + + + + Anything which can have a unique (within its parent) id, which must be an integer zero or greater. + + + + + + + + + + Anything which can have a unique (within its parent) id of the form NmlId (spaceless combination of letters, numbers and underscore). + + + + + + + + + + Elements which can stand alone and be referenced by id, e.g. cell, morphology. + + + + + + + + + + + + + + + + diff --git a/docs/Cells.html b/docs/Cells.html index 1ff7e50..c9b02c2 100644 --- a/docs/Cells.html +++ b/docs/Cells.html @@ -15,7 +15,7 @@ - NeuroML v2.2 Component Types + NeuroML v2.3 Component Types
-

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.2 definitions, using the latest version of LEMS!
+

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.3 definitions, using the latest version of LEMS!
- +

Cells

Defines both abstract cell models (e.g. izhikevichCell, adaptive exponential integrate and fire cell, adExIaFCell), point conductance based cell models (pointCellCondBased, pointCellCondBasedCa) and cells models (cell) which specify the morphology (containing segments) and biophysicalProperties separately.
Original LEMS ComponentType definitions: Cells.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.2.xsd
Original LEMS ComponentType definitions: Cells.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.3.xsd

  @@ -2027,18 +2027,18 @@ Child elements - + - +
proximalproximalPropertiesproximalDetails
distaldistalPropertiesdistalDetails
-  +  @@ -2054,11 +2054,11 @@
- proximalProperties + proximalDetails
-  +  @@ -3798,7 +3798,7 @@ - + @@ -3872,31 +3872,31 @@ - + - + - + - + - + - + - + - + @@ -3910,7 +3910,7 @@ - + @@ -3987,34 +3987,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -4031,7 +4031,7 @@ - + @@ -4176,7 +4176,7 @@ + Reduced CA3 cell model from Pinsky, P.F., Rinzel, J. Intrinsic and network rhythmogenesis in a reduced traub model for CA3 neurons. J Comput Neurosci 1, 39-60 (1994). See https://github.com/OpenSourceBrain/PinskyRinzelModel @@ -4283,10 +4283,10 @@ - + - + diff --git a/docs/Channels.html b/docs/Channels.html index e421bac..348b419 100644 --- a/docs/Channels.html +++ b/docs/Channels.html @@ -15,7 +15,7 @@ - NeuroML v2.2 Component Types + NeuroML v2.3 Component Types
-

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.2 definitions, using the latest version of LEMS!
+

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.3 definitions, using the latest version of LEMS!
- distalProperties + distalDetails
Exposures UU
    Membrane recovery variable
Dimensionless
v    (from baseCellMembPot)C    (from baseCellMembPotCap) capacitance
aa
    Time scale of recovery variable u
per_time
bb
    Sensitivity of recovery variable u to subthreshold fluctuations of membrane potential v
conductance
cc
    After-spike reset value of v
voltage
dd
    After-spike increase to u
current
k conductance_per_voltage
v0v0
    Initial membrane potential
voltage
vpeakvpeak
    Peak action potential value
voltage
vrvr
    Resting membrane potential
voltage
vtvt
    Spike threshold
voltage
iSyn    (from baseCellMembPotCap) current
uu
    Membrane recovery variable
current
v    (from baseCellMembPot)C    (from baseCellMembPotCap) capacitance
ELEL
    Leak reversal potential
voltage
VTVT
    Spike threshold
voltage
aa
    Sub-threshold adaptation variable
conductance
bb
    Spike-triggered adaptation variable
current
delTdelT
    Slope factor
voltage
gLgL
    Leak conductance
conductance
refractrefract
    Refractory period
time
resetreset
    Reset potential
voltage
tauwtauw
    Adaptation time constant
time
threshthresh
    Spike detection threshold
voltage
v    (from baseCellMembPot) voltage
ww
    Adaptation current
current
- Reduced CA3 cell model from Pinsky and Rinzel 1994. See https://github.com/OpenSourceBrain/PinskyRinzelModel
Si Dimensionless
VdVd
    Dendritic membrane potential
voltage
VsVs
    Somatic membrane potential
voltage
Wi
- +

Channels

Defines voltage (and concentration) gated ion channel models. Ion channels will generally extend baseIonChannel. The most commonly used voltage dependent gate will extend baseGate.
Original LEMS ComponentType definitions: Channels.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.2.xsd
Original LEMS ComponentType definitions: Channels.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.3.xsd

  diff --git a/docs/Inputs.html b/docs/Inputs.html index 20bbe52..1aa19ac 100644 --- a/docs/Inputs.html +++ b/docs/Inputs.html @@ -15,7 +15,7 @@ - NeuroML v2.2 Component Types + NeuroML v2.3 Component Types
-

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.2 definitions, using the latest version of LEMS!
+

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.3 definitions, using the latest version of LEMS!
- +

Inputs

A number of ComponentTypes for providing spiking (e.g. spikeGeneratorPoisson, spikeArray) and current inputs (e.g. pulseGenerator, voltageClamp, timedSynapticInput, poissonFiringSynapse) to other ComponentTypes
Original LEMS ComponentType definitions: Inputs.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.2.xsd
Original LEMS ComponentType definitions: Inputs.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.3.xsd

  diff --git a/docs/Networks.html b/docs/Networks.html index 7265723..55491e5 100644 --- a/docs/Networks.html +++ b/docs/Networks.html @@ -15,7 +15,7 @@ - NeuroML v2.2 Component Types + NeuroML v2.3 Component Types
-

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.2 definitions, using the latest version of LEMS!
+

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.3 definitions, using the latest version of LEMS!
- +

Networks

Network descriptions for NeuroML 2. Describes network elements containing populations (potentially of type populationList, and so specifying a list of cell locations), projections (i.e. lists of connections) and inputs.
Original LEMS ComponentType definitions: Networks.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.2.xsd
Original LEMS ComponentType definitions: Networks.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.3.xsd

  diff --git a/docs/NeuroMLCoreCompTypes.html b/docs/NeuroMLCoreCompTypes.html index f539209..b99106e 100644 --- a/docs/NeuroMLCoreCompTypes.html +++ b/docs/NeuroMLCoreCompTypes.html @@ -15,7 +15,7 @@ - NeuroML v2.2 Component Types + NeuroML v2.3 Component Types
-

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.2 definitions, using the latest version of LEMS!
+

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.3 definitions, using the latest version of LEMS!
- +

NeuroMLCoreCompTypes

NeuroML2 ComponentType definitions from NeuroMLCoreCompTypes.xml
Original LEMS ComponentType definitions: NeuroMLCoreCompTypes.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.2.xsd
Original LEMS ComponentType definitions: NeuroMLCoreCompTypes.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.3.xsd

  diff --git a/docs/NeuroMLCoreDimensions.html b/docs/NeuroMLCoreDimensions.html index a596e83..96c110e 100644 --- a/docs/NeuroMLCoreDimensions.html +++ b/docs/NeuroMLCoreDimensions.html @@ -15,7 +15,7 @@ - NeuroML v2.2 Component Types + NeuroML v2.3 Component Types
-

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.2 definitions, using the latest version of LEMS!
+

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.3 definitions, using the latest version of LEMS!
- +

NeuroMLCoreDimensions

NeuroML2 ComponentType definitions from NeuroMLCoreDimensions.xml
Original LEMS ComponentType definitions: NeuroMLCoreDimensions.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.2.xsd
Original LEMS ComponentType definitions: NeuroMLCoreDimensions.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.3.xsd

  diff --git a/docs/PyNN.html b/docs/PyNN.html index a7c10d9..9986211 100644 --- a/docs/PyNN.html +++ b/docs/PyNN.html @@ -15,7 +15,7 @@ - NeuroML v2.2 Component Types + NeuroML v2.3 Component Types
-

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.2 definitions, using the latest version of LEMS!
+

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.3 definitions, using the latest version of LEMS!
- +

PyNN

A number of ComponentType description of PyNN standard cells. All of the cells extend basePyNNCell, and the synapses extend basePynnSynapse.
Original LEMS ComponentType definitions: PyNN.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.2.xsd
Original LEMS ComponentType definitions: PyNN.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.3.xsd

  diff --git a/docs/Synapses.html b/docs/Synapses.html index 752913d..a16407b 100644 --- a/docs/Synapses.html +++ b/docs/Synapses.html @@ -15,7 +15,7 @@ - NeuroML v2.2 Component Types + NeuroML v2.3 Component Types
-

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.2 definitions, using the latest version of LEMS!
+

NOTE: the latest version of this documentation can be found on docs.neuroml.org!


For more information on NeuroML 2 and LEMS see here.
Note: these descriptions have been updated to the latest NeuroML v2.3 definitions, using the latest version of LEMS!
- +

Synapses

A number of synaptic ComponentTypes for use in NeuroML 2 documents, e.g. expOneSynapse, expTwoSynapse, blockingPlasticSynapse. These extend the baseSynapse ComponentType. Also defined continuously transmitting synapses, e.g. gapJunction and gradedSynapse.
Original LEMS ComponentType definitions: Synapses.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.2.xsd
Original LEMS ComponentType definitions: Synapses.xml
Schema against which NeuroML based on these should be valid: NeuroML_v2.3.xsd

  diff --git a/docs/generate.py b/docs/generate.py index 79813ec..3357040 100644 --- a/docs/generate.py +++ b/docs/generate.py @@ -24,7 +24,7 @@ # https://docs.python.org/3/library/decimal.html#module-decimal getcontext().prec = 7 -nml2_version = "2.2" +nml2_version = "2.3" nml2_branch = "master" col_width_left = "70" diff --git a/examples/NeuroML2_To_HTML/README.md b/examples/NeuroML2_To_HTML/README.md index 03824cb..8603953 100644 --- a/examples/NeuroML2_To_HTML/README.md +++ b/examples/NeuroML2_To_HTML/README.md @@ -1,13 +1,11 @@ -Converting NeuroML 2 files to HTML using an XSL file +# Converting NeuroML 2 files to HTML using an XSL file -Very preliminary! +Very, very preliminary! Try: python convert.py ../NML2_SimpleMorphology.nml or - - python convert.py ../NML2_SynapseTypes.nml > mypage.html - + python convert.py ../NML2_SynapseTypes.nml > mypage.html diff --git a/examples/NeuroML2_To_HTML/convert.py b/examples/NeuroML2_To_HTML/convert.py index 1135e63..085ed49 100644 --- a/examples/NeuroML2_To_HTML/convert.py +++ b/examples/NeuroML2_To_HTML/convert.py @@ -5,9 +5,9 @@ try: infile = sys.argv[1] except: - print "Usage: convert.py _fileToConvert_" + print("Usage: convert.py _fileToConvert_") sys.exit(1) - + xsl_file = 'NeuroML2_To_HTML.xsl' dom = ET.parse(infile) @@ -15,4 +15,4 @@ transform = ET.XSLT(xslt) newdom = transform(dom) -print(ET.tostring(newdom, pretty_print=True)) +print(ET.tostring(newdom, pretty_print=True).decode("utf-8")) diff --git a/pom.xml b/pom.xml index bdfa999..4d45763 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,11 @@ neuroml2-base-definitionsorg.neuroml.core - 1.8.1 + 1.9.1 + + + UTF-8 + diff --git a/scripts/format-xsd.sh b/scripts/format-xsd.sh index b18a613..c928166 100755 --- a/scripts/format-xsd.sh +++ b/scripts/format-xsd.sh @@ -1,7 +1,6 @@ #!/bin/bash -# Copyright 2021 Ankur Sinha -# Author: Ankur Sinha +# Copyright 2023 NeuroML contributors # File : format-xsd.sh # # format XSD file with xmllint diff --git a/scripts/transfer_docs_to_xsd.py b/scripts/transfer_docs_to_xsd.py index 686f174..bb58668 100644 --- a/scripts/transfer_docs_to_xsd.py +++ b/scripts/transfer_docs_to_xsd.py @@ -4,8 +4,7 @@ File: transfer_docs_to_xsd.py -Copyright 2021 Ankur Sinha -Author: NeuroML contributors +Copyright 2023 NeuroML contributors """ @@ -80,8 +79,8 @@ def update_xsd(): This takes whatever is in the XML files and puts in the XSD, replacing anything that may be in the XSD already. """ - XSD_file = "../Schemas/NeuroML2/NeuroML_v2.2.xsd" - XSD_file_new = "../Schemas/NeuroML2/NeuroML_v2.2_docs.xsd" + XSD_file = "../Schemas/NeuroML2/NeuroML_v2.3.xsd" + XSD_file_new = "../Schemas/NeuroML2/NeuroML_v2.3.xsd" try: xsdtree = ET.parse(XSD_file) xsdroot = xsdtree.getroot() diff --git a/test.py b/test.py index 759189e..fec28b8 100644 --- a/test.py +++ b/test.py @@ -45,7 +45,7 @@ lems_master_ex_dir="../LEMS/examples" lems_master_ex_list=os.listdir(lems_master_ex_dir) -nml2_schema_name = "NeuroML_v2.2.xsd" +nml2_schema_name = "NeuroML_v2.3.xsd" nml2_schema = "Schemas/NeuroML2/%s"%nml2_schema_name nml2_schema_file = open(nml2_schema)