From 4af9426acc02ba11574e552dcc4a2059a050949d Mon Sep 17 00:00:00 2001 From: Padraig Gleeson Date: Fri, 22 Sep 2023 17:39:36 +0100 Subject: [PATCH 01/29] To v1.10.0 with NMLv2.3.1 schema --- HISTORY.md | 5 + Schemas/NeuroML2/NeuroML_v2.3.1.xsd | 3963 +++++++++++++++++++++++++++ docs/generate.py | 2 +- pom.xml | 2 +- test.py | 2 +- 5 files changed, 3971 insertions(+), 3 deletions(-) create mode 100644 Schemas/NeuroML2/NeuroML_v2.3.1.xsd diff --git a/HISTORY.md b/HISTORY.md index eaf1f66..b3c6797 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -8,6 +8,11 @@ and [LEMS](https://github.com/LEMS/LEMS), but also the Python ([libNeuroML](http **Only contributors who are not [NeuroML Editors](https://docs.neuroml.org/NeuroMLOrg/Board.html) are specifically pointed out below.** +v2.3.1 / 2023-XX-XX +-------------------- + + + v2.3 / 2023-09-20 -------------------- diff --git a/Schemas/NeuroML2/NeuroML_v2.3.1.xsd b/Schemas/NeuroML2/NeuroML_v2.3.1.xsd new file mode 100644 index 0000000..6106a6f --- /dev/null +++ b/Schemas/NeuroML2/NeuroML_v2.3.1.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/generate.py b/docs/generate.py index 3357040..787ee71 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.3" +nml2_version = "2.3.1" nml2_branch = "master" col_width_left = "70" diff --git a/pom.xml b/pom.xml index 4d45763..f8002c4 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ neuroml2-base-definitions org.neuroml.core - 1.9.1 + 1.10.0 UTF-8 diff --git a/test.py b/test.py index fec28b8..5f0ee33 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.3.xsd" +nml2_schema_name = "NeuroML_v2.3.1.xsd" nml2_schema = "Schemas/NeuroML2/%s"%nml2_schema_name nml2_schema_file = open(nml2_schema) From 225e953f4bda7f9ed9b53d56a77749bdc74d03ff Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Wed, 17 Apr 2024 10:37:06 +0100 Subject: [PATCH 02/29] feat: make `spikeThresh` required in `membraneProperties` fixes #220 TODO: update libNeuroML/NeuroMLC++ and so on. --- Schemas/NeuroML2/NeuroML_v2.3.1.xsd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Schemas/NeuroML2/NeuroML_v2.3.1.xsd b/Schemas/NeuroML2/NeuroML_v2.3.1.xsd index 6106a6f..877edef 100644 --- a/Schemas/NeuroML2/NeuroML_v2.3.1.xsd +++ b/Schemas/NeuroML2/NeuroML_v2.3.1.xsd @@ -2117,7 +2117,7 @@ - + - - + @@ -63,20 +62,14 @@ ion="na" erev="50mV"/> - + - - - diff --git a/examples/NML2_InhomogeneousParams.nml b/examples/NML2_InhomogeneousParams.nml index 3172cd6..7afc806 100644 --- a/examples/NML2_InhomogeneousParams.nml +++ b/examples/NML2_InhomogeneousParams.nml @@ -71,6 +71,8 @@ + + From 9ff64acb72efbbaa26d4a9908e6afbd6e0a8b285 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Fri, 19 Apr 2024 10:23:47 +0100 Subject: [PATCH 04/29] Update eden spike times to 0.2.3 behaviour --- LEMSexamples/test/.test.ex0.jnmleden.omt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LEMSexamples/test/.test.ex0.jnmleden.omt b/LEMSexamples/test/.test.ex0.jnmleden.omt index 51a8777..db1942b 100644 --- a/LEMSexamples/test/.test.ex0.jnmleden.omt +++ b/LEMSexamples/test/.test.ex0.jnmleden.omt @@ -25,7 +25,7 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.00010867391304343428 + tolerance: 0.00010869565217381418 iafPop0: observables: spike times: @@ -36,7 +36,7 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.00014932775619959672 + tolerance: 0.00014938751120392748 iafRefPop0: observables: spike times: From 2bb29502e93b280cbf4621bd34bdfec8c2462dd2 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 22 Apr 2024 17:35:52 +0100 Subject: [PATCH 05/29] chore: add spikeThresh --- examples/NML2_InhomogeneousParams.nml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/NML2_InhomogeneousParams.nml b/examples/NML2_InhomogeneousParams.nml index 3172cd6..26f12b8 100644 --- a/examples/NML2_InhomogeneousParams.nml +++ b/examples/NML2_InhomogeneousParams.nml @@ -71,6 +71,7 @@ + @@ -83,4 +84,4 @@ - \ No newline at end of file + From e4b8f71eff2eaa55ca01f292c5e291af45b981ae Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 22 Apr 2024 17:39:35 +0100 Subject: [PATCH 06/29] chore: add spikeThresh --- examples/NML2_FullCell.nml | 2 ++ examples/NML2_FullNeuroML.nml | 1 + 2 files changed, 3 insertions(+) diff --git a/examples/NML2_FullCell.nml b/examples/NML2_FullCell.nml index a80c073..5704011 100644 --- a/examples/NML2_FullCell.nml +++ b/examples/NML2_FullCell.nml @@ -88,6 +88,8 @@ + + diff --git a/examples/NML2_FullNeuroML.nml b/examples/NML2_FullNeuroML.nml index a824e3e..ba39d01 100644 --- a/examples/NML2_FullNeuroML.nml +++ b/examples/NML2_FullNeuroML.nml @@ -68,6 +68,7 @@ --> + From 5c2e0d930916d872758b100d93d074ae6d9d5df1 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Wed, 24 Apr 2024 14:22:15 +0100 Subject: [PATCH 07/29] Update GHA versions --- .github/workflows/ci.yml | 2 +- .github/workflows/omv-ci.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cfb639f..eb68408 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: java: [ '8', '11', '16', '17', '19' ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK ${{ matrix.java }} uses: actions/setup-java@v3 diff --git a/.github/workflows/omv-ci.yml b/.github/workflows/omv-ci.yml index bec4a7c..8510691 100644 --- a/.github/workflows/omv-ci.yml +++ b/.github/workflows/omv-ci.yml @@ -25,10 +25,10 @@ jobs: - PyLEMS_NeuroML2 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} From 8c5b64433c93da478da083d9fe428aefa311d7c2 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 29 Apr 2024 14:38:51 +0100 Subject: [PATCH 08/29] feat(core-types): add annotation component types Fixes #224 --- NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml | 106 ++++++++++++++++----- 1 file changed, 83 insertions(+), 23 deletions(-) diff --git a/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml b/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml index 5bac908..0a59cff 100644 --- a/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml +++ b/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml @@ -36,38 +36,75 @@ + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -105,18 +142,41 @@ + - - - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + From 56a456b4aeb240f10ab0e3ad87de9a974fa47807 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 29 Apr 2024 14:58:59 +0100 Subject: [PATCH 09/29] ci: update actions to latest versions --- .github/workflows/ci.yml | 2 +- .github/workflows/omv-ci.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cfb639f..eb68408 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: java: [ '8', '11', '16', '17', '19' ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK ${{ matrix.java }} uses: actions/setup-java@v3 diff --git a/.github/workflows/omv-ci.yml b/.github/workflows/omv-ci.yml index bec4a7c..0efd825 100644 --- a/.github/workflows/omv-ci.yml +++ b/.github/workflows/omv-ci.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ 3.9 ] + python-version: [ "3.9" ] engine: - jNeuroML - jNeuroML_Brian2 @@ -25,10 +25,10 @@ jobs: - PyLEMS_NeuroML2 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} From 12276e7d3359db07a7312b235457f125f7e14dd8 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 29 Apr 2024 15:09:13 +0100 Subject: [PATCH 10/29] ci(eden): update tolerance for OMV test --- LEMSexamples/test/.test.ex0.jnmleden.omt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LEMSexamples/test/.test.ex0.jnmleden.omt b/LEMSexamples/test/.test.ex0.jnmleden.omt index 51a8777..f5092c3 100644 --- a/LEMSexamples/test/.test.ex0.jnmleden.omt +++ b/LEMSexamples/test/.test.ex0.jnmleden.omt @@ -36,7 +36,7 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.00014932775619959672 + tolerance: 0.00014938 iafRefPop0: observables: spike times: From 96b542602dfdafbda640389c331616d8e2ebcd56 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 29 Apr 2024 15:32:39 +0100 Subject: [PATCH 11/29] chore: tweak eden tolerance --- LEMSexamples/test/.test.ex0.jnmleden.omt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LEMSexamples/test/.test.ex0.jnmleden.omt b/LEMSexamples/test/.test.ex0.jnmleden.omt index f5092c3..ee8f863 100644 --- a/LEMSexamples/test/.test.ex0.jnmleden.omt +++ b/LEMSexamples/test/.test.ex0.jnmleden.omt @@ -36,7 +36,7 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.00014938 + tolerance: 0.00014939 iafRefPop0: observables: spike times: From 953bc3f227d16a26c77471eb41a46d42c7b37b8c Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 29 Apr 2024 15:55:18 +0100 Subject: [PATCH 12/29] chore: tweak tolerance for eden --- LEMSexamples/test/.test.ex0.jnmleden.omt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LEMSexamples/test/.test.ex0.jnmleden.omt b/LEMSexamples/test/.test.ex0.jnmleden.omt index ee8f863..e24e460 100644 --- a/LEMSexamples/test/.test.ex0.jnmleden.omt +++ b/LEMSexamples/test/.test.ex0.jnmleden.omt @@ -25,7 +25,7 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.00010867391304343428 + tolerance: 0.000108696 iafPop0: observables: spike times: From 584c45db63d92ca3e7596e2be90bd726a70d72d6 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 29 Apr 2024 16:04:54 +0100 Subject: [PATCH 13/29] chore: revert eden changes Padraig has ready in these in #223 --- LEMSexamples/test/.test.ex0.jnmleden.omt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LEMSexamples/test/.test.ex0.jnmleden.omt b/LEMSexamples/test/.test.ex0.jnmleden.omt index e24e460..51a8777 100644 --- a/LEMSexamples/test/.test.ex0.jnmleden.omt +++ b/LEMSexamples/test/.test.ex0.jnmleden.omt @@ -25,7 +25,7 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.000108696 + tolerance: 0.00010867391304343428 iafPop0: observables: spike times: @@ -36,7 +36,7 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.00014939 + tolerance: 0.00014932775619959672 iafRefPop0: observables: spike times: From 98d2ffdac9ed5efc1ee6802b9c2012507ec82295 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Wed, 1 May 2024 16:42:51 +0100 Subject: [PATCH 14/29] Test on java 21 --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eb68408..86b5668 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,13 +13,13 @@ jobs: strategy: fail-fast: false matrix: - java: [ '8', '11', '16', '17', '19' ] + java: [ '8', '11', '16', '17', '19', '21' ] steps: - uses: actions/checkout@v4 - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.java }} java-package: jdk From 23fabbed1e1f181665c1e837129bd3d7c523c69c Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Fri, 3 May 2024 21:33:49 +0100 Subject: [PATCH 15/29] feat(annotations): update keywords --- NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml b/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml index 0a59cff..f47983d 100644 --- a/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml +++ b/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml @@ -162,7 +162,7 @@ - + From 09f066d601f63e13e8b7c073f099ab823209f61a Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Fri, 3 May 2024 21:37:09 +0100 Subject: [PATCH 16/29] feat(annotations): update combine specifications URL --- NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml | 36 +++++++++++----------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml b/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml index f47983d..581bb85 100644 --- a/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml +++ b/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml @@ -106,45 +106,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + From ff2587f6bbf55e3671b363a4c1b25f36f5688f65 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Fri, 3 May 2024 23:51:45 +0100 Subject: [PATCH 17/29] feat(annotations): add remaining FOAF bits --- NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml | 67 ++++++++++++++++++---- 1 file changed, 57 insertions(+), 10 deletions(-) diff --git a/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml b/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml index 581bb85..983d5f1 100644 --- a/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml +++ b/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml @@ -55,6 +55,18 @@ + + + + + + + + + + + + @@ -80,11 +92,10 @@ + - - @@ -126,9 +137,7 @@ - - - + @@ -136,9 +145,7 @@ - - - + @@ -155,13 +162,26 @@ - + + + + + + + - + + + + + + + + @@ -177,6 +197,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + From 089514713ee047a2d92cb5d9316ae1c7a0053880 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Tue, 7 May 2024 18:08:42 +0100 Subject: [PATCH 18/29] feat(annotations): use Child instead of Children Not sure why this is given that Child is meant to mean "one and only one" and Children mean "one or more". But, using Children causes tests to fail in org.neuroml.export etc. when building jNeuroML. This needs looking into. See also https://github.com/NeuroML/NeuroML2/issues/54 --- NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml | 102 +++++++++++---------- 1 file changed, 56 insertions(+), 46 deletions(-) diff --git a/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml b/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml index 983d5f1..3255598 100644 --- a/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml +++ b/NeuroML2CoreTypes/NeuroMLCoreCompTypes.xml @@ -67,51 +67,61 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + - + @@ -143,15 +153,15 @@ - + - + - + - + - + @@ -179,23 +189,23 @@ - - + + - + - + - + - + - - + + - + - + From 6a31539fe68b982176792e874fbabbe78fa55ba9 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Wed, 29 May 2024 10:45:19 +0100 Subject: [PATCH 19/29] Update GHA --- .github/workflows/ci.yml | 6 +++--- .github/workflows/omv-ci.yml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eb68408..9cd865b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,9 +3,9 @@ name: Build all NML Java on: push: - branches: [ master, development, experimental, documentation_update, osb* ] + branches: [ master, development, experimental, documentation_update, osb*, update* ] pull_request: - branches: [ master, development, experimental, documentation_update, osb* ] + branches: [ master, development, experimental, documentation_update, osb*, update* ] jobs: build: @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.java }} java-package: jdk diff --git a/.github/workflows/omv-ci.yml b/.github/workflows/omv-ci.yml index 0efd825..898510b 100644 --- a/.github/workflows/omv-ci.yml +++ b/.github/workflows/omv-ci.yml @@ -2,9 +2,9 @@ name: Run OMV tests on: push: - branches: [ master, development, experimental, documentation_update, osb* ] + branches: [ master, development, experimental, documentation_update, osb*, update* ] pull_request: - branches: [ master, development, experimental, documentation_update, osb* ] + branches: [ master, development, experimental, documentation_update, osb*, update* ] jobs: build: From 0ecce9241eb7538c647cd07ce4659370859e5b45 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Wed, 29 May 2024 10:47:24 +0100 Subject: [PATCH 20/29] Update eden times for 0.2.3 --- LEMSexamples/test/.test.ex0.jnmleden.omt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/LEMSexamples/test/.test.ex0.jnmleden.omt b/LEMSexamples/test/.test.ex0.jnmleden.omt index 51a8777..707d1e9 100644 --- a/LEMSexamples/test/.test.ex0.jnmleden.omt +++ b/LEMSexamples/test/.test.ex0.jnmleden.omt @@ -25,7 +25,7 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.00010867391304343428 + tolerance: 0.00010869565217381418 iafPop0: observables: spike times: @@ -36,7 +36,7 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.00014932775619959672 + tolerance: 0.00014938751120392748 iafRefPop0: observables: spike times: @@ -47,4 +47,4 @@ experiments: spike detection: method: threshold threshold: -55.1 - tolerance: 0.0002189781021897893 + tolerance: 0.0002189781021897893 \ No newline at end of file From ed7b92b91ec075a687d07c8a275c1937f888c745 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Wed, 29 May 2024 14:27:12 +0100 Subject: [PATCH 21/29] Add soma_group, as it's referred to in channelDensity --- examples/NML2_FullNeuroML.nml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/NML2_FullNeuroML.nml b/examples/NML2_FullNeuroML.nml index 99957b4..b44f4b3 100644 --- a/examples/NML2_FullNeuroML.nml +++ b/examples/NML2_FullNeuroML.nml @@ -20,6 +20,10 @@ + + + + From fe3aa27d2ed146938be3efa19dfb15ddd8cc3804 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Fri, 31 May 2024 10:29:46 +0100 Subject: [PATCH 22/29] Make membraneProperties require at least one each of specificCapacitance and initMembPotential --- Schemas/NeuroML2/NeuroML_v2.3.1.xsd | 4 ++-- examples/NML2_FullCell.nml | 2 ++ examples/NML2_FullNeuroML.nml | 2 ++ examples/NML2_InhomogeneousParams.nml | 2 ++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Schemas/NeuroML2/NeuroML_v2.3.1.xsd b/Schemas/NeuroML2/NeuroML_v2.3.1.xsd index 877edef..741f1e8 100644 --- a/Schemas/NeuroML2/NeuroML_v2.3.1.xsd +++ b/Schemas/NeuroML2/NeuroML_v2.3.1.xsd @@ -2118,8 +2118,8 @@ - - + + diff --git a/examples/NML2_FullCell.nml b/examples/NML2_FullCell.nml index cc6fc5b..51b0288 100644 --- a/examples/NML2_FullCell.nml +++ b/examples/NML2_FullCell.nml @@ -94,6 +94,8 @@ + + diff --git a/examples/NML2_FullNeuroML.nml b/examples/NML2_FullNeuroML.nml index b44f4b3..32fb42c 100644 --- a/examples/NML2_FullNeuroML.nml +++ b/examples/NML2_FullNeuroML.nml @@ -67,6 +67,8 @@ erev="50mV"/> + + diff --git a/examples/NML2_InhomogeneousParams.nml b/examples/NML2_InhomogeneousParams.nml index 85f8ac9..5703d38 100644 --- a/examples/NML2_InhomogeneousParams.nml +++ b/examples/NML2_InhomogeneousParams.nml @@ -74,6 +74,8 @@ + + From ab06e87f7617e07a723252e3c54ec932724598eb Mon Sep 17 00:00:00 2001 From: Padraig Gleeson Date: Tue, 11 Jun 2024 11:20:50 +0100 Subject: [PATCH 23/29] Add java 21 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9cd865b..5e6fb12 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - java: [ '8', '11', '16', '17', '19' ] + java: [ '8', '11', '16', '17', '19', '21' ] steps: - uses: actions/checkout@v4 From 7f048b0e7a04e355e7235c8bd316d22f7d50e6be Mon Sep 17 00:00:00 2001 From: Padraig Gleeson Date: Tue, 11 Jun 2024 11:59:54 +0100 Subject: [PATCH 24/29] To v1.10.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f8002c4..45e5415 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ neuroml2-base-definitions org.neuroml.core - 1.10.0 + 1.10.1 UTF-8 From 59bce3683cb1927189de07de9556eb7549c92e9b Mon Sep 17 00:00:00 2001 From: Padraig Gleeson Date: Tue, 11 Jun 2024 12:23:11 +0100 Subject: [PATCH 25/29] Remove old travis.yml --- .travis.yml | 75 ----------------------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 97ab837..0000000 --- a/.travis.yml +++ /dev/null @@ -1,75 +0,0 @@ -dist: xenial - -addons: - apt: - packages: - # Requirements for Brian & NEST - - python-numpy - - python-scipy - - python-matplotlib - - python-sympy - # Requirements for NetPyNE & libNeuroML - - python-tk - - python-lxml - - python-tornado - # Requirements for Moose - - python-dev - - libhdf5-dev - - libgsl0-dev - - g++ - - -language: python - -python: - - 2.7 - - 3.7 - -branches: - except: - - documentation_update - -env: - - OMV_ENGINE=jNeuroML - - OMV_ENGINE=PyLEMS_NeuroML2 - - OMV_ENGINE=jNeuroML_NEURON - - OMV_ENGINE=jNeuroML_NetPyNE - - OMV_ENGINE=jNeuroML_Brian - - OMV_ENGINE=jNeuroML_Brian2 - #- OMV_ENGINE=jNeuroML_Moose # issue on xenial and python 3? - - OMV_ENGINE=jNeuroML_validate - -install: - - - pip install kiwisolver==1.1.0 # Temporary, due to issues with 1.2.0 - - export main_repo_branch=$TRAVIS_BRANCH - - echo $main_repo_branch - - if [[ ${main_repo_branch} != "master" && ${main_repo_branch} != "development" && ${main_repo_branch} != "experimental" ]]; then main_repo_branch=development ; fi - - - mvn install - - - git clone https://github.com/NeuroML/jNeuroML.git - - cd jNeuroML - - git checkout $main_repo_branch - - - python getNeuroML.py $main_repo_branch # will call mvn install on this & other repos - - ls -alt - - mvn dependency:tree - - - export PATH=$PATH:$TRAVIS_BUILD_DIR/jNeuroML - - export JNML_HOME=$TRAVIS_BUILD_DIR/jNeuroML - - cd - - pip install git+https://github.com/OpenSourceBrain/osb-model-validation - - - pip install matplotlib>=2.2.5 # This is more because Matplotlib v2.x is required... - - pip install future pandas matplotlib-scalebar bokeh scipy - - -script: - - jnml -v - - cd $TRAVIS_BUILD_DIR/NeuroML2/LEMSexamples - - pwd - - ls -alt - - if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ]; then omv all -V; else omv all -V --ignore-non-py3; fi - - omv list -V - - java -version From 29199e0708dc04e09dcb2edea38662b76f6e4677 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Wed, 19 Jun 2024 11:07:28 +0100 Subject: [PATCH 26/29] Add examples with tests for various ways to include and in --- .gitignore | 12 + LEMSexamples/morphologies/.test.jnml.omt | 17 ++ .../morphologies/.test.jnmleden.multi.omt | 20 ++ .../morphologies/.test.jnmleden.multi.out.omt | 20 ++ LEMSexamples/morphologies/.test.jnmleden.omt | 17 ++ .../morphologies/.test.jnmleden.out.omt | 17 ++ .../morphologies/.test.jnmlnetpyne.multi.omt | 20 ++ .../.test.jnmlnetpyne.multi.out.omt | 20 ++ .../morphologies/.test.jnmlnetpyne.omt | 20 ++ .../morphologies/.test.jnmlnetpyne.out.omt | 20 ++ .../morphologies/.test.jnmlnrn.multi.omt | 20 ++ .../morphologies/.test.jnmlnrn.multi.out.omt | 20 ++ LEMSexamples/morphologies/.test.jnmlnrn.omt | 20 ++ .../morphologies/.test.jnmlnrn.out.omt | 20 ++ LEMSexamples/morphologies/.test.mep | 6 + LEMSexamples/morphologies/.test.multi.mep | 6 + LEMSexamples/morphologies/.test.validate.omt | 5 + LEMSexamples/morphologies/Ca_conc.nml | 8 + LEMSexamples/morphologies/Ca_pyr.channel.nml | 106 ++++++++ .../morphologies/Kahp_pyr.channel.nml | 106 ++++++++ LEMSexamples/morphologies/Kdr_pyr.channel.nml | 60 +++++ LEMSexamples/morphologies/LEMS_m_in_b_in.xml | 67 +++++ LEMSexamples/morphologies/LEMS_m_in_b_out.xml | 66 +++++ LEMSexamples/morphologies/LEMS_m_out_b_in.xml | 66 +++++ .../morphologies/LEMS_m_out_b_out.xml | 45 ++++ LEMSexamples/morphologies/LEMS_pyrfull_in.xml | 92 +++++++ .../morphologies/LEMS_pyrfull_out.xml | 91 +++++++ .../LeakConductance_pyr.channel.nml | 13 + LEMSexamples/morphologies/Na_pyr.channel.nml | 68 +++++ LEMSexamples/morphologies/README.md | 47 ++++ .../morphologies/network_m_out_b_out.net.nml | 29 +++ LEMSexamples/morphologies/pyr_4_sym.cell.nml | 246 ++++++++++++++++++ .../morphologies/pyr_4_sym_soma_morph.nml | 33 +++ LEMSexamples/morphologies/pyr_biophysics.nml | 50 ++++ .../morphologies/pyr_full_morph_biophys.nml | 241 +++++++++++++++++ .../morphologies/pyr_full_out.cell.nml | 13 + .../morphologies/pyr_morphology.cell.nml | 201 ++++++++++++++ .../morphologies/pyr_soma_m_in_b_in.cell.nml | 84 ++++++ .../morphologies/pyr_soma_m_in_b_out.cell.nml | 39 +++ .../morphologies/pyr_soma_m_out_b_in.cell.nml | 60 +++++ .../pyr_soma_m_out_b_out.cell.nml | 13 + LEMSexamples/morphologies/pyrfull_in.net.nml | 26 ++ LEMSexamples/morphologies/pyrfull_out.net.nml | 26 ++ LEMSexamples/morphologies/test_all.sh | 29 +++ 44 files changed, 2205 insertions(+) create mode 100644 LEMSexamples/morphologies/.test.jnml.omt create mode 100644 LEMSexamples/morphologies/.test.jnmleden.multi.omt create mode 100644 LEMSexamples/morphologies/.test.jnmleden.multi.out.omt create mode 100644 LEMSexamples/morphologies/.test.jnmleden.omt create mode 100644 LEMSexamples/morphologies/.test.jnmleden.out.omt create mode 100644 LEMSexamples/morphologies/.test.jnmlnetpyne.multi.omt create mode 100644 LEMSexamples/morphologies/.test.jnmlnetpyne.multi.out.omt create mode 100644 LEMSexamples/morphologies/.test.jnmlnetpyne.omt create mode 100644 LEMSexamples/morphologies/.test.jnmlnetpyne.out.omt create mode 100644 LEMSexamples/morphologies/.test.jnmlnrn.multi.omt create mode 100644 LEMSexamples/morphologies/.test.jnmlnrn.multi.out.omt create mode 100644 LEMSexamples/morphologies/.test.jnmlnrn.omt create mode 100644 LEMSexamples/morphologies/.test.jnmlnrn.out.omt create mode 100644 LEMSexamples/morphologies/.test.mep create mode 100644 LEMSexamples/morphologies/.test.multi.mep create mode 100644 LEMSexamples/morphologies/.test.validate.omt create mode 100644 LEMSexamples/morphologies/Ca_conc.nml create mode 100644 LEMSexamples/morphologies/Ca_pyr.channel.nml create mode 100644 LEMSexamples/morphologies/Kahp_pyr.channel.nml create mode 100644 LEMSexamples/morphologies/Kdr_pyr.channel.nml create mode 100644 LEMSexamples/morphologies/LEMS_m_in_b_in.xml create mode 100644 LEMSexamples/morphologies/LEMS_m_in_b_out.xml create mode 100644 LEMSexamples/morphologies/LEMS_m_out_b_in.xml create mode 100644 LEMSexamples/morphologies/LEMS_m_out_b_out.xml create mode 100644 LEMSexamples/morphologies/LEMS_pyrfull_in.xml create mode 100644 LEMSexamples/morphologies/LEMS_pyrfull_out.xml create mode 100644 LEMSexamples/morphologies/LeakConductance_pyr.channel.nml create mode 100644 LEMSexamples/morphologies/Na_pyr.channel.nml create mode 100644 LEMSexamples/morphologies/README.md create mode 100644 LEMSexamples/morphologies/network_m_out_b_out.net.nml create mode 100644 LEMSexamples/morphologies/pyr_4_sym.cell.nml create mode 100644 LEMSexamples/morphologies/pyr_4_sym_soma_morph.nml create mode 100644 LEMSexamples/morphologies/pyr_biophysics.nml create mode 100644 LEMSexamples/morphologies/pyr_full_morph_biophys.nml create mode 100644 LEMSexamples/morphologies/pyr_full_out.cell.nml create mode 100644 LEMSexamples/morphologies/pyr_morphology.cell.nml create mode 100644 LEMSexamples/morphologies/pyr_soma_m_in_b_in.cell.nml create mode 100644 LEMSexamples/morphologies/pyr_soma_m_in_b_out.cell.nml create mode 100644 LEMSexamples/morphologies/pyr_soma_m_out_b_in.cell.nml create mode 100644 LEMSexamples/morphologies/pyr_soma_m_out_b_out.cell.nml create mode 100644 LEMSexamples/morphologies/pyrfull_in.net.nml create mode 100644 LEMSexamples/morphologies/pyrfull_out.net.nml create mode 100755 LEMSexamples/morphologies/test_all.sh diff --git a/.gitignore b/.gitignore index e58f53e..0dfe0af 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,15 @@ examples/*.pov /LEMSexamples/tmp arm64 /examples/NML2_SingleCompHHCell.nml__flattened.xml +/LEMSexamples/morphologies/*.mod +/LEMSexamples/morphologies/*.c +/LEMSexamples/morphologies/*.so +*eden.py +*netpyne.py +*nrn.py +/LEMSexamples/morphologies/*.dat +/LEMSexamples/morphologies/*.hoc +/LEMSexamples/morphologies/NET_m_in_b_in.net.nml +/LEMSexamples/morphologies/simulator.props +/LEMSexamples/morphologies/NET_m_in_b_out.net.nml +/LEMSexamples/morphologies/NET_m_out_b_in.net.nml diff --git a/LEMSexamples/morphologies/.test.jnml.omt b/LEMSexamples/morphologies/.test.jnml.omt new file mode 100644 index 0000000..15552fa --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnml.omt @@ -0,0 +1,17 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_m_in_b_in.xml +engine: jNeuroML +mep: .test.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidal_soma_0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0.004018425953151025 diff --git a/LEMSexamples/morphologies/.test.jnmleden.multi.omt b/LEMSexamples/morphologies/.test.jnmleden.multi.omt new file mode 100644 index 0000000..584aad5 --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmleden.multi.omt @@ -0,0 +1,20 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_pyrfull_in.xml +engine: jNeuroML_EDEN +mep: .test.multi.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidals_0.0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0.017719626168224333 + + + diff --git a/LEMSexamples/morphologies/.test.jnmleden.multi.out.omt b/LEMSexamples/morphologies/.test.jnmleden.multi.out.omt new file mode 100644 index 0000000..b81acec --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmleden.multi.out.omt @@ -0,0 +1,20 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_pyrfull_out.xml +engine: jNeuroML_EDEN +mep: .test.multi.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidals_0.0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0.017719626168224333 + + + diff --git a/LEMSexamples/morphologies/.test.jnmleden.omt b/LEMSexamples/morphologies/.test.jnmleden.omt new file mode 100644 index 0000000..b488705 --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmleden.omt @@ -0,0 +1,17 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_m_in_b_in.xml +engine: jNeuroML_EDEN +mep: .test.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidal_soma_0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0.0024858998690222445 diff --git a/LEMSexamples/morphologies/.test.jnmleden.out.omt b/LEMSexamples/morphologies/.test.jnmleden.out.omt new file mode 100644 index 0000000..e3a1926 --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmleden.out.omt @@ -0,0 +1,17 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_m_out_b_out.xml +engine: jNeuroML_EDEN +mep: .test.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidal_soma_0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0.0024858998690222445 diff --git a/LEMSexamples/morphologies/.test.jnmlnetpyne.multi.omt b/LEMSexamples/morphologies/.test.jnmlnetpyne.multi.omt new file mode 100644 index 0000000..51aefcc --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmlnetpyne.multi.omt @@ -0,0 +1,20 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_pyrfull_in.xml +engine: jNeuroML_NetPyNE +mep: .test.multi.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidals_0.0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0 + + + diff --git a/LEMSexamples/morphologies/.test.jnmlnetpyne.multi.out.omt b/LEMSexamples/morphologies/.test.jnmlnetpyne.multi.out.omt new file mode 100644 index 0000000..aa53dcc --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmlnetpyne.multi.out.omt @@ -0,0 +1,20 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_pyrfull_out.xml +engine: jNeuroML_NetPyNE +mep: .test.multi.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidals_0.0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0 + + + diff --git a/LEMSexamples/morphologies/.test.jnmlnetpyne.omt b/LEMSexamples/morphologies/.test.jnmlnetpyne.omt new file mode 100644 index 0000000..f43719a --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmlnetpyne.omt @@ -0,0 +1,20 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_m_in_b_in.xml +engine: jNeuroML_NetPyNE +mep: .test.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidal_soma_0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0 + + + diff --git a/LEMSexamples/morphologies/.test.jnmlnetpyne.out.omt b/LEMSexamples/morphologies/.test.jnmlnetpyne.out.omt new file mode 100644 index 0000000..4f3a609 --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmlnetpyne.out.omt @@ -0,0 +1,20 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_m_out_b_out.xml +engine: jNeuroML_NetPyNE +mep: .test.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidal_soma_0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0 + + + diff --git a/LEMSexamples/morphologies/.test.jnmlnrn.multi.omt b/LEMSexamples/morphologies/.test.jnmlnrn.multi.omt new file mode 100644 index 0000000..6df86c8 --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmlnrn.multi.omt @@ -0,0 +1,20 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_pyrfull_in.xml +engine: jNeuroML_NEURON +mep: .test.multi.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidals_0.0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0 + + + diff --git a/LEMSexamples/morphologies/.test.jnmlnrn.multi.out.omt b/LEMSexamples/morphologies/.test.jnmlnrn.multi.out.omt new file mode 100644 index 0000000..356c609 --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmlnrn.multi.out.omt @@ -0,0 +1,20 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_pyrfull_out.xml +engine: jNeuroML_NEURON +mep: .test.multi.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidals_0.0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0 + + + diff --git a/LEMSexamples/morphologies/.test.jnmlnrn.omt b/LEMSexamples/morphologies/.test.jnmlnrn.omt new file mode 100644 index 0000000..191f96e --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmlnrn.omt @@ -0,0 +1,20 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_m_in_b_in.xml +engine: jNeuroML_NEURON +mep: .test.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidal_soma_0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0 + + + diff --git a/LEMSexamples/morphologies/.test.jnmlnrn.out.omt b/LEMSexamples/morphologies/.test.jnmlnrn.out.omt new file mode 100644 index 0000000..4d47a59 --- /dev/null +++ b/LEMSexamples/morphologies/.test.jnmlnrn.out.omt @@ -0,0 +1,20 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +target: LEMS_m_out_b_out.xml +engine: jNeuroML_NEURON +mep: .test.mep +experiments: + Current clamp pyramidal: + observables: + spike times: + file: + path: pyramidal_soma_0.dat + columns: [0,1] + scaling: [1000, 1000] + spike detection: + method: threshold + threshold: 0 + tolerance: 0 + + + diff --git a/LEMSexamples/morphologies/.test.mep b/LEMSexamples/morphologies/.test.mep new file mode 100644 index 0000000..88d6fa5 --- /dev/null +++ b/LEMSexamples/morphologies/.test.mep @@ -0,0 +1,6 @@ +system: Testing a single compartment cell + +experiments: + Current clamp pyramidal: + expected: + spike times: [102.49, 120.78, 148.66, 256.3125, 330.84000000000003, 408.0575, 484.6375, 561.1650000000001] diff --git a/LEMSexamples/morphologies/.test.multi.mep b/LEMSexamples/morphologies/.test.multi.mep new file mode 100644 index 0000000..741189f --- /dev/null +++ b/LEMSexamples/morphologies/.test.multi.mep @@ -0,0 +1,6 @@ +system: Testing a cell + +experiments: + Current clamp pyramidal: + expected: + spike times: [134.24, 401.25] diff --git a/LEMSexamples/morphologies/.test.validate.omt b/LEMSexamples/morphologies/.test.validate.omt new file mode 100644 index 0000000..7402c51 --- /dev/null +++ b/LEMSexamples/morphologies/.test.validate.omt @@ -0,0 +1,5 @@ +# Script for running automated tests on OSB, see https://github.com/OpenSourceBrain/osb-model-validation + +# This test will validate all of the NeuroML 2 files in the current directory using: jnml -validate *.nml +target: "*cell.nml *channel.nml C*.nml" +engine: jNeuroML_validate diff --git a/LEMSexamples/morphologies/Ca_conc.nml b/LEMSexamples/morphologies/Ca_conc.nml new file mode 100644 index 0000000..985481f --- /dev/null +++ b/LEMSexamples/morphologies/Ca_conc.nml @@ -0,0 +1,8 @@ + + + + NeuroML file describing intracellular Calcium dynamics, from the Hippocampal CA3 neuron model presented in Traub et al., 1991. + + + + diff --git a/LEMSexamples/morphologies/Ca_pyr.channel.nml b/LEMSexamples/morphologies/Ca_pyr.channel.nml new file mode 100644 index 0000000..d878a9d --- /dev/null +++ b/LEMSexamples/morphologies/Ca_pyr.channel.nml @@ -0,0 +1,106 @@ + + + + NeuroML file containing a single Calcium Channel description, from the Hippocampal CA3 neuron model presented in Traub et al., 1991. + + + + NeuroML file containing a single Calcium Channel description, from the Hippocampal CA3 neuron model presented in Traub et al., 1991. + + + + + + + + + + + + + + Traub, R. D., Wong, R. K., Miles, R., and Michelson, H. (1991). A model of a CA3 hippocampal pyramidal neuron incorporating voltage-clamp data on intrinsic conductances. Journal of neurophysiology, 66(2), 635-50. + + + + + + + + + + + + + Ca channels + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LEMSexamples/morphologies/Kahp_pyr.channel.nml b/LEMSexamples/morphologies/Kahp_pyr.channel.nml new file mode 100644 index 0000000..b3cfbaa --- /dev/null +++ b/LEMSexamples/morphologies/Kahp_pyr.channel.nml @@ -0,0 +1,106 @@ + + + + NeuroML file containing a single Calcium-dependent Potassium Channel description, from the Hippocampal CA3 neuron model presented in Traub et al., 1991. + + + + NeuroML file containing a single Calcium-dependent Potassium Channel description, from the Hippocampal CA3 neuron model presented in Traub et al., 1991. + + + + + + + + + + + + + + Traub, R. D., Wong, R. K., Miles, R., and Michelson, H. (1991). A model of a CA3 hippocampal pyramidal neuron incorporating voltage-clamp data on intrinsic conductances. Journal of neurophysiology, 66(2), 635-50. + + + + + + + + + + + + + K channels + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LEMSexamples/morphologies/Kdr_pyr.channel.nml b/LEMSexamples/morphologies/Kdr_pyr.channel.nml new file mode 100644 index 0000000..20364ae --- /dev/null +++ b/LEMSexamples/morphologies/Kdr_pyr.channel.nml @@ -0,0 +1,60 @@ + + + + NeuroML file containing a single Potassium Channel description, from the Hippocampal CA3 neuron model presented in Traub et al., 1991. + + + + NeuroML file containing a single Potassium Channel description, from the Hippocampal CA3 neuron model presented in Traub et al., 1991. + + + + + + + + + + + + + + Traub, R. D., Wong, R. K., Miles, R., and Michelson, H. (1991). A model of a CA3 hippocampal pyramidal neuron incorporating voltage-clamp data on intrinsic conductances. Journal of neurophysiology, 66(2), 635-50. + + + + + + + + + + + + + K channels + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LEMSexamples/morphologies/LEMS_m_in_b_in.xml b/LEMSexamples/morphologies/LEMS_m_in_b_in.xml new file mode 100644 index 0000000..993aed2 --- /dev/null +++ b/LEMSexamples/morphologies/LEMS_m_in_b_in.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/LEMS_m_in_b_out.xml b/LEMSexamples/morphologies/LEMS_m_in_b_out.xml new file mode 100644 index 0000000..f1f325f --- /dev/null +++ b/LEMSexamples/morphologies/LEMS_m_in_b_out.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/LEMS_m_out_b_in.xml b/LEMSexamples/morphologies/LEMS_m_out_b_in.xml new file mode 100644 index 0000000..dfb2434 --- /dev/null +++ b/LEMSexamples/morphologies/LEMS_m_out_b_in.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/LEMS_m_out_b_out.xml b/LEMSexamples/morphologies/LEMS_m_out_b_out.xml new file mode 100644 index 0000000..8055450 --- /dev/null +++ b/LEMSexamples/morphologies/LEMS_m_out_b_out.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/LEMS_pyrfull_in.xml b/LEMSexamples/morphologies/LEMS_pyrfull_in.xml new file mode 100644 index 0000000..32a9647 --- /dev/null +++ b/LEMSexamples/morphologies/LEMS_pyrfull_in.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/LEMS_pyrfull_out.xml b/LEMSexamples/morphologies/LEMS_pyrfull_out.xml new file mode 100644 index 0000000..e91c7c7 --- /dev/null +++ b/LEMSexamples/morphologies/LEMS_pyrfull_out.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/LeakConductance_pyr.channel.nml b/LEMSexamples/morphologies/LeakConductance_pyr.channel.nml new file mode 100644 index 0000000..ecfb8b7 --- /dev/null +++ b/LEMSexamples/morphologies/LeakConductance_pyr.channel.nml @@ -0,0 +1,13 @@ + + + + NeuroML file containing a single Channel description + + + + Passive conductance for pyramidal cell + + + + + diff --git a/LEMSexamples/morphologies/Na_pyr.channel.nml b/LEMSexamples/morphologies/Na_pyr.channel.nml new file mode 100644 index 0000000..5d0ff83 --- /dev/null +++ b/LEMSexamples/morphologies/Na_pyr.channel.nml @@ -0,0 +1,68 @@ + + + + NeuroML file containing a single Sodium Channel description, from the Hippocampal CA3 neuron model presented in Traub et al., 1991. + + + + NeuroML file containing a single Sodium Channel description, from the Hippocampal CA3 neuron model presented in Traub et al., 1991. + + + + + + + + + + + + + + Traub, R. D., Wong, R. K., Miles, R., and Michelson, H. (1991). A model of a CA3 hippocampal pyramidal neuron incorporating voltage-clamp data on intrinsic conductances. Journal of neurophysiology, 66(2), 635-50. + + + + + + + + + + + + + Na channels + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LEMSexamples/morphologies/README.md b/LEMSexamples/morphologies/README.md new file mode 100644 index 0000000..5bd53d5 --- /dev/null +++ b/LEMSexamples/morphologies/README.md @@ -0,0 +1,47 @@ +## Examples with tests for various ways to include `` and `` in `` + + +See https://github.com/NeuroML/NeuroML2/issues/150 for background. + +Cells with morphologies and biophysical properties can be expressed as: + +```xml + +... + + + + ... + + + + + ... + + + +``` +or +```xml + + ... + + + + + + + + ... + + + + + ... + + +``` +See [pyr_soma_m_in_b_in.cell.nml](pyr_soma_m_in_b_in.cell.nml), [pyr_soma_m_out_b_in.cell.nml](pyr_soma_m_out_b_in.cell.nml), [pyr_soma_m_in_b_out.cell.nml](pyr_soma_m_in_b_out.cell.nml), [pyr_full_out.cell.nml](pyr_full_out.cell.nml) etc. + + + diff --git a/LEMSexamples/morphologies/network_m_out_b_out.net.nml b/LEMSexamples/morphologies/network_m_out_b_out.net.nml new file mode 100644 index 0000000..5b89a3d --- /dev/null +++ b/LEMSexamples/morphologies/network_m_out_b_out.net.nml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/pyr_4_sym.cell.nml b/LEMSexamples/morphologies/pyr_4_sym.cell.nml new file mode 100644 index 0000000..dda6278 --- /dev/null +++ b/LEMSexamples/morphologies/pyr_4_sym.cell.nml @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + A simplified pyramidal cell model with 9 compartments + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LEMSexamples/morphologies/pyr_4_sym_soma_morph.nml b/LEMSexamples/morphologies/pyr_4_sym_soma_morph.nml new file mode 100644 index 0000000..9154b8a --- /dev/null +++ b/LEMSexamples/morphologies/pyr_4_sym_soma_morph.nml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/pyr_biophysics.nml b/LEMSexamples/morphologies/pyr_biophysics.nml new file mode 100644 index 0000000..b90938d --- /dev/null +++ b/LEMSexamples/morphologies/pyr_biophysics.nml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/pyr_full_morph_biophys.nml b/LEMSexamples/morphologies/pyr_full_morph_biophys.nml new file mode 100644 index 0000000..28a2561 --- /dev/null +++ b/LEMSexamples/morphologies/pyr_full_morph_biophys.nml @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LEMSexamples/morphologies/pyr_full_out.cell.nml b/LEMSexamples/morphologies/pyr_full_out.cell.nml new file mode 100644 index 0000000..9d335f5 --- /dev/null +++ b/LEMSexamples/morphologies/pyr_full_out.cell.nml @@ -0,0 +1,13 @@ + + + + + + + + + A simplified pyramidal cell model with 9 compartments + + + + diff --git a/LEMSexamples/morphologies/pyr_morphology.cell.nml b/LEMSexamples/morphologies/pyr_morphology.cell.nml new file mode 100644 index 0000000..9590c14 --- /dev/null +++ b/LEMSexamples/morphologies/pyr_morphology.cell.nml @@ -0,0 +1,201 @@ + + + + + + + + Just the morphology + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LEMSexamples/morphologies/pyr_soma_m_in_b_in.cell.nml b/LEMSexamples/morphologies/pyr_soma_m_in_b_in.cell.nml new file mode 100644 index 0000000..b0561c8 --- /dev/null +++ b/LEMSexamples/morphologies/pyr_soma_m_in_b_in.cell.nml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + A single segment/compartment cell + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/pyr_soma_m_in_b_out.cell.nml b/LEMSexamples/morphologies/pyr_soma_m_in_b_out.cell.nml new file mode 100644 index 0000000..7b11f33 --- /dev/null +++ b/LEMSexamples/morphologies/pyr_soma_m_in_b_out.cell.nml @@ -0,0 +1,39 @@ + + + + + + + + A single segment/compartment cell + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/pyr_soma_m_out_b_in.cell.nml b/LEMSexamples/morphologies/pyr_soma_m_out_b_in.cell.nml new file mode 100644 index 0000000..8aa95c4 --- /dev/null +++ b/LEMSexamples/morphologies/pyr_soma_m_out_b_in.cell.nml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + A single segment/compartment cell + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/pyr_soma_m_out_b_out.cell.nml b/LEMSexamples/morphologies/pyr_soma_m_out_b_out.cell.nml new file mode 100644 index 0000000..506ef23 --- /dev/null +++ b/LEMSexamples/morphologies/pyr_soma_m_out_b_out.cell.nml @@ -0,0 +1,13 @@ + + + + + + + + + A single segment/compartment cell + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/pyrfull_in.net.nml b/LEMSexamples/morphologies/pyrfull_in.net.nml new file mode 100644 index 0000000..6abb92c --- /dev/null +++ b/LEMSexamples/morphologies/pyrfull_in.net.nml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/pyrfull_out.net.nml b/LEMSexamples/morphologies/pyrfull_out.net.nml new file mode 100644 index 0000000..d994109 --- /dev/null +++ b/LEMSexamples/morphologies/pyrfull_out.net.nml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEMSexamples/morphologies/test_all.sh b/LEMSexamples/morphologies/test_all.sh new file mode 100755 index 0000000..c35aa7e --- /dev/null +++ b/LEMSexamples/morphologies/test_all.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -ex + +pynml -validate C*nml *cell.nml *channel.nml + +pynml-summary pyr_soma_m_in_b_in.cell.nml -v +pynml-summary pyr_soma_m_in_b_out.cell.nml -v +pynml-summary pyr_soma_m_out_b_in.cell.nml -v +pynml-summary pyr_soma_m_out_b_out.cell.nml -v + +pynml LEMS_m_in_b_in.xml -nogui + +pynml LEMS_m_in_b_in.xml -neuron -run -nogui +pynml LEMS_m_in_b_out.xml -neuron -run -nogui +pynml LEMS_m_out_b_in.xml -neuron -run -nogui +pynml LEMS_m_out_b_out.xml -neuron -run -nogui + +pynml LEMS_m_in_b_in.xml -netpyne -run +pynml LEMS_m_in_b_out.xml -netpyne -run +pynml LEMS_m_out_b_in.xml -netpyne -run +pynml LEMS_m_out_b_out.xml -netpyne -run + +pynml LEMS_pyrfull_in.xml -neuron -run -nogui +pynml LEMS_pyrfull_in.xml -netpyne -run + +pynml LEMS_pyrfull_out.xml -neuron -run -nogui +pynml LEMS_pyrfull_out.xml -netpyne -run + +echo "All tests completed!" From 2e715145a73b585a5ee4cacc9d6666c920023c8b Mon Sep 17 00:00:00 2001 From: pgleeson Date: Tue, 13 Aug 2024 12:31:44 +0100 Subject: [PATCH 27/29] Update history for v2.3.1 release --- HISTORY.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/HISTORY.md b/HISTORY.md index b3c6797..526e9c6 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -8,9 +8,13 @@ and [LEMS](https://github.com/LEMS/LEMS), but also the Python ([libNeuroML](http **Only contributors who are not [NeuroML Editors](https://docs.neuroml.org/NeuroMLOrg/Board.html) are specifically pointed out below.** -v2.3.1 / 2023-XX-XX +v2.3.1 / 2024-08-25 -------------------- +* **Renamed the main Schema from NeuroML_v2.3.xsd to [NeuroML_v2.3.1.xsd](https://github.com/NeuroML/NeuroML2/blob/master/Schemas/NeuroML2/NeuroML_v2.3.1).** + +* Adds support for external / in cell element. Also simulator mappings for NEURON/NetPyNE support this. See [here](https://docs.neuroml.org/Userdocs/ImportingMorphologyFiles.html#neuroml2) for more details. Multiple examples of NeuroML2/LEMS files using this feature can be found [here](https://github.com/NeuroML/NeuroML2/tree/development/LEMSexamples/morphologies). + v2.3 / 2023-09-20 From 00a3512a71b30782459ca307e7bf7c52ea02ab3d Mon Sep 17 00:00:00 2001 From: pgleeson Date: Tue, 13 Aug 2024 13:48:42 +0100 Subject: [PATCH 28/29] adopt -> temurin in actions file --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5e6fb12..5408614 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,7 @@ jobs: with: java-version: ${{ matrix.java }} java-package: jdk - distribution: 'adopt' + distribution: 'temurin' - name: Install NeuroML 2 with Maven run: | From 42f158182f320c839970ffc8999f833e08b78ad6 Mon Sep 17 00:00:00 2001 From: pgleeson Date: Tue, 20 Aug 2024 14:45:09 +0100 Subject: [PATCH 29/29] Added more to history file --- HISTORY.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/HISTORY.md b/HISTORY.md index 526e9c6..570f3d8 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -15,6 +15,23 @@ v2.3.1 / 2024-08-25 * Adds support for external / in cell element. Also simulator mappings for NEURON/NetPyNE support this. See [here](https://docs.neuroml.org/Userdocs/ImportingMorphologyFiles.html#neuroml2) for more details. Multiple examples of NeuroML2/LEMS files using this feature can be found [here](https://github.com/NeuroML/NeuroML2/tree/development/LEMSexamples/morphologies). +* pyNeuroML analysis feature updates: better support for analysing kinetic scheme based channels in `pynml-channelanalysis`; better support for plotting generated spike trains with `pynml-plotspikes`. + +* Improved testing of Java based libraries on latest versions of Java and recent Mac OS versions. + +* Improved support for adding RDF annotations to NeuroML files. + +* Added ability to load (a subset of) XPPAUT files with `pynml-xpp` and export the model to LEMS or back to XPPAUT. + +* Improvements to handling of SBML and SED-ML files - added to pynml ability to validate both formats, or run SED-ML files which refer to SBML models using simulator tellurium. + +* Added option to archive NeuroML models as COMBINE Archives with `pynml-archive`. + +* Initial support for sending archived NeuroML models to Biosimulations.org for simulation. + +* Improved ability for pynml and related tools to detect the correct file type (NeuroML or LEMS) for the appropriate export/simulation option, and give advice when an incorrect file is provided. + +* Updates to `pynml-plotmorph` for plotting morphologies in 2D, and in 3D with VisPy. v2.3 / 2023-09-20