Skip to content

Commit

Permalink
Merge pull request #129 from NeuroML/development
Browse files Browse the repository at this point in the history
Update to v1.6.1 & v2beta5 -> v2.0
  • Loading branch information
pgleeson authored Apr 6, 2020
2 parents 53c2119 + fa086b9 commit 270e3c7
Show file tree
Hide file tree
Showing 36 changed files with 18,356 additions and 256 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ LEMSexamples/old
LEMSexamples/*.c
LEMSexamples/*.o
LEMSexamples/*.dll
docs/*.html

examples/NeuroML2_To_HTML/*.html
examples/*.png
Expand Down
14 changes: 14 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## Contributing to NeuroML

We welcome all contributions to the development of NeuroML!

The main place we organise work is through issues, look here for the latest project wide issues: https://github.com/NeuroML/NeuroML2/issues

This [project page](https://github.com/NeuroML/NeuroML2/projects/1) also lists the main tasks currently being worked on.

To get an overview of the specifications, documentation, libraries for NeuroML see here: https://neuroml.org/getneuroml.

Some NeuroML related issues are also added at: https://github.com/OpenSourceBrain/Contribute/issues.

If you have any other questions, please get in contact with one of the Editorial Board: https://neuroml.org/editors.

19 changes: 19 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,25 @@ 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.0 / 2020-04-06
--------------------

* **Renamed the main Schema from NeuroML_v2beta5.xsd to [NeuroML_v2.0.xsd](https://github.com/NeuroML/NeuroML2/blob/master/Schemas/NeuroML2/NeuroML_v2.0).**
Changes outlined below are reflected in the new schema

_Example NeuroML models_

* The standard NeuroML examples have been updated/revised (and tests added) to ensure as many as possible of them run when converted to NEURON via jNeuroML.

_Export formats_

* Improved export to graphical view of LEMS ComponentTypes, e.g. try: jnml LEMS_NML2_Ex2_Izh.xml -graph

* Improved/retested export to SBML & SED-ML. Added export option -sbml-sedml, which converts LEMS file to SBML format with a SED-ML file describing the experiment to run. Successfully tested with Tellurium SBML simulator.

* Minor updates to improve export to Moose. Latest developments with Moose support outlined here: https://github.com/NeuroML/NeuroML2/issues/94


v2beta5 / 2019-11-05
--------------------

Expand Down
49 changes: 35 additions & 14 deletions LEMSexamples/LEMS_NML2_Ex10_Q10.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

<ionChannelPassive id="passive" conductance="10pS"/>

<ionChannelHH id="na" conductance="10pS">
<ionChannelHH id="naChan" conductance="10pS" species="na">

<gateHHrates id="m" instances="3">
<q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="32degC" />
Expand Down Expand Up @@ -48,7 +48,7 @@
</ComponentType>


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

<gateHHrates id="n" instances="4">

Expand All @@ -61,14 +61,35 @@
</ionChannelHH>



<pointCellCondBased id="hhcell" C="10pF" v0="-65mV" thresh="20mV">

<channelPopulation id="leak" ionChannel="passive" number="300" erev="-54.3mV"/>
<channelPopulation id="naChans" ionChannel="na" number="120000" erev="50mV"/>
<channelPopulation id="kChans" ionChannel="k" number="36000" erev="-77mV"/>

</pointCellCondBased>
<cell id="hhcell">

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

<biophysicalProperties id="bioPhys1">
<membraneProperties>
<channelDensity id="leak" ionChannel="passive" condDensity="3.0 S_per_m2" erev="-54.3mV" ion="non_specific"/>
<channelDensity id="naChans" ionChannel="naChan" condDensity="120.0 mS_per_cm2" erev="50.0 mV" ion="na"/>
<channelDensity id="kChans" ionChannel="kChan" condDensity="360 S_per_m2" erev="-77mV" ion="k"/>
<spikeThresh value="-20mV"/>
<specificCapacitance value="1.0 uF_per_cm2"/>
<initMembPotential value="-65mV"/>
</membraneProperties>

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

</biophysicalProperties>

</cell>


<pulseGenerator id="pulseGen1" delay="100ms" duration="100ms" amplitude="0.08 nA" />
Expand All @@ -91,10 +112,10 @@

<Display id="d2" title="Ex10: HH example with Q10 rate adjustments: rate variables" timeScale="1ms" xmin="0" xmax="300" ymin="-0.1" ymax="1.1">

<Line id="m" quantity="hhpop[0]/naChans/na/m/q" scale="1" color="#000000" timeScale="1ms"/>
<Line id="h" quantity="hhpop[0]/naChans/na/h/q" scale="1" color="#ff0000" timeScale="1ms"/>
<Line id="n" quantity="hhpop[0]/kChans/k/n/q" scale="1" color="#0000ff" timeScale="1ms"/>
<Line id="q10 scaling" quantity="hhpop[0]/kChans/k/n/rateScale" scale="1" color="#00ffff" timeScale="1ms"/>
<Line id="m" quantity="hhpop[0]/bioPhys1/membraneProperties/naChans/naChan/m/q" scale="1" color="#000000" timeScale="1ms"/>
<Line id="h" quantity="hhpop[0]/bioPhys1/membraneProperties/naChans/naChan/h/q" scale="1" color="#ff0000" timeScale="1ms"/>
<Line id="n" quantity="hhpop[0]/bioPhys1/membraneProperties/kChans/kChan/n/q" scale="1" color="#0000ff" timeScale="1ms"/>
<Line id="q10 scaling" quantity="hhpop[0]/bioPhys1/membraneProperties/kChans/kChan/n/rateScale" scale="1" color="#00ffff" timeScale="1ms"/>
</Display>

<Display id="d3" title="Ex10: HH example with Q10 rate adjustments: currents" timeScale="1ms" xmin="0" xmax="300" ymin="-0.01" ymax="0.1">
Expand Down
91 changes: 34 additions & 57 deletions LEMSexamples/LEMS_NML2_Ex15_CaDynamics.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,19 @@
<ionChannelHH id="Gran_NaF_98" conductance="10pS" species="na">
<notes>Fast inactivating Na+ channel</notes>

<gateHHratesTau id="m" instances="3">
<gate id="m" type="gateHHratesTau" instances="3">
<q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<forwardRate type="HHExpRate" rate="1500per_s" scale="0.012345679V" midpoint="-0.029V"/>
<reverseRate type="HHExpRate" rate="1500per_s" scale="-0.0151515V" midpoint="-0.029V"/>
<forwardRate type="HHExpRate" rate="1500per_s" scale="0.012345679V" midpoint="-0.028999999999999998V"/>
<reverseRate type="HHExpRate" rate="1500per_s" scale="-0.0151515V" midpoint="-0.028999999999999998V"/>
<timeCourse type="Gran_NaF_98_m_tau_tau"/>
</gateHHratesTau>
<gateHHratesTau id="h" instances="1">
</gate>

<gate id="h" type="gateHHratesTau" instances="1">
<q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<forwardRate type="HHExpRate" rate="120per_s" scale="-0.01123596V" midpoint="-0.04V"/>
<reverseRate type="HHExpRate" rate="120per_s" scale="0.01123596V" midpoint="-0.04V"/>
<timeCourse type="Gran_NaF_98_h_tau_tau"/>
</gateHHratesTau>
</gate>
</ionChannelHH>

<ComponentType name="Gran_NaF_98_m_tau_tau" extends="baseVoltageDepTime">
Expand All @@ -45,10 +44,12 @@
<Requirement name="beta" dimension="per_time"/>
<Dynamics>
<DerivedVariable name="V" dimension="none" value="(v - offset) / VOLT_SCALE"/>
<DerivedVariable name="ALPHA" dimension="none" value="alpha * TIME_SCALE"/>
<DerivedVariable name="BETA" dimension="none" value="beta * TIME_SCALE"/>
<ConditionalDerivedVariable name="t" exposure="t" dimension="time">
<Case condition="(alpha + beta) .eq. 0" value="( 0 ) * TIME_SCALE"/> <!-- To catch any issues on initialisation-->
<Case condition="1/(alpha + beta) .lt. ( 0.00005 )" value="( 0.00005 ) * TIME_SCALE"/>
<Case value="( 1/(alpha + beta)) * TIME_SCALE"/>
<Case condition="(ALPHA + BETA) .eq. 0" value="( 0 ) * TIME_SCALE"/>
<Case condition="1/(ALPHA + BETA) .lt. ( 0.00005 )" value="( 0.00005 ) * TIME_SCALE"/>
<Case value="( 1/(ALPHA + BETA)) * TIME_SCALE"/>
</ConditionalDerivedVariable>
</Dynamics>
</ComponentType>
Expand All @@ -61,27 +62,27 @@
<Requirement name="beta" dimension="per_time"/>
<Dynamics>
<DerivedVariable name="V" dimension="none" value="(v - offset) / VOLT_SCALE"/>
<DerivedVariable name="ALPHA" dimension="none" value="alpha * TIME_SCALE"/>
<DerivedVariable name="BETA" dimension="none" value="beta * TIME_SCALE"/>
<ConditionalDerivedVariable name="t" exposure="t" dimension="time">
<Case condition="(alpha + beta) .eq. 0" value="( 0 ) * TIME_SCALE"/> <!-- To catch any issues on initialisation-->
<Case condition="1/(alpha + beta) .lt. ( 0.000225 )" value="( 0.000225 ) * TIME_SCALE"/>
<Case value="( 1/(alpha + beta)) * TIME_SCALE"/>
<Case condition="(ALPHA + BETA) .eq. 0" value="( 0 ) * TIME_SCALE"/>
<Case condition="1/(ALPHA + BETA) .lt. ( 0.000225 )" value="( 0.000225 ) * TIME_SCALE"/>
<Case value="( 1/(ALPHA + BETA)) * TIME_SCALE"/>
</ConditionalDerivedVariable>
</Dynamics>
</ComponentType><!-- -->
</ComponentType>



<ionChannelHH id="Gran_KDr_98" conductance="10pS" species="k">
<notes>Delayed rectifyer K channel</notes>
<gateHHrates id="m" instances="4">
<q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<forwardRate type="Gran_KDr_98_m_alpha_rate"/>
<reverseRate type="Gran_KDr_98_m_beta_rate"/>
</gateHHrates>
<gateHHrates id="h" instances="1">
<q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<forwardRate type="Gran_KDr_98_h_alpha_rate"/>
<reverseRate type="Gran_KDr_98_h_beta_rate"/>
</gateHHrates>
Expand Down Expand Up @@ -136,42 +137,21 @@
<notes>Anomalous inward rectifying H conductance</notes>
<gateHHrates id="n" instances="1">
<q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<forwardRate type="HHExpRate" rate="0.8per_s" scale="-0.01100110011V" midpoint="-0.065V"/>
<reverseRate type="HHExpRate" rate="0.8per_s" scale="0.01100110011V" midpoint="-0.065V"/>
</gateHHrates>
</ionChannelHH>



<ionChannelHH id = "ca" conductance = "10pS" species="h">
<notes>A High Voltage Activated Ca2+ channel</notes>
<gateHHrates id="m" instances = "2">
<q10Settings type = "q10ExpTemp" q10Factor = "3" experimentalTemp = "17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<forwardRate type = "HHSigmoidRate" rate = "1600per_s" scale = "0.01388888889V" midpoint = "0.015V"/>
<reverseRate type = "HHExpLinearRate" rate = "100per_s" scale = "-0.005V" midpoint = "0.0011000000000000003V"/>
</gateHHrates>
<gateHHrates id="h" instances = "1">
<q10Settings type = "q10ExpTemp" q10Factor = "3" experimentalTemp = "17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<forwardRate type = "Gran_CaHVA_98_h_alpha_rate"/>
<reverseRate type = "Gran_CaHVA_98_h_beta_rate"/>
</gateHHrates>
</ionChannelHH>


<ionChannelHH id="Gran_CaHVA_98" conductance="10pS" species="ca">
<notes>A High Voltage Activated Ca2+ channel</notes>
<gateHHrates id="m" instances="2">
<q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<forwardRate type="HHSigmoidRate" rate="1600per_s" scale="0.01388888889V" midpoint="0.015V"/>
<reverseRate type="HHExpLinearRate" rate="100per_s" scale="-0.005V" midpoint="0.0011000000000000003V"/>
</gateHHrates>
<gateHHrates id="h" instances="1">
<q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<forwardRate type="Gran_CaHVA_98_h_alpha_rate"/>
<reverseRate type="Gran_CaHVA_98_h_beta_rate"/>
</gateHHrates>
Expand Down Expand Up @@ -208,13 +188,11 @@
<notes>A-type K channel, with rate equations expressed in tau and inf form</notes>
<gateHHtauInf id="m" instances="3">
<q10Settings type="q10ExpTemp" q10Factor="1" experimentalTemp="17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<timeCourse type="Gran_KA_98_m_tau_tau"/>
<steadyState type="HHSigmoidVariable" rate="1" scale="0.0198V" midpoint="-0.036699999999999997V"/>
</gateHHtauInf>
<gateHHtauInf id="h" instances="1">
<q10Settings type="q10ExpTemp" q10Factor="1" experimentalTemp="17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<timeCourse type="Gran_KA_98_h_tau_tau"/>
<steadyState type="HHSigmoidVariable" rate="1" scale="-0.0084V" midpoint="-0.0688V"/>
</gateHHtauInf>
Expand All @@ -241,13 +219,10 @@
</ComponentType>




<ionChannelHH id = "Gran_KCa_98" conductance = "10pS" species = "k">
<notes>Calcium dependent K+ channel</notes>
<gateHHrates id="m" instances = "1">
<q10Settings type = "q10ExpTemp" q10Factor = "3" experimentalTemp = "17.350264793 degC"/>
<notes>Note: offset from ChannelML file incorporated into midpoint of rates!!</notes>
<forwardRate type = "Gran_KCa_98_m_alpha_rate"/>
<reverseRate type = "Gran_KCa_98_m_beta_rate"/>
</gateHHrates>
Expand Down Expand Up @@ -278,15 +253,16 @@
</ComponentType>


<concentrationModel id="Gran_CaPool" type="decayingPoolConcentrationModel"
<decayingPoolConcentrationModel id="Gran_CaPool"
ion="ca"
restingConc="7.55E-11 mol_per_cm3"
decayConstant="10.0 ms"
shellThickness="8.4E-6 cm"/>


<cell id="Granule_98">

<notes>An implementation using ChannelML of the Granule cell mode from Maex, R and De Schutter, E. Synchronization of Golgi and Granule Cell Firing in a Detailed Network Model of the Cerebellar Granule Cell Layer, 1998</notes>
<notes>An implementation of the Granule cell mode from Maex, R and De Schutter, E. Synchronization of Golgi and Granule Cell Firing in a Detailed Network Model of the Cerebellar Granule Cell Layer, 1998</notes>

<morphology id="morphology_Granule_98">

Expand All @@ -295,15 +271,18 @@
<distal x="0.0" y="0.0" z="0.0" diameter="10.0"/>
</segment>

<segmentGroup id="Soma">
<segmentGroup id="Soma" neuroLexId="sao864921383"> <!--
This group contains an unbranched set of segments, and all of the segmentGroups marked with
neuroLexId = sao864921383 form a non-overlapping set of all of the segments.
These segmentGroups correspond to the 'cables' of NeuroML v1.8.1. -->
<member segment="0"/>
</segmentGroup>

<segmentGroup id="all">
<include segmentGroup="Soma"/>
</segmentGroup>

<segmentGroup id="soma_group">
<segmentGroup id="soma_group" neuroLexId="GO:0043025"> <!--Soma group-->
<include segmentGroup="Soma"/>
</segmentGroup>

Expand Down Expand Up @@ -336,9 +315,9 @@

<species id="ca"
ion="ca"
concentrationModel="Gran_CaPool"
initialConcentration="7.55E-5 mM"
initialExtConcentration="2 mM"/><!-- -->
concentrationModel="Gran_CaPool"
initialConcentration="7.55E-11 mol_per_cm3"
initialExtConcentration="2.4E-6 mol_per_cm3"/>

<resistivity value="0.1 kohm_cm"/>

Expand All @@ -354,14 +333,13 @@
<network id="net1" type="networkWithTemperature" temperature = "32 degC">
<population id="hhpop" component="Granule_98" size="1"/>
<explicitInput target="hhpop[0]" input="pulseGen1"/>
<!--<explicitInput target="hhpop[0]" input="pulseGen2"/>-->
</network>


<!-- End of NeuroML2 content -->


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

<Display id="d1" title="Ex15: Ca Dynamics: Voltage (mV)" timeScale="1ms" xmin="0" xmax="700" ymin="-90" ymax="60">
<Line id="hhpop[0]/v" quantity="hhpop[0]/v" scale="1mV" color="#ffffff" timeScale="1ms"/>
Expand All @@ -374,14 +352,13 @@

<Line id="Gran_NaF_98/m" quantity="hhpop[0]/biophys/membraneProperties/Gran_NaF_98_all/Gran_NaF_98/m/q" scale="1" color="#000000" timeScale="1ms"/>
<Line id="Gran_NaF_98/h" quantity="hhpop[0]/biophys/membraneProperties/Gran_NaF_98_all/Gran_NaF_98/h/q" scale="1" color="#0000ff" timeScale="1ms"/>

<Line id="Gran_H_98/n" quantity="hhpop[0]/biophys/membraneProperties/Gran_H_98_all/Gran_H_98/n/q" scale="1" color="#ff0000" timeScale="1ms"/>

<Line id="Gran_CaHVA_98/m" quantity="hhpop[0]/biophys/membraneProperties/Gran_CaHVA_98_all/Gran_CaHVA_98/m/q" scale="1" color="#770fff" timeScale="1ms"/>
<Line id="Gran_CaHVA_98/h" quantity="hhpop[0]/biophys/membraneProperties/Gran_CaHVA_98_all/Gran_CaHVA_98/h/q" scale="1" color="#55f00f" timeScale="1ms"/>
<Line id="Gran_H_98/n" quantity="hhpop[0]/biophys/membraneProperties/Gran_H_98_all/Gran_H_98/n/q" scale="1" color="#ff0000" timeScale="1ms"/>
<!--

<Line id="Gran_KA_98/m" quantity="hhpop[0]/biophys/membraneProperties/Gran_KA_98_all/Gran_KA_98/m/q" scale="1" color="#ffff00" timeScale="1ms"/>
<Line id="Gran_KA_98/h" quantity="hhpop[0]/biophys/membraneProperties/Gran_KA_98_all/Gran_KA_98/h/q" scale="1" color="#ffffff" timeScale="1ms"/>-->
<Line id="Gran_KA_98/h" quantity="hhpop[0]/biophys/membraneProperties/Gran_KA_98_all/Gran_KA_98/h/q" scale="1" color="#ffffff" timeScale="1ms"/>

</Display>

Expand Down
Loading

0 comments on commit 270e3c7

Please sign in to comment.