diff --git a/CMakeLists.txt b/CMakeLists.txt
index f75b7d7..3b83b59 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,7 +11,7 @@ cmake_policy(SET CMP0048 NEW) # VERSION option to project()
# Note: the version number uses Semantic Versioning http://semver.org/
project(NeuroML_API
- VERSION 2.1.0
+ VERSION 2.2.0
DESCRIPTION "C++ API for NeuroML 2"
HOMEPAGE_URL "https://github.com/NeuroML/NeuroML_API"
)
@@ -21,7 +21,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake/modules)
############################
# Which schema to provide the API for
-set(NeuroML_SCHEMA_PATH "${PROJECT_SOURCE_DIR}/src/schema/NeuroML_v2.1.xsd"
+set(NeuroML_SCHEMA_PATH "${PROJECT_SOURCE_DIR}/src/schema/NeuroML_v2.2.xsd"
CACHE PATH
"Path to the schema file to base the API on.")
diff --git a/src/schema/NeuroML_v2.1.xsd b/src/schema/NeuroML_v2.1.xsd
deleted file mode 100644
index 32352f7..0000000
--- a/src/schema/NeuroML_v2.1.xsd
+++ /dev/null
@@ -1,3256 +0,0 @@
-
-
-
-
-
-
-
-
-
- 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
-
-
-
-
-
-
-
-
-
-
-
-
- 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.
-
-
-
-
-
-
-
-
- Generic property with a tag and value
-
-
-
-
-
-
-
-
- Placeholder for MIRIAM related metadata, among others.
-
-
-
-
-
-
-
-
-
- Contains an extension to NeuroML by creating custom LEMS ComponentType.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- LEMS ComponentType for Constant.
-
-
-
-
-
-
-
-
-
-
-
-
- LEMS Exposure (ComponentType property)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Kinetic scheme based ion channel.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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.
-
-
-
-
-
-
-
-
- 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.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Note all sub elements for gateHHrates, gateHHratesTau, gateFractional etc. allowed here. Which are valid should be constrained by what type is set
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Should not be required, as it's present on the species element!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Should not be required, as it's present on the species element!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Gap junction/single electrical connection
-
-
-
-
-
-
-
-
-
-
-
-
- Dummy synapse which emits no current. Used as presynaptic endpoint for analog synaptic connection (continuousConnection).
-
-
-
-
-
-
-
-
-
-
-
-
- Behaves just like a one way gap junction.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Based on synapse in Methods of http://www.nature.com/neuro/journal/v7/n12/abs/nn1352.html.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- This is to prevent it conflicting with attribute c (lowercase) e.g. in izhikevichCell2007
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Should only be used if morphology element is outside the cell.
- This points to the id of the morphology
-
-
-
-
-
-
- Should only be used if biophysicalProperties element is outside the cell.
- This points to the id of the biophysicalProperties
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Standalone element which is usually inside a single cell, but could be outside and
- referenced by id.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- A 3D point with diameter.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Allowed metrics for InhomogeneousParam
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Standalone element which is usually inside a single cell, but could be outside and
- referenced by id.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Standalone element which is usually inside a single cell, but could be outside and
- referenced by id.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Using a thin extension of ValueAcrossSegOrSegGroup to facilitate library generation (e.g. libNeuroML)
-
-
-
-
-
-
-
-
-
- Using a thin extension of ValueAcrossSegOrSegGroup to facilitate library generation (e.g. libNeuroML)
-
-
-
-
-
-
-
-
-
- Using a thin extension of ValueAcrossSegOrSegGroup to facilitate library generation (e.g. libNeuroML)
-
-
-
-
-
-
-
-
-
- Using a thin extension of ValueAcrossSegOrSegGroup to facilitate library generation (e.g. libNeuroML)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Specifying the ion here again is redundant, this will be set in ionChannel definition. It is added here
- TEMPORARILY since selecting all ca or na conducting channel populations/densities in a cell would be difficult otherwise.
- Also, it will make it easier to set the correct native simulator value for erev (e.g. ek for ion = k in NEURON).
- Currently a required attribute.
- It should be removed in the longer term, due to possible inconsistencies in this value and that in the ionChannel
- element. TODO: remove.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Specifying the ion here again is redundant, this will be set in ionChannel definition. It is added here
- TEMPORARILY since selecting all ca or na conducting channel populations/densities in a cell would be difficult otherwise.
- Also, it will make it easier to set the correct native simulator value for erev (e.g. ek for ion = k in NEURON).
- Currently a required attribute.
- It should be removed in the longer term, due to possible inconsistencies in this value and that in the ionChannel
- element. TODO: remove.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Specifying the ion here again is redundant, this will be set in ionChannel definition. It is added here
- TEMPORARILY since selecting all ca or na conducting channel populations/densities in a cell would be difficult otherwise.
- Also, it will make it easier to set the correct native simulator value for erev (e.g. ek for ion = k in NEURON).
- Currently a required attribute.
- It should be removed in the longer term, due to possible inconsistencies in this value and that in the ionChannel
- element. TODO: remove.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Specifying the ion here again is redundant, this will be set in ionChannel definition. It is added here
- TEMPORARILY since selecting all ca or na conducting channel populations/densities in a cell would be difficult otherwise.
- Also, it will make it easier to set the correct native simulator value for erev (e.g. ek for ion = k in NEURON).
- Currently a required attribute.
- It should be removed in the longer term, due to possible inconsistencies in this value and that in the ionChannel
- element. TODO: remove.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Specifying the ion here again is redundant, this will be set in ionChannel definition. It is added here
- TEMPORARILY since selecting all ca or na conducting channel populations/densities in a cell would be difficult otherwise.
- Also, it will make it easier to set the correct native simulator value for erev (e.g. ek for ion = k in NEURON).
- Currently a required attribute.
- It should be removed in the longer term, due to possible inconsistencies in this value and that in the ionChannel
- element. TODO: remove.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Specifying the ion here again is redundant, this will be set in ionChannel definition. It is added here
- TEMPORARILY since selecting all ca or na conducting channel populations/densities in a cell would be difficult otherwise.
- Also, it will make it easier to set the correct native simulator value for erev (e.g. ek for ion = k in NEURON).
- Currently a required attribute.
- It should be removed in the longer term, due to possible inconsistencies in this value and that in the ionChannel
- element. TODO: remove.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Specifying the ion here again is redundant, this will be set in ionChannel definition. It is added here
- TEMPORARILY since selecting all ca or na conducting channel populations/densities in a cell would be difficult otherwise.
- Also, it will make it easier to set the correct native simulator value for erev (e.g. ek for ion = k in NEURON).
- Currently a required attribute.
- It should be removed in the longer term, due to possible inconsistencies in this value and that in the ionChannel
- element. TODO: remove.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Specifying the ion here again is redundant, this will be set in ionChannel definition. It is added here
- TEMPORARILY since selecting all ca or na conducting channel populations/densities in a cell would be difficult otherwise.
- Also, it will make it easier to set the correct native simulator value for erev (e.g. ek for ion = k in NEURON).
- Currently a required attribute.
- It should be removed in the longer term, due to possible inconsistencies in this value and that in the ionChannel
- element. TODO: remove.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Specifying the ion here again is redundant, the ion name should be the same as id. Kept for now
- until LEMS implementation can select by id. TODO: remove.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Generates a constant current pulse of a certain amplitude (with dimensions for current) for a specified duration after a delay.
-
-
-
-
-
-
-
-
-
-
-
-
- Generates a constant current pulse of a certain amplitude (non dimensional) for a specified duration after a delay.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Single explicit connection. Introduced to test connections in LEMS. Will probably be removed in favour of
- connections wrapped in projection element
-
-
-
-
-
-
-
-
-
-
- Base for projection (set of synaptic connections) between two populations
-
-
-
-
-
-
-
-
-
-
-
- Projection (set of synaptic connections) between two populations. Chemical/event based synaptic transmission
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Individual chemical (event based) synaptic connection, weight==1 and no delay
-
-
-
-
-
-
-
-
-
- Individual synaptic connection with weight and delay
-
-
-
-
-
-
-
-
-
-
-
-
- Projection between two populations consisting of electrical connections (gap junctions)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Individual electrical synaptic connection
-
-
-
-
-
-
-
-
-
-
-
- Projection between two populations consisting of analog connections (e.g. graded synapses)
-
-
-
-
-
-
-
-
- Projection between two populations consisting of analog connections (e.g. graded synapses). Includes setting of weight for the connection
-
-
-
-
-
-
-
-
-
-
-
- Projection between two populations consisting of analog connections (e.g. graded synapses)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Individual continuous/analog synaptic connection
-
-
-
-
-
-
-
-
-
-
-
-
- Individual continuous/analog synaptic connection - instance based
-
-
-
-
-
-
-
-
-
- Individual continuous/analog synaptic connection - instance based. Includes setting of _weight for the connection
-
-
-
-
-
-
-
-
-
-
-
- Single explicit input. Introduced to test inputs in LEMS. Will probably be removed in favour of
- inputs wrapped in inputList element
-
-
-
-
-
-
-
-
-
- List of inputs to a population. Currents will be provided by the specified component.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Individual input to the cell specified by target
-
-
-
-
-
-
-
-
-
-
-
- Individual input to the cell specified by target. Includes setting of _weight for the connection
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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/src/schema/NeuroML_v2.1.cxx b/src/schema/NeuroML_v2.2.cxx
similarity index 98%
rename from src/schema/NeuroML_v2.1.cxx
rename to src/schema/NeuroML_v2.2.cxx
index d956c91..28de1c3 100644
--- a/src/schema/NeuroML_v2.1.cxx
+++ b/src/schema/NeuroML_v2.2.cxx
@@ -39,7 +39,7 @@
#include
-#include "NeuroML_v2.1.hxx"
+#include "NeuroML_v2.2.hxx"
namespace neuroml2
{
@@ -67,6 +67,10 @@ namespace neuroml2
//
+ // Nml2Quantity_resistivity
+ //
+
+
// Nml2Quantity_conductance
//
@@ -9683,115 +9687,237 @@ namespace neuroml2
}
- // ValueAcrossSegOrSegGroup
+ // SpikeThresh
//
- const ValueAcrossSegOrSegGroup::value_optional& ValueAcrossSegOrSegGroup::
+ const SpikeThresh::value_type& SpikeThresh::
value () const
{
- return this->value_;
+ return this->value_.get ();
}
- ValueAcrossSegOrSegGroup::value_optional& ValueAcrossSegOrSegGroup::
+ SpikeThresh::value_type& SpikeThresh::
value ()
{
- return this->value_;
+ return this->value_.get ();
}
- void ValueAcrossSegOrSegGroup::
+ void SpikeThresh::
value (const value_type& x)
{
this->value_.set (x);
}
- void ValueAcrossSegOrSegGroup::
- value (const value_optional& x)
- {
- this->value_ = x;
- }
-
- void ValueAcrossSegOrSegGroup::
+ void SpikeThresh::
value (::std::unique_ptr< value_type > x)
{
this->value_.set (std::move (x));
}
- const ValueAcrossSegOrSegGroup::segmentGroup_type& ValueAcrossSegOrSegGroup::
+ const SpikeThresh::segmentGroup_type& SpikeThresh::
segmentGroup () const
{
return this->segmentGroup_.get ();
}
- ValueAcrossSegOrSegGroup::segmentGroup_type& ValueAcrossSegOrSegGroup::
+ SpikeThresh::segmentGroup_type& SpikeThresh::
segmentGroup ()
{
return this->segmentGroup_.get ();
}
- void ValueAcrossSegOrSegGroup::
+ void SpikeThresh::
segmentGroup (const segmentGroup_type& x)
{
this->segmentGroup_.set (x);
}
- void ValueAcrossSegOrSegGroup::
+ void SpikeThresh::
segmentGroup (::std::unique_ptr< segmentGroup_type > x)
{
this->segmentGroup_.set (std::move (x));
}
- const ValueAcrossSegOrSegGroup::segmentGroup_type& ValueAcrossSegOrSegGroup::
+ const SpikeThresh::segmentGroup_type& SpikeThresh::
segmentGroup_default_value ()
{
return segmentGroup_default_value_;
}
- const ValueAcrossSegOrSegGroup::segment_optional& ValueAcrossSegOrSegGroup::
- segment () const
+
+ // SpecificCapacitance
+ //
+
+ const SpecificCapacitance::value_type& SpecificCapacitance::
+ value () const
{
- return this->segment_;
+ return this->value_.get ();
}
- ValueAcrossSegOrSegGroup::segment_optional& ValueAcrossSegOrSegGroup::
- segment ()
+ SpecificCapacitance::value_type& SpecificCapacitance::
+ value ()
{
- return this->segment_;
+ return this->value_.get ();
}
- void ValueAcrossSegOrSegGroup::
- segment (const segment_type& x)
+ void SpecificCapacitance::
+ value (const value_type& x)
{
- this->segment_.set (x);
+ this->value_.set (x);
}
- void ValueAcrossSegOrSegGroup::
- segment (const segment_optional& x)
+ void SpecificCapacitance::
+ value (::std::unique_ptr< value_type > x)
{
- this->segment_ = x;
+ this->value_.set (std::move (x));
}
- void ValueAcrossSegOrSegGroup::
- segment (::std::unique_ptr< segment_type > x)
+ const SpecificCapacitance::segmentGroup_type& SpecificCapacitance::
+ segmentGroup () const
{
- this->segment_.set (std::move (x));
+ return this->segmentGroup_.get ();
}
+ SpecificCapacitance::segmentGroup_type& SpecificCapacitance::
+ segmentGroup ()
+ {
+ return this->segmentGroup_.get ();
+ }
- // SpikeThresh
- //
+ void SpecificCapacitance::
+ segmentGroup (const segmentGroup_type& x)
+ {
+ this->segmentGroup_.set (x);
+ }
+ void SpecificCapacitance::
+ segmentGroup (::std::unique_ptr< segmentGroup_type > x)
+ {
+ this->segmentGroup_.set (std::move (x));
+ }
- // SpecificCapacitance
- //
+ const SpecificCapacitance::segmentGroup_type& SpecificCapacitance::
+ segmentGroup_default_value ()
+ {
+ return segmentGroup_default_value_;
+ }
// InitMembPotential
//
+ const InitMembPotential::value_type& InitMembPotential::
+ value () const
+ {
+ return this->value_.get ();
+ }
+
+ InitMembPotential::value_type& InitMembPotential::
+ value ()
+ {
+ return this->value_.get ();
+ }
+
+ void InitMembPotential::
+ value (const value_type& x)
+ {
+ this->value_.set (x);
+ }
+
+ void InitMembPotential::
+ value (::std::unique_ptr< value_type > x)
+ {
+ this->value_.set (std::move (x));
+ }
+
+ const InitMembPotential::segmentGroup_type& InitMembPotential::
+ segmentGroup () const
+ {
+ return this->segmentGroup_.get ();
+ }
+
+ InitMembPotential::segmentGroup_type& InitMembPotential::
+ segmentGroup ()
+ {
+ return this->segmentGroup_.get ();
+ }
+
+ void InitMembPotential::
+ segmentGroup (const segmentGroup_type& x)
+ {
+ this->segmentGroup_.set (x);
+ }
+
+ void InitMembPotential::
+ segmentGroup (::std::unique_ptr< segmentGroup_type > x)
+ {
+ this->segmentGroup_.set (std::move (x));
+ }
+
+ const InitMembPotential::segmentGroup_type& InitMembPotential::
+ segmentGroup_default_value ()
+ {
+ return segmentGroup_default_value_;
+ }
+
// Resistivity
//
+ const Resistivity::value_type& Resistivity::
+ value () const
+ {
+ return this->value_.get ();
+ }
+
+ Resistivity::value_type& Resistivity::
+ value ()
+ {
+ return this->value_.get ();
+ }
+
+ void Resistivity::
+ value (const value_type& x)
+ {
+ this->value_.set (x);
+ }
+
+ void Resistivity::
+ value (::std::unique_ptr< value_type > x)
+ {
+ this->value_.set (std::move (x));
+ }
+
+ const Resistivity::segmentGroup_type& Resistivity::
+ segmentGroup () const
+ {
+ return this->segmentGroup_.get ();
+ }
+
+ Resistivity::segmentGroup_type& Resistivity::
+ segmentGroup ()
+ {
+ return this->segmentGroup_.get ();
+ }
+
+ void Resistivity::
+ segmentGroup (const segmentGroup_type& x)
+ {
+ this->segmentGroup_.set (x);
+ }
+
+ void Resistivity::
+ segmentGroup (::std::unique_ptr< segmentGroup_type > x)
+ {
+ this->segmentGroup_.set (std::move (x));
+ }
+
+ const Resistivity::segmentGroup_type& Resistivity::
+ segmentGroup_default_value ()
+ {
+ return segmentGroup_default_value_;
+ }
+
// ChannelPopulation
//
@@ -11122,6 +11248,36 @@ namespace neuroml2
this->initialExtConcentration_.set (std::move (x));
}
+ const Species::segmentGroup_type& Species::
+ segmentGroup () const
+ {
+ return this->segmentGroup_.get ();
+ }
+
+ Species::segmentGroup_type& Species::
+ segmentGroup ()
+ {
+ return this->segmentGroup_.get ();
+ }
+
+ void Species::
+ segmentGroup (const segmentGroup_type& x)
+ {
+ this->segmentGroup_.set (x);
+ }
+
+ void Species::
+ segmentGroup (::std::unique_ptr< segmentGroup_type > x)
+ {
+ this->segmentGroup_.set (std::move (x));
+ }
+
+ const Species::segmentGroup_type& Species::
+ segmentGroup_default_value ()
+ {
+ return segmentGroup_default_value_;
+ }
+
// ConcentrationModel_D
//
@@ -16366,6 +16522,78 @@ namespace neuroml2
{
}
+ // Nml2Quantity_resistivity
+ //
+
+ Nml2Quantity_resistivity::
+ Nml2Quantity_resistivity ()
+ : ::xml_schema::string ()
+ {
+ }
+
+ Nml2Quantity_resistivity::
+ Nml2Quantity_resistivity (const char* _xsd_string_base)
+ : ::xml_schema::string (_xsd_string_base)
+ {
+ }
+
+ Nml2Quantity_resistivity::
+ Nml2Quantity_resistivity (const ::std::string& _xsd_string_base)
+ : ::xml_schema::string (_xsd_string_base)
+ {
+ }
+
+ Nml2Quantity_resistivity::
+ Nml2Quantity_resistivity (const ::xml_schema::string& _xsd_string_base)
+ : ::xml_schema::string (_xsd_string_base)
+ {
+ }
+
+ Nml2Quantity_resistivity::
+ Nml2Quantity_resistivity (const Nml2Quantity_resistivity& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (x, f, c)
+ {
+ }
+
+ Nml2Quantity_resistivity::
+ Nml2Quantity_resistivity (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (e, f, c)
+ {
+ }
+
+ Nml2Quantity_resistivity::
+ Nml2Quantity_resistivity (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (a, f, c)
+ {
+ }
+
+ Nml2Quantity_resistivity::
+ Nml2Quantity_resistivity (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::string (s, e, f, c)
+ {
+ }
+
+ Nml2Quantity_resistivity* Nml2Quantity_resistivity::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class Nml2Quantity_resistivity (*this, f, c);
+ }
+
+ Nml2Quantity_resistivity::
+ ~Nml2Quantity_resistivity ()
+ {
+ }
+
// Nml2Quantity_conductance
//
@@ -33696,40 +33924,391 @@ namespace neuroml2
return !(x == y);
}
- // ValueAcrossSegOrSegGroup
+ // SpikeThresh
//
- const ValueAcrossSegOrSegGroup::segmentGroup_type ValueAcrossSegOrSegGroup::segmentGroup_default_value_ (
+ const SpikeThresh::segmentGroup_type SpikeThresh::segmentGroup_default_value_ (
"all");
- ValueAcrossSegOrSegGroup::
- ValueAcrossSegOrSegGroup ()
+ SpikeThresh::
+ SpikeThresh (const value_type& value)
: ::xml_schema::type (),
+ value_ (value, this),
+ segmentGroup_ (segmentGroup_default_value (), this)
+ {
+ }
+
+ SpikeThresh::
+ SpikeThresh (const SpikeThresh& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ value_ (x.value_, f, this),
+ segmentGroup_ (x.segmentGroup_, f, this)
+ {
+ }
+
+ SpikeThresh::
+ SpikeThresh (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
value_ (this),
- segmentGroup_ (segmentGroup_default_value (), this),
- segment_ (this)
+ segmentGroup_ (this)
{
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, false, true);
+ this->parse (p, f);
+ }
}
- ValueAcrossSegOrSegGroup::
- ValueAcrossSegOrSegGroup (const ValueAcrossSegOrSegGroup& x,
- ::xml_schema::flags f,
- ::xml_schema::container* c)
+ void SpikeThresh::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "value" && n.namespace_ ().empty ())
+ {
+ this->value_.set (value_traits::create (i, f, this));
+ continue;
+ }
+
+ if (n.name () == "segmentGroup" && n.namespace_ ().empty ())
+ {
+ this->segmentGroup_.set (segmentGroup_traits::create (i, f, this));
+ continue;
+ }
+ }
+
+ if (!value_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "value",
+ "");
+ }
+
+ if (!segmentGroup_.present ())
+ {
+ this->segmentGroup_.set (segmentGroup_default_value ());
+ }
+ }
+
+ SpikeThresh* SpikeThresh::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class SpikeThresh (*this, f, c);
+ }
+
+ SpikeThresh& SpikeThresh::
+ operator= (const SpikeThresh& x)
+ {
+ if (this != &x)
+ {
+ static_cast< ::xml_schema::type& > (*this) = x;
+ this->value_ = x.value_;
+ this->segmentGroup_ = x.segmentGroup_;
+ }
+
+ return *this;
+ }
+
+ SpikeThresh::
+ ~SpikeThresh ()
+ {
+ }
+
+ bool
+ operator== (const SpikeThresh& x, const SpikeThresh& y)
+ {
+ if (!(x.value () == y.value ()))
+ return false;
+
+ if (!(x.segmentGroup () == y.segmentGroup ()))
+ return false;
+
+ return true;
+ }
+
+ bool
+ operator!= (const SpikeThresh& x, const SpikeThresh& y)
+ {
+ return !(x == y);
+ }
+
+ // SpecificCapacitance
+ //
+
+ const SpecificCapacitance::segmentGroup_type SpecificCapacitance::segmentGroup_default_value_ (
+ "all");
+
+ SpecificCapacitance::
+ SpecificCapacitance (const value_type& value)
+ : ::xml_schema::type (),
+ value_ (value, this),
+ segmentGroup_ (segmentGroup_default_value (), this)
+ {
+ }
+
+ SpecificCapacitance::
+ SpecificCapacitance (const SpecificCapacitance& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
: ::xml_schema::type (x, f, c),
value_ (x.value_, f, this),
- segmentGroup_ (x.segmentGroup_, f, this),
- segment_ (x.segment_, f, this)
+ segmentGroup_ (x.segmentGroup_, f, this)
{
}
- ValueAcrossSegOrSegGroup::
- ValueAcrossSegOrSegGroup (const ::xercesc::DOMElement& e,
- ::xml_schema::flags f,
- ::xml_schema::container* c)
+ SpecificCapacitance::
+ SpecificCapacitance (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
: ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
value_ (this),
- segmentGroup_ (this),
- segment_ (this)
+ segmentGroup_ (this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, false, true);
+ this->parse (p, f);
+ }
+ }
+
+ void SpecificCapacitance::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "value" && n.namespace_ ().empty ())
+ {
+ this->value_.set (value_traits::create (i, f, this));
+ continue;
+ }
+
+ if (n.name () == "segmentGroup" && n.namespace_ ().empty ())
+ {
+ this->segmentGroup_.set (segmentGroup_traits::create (i, f, this));
+ continue;
+ }
+ }
+
+ if (!value_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "value",
+ "");
+ }
+
+ if (!segmentGroup_.present ())
+ {
+ this->segmentGroup_.set (segmentGroup_default_value ());
+ }
+ }
+
+ SpecificCapacitance* SpecificCapacitance::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class SpecificCapacitance (*this, f, c);
+ }
+
+ SpecificCapacitance& SpecificCapacitance::
+ operator= (const SpecificCapacitance& x)
+ {
+ if (this != &x)
+ {
+ static_cast< ::xml_schema::type& > (*this) = x;
+ this->value_ = x.value_;
+ this->segmentGroup_ = x.segmentGroup_;
+ }
+
+ return *this;
+ }
+
+ SpecificCapacitance::
+ ~SpecificCapacitance ()
+ {
+ }
+
+ bool
+ operator== (const SpecificCapacitance& x, const SpecificCapacitance& y)
+ {
+ if (!(x.value () == y.value ()))
+ return false;
+
+ if (!(x.segmentGroup () == y.segmentGroup ()))
+ return false;
+
+ return true;
+ }
+
+ bool
+ operator!= (const SpecificCapacitance& x, const SpecificCapacitance& y)
+ {
+ return !(x == y);
+ }
+
+ // InitMembPotential
+ //
+
+ const InitMembPotential::segmentGroup_type InitMembPotential::segmentGroup_default_value_ (
+ "all");
+
+ InitMembPotential::
+ InitMembPotential (const value_type& value)
+ : ::xml_schema::type (),
+ value_ (value, this),
+ segmentGroup_ (segmentGroup_default_value (), this)
+ {
+ }
+
+ InitMembPotential::
+ InitMembPotential (const InitMembPotential& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ value_ (x.value_, f, this),
+ segmentGroup_ (x.segmentGroup_, f, this)
+ {
+ }
+
+ InitMembPotential::
+ InitMembPotential (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ value_ (this),
+ segmentGroup_ (this)
+ {
+ if ((f & ::xml_schema::flags::base) == 0)
+ {
+ ::xsd::cxx::xml::dom::parser< char > p (e, false, false, true);
+ this->parse (p, f);
+ }
+ }
+
+ void InitMembPotential::
+ parse (::xsd::cxx::xml::dom::parser< char >& p,
+ ::xml_schema::flags f)
+ {
+ while (p.more_attributes ())
+ {
+ const ::xercesc::DOMAttr& i (p.next_attribute ());
+ const ::xsd::cxx::xml::qualified_name< char > n (
+ ::xsd::cxx::xml::dom::name< char > (i));
+
+ if (n.name () == "value" && n.namespace_ ().empty ())
+ {
+ this->value_.set (value_traits::create (i, f, this));
+ continue;
+ }
+
+ if (n.name () == "segmentGroup" && n.namespace_ ().empty ())
+ {
+ this->segmentGroup_.set (segmentGroup_traits::create (i, f, this));
+ continue;
+ }
+ }
+
+ if (!value_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "value",
+ "");
+ }
+
+ if (!segmentGroup_.present ())
+ {
+ this->segmentGroup_.set (segmentGroup_default_value ());
+ }
+ }
+
+ InitMembPotential* InitMembPotential::
+ _clone (::xml_schema::flags f,
+ ::xml_schema::container* c) const
+ {
+ return new class InitMembPotential (*this, f, c);
+ }
+
+ InitMembPotential& InitMembPotential::
+ operator= (const InitMembPotential& x)
+ {
+ if (this != &x)
+ {
+ static_cast< ::xml_schema::type& > (*this) = x;
+ this->value_ = x.value_;
+ this->segmentGroup_ = x.segmentGroup_;
+ }
+
+ return *this;
+ }
+
+ InitMembPotential::
+ ~InitMembPotential ()
+ {
+ }
+
+ bool
+ operator== (const InitMembPotential& x, const InitMembPotential& y)
+ {
+ if (!(x.value () == y.value ()))
+ return false;
+
+ if (!(x.segmentGroup () == y.segmentGroup ()))
+ return false;
+
+ return true;
+ }
+
+ bool
+ operator!= (const InitMembPotential& x, const InitMembPotential& y)
+ {
+ return !(x == y);
+ }
+
+ // Resistivity
+ //
+
+ const Resistivity::segmentGroup_type Resistivity::segmentGroup_default_value_ (
+ "all");
+
+ Resistivity::
+ Resistivity (const value_type& value)
+ : ::xml_schema::type (),
+ value_ (value, this),
+ segmentGroup_ (segmentGroup_default_value (), this)
+ {
+ }
+
+ Resistivity::
+ Resistivity (const Resistivity& x,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (x, f, c),
+ value_ (x.value_, f, this),
+ segmentGroup_ (x.segmentGroup_, f, this)
+ {
+ }
+
+ Resistivity::
+ Resistivity (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f,
+ ::xml_schema::container* c)
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
+ value_ (this),
+ segmentGroup_ (this)
{
if ((f & ::xml_schema::flags::base) == 0)
{
@@ -33738,7 +34317,7 @@ namespace neuroml2
}
}
- void ValueAcrossSegOrSegGroup::
+ void Resistivity::
parse (::xsd::cxx::xml::dom::parser< char >& p,
::xml_schema::flags f)
{
@@ -33759,12 +34338,13 @@ namespace neuroml2
this->segmentGroup_.set (segmentGroup_traits::create (i, f, this));
continue;
}
+ }
- if (n.name () == "segment" && n.namespace_ ().empty ())
- {
- this->segment_.set (segment_traits::create (i, f, this));
- continue;
- }
+ if (!value_.present ())
+ {
+ throw ::xsd::cxx::tree::expected_attribute< char > (
+ "value",
+ "");
}
if (!segmentGroup_.present ())
@@ -33773,34 +34353,33 @@ namespace neuroml2
}
}
- ValueAcrossSegOrSegGroup* ValueAcrossSegOrSegGroup::
+ Resistivity* Resistivity::
_clone (::xml_schema::flags f,
::xml_schema::container* c) const
{
- return new class ValueAcrossSegOrSegGroup (*this, f, c);
+ return new class Resistivity (*this, f, c);
}
- ValueAcrossSegOrSegGroup& ValueAcrossSegOrSegGroup::
- operator= (const ValueAcrossSegOrSegGroup& x)
+ Resistivity& Resistivity::
+ operator= (const Resistivity& x)
{
if (this != &x)
{
static_cast< ::xml_schema::type& > (*this) = x;
this->value_ = x.value_;
this->segmentGroup_ = x.segmentGroup_;
- this->segment_ = x.segment_;
}
return *this;
}
- ValueAcrossSegOrSegGroup::
- ~ValueAcrossSegOrSegGroup ()
+ Resistivity::
+ ~Resistivity ()
{
}
bool
- operator== (const ValueAcrossSegOrSegGroup& x, const ValueAcrossSegOrSegGroup& y)
+ operator== (const Resistivity& x, const Resistivity& y)
{
if (!(x.value () == y.value ()))
return false;
@@ -33808,166 +34387,15 @@ namespace neuroml2
if (!(x.segmentGroup () == y.segmentGroup ()))
return false;
- if (!(x.segment () == y.segment ()))
- return false;
-
return true;
}
bool
- operator!= (const ValueAcrossSegOrSegGroup& x, const ValueAcrossSegOrSegGroup& y)
+ operator!= (const Resistivity& x, const Resistivity& y)
{
return !(x == y);
}
- // SpikeThresh
- //
-
- SpikeThresh::
- SpikeThresh ()
- : ::neuroml2::ValueAcrossSegOrSegGroup ()
- {
- }
-
- SpikeThresh::
- SpikeThresh (const SpikeThresh& x,
- ::xml_schema::flags f,
- ::xml_schema::container* c)
- : ::neuroml2::ValueAcrossSegOrSegGroup (x, f, c)
- {
- }
-
- SpikeThresh::
- SpikeThresh (const ::xercesc::DOMElement& e,
- ::xml_schema::flags f,
- ::xml_schema::container* c)
- : ::neuroml2::ValueAcrossSegOrSegGroup (e, f, c)
- {
- }
-
- SpikeThresh* SpikeThresh::
- _clone (::xml_schema::flags f,
- ::xml_schema::container* c) const
- {
- return new class SpikeThresh (*this, f, c);
- }
-
- SpikeThresh::
- ~SpikeThresh ()
- {
- }
-
- // SpecificCapacitance
- //
-
- SpecificCapacitance::
- SpecificCapacitance ()
- : ::neuroml2::ValueAcrossSegOrSegGroup ()
- {
- }
-
- SpecificCapacitance::
- SpecificCapacitance (const SpecificCapacitance& x,
- ::xml_schema::flags f,
- ::xml_schema::container* c)
- : ::neuroml2::ValueAcrossSegOrSegGroup (x, f, c)
- {
- }
-
- SpecificCapacitance::
- SpecificCapacitance (const ::xercesc::DOMElement& e,
- ::xml_schema::flags f,
- ::xml_schema::container* c)
- : ::neuroml2::ValueAcrossSegOrSegGroup (e, f, c)
- {
- }
-
- SpecificCapacitance* SpecificCapacitance::
- _clone (::xml_schema::flags f,
- ::xml_schema::container* c) const
- {
- return new class SpecificCapacitance (*this, f, c);
- }
-
- SpecificCapacitance::
- ~SpecificCapacitance ()
- {
- }
-
- // InitMembPotential
- //
-
- InitMembPotential::
- InitMembPotential ()
- : ::neuroml2::ValueAcrossSegOrSegGroup ()
- {
- }
-
- InitMembPotential::
- InitMembPotential (const InitMembPotential& x,
- ::xml_schema::flags f,
- ::xml_schema::container* c)
- : ::neuroml2::ValueAcrossSegOrSegGroup (x, f, c)
- {
- }
-
- InitMembPotential::
- InitMembPotential (const ::xercesc::DOMElement& e,
- ::xml_schema::flags f,
- ::xml_schema::container* c)
- : ::neuroml2::ValueAcrossSegOrSegGroup (e, f, c)
- {
- }
-
- InitMembPotential* InitMembPotential::
- _clone (::xml_schema::flags f,
- ::xml_schema::container* c) const
- {
- return new class InitMembPotential (*this, f, c);
- }
-
- InitMembPotential::
- ~InitMembPotential ()
- {
- }
-
- // Resistivity
- //
-
- Resistivity::
- Resistivity ()
- : ::neuroml2::ValueAcrossSegOrSegGroup ()
- {
- }
-
- Resistivity::
- Resistivity (const Resistivity& x,
- ::xml_schema::flags f,
- ::xml_schema::container* c)
- : ::neuroml2::ValueAcrossSegOrSegGroup (x, f, c)
- {
- }
-
- Resistivity::
- Resistivity (const ::xercesc::DOMElement& e,
- ::xml_schema::flags f,
- ::xml_schema::container* c)
- : ::neuroml2::ValueAcrossSegOrSegGroup (e, f, c)
- {
- }
-
- Resistivity* Resistivity::
- _clone (::xml_schema::flags f,
- ::xml_schema::container* c) const
- {
- return new class Resistivity (*this, f, c);
- }
-
- Resistivity::
- ~Resistivity ()
- {
- }
-
// ChannelPopulation
//
@@ -35882,17 +36310,21 @@ namespace neuroml2
// Species
//
+ const Species::segmentGroup_type Species::segmentGroup_default_value_ (
+ "all");
+
Species::
Species (const id_type& id,
const concentrationModel_type& concentrationModel,
const initialConcentration_type& initialConcentration,
const initialExtConcentration_type& initialExtConcentration)
- : ::neuroml2::ValueAcrossSegOrSegGroup (),
+ : ::xml_schema::type (),
id_ (id, this),
concentrationModel_ (concentrationModel, this),
ion_ (this),
initialConcentration_ (initialConcentration, this),
- initialExtConcentration_ (initialExtConcentration, this)
+ initialExtConcentration_ (initialExtConcentration, this),
+ segmentGroup_ (segmentGroup_default_value (), this)
{
}
@@ -35900,12 +36332,13 @@ namespace neuroml2
Species (const Species& x,
::xml_schema::flags f,
::xml_schema::container* c)
- : ::neuroml2::ValueAcrossSegOrSegGroup (x, f, c),
+ : ::xml_schema::type (x, f, c),
id_ (x.id_, f, this),
concentrationModel_ (x.concentrationModel_, f, this),
ion_ (x.ion_, f, this),
initialConcentration_ (x.initialConcentration_, f, this),
- initialExtConcentration_ (x.initialExtConcentration_, f, this)
+ initialExtConcentration_ (x.initialExtConcentration_, f, this),
+ segmentGroup_ (x.segmentGroup_, f, this)
{
}
@@ -35913,12 +36346,13 @@ namespace neuroml2
Species (const ::xercesc::DOMElement& e,
::xml_schema::flags f,
::xml_schema::container* c)
- : ::neuroml2::ValueAcrossSegOrSegGroup (e, f | ::xml_schema::flags::base, c),
+ : ::xml_schema::type (e, f | ::xml_schema::flags::base, c),
id_ (this),
concentrationModel_ (this),
ion_ (this),
initialConcentration_ (this),
- initialExtConcentration_ (this)
+ initialExtConcentration_ (this),
+ segmentGroup_ (this)
{
if ((f & ::xml_schema::flags::base) == 0)
{
@@ -35931,10 +36365,6 @@ namespace neuroml2
parse (::xsd::cxx::xml::dom::parser< char >& p,
::xml_schema::flags f)
{
- this->::neuroml2::ValueAcrossSegOrSegGroup::parse (p, f);
-
- p.reset_attributes ();
-
while (p.more_attributes ())
{
const ::xercesc::DOMAttr& i (p.next_attribute ());
@@ -35970,6 +36400,12 @@ namespace neuroml2
this->initialExtConcentration_.set (initialExtConcentration_traits::create (i, f, this));
continue;
}
+
+ if (n.name () == "segmentGroup" && n.namespace_ ().empty ())
+ {
+ this->segmentGroup_.set (segmentGroup_traits::create (i, f, this));
+ continue;
+ }
}
if (!id_.present ())
@@ -35999,6 +36435,11 @@ namespace neuroml2
"initialExtConcentration",
"");
}
+
+ if (!segmentGroup_.present ())
+ {
+ this->segmentGroup_.set (segmentGroup_default_value ());
+ }
}
Species* Species::
@@ -36013,12 +36454,13 @@ namespace neuroml2
{
if (this != &x)
{
- static_cast< ::neuroml2::ValueAcrossSegOrSegGroup& > (*this) = x;
+ static_cast< ::xml_schema::type& > (*this) = x;
this->id_ = x.id_;
this->concentrationModel_ = x.concentrationModel_;
this->ion_ = x.ion_;
this->initialConcentration_ = x.initialConcentration_;
this->initialExtConcentration_ = x.initialExtConcentration_;
+ this->segmentGroup_ = x.segmentGroup_;
}
return *this;
@@ -36032,10 +36474,6 @@ namespace neuroml2
bool
operator== (const Species& x, const Species& y)
{
- if (!(static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (x) ==
- static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (y)))
- return false;
-
if (!(x.id () == y.id ()))
return false;
@@ -36051,6 +36489,9 @@ namespace neuroml2
if (!(x.initialExtConcentration () == y.initialExtConcentration ()))
return false;
+ if (!(x.segmentGroup () == y.segmentGroup ()))
+ return false;
+
return true;
}
@@ -45984,6 +46425,14 @@ namespace neuroml2
return o;
}
+ ::std::ostream&
+ operator<< (::std::ostream& o, const Nml2Quantity_resistivity& i)
+ {
+ o << static_cast< const ::xml_schema::string& > (i);
+
+ return o;
+ }
+
::std::ostream&
operator<< (::std::ostream& o, const Nml2Quantity_conductance& i)
{
@@ -48348,52 +48797,35 @@ namespace neuroml2
return o;
}
- ::std::ostream&
- operator<< (::std::ostream& o, const ValueAcrossSegOrSegGroup& i)
- {
- if (i.value ())
- {
- o << ::std::endl << "value: " << *i.value ();
- }
-
- o << ::std::endl << "segmentGroup: " << i.segmentGroup ();
- if (i.segment ())
- {
- o << ::std::endl << "segment: " << *i.segment ();
- }
-
- return o;
- }
-
::std::ostream&
operator<< (::std::ostream& o, const SpikeThresh& i)
{
- o << static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (i);
-
+ o << ::std::endl << "value: " << i.value ();
+ o << ::std::endl << "segmentGroup: " << i.segmentGroup ();
return o;
}
::std::ostream&
operator<< (::std::ostream& o, const SpecificCapacitance& i)
{
- o << static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (i);
-
+ o << ::std::endl << "value: " << i.value ();
+ o << ::std::endl << "segmentGroup: " << i.segmentGroup ();
return o;
}
::std::ostream&
operator<< (::std::ostream& o, const InitMembPotential& i)
{
- o << static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (i);
-
+ o << ::std::endl << "value: " << i.value ();
+ o << ::std::endl << "segmentGroup: " << i.segmentGroup ();
return o;
}
::std::ostream&
operator<< (::std::ostream& o, const Resistivity& i)
{
- o << static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (i);
-
+ o << ::std::endl << "value: " << i.value ();
+ o << ::std::endl << "segmentGroup: " << i.segmentGroup ();
return o;
}
@@ -48610,8 +49042,6 @@ namespace neuroml2
::std::ostream&
operator<< (::std::ostream& o, const Species& i)
{
- o << static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (i);
-
o << ::std::endl << "id: " << i.id ();
o << ::std::endl << "concentrationModel: " << i.concentrationModel ();
if (i.ion ())
@@ -48621,6 +49051,7 @@ namespace neuroml2
o << ::std::endl << "initialConcentration: " << i.initialConcentration ();
o << ::std::endl << "initialExtConcentration: " << i.initialExtConcentration ();
+ o << ::std::endl << "segmentGroup: " << i.segmentGroup ();
return o;
}
@@ -50132,6 +50563,25 @@ namespace neuroml2
l << static_cast< const ::xml_schema::string& > (i);
}
+ void
+ operator<< (::xercesc::DOMElement& e, const Nml2Quantity_resistivity& i)
+ {
+ e << static_cast< const ::xml_schema::string& > (i);
+ }
+
+ void
+ operator<< (::xercesc::DOMAttr& a, const Nml2Quantity_resistivity& i)
+ {
+ a << static_cast< const ::xml_schema::string& > (i);
+ }
+
+ void
+ operator<< (::xml_schema::list_stream& l,
+ const Nml2Quantity_resistivity& i)
+ {
+ l << static_cast< const ::xml_schema::string& > (i);
+ }
+
void
operator<< (::xercesc::DOMElement& e, const Nml2Quantity_conductance& i)
{
@@ -56188,20 +56638,19 @@ namespace neuroml2
}
void
- operator<< (::xercesc::DOMElement& e, const ValueAcrossSegOrSegGroup& i)
+ operator<< (::xercesc::DOMElement& e, const SpikeThresh& i)
{
e << static_cast< const ::xml_schema::type& > (i);
// value
//
- if (i.value ())
{
::xercesc::DOMAttr& a (
::xsd::cxx::xml::dom::create_attribute (
"value",
e));
- a << *i.value ();
+ a << i.value ();
}
// segmentGroup
@@ -56214,42 +56663,90 @@ namespace neuroml2
a << i.segmentGroup ();
}
+ }
- // segment
+ void
+ operator<< (::xercesc::DOMElement& e, const SpecificCapacitance& i)
+ {
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // value
//
- if (i.segment ())
{
::xercesc::DOMAttr& a (
::xsd::cxx::xml::dom::create_attribute (
- "segment",
+ "value",
e));
- a << *i.segment ();
+ a << i.value ();
}
- }
- void
- operator<< (::xercesc::DOMElement& e, const SpikeThresh& i)
- {
- e << static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (i);
- }
+ // segmentGroup
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "segmentGroup",
+ e));
- void
- operator<< (::xercesc::DOMElement& e, const SpecificCapacitance& i)
- {
- e << static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (i);
+ a << i.segmentGroup ();
+ }
}
void
operator<< (::xercesc::DOMElement& e, const InitMembPotential& i)
{
- e << static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (i);
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // value
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "value",
+ e));
+
+ a << i.value ();
+ }
+
+ // segmentGroup
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "segmentGroup",
+ e));
+
+ a << i.segmentGroup ();
+ }
}
void
operator<< (::xercesc::DOMElement& e, const Resistivity& i)
{
- e << static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (i);
+ e << static_cast< const ::xml_schema::type& > (i);
+
+ // value
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "value",
+ e));
+
+ a << i.value ();
+ }
+
+ // segmentGroup
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "segmentGroup",
+ e));
+
+ a << i.segmentGroup ();
+ }
}
void
@@ -56867,7 +57364,7 @@ namespace neuroml2
void
operator<< (::xercesc::DOMElement& e, const Species& i)
{
- e << static_cast< const ::neuroml2::ValueAcrossSegOrSegGroup& > (i);
+ e << static_cast< const ::xml_schema::type& > (i);
// id
//
@@ -56924,6 +57421,17 @@ namespace neuroml2
a << i.initialExtConcentration ();
}
+
+ // segmentGroup
+ //
+ {
+ ::xercesc::DOMAttr& a (
+ ::xsd::cxx::xml::dom::create_attribute (
+ "segmentGroup",
+ e));
+
+ a << i.segmentGroup ();
+ }
}
void
diff --git a/src/schema/NeuroML_v2.1.hxx b/src/schema/NeuroML_v2.2.hxx
similarity index 96%
rename from src/schema/NeuroML_v2.1.hxx
rename to src/schema/NeuroML_v2.2.hxx
index 1dd92bc..a8f19f2 100644
--- a/src/schema/NeuroML_v2.1.hxx
+++ b/src/schema/NeuroML_v2.2.hxx
@@ -33,11 +33,11 @@
/**
* @file
- * @brief Generated from NeuroML_v2.1.xsd.
+ * @brief Generated from NeuroML_v2.2.xsd.
*/
-#ifndef NEUROML_API_SCHEMA_NEURO_ML_V2_1_HXX
-#define NEUROML_API_SCHEMA_NEURO_ML_V2_1_HXX
+#ifndef NEUROML_API_SCHEMA_NEURO_ML_V2_2_HXX
+#define NEUROML_API_SCHEMA_NEURO_ML_V2_2_HXX
#ifndef XSD_CXX11
#define XSD_CXX11
@@ -119,7 +119,6 @@ namespace xml_schema
* @brief C++ type corresponding to the anyType XML Schema
* built-in type.
*/
- typedef ::xsd::cxx::tree::type type;
/**
* @brief C++ type corresponding to the anySimpleType XML Schema
@@ -130,7 +129,6 @@ namespace xml_schema
/**
* @brief Alias for the anyType type.
*/
- typedef ::xsd::cxx::tree::type container;
// 8-bit
@@ -627,6 +625,7 @@ namespace neuroml2
class Nml2Quantity_voltage;
class Nml2Quantity_length;
class Nml2Quantity_resistance;
+ class Nml2Quantity_resistivity;
class Nml2Quantity_conductance;
class Nml2Quantity_conductanceDensity;
class Nml2Quantity_permeability;
@@ -755,7 +754,6 @@ namespace neuroml2
class BiophysicalProperties2CaPools;
class MembraneProperties;
class MembraneProperties2CaPools;
- class ValueAcrossSegOrSegGroup;
class SpikeThresh;
class SpecificCapacitance;
class InitMembPotential;
@@ -1550,6 +1548,118 @@ namespace neuroml2
~Nml2Quantity_resistance ();
};
+ /**
+ * @brief Class corresponding to the %Nml2Quantity_resistivity schema type.
+ *
+ * @nosubgrouping
+ */
+ class Nml2Quantity_resistivity: public ::xml_schema::string
+ {
+ public:
+ /**
+ * @name Constructors
+ */
+ //@{
+
+ /**
+ * @brief Create an instance from initializers for required
+ * elements and attributes.
+ */
+ Nml2Quantity_resistivity ();
+
+ /**
+ * @brief Create an instance from a C string and initializers
+ * for required elements and attributes.
+ */
+ Nml2Quantity_resistivity (const char*);
+
+ /**
+ * @brief Create an instance from a string andinitializers
+ * for required elements and attributes.
+ */
+ Nml2Quantity_resistivity (const ::std::string&);
+
+ /**
+ * @brief Create an instance from the ultimate base and
+ * initializers for required elements and attributes.
+ */
+ Nml2Quantity_resistivity (const ::xml_schema::string&);
+
+ /**
+ * @brief Create an instance from a DOM element.
+ *
+ * @param e A DOM element to extract the data from.
+ * @param f Flags to create the new instance with.
+ * @param c A pointer to the object that will contain the new
+ * instance.
+ */
+ Nml2Quantity_resistivity (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ /**
+ * @brief Create an instance from a DOM attribute.
+ *
+ * @param a A DOM attribute to extract the data from.
+ * @param f Flags to create the new instance with.
+ * @param c A pointer to the object that will contain the new
+ * instance.
+ */
+ Nml2Quantity_resistivity (const ::xercesc::DOMAttr& a,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ /**
+ * @brief Create an instance from a string fragment.
+ *
+ * @param s A string fragment to extract the data from.
+ * @param e A pointer to DOM element containing the string fragment.
+ * @param f Flags to create the new instance with.
+ * @param c A pointer to the object that will contain the new
+ * instance.
+ */
+ Nml2Quantity_resistivity (const ::std::string& s,
+ const ::xercesc::DOMElement* e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ /**
+ * @brief Copy constructor.
+ *
+ * @param x An instance to make a copy of.
+ * @param f Flags to create the copy with.
+ * @param c A pointer to the object that will contain the copy.
+ *
+ * For polymorphic object models use the @c _clone function instead.
+ */
+ Nml2Quantity_resistivity (const Nml2Quantity_resistivity& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ /**
+ * @brief Copy the instance polymorphically.
+ *
+ * @param f Flags to create the copy with.
+ * @param c A pointer to the object that will contain the copy.
+ * @return A pointer to the dynamically allocated copy.
+ *
+ * This function ensures that the dynamic type of the instance is
+ * used for copying and should be used for polymorphic object
+ * models instead of the copy constructor.
+ */
+ virtual Nml2Quantity_resistivity*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ //@}
+
+ /**
+ * @brief Destructor.
+ */
+ virtual
+ ~Nml2Quantity_resistivity ();
+ };
+
/**
* @brief Class corresponding to the %Nml2Quantity_conductance schema type.
*
@@ -3730,11 +3840,21 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Property schema type.
*
- * Generic property with a tag and value
+ * 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**
*
* @nosubgrouping
*/
- class Property: public ::xml_schema::type
{
public:
/**
@@ -3951,11 +4071,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Annotation schema type.
*
- * Placeholder for MIRIAM related metadata, among others.
+ * A structured annotation containing metadata, specifically RDF or
+ * **property** elements
*
* @nosubgrouping
*/
- class Annotation: public ::xml_schema::type
{
public:
/**
@@ -4046,7 +4166,6 @@ namespace neuroml2
ComponentType. *
* @nosubgrouping
*/
- class ComponentType: public ::xml_schema::type
{
public:
/**
@@ -4816,7 +4935,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class Constant: public ::xml_schema::type
{
public:
/**
@@ -5174,7 +5292,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class Exposure: public ::xml_schema::type
{
public:
/**
@@ -5470,7 +5587,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class NamedDimensionalType: public ::xml_schema::type
{
public:
/**
@@ -5766,7 +5882,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class NamedDimensionalVariable: public ::xml_schema::type
{
public:
/**
@@ -6444,7 +6559,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class InstanceRequirement: public ::xml_schema::type
{
public:
/**
@@ -6665,7 +6779,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class Dynamics: public ::xml_schema::type
{
public:
/**
@@ -7517,7 +7630,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class Case: public ::xml_schema::type
{
public:
/**
@@ -7753,7 +7865,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class TimeDerivative: public ::xml_schema::type
{
public:
/**
@@ -8072,7 +8183,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class BaseWithoutId: public ::xml_schema::type
{
public:
/**
@@ -13265,7 +13375,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class IncludeType: public ::xml_schema::type
{
public:
/**
@@ -13587,7 +13696,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IonChannelKS schema type.
*
- * Kinetic scheme based ion channel.
+ * 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
+ * @param conductance
*
* @nosubgrouping
*/
@@ -13908,10 +14020,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IonChannel schema type.
*
- * 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.
+ * 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.
+ * @param conductance
*
* @nosubgrouping
*/
@@ -14764,10 +14877,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IonChannelHH schema type.
*
- * 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.
+ * 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.
+ * @param conductance
*
* @nosubgrouping
*/
@@ -14837,9 +14951,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IonChannelVShift schema type.
*
- * 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.
+ * 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.
+ * @param vShift
+ * @param conductance
*
* @nosubgrouping
*/
@@ -15146,9 +15262,15 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Q10ConductanceScaling schema type.
*
+ * 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**
+ * @param q10Factor
+ * @param experimentalTemp
+ *
* @nosubgrouping
*/
- class Q10ConductanceScaling: public ::xml_schema::type
{
public:
/**
@@ -15516,6 +15638,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ClosedState schema type.
*
+ * A **KSState** with **relativeConductance** of 0
+ * @param relativeConductance
+ *
* @nosubgrouping
*/
class ClosedState: public ::neuroml2::Base
@@ -15584,6 +15709,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %OpenState schema type.
*
+ * A **KSState** with **relativeConductance** of 1
+ * @param relativeConductance
+ *
* @nosubgrouping
*/
class OpenState: public ::neuroml2::Base
@@ -15652,6 +15780,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ForwardTransition schema type.
*
+ * 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**
+ *
* @nosubgrouping
*/
class ForwardTransition: public ::neuroml2::Base
@@ -15872,6 +16005,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ReverseTransition schema type.
*
+ * 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**
+ *
* @nosubgrouping
*/
class ReverseTransition: public ::neuroml2::Base
@@ -16092,6 +16230,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %TauInfTransition schema type.
*
+ * KS Transition specified in terms of time constant **tau** and steady
+ * state **inf**
+ *
* @nosubgrouping
*/
class TauInfTransition: public ::neuroml2::Base
@@ -16446,6 +16587,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %GateKS schema type.
*
+ * A gate which consists of multiple **KSState** s and **KSTransition**
+ * s giving the rates of transition between them
+ * @param instances
+ *
* @nosubgrouping
*/
class GateKS: public ::neuroml2::Base
@@ -17836,6 +17981,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %GateHHRates schema type.
*
+ * Gate which follows the general Hodgkin Huxley formalism
+ * @param instances
+ *
* @nosubgrouping
*/
class GateHHRates: public ::neuroml2::Base
@@ -18283,6 +18431,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %GateHHTauInf schema type.
*
+ * Gate which follows the general Hodgkin Huxley formalism
+ * @param instances
+ *
* @nosubgrouping
*/
class GateHHTauInf: public ::neuroml2::Base
@@ -18730,6 +18881,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %GateHHRatesTauInf schema type.
*
+ * Gate which follows the general Hodgkin Huxley formalism
+ * @param instances
+ *
* @nosubgrouping
*/
class GateHHRatesTauInf: public ::neuroml2::Base
@@ -19299,6 +19453,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %GateHHRatesTau schema type.
*
+ * Gate which follows the general Hodgkin Huxley formalism
+ * @param instances
+ *
* @nosubgrouping
*/
class GateHHRatesTau: public ::neuroml2::Base
@@ -19807,6 +19964,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %GateHHRatesInf schema type.
*
+ * Gate which follows the general Hodgkin Huxley formalism
+ * @param instances
+ *
* @nosubgrouping
*/
class GateHHRatesInf: public ::neuroml2::Base
@@ -20315,6 +20475,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %GateHHInstantaneous schema type.
*
+ * Gate which follows the general Hodgkin Huxley formalism but is
+ * instantaneous, so tau = 0 and gate follows exactly inf value
+ * @param instances
+ *
* @nosubgrouping
*/
class GateHHInstantaneous: public ::neuroml2::Base
@@ -20624,6 +20788,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %GateFractional schema type.
*
+ * Gate composed of subgates contributing with fractional conductance
+ * @param instances
+ *
* @nosubgrouping
*/
class GateFractional: public ::neuroml2::Base
@@ -21452,7 +21619,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class Q10Settings: public ::xml_schema::type
{
public:
/**
@@ -21842,7 +22008,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class HHRate: public ::xml_schema::type
{
public:
/**
@@ -22232,7 +22397,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class HHVariable: public ::xml_schema::type
{
public:
/**
@@ -22611,7 +22775,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class HHTime: public ::xml_schema::type
{
public:
/**
@@ -23076,6 +23239,15 @@ namespace neuroml2
/**
* @brief Class corresponding to the %DecayingPoolConcentrationModel schema type.
*
+ * 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.**
+ * @param restingConc
+ * @param decayConstant
+ * @param shellThickness
+ *
* @nosubgrouping
*/
class DecayingPoolConcentrationModel: public ::neuroml2::Standalone
@@ -23086,8 +23258,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %ion
* required attribute.
- *
- * Should not be required, as it's present on the species element!
*/
//@{
@@ -23418,6 +23588,16 @@ namespace neuroml2
/**
* @brief Class corresponding to the %FixedFactorConcentrationModel schema type.
*
+ * 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.
+ * @param restingConc
+ * @param decayConstant
+ * @param rho
+ *
* @nosubgrouping
*/
class FixedFactorConcentrationModel: public ::neuroml2::Standalone
@@ -23428,8 +23608,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %ion
* required attribute.
- *
- * Should not be required, as it's present on the species element!
*/
//@{
@@ -23760,6 +23938,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BaseSynapse schema type.
*
+ * 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
+ *
* @nosubgrouping
*/
class BaseSynapse: public ::neuroml2::Standalone
@@ -23828,6 +24010,8 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BaseVoltageDepSynapse schema type.
*
+ * Base type for synapses with a dependence on membrane potential
+ *
* @nosubgrouping
*/
class BaseVoltageDepSynapse: public ::neuroml2::BaseSynapse
@@ -23896,6 +24080,8 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BaseCurrentBasedSynapse schema type.
*
+ * Synapse model which produces a synaptic current.
+ *
* @nosubgrouping
*/
class BaseCurrentBasedSynapse: public ::neuroml2::BaseSynapse
@@ -23964,6 +24150,12 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BaseConductanceBasedSynapse schema type.
*
+ * Synapse model which exposes a conductance **g** in addition to
+ * producing a current. Not necessarily ohmic!! cno_0000027
+ * @param gbase Baseline conductance, generally the maximum conductance
+ * following a single spike
+ * @param erev Reversal potential of the synapse
+ *
* @nosubgrouping
*/
class BaseConductanceBasedSynapse: public ::neuroml2::BaseVoltageDepSynapse
@@ -24184,6 +24376,13 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BaseConductanceBasedSynapseTwo schema type.
*
+ * 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
+ * @param gbase1 Baseline conductance 1
+ * @param gbase2 Baseline conductance 2
+ * @param erev Reversal potential of the synapse
+ *
* @nosubgrouping
*/
class BaseConductanceBasedSynapseTwo: public ::neuroml2::BaseVoltageDepSynapse
@@ -24464,6 +24663,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %GapJunction schema type.
*
+ * Gap junction/single electrical connection
+ * @param conductance
+ *
* @nosubgrouping
*/
class GapJunction: public ::neuroml2::BaseSynapse
@@ -24624,6 +24826,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SilentSynapse schema type.
*
+ * Dummy synapse which emits no current. Used as presynaptic endpoint for
+ * analog synaptic connection.
+ *
* @nosubgrouping
*/
class SilentSynapse: public ::neuroml2::BaseSynapse
@@ -24692,6 +24897,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %LinearGradedSynapse schema type.
*
+ * Behaves just like a one way gap junction.
+ * @param conductance
+ *
* @nosubgrouping
*/
class LinearGradedSynapse: public ::neuroml2::BaseSynapse
@@ -24852,6 +25060,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %GradedSynapse schema type.
*
+ * Graded/analog synapse. Based on synapse in Methods of http://www.
+ * nature.com/neuro/journal/v7/n12/abs/nn1352.html
+ * @param conductance
+ * @param delta Slope of the activation curve
+ * @param k Rate constant for transmitter-receptor dissociation rate
+ * @param Vth The half-activation voltage of the synapse
+ * @param erev The reversal potential of the synapse
+ *
* @nosubgrouping
*/
class GradedSynapse: public ::neuroml2::BaseSynapse
@@ -25252,6 +25468,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %AlphaCurrentSynapse schema type.
*
+ * Alpha current synapse: rise time and decay time are both **tau.**
+ * @param tau Time course for rise and decay
+ * @param ibase Baseline current increase after receiving a spike
+ *
* @nosubgrouping
*/
class AlphaCurrentSynapse: public ::neuroml2::BaseCurrentBasedSynapse
@@ -25472,6 +25692,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %AlphaSynapse schema type.
*
+ * 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.**
+ * @param tau Time course of rise/decay
+ * @param gbase Baseline conductance, generally the maximum conductance
+ * following a single spike
+ * @param erev Reversal potential of the synapse
+ *
* @nosubgrouping
*/
class AlphaSynapse: public ::neuroml2::BaseConductanceBasedSynapse
@@ -25634,6 +25862,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ExpOneSynapse schema type.
*
+ * Ohmic synapse model whose conductance rises instantaneously by (
+ * **gbase** * **weight** ) on receiving an event, and which decays
+ * exponentially to zero with time course **tauDecay**
+ * @param tauDecay Time course of decay
+ * @param gbase Baseline conductance, generally the maximum conductance
+ * following a single spike
+ * @param erev Reversal potential of the synapse
+ *
* @nosubgrouping
*/
class ExpOneSynapse: public ::neuroml2::BaseConductanceBasedSynapse
@@ -25796,6 +26032,16 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ExpTwoSynapse schema type.
*
+ * 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.**
+ * @param tauRise
+ * @param tauDecay
+ * @param gbase Baseline conductance, generally the maximum conductance
+ * following a single spike
+ * @param erev Reversal potential of the synapse
+ *
* @nosubgrouping
*/
class ExpTwoSynapse: public ::neuroml2::BaseConductanceBasedSynapse
@@ -26018,6 +26264,16 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ExpThreeSynapse schema type.
*
+ * 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.
+ * @param tauRise
+ * @param tauDecay1
+ * @param tauDecay2
+ * @param gbase1 Baseline conductance 1
+ * @param gbase2 Baseline conductance 2
+ * @param erev Reversal potential of the synapse
+ *
* @nosubgrouping
*/
class ExpThreeSynapse: public ::neuroml2::BaseConductanceBasedSynapseTwo
@@ -26301,6 +26557,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %DoubleSynapse schema type.
*
+ * Synapse consisting of two independent synaptic mechanisms ( e. g.
+ * AMPA-R and NMDA-R ), which can be easily colocated in connections
+ *
* @nosubgrouping
*/
class DoubleSynapse: public ::neuroml2::BaseVoltageDepSynapse
@@ -26641,6 +26900,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BlockingPlasticSynapse schema type.
*
+ * Biexponential synapse that allows for optional block and plasticity
+ * mechanisms, which can be expressed as child elements.
+ * @param tauRise
+ * @param tauDecay
+ * @param gbase Baseline conductance, generally the maximum conductance
+ * following a single spike
+ * @param erev Reversal potential of the synapse
+ *
* @nosubgrouping
*/
class BlockingPlasticSynapse: public ::neuroml2::ExpTwoSynapse
@@ -27045,7 +27312,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class BlockMechanism: public ::xml_schema::type
{
public:
/**
@@ -27589,7 +27855,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class PlasticityMechanism: public ::xml_schema::type
{
public:
/**
@@ -27943,6 +28208,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BaseCell schema type.
*
+ * 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**
+ *
* @nosubgrouping
*/
class BaseCell: public ::neuroml2::Standalone
@@ -28011,6 +28280,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IafTauCell schema type.
*
+ * Integrate and fire cell which returns to its leak reversal potential
+ * of **leakReversal** with a time constant **tau**
+ * @param leakReversal
+ * @param tau
+ * @param thresh The membrane potential at which to emit a spiking event
+ * and reset voltage
+ * @param reset The value the membrane potential is reset to on spiking
+ *
* @nosubgrouping
*/
class IafTauCell: public ::neuroml2::BaseCell
@@ -28351,6 +28628,16 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IafTauRefCell schema type.
*
+ * 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
+ * @param refract
+ * @param leakReversal
+ * @param tau
+ * @param thresh The membrane potential at which to emit a spiking event
+ * and reset voltage
+ * @param reset The value the membrane potential is reset to on spiking
+ *
* @nosubgrouping
*/
class IafTauRefCell: public ::neuroml2::IafTauCell
@@ -28515,6 +28802,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IafCell schema type.
*
+ * Integrate and fire cell with capacitance **C,** **leakConductance**
+ * and **leakReversal**
+ * @param leakConductance
+ * @param leakReversal
+ * @param thresh
+ * @param reset
+ * @param C Total capacitance of the cell membrane
+ *
* @nosubgrouping
*/
class IafCell: public ::neuroml2::BaseCell
@@ -28915,6 +29210,15 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IafRefCell schema type.
*
+ * Integrate and fire cell with capacitance **C,** **leakConductance,**
+ * **leakReversal** and refractory period **refract**
+ * @param refract
+ * @param leakConductance
+ * @param leakReversal
+ * @param thresh
+ * @param reset
+ * @param C Total capacitance of the cell membrane
+ *
* @nosubgrouping
*/
class IafRefCell: public ::neuroml2::IafCell
@@ -29080,6 +29384,16 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IzhikevichCell schema type.
*
+ * Cell based on the 2003 model of Izhikevich, see
+ * http://izhikevich.org/publications/spikes.htm
+ * @param v0 Initial membrane potential
+ * @param a Time scale of the recovery variable U
+ * @param b Sensitivity of U to the subthreshold fluctuations of the
+ * membrane potential V
+ * @param c After-spike reset value of V
+ * @param d After-spike increase to U
+ * @param thresh Spike threshold
+ *
* @nosubgrouping
*/
class IzhikevichCell: public ::neuroml2::BaseCell
@@ -29540,6 +29854,12 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BaseCellMembPotCap schema type.
*
+ * 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** )
+ * @param C Total capacitance of the cell membrane
+ *
* @nosubgrouping
*/
class BaseCellMembPotCap: public ::neuroml2::BaseCell
@@ -29550,9 +29870,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %C
* required attribute.
- *
- * This is to prevent it conflicting with attribute c (lowercase) e.g. in
- * izhikevichCell2007
*/
//@{
@@ -29703,6 +30020,19 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Izhikevich2007Cell schema type.
*
+ * Cell based on the modified Izhikevich model in Izhikevich 2007,
+ * Dynamical systems in neuroscience, MIT Press
+ * @param v0
+ * @param k
+ * @param vr
+ * @param vt
+ * @param vpeak
+ * @param a
+ * @param b
+ * @param c
+ * @param d
+ * @param C Total capacitance of the cell membrane
+ *
* @nosubgrouping
*/
class Izhikevich2007Cell: public ::neuroml2::BaseCellMembPotCap
@@ -30344,6 +30674,21 @@ namespace neuroml2
/**
* @brief Class corresponding to the %AdExIaFCell schema type.
*
+ * 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
+ * @param gL
+ * @param EL
+ * @param VT
+ * @param thresh
+ * @param reset
+ * @param delT
+ * @param tauw
+ * @param refract
+ * @param a
+ * @param b
+ * @param C Total capacitance of the cell membrane
+ *
* @nosubgrouping
*/
class AdExIaFCell: public ::neuroml2::BaseCellMembPotCap
@@ -31045,6 +31390,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %FitzHughNagumoCell schema type.
*
+ * Simple dimensionless model of spiking cell from FitzHugh and Nagumo.
+ * Superseded by **fitzHughNagumo1969Cell** ( See
+ * https://github.com/NeuroML/NeuroML2/issues/42 )
+ * @param I
+ *
* @nosubgrouping
*/
class FitzHughNagumoCell: public ::neuroml2::BaseCell
@@ -31205,6 +31555,25 @@ namespace neuroml2
/**
* @brief Class corresponding to the %FitzHughNagumo1969Cell schema type.
*
+ * 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.
+ * )
+ * @param a
+ * @param b
+ * @param I plays the role of an external injected current
+ * @param phi
+ * @param V0
+ * @param W0
+ *
* @nosubgrouping
*/
class FitzHughNagumo1969Cell: public ::neuroml2::BaseCell
@@ -31665,6 +32034,30 @@ namespace neuroml2
/**
* @brief Class corresponding to the %PinskyRinzelCA3Cell schema type.
*
+ * Reduced CA3 cell model from Pinsky and Rinzel 1994. See
+ * https://github.com/OpenSourceBrain/PinskyRinzelModel
+ * @param iSoma
+ * @param iDend
+ * @param gLs
+ * @param gLd
+ * @param gNa
+ * @param gKdr
+ * @param gCa
+ * @param gKahp
+ * @param gKC
+ * @param gc
+ * @param eNa
+ * @param eCa
+ * @param eK
+ * @param eL
+ * @param pp
+ * @param cm
+ * @param alphac
+ * @param betac
+ * @param gNmda
+ * @param gAmpa
+ * @param qd0
+ *
* @nosubgrouping
*/
class PinskyRinzelCA3Cell: public ::neuroml2::BaseCell
@@ -33025,6 +33418,12 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Cell schema type.
*
+ * 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.
+ *
* @nosubgrouping
*/
class Cell: public ::neuroml2::BaseCell
@@ -33187,9 +33586,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %morphology
* optional attribute.
- *
- * Should only be used if morphology element is outside the cell.
- * This points to the id of the morphology
*/
//@{
@@ -33266,10 +33662,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %biophysicalProperties
* optional attribute.
- *
- * Should only be used if biophysicalProperties element is outside the
- * cell.
- * This points to the id of the biophysicalProperties
*/
//@{
@@ -33440,6 +33832,13 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Cell2CaPools schema type.
*
+ * 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.
+ *
* @nosubgrouping
*/
class Cell2CaPools: public ::neuroml2::Cell
@@ -33617,9 +34016,8 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Morphology schema type.
*
- * Standalone element which is usually inside a single cell, but could be
- * outside and
- * referenced by id.
+ * The collection of **segment** s which specify the 3D structure of the
+ * cell, along with a number of **segmentGroup** s
*
* @nosubgrouping
*/
@@ -34013,6 +34411,23 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Segment schema type.
*
+ * 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.
+ *
* @nosubgrouping
*/
class Segment_base: public ::neuroml2::BaseNonNegativeIntegerId
@@ -34417,7 +34832,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class SegmentParent: public ::xml_schema::type
{
public:
/**
@@ -34641,11 +35055,24 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Point3DWithDiam schema type.
*
- * A 3D point with diameter.
+ * 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.
+ * @param x: x coordinate of the point. Note no dimension used, see
+ * description of **point3DWithDiam** for details.
+ * @param y: y coordinate of the ppoint. Note no dimension used, see
+ * description of **point3DWithDiam** for details.
+ * @param z: z coordinate of the ppoint. Note no dimension used, see
+ * description of **point3DWithDiam** for details.
+ * @param diameter: Diameter of the ppoint. Note no dimension used, see
+ * description of **point3DWithDiam** for details.
*
* @nosubgrouping
*/
- class Point3DWithDiam: public ::xml_schema::type
{
public:
/**
@@ -34949,6 +35376,19 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SegmentGroup schema type.
*
+ * 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 ).
+ *
* @nosubgrouping
*/
class SegmentGroup: public ::neuroml2::Base
@@ -35593,6 +36033,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %InhomogeneousParameter schema type.
*
+ * An inhomogeneous parameter specified across the **segmentGroup** (
+ * see **variableParameter** for usage ).
+ *
* @nosubgrouping
*/
class InhomogeneousParameter: public ::neuroml2::Base
@@ -36115,7 +36558,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class ProximalDetails: public ::xml_schema::type
{
public:
/**
@@ -36263,7 +36705,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class DistalDetails: public ::xml_schema::type
{
public:
/**
@@ -36409,9 +36850,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Member schema type.
*
+ * A single identified **segment** which is part of the
+ **segmentGroup** *
* @nosubgrouping
*/
- class Member: public ::xml_schema::type
{
public:
/**
@@ -36568,9 +37010,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Include schema type.
*
+ * Include all members of another **segmentGroup** in this group
+ *
* @nosubgrouping
*/
- class Include: public ::xml_schema::type
{
public:
/**
@@ -36727,9 +37170,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Path schema type.
*
+ * Include all the **segment** s between those specified by **from**
+ * and **to** , inclusive
+ *
* @nosubgrouping
*/
- class Path: public ::xml_schema::type
{
public:
/**
@@ -36981,9 +37426,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SubTree schema type.
*
+ * Include all the **segment** s distal to that specified by **from**
+ * in the **segmentGroup**
+ *
* @nosubgrouping
*/
- class SubTree: public ::xml_schema::type
{
public:
/**
@@ -37237,7 +37684,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class SegmentEndPoint: public ::xml_schema::type
{
public:
/**
@@ -37394,9 +37840,8 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BiophysicalProperties schema type.
*
- * Standalone element which is usually inside a single cell, but could be
- * outside and
- * referenced by id.
+ * The biophysical properties of the **cell** , including the
+ * **membraneProperties** and the **intracellularProperties**
*
* @nosubgrouping
*/
@@ -37723,9 +38168,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BiophysicalProperties2CaPools schema type.
*
- * Standalone element which is usually inside a single cell, but could be
- * outside and
- * referenced by id.
+ * The biophysical properties of the **cell** , including the
+ * **membraneProperties2CaPools** and the
+ * **intracellularProperties2CaPools** for a cell with two Ca pools
*
* @nosubgrouping
*/
@@ -38052,9 +38497,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %MembraneProperties schema type.
*
+ * Properties specific to the membrane, such as the **populations** of
+ * channels, **channelDensities,** **specificCapacitance,** etc.
+ *
* @nosubgrouping
*/
- class MembraneProperties: public ::xml_schema::type
{
public:
/**
@@ -38932,6 +39379,8 @@ namespace neuroml2
/**
* @brief Class corresponding to the %MembraneProperties2CaPools schema type.
*
+ * Variant of membraneProperties with 2 independent Ca pools
+ *
* @nosubgrouping
*/
class MembraneProperties2CaPools: public ::neuroml2::MembraneProperties
@@ -39095,30 +39544,30 @@ namespace neuroml2
/**
- * @brief Class corresponding to the %ValueAcrossSegOrSegGroup schema type.
+ * @brief Class corresponding to the %SpikeThresh schema type.
+ *
+ * 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
+ * @param value
*
* @nosubgrouping
*/
- class ValueAcrossSegOrSegGroup: public ::xml_schema::type
{
public:
/**
* @name value
*
* @brief Accessor and modifier functions for the %value
- * optional attribute.
+ * required attribute.
*/
//@{
/**
* @brief Attribute type.
*/
- typedef ::neuroml2::Nml2Quantity value_type;
-
- /**
- * @brief Attribute optional container type.
- */
- typedef ::xsd::cxx::tree::optional< value_type > value_optional;
+ typedef ::neuroml2::Nml2Quantity_voltage value_type;
/**
* @brief Attribute traits type.
@@ -39126,20 +39575,19 @@ namespace neuroml2
typedef ::xsd::cxx::tree::traits< value_type, char > value_traits;
/**
- * @brief Return a read-only (constant) reference to the attribute
- * container.
+ * @brief Return a read-only (constant) reference to the attribute.
*
- * @return A constant reference to the optional container.
+ * @return A constant reference to the attribute.
*/
- const value_optional&
+ const value_type&
value () const;
/**
- * @brief Return a read-write reference to the attribute container.
+ * @brief Return a read-write reference to the attribute.
*
- * @return A reference to the optional container.
+ * @return A reference to the attribute.
*/
- value_optional&
+ value_type&
value ();
/**
@@ -39153,25 +39601,13 @@ namespace neuroml2
void
value (const value_type& x);
- /**
- * @brief Set the attribute value.
- *
- * @param x An optional container with the new value to set.
- *
- * If the value is present in @a x then this function makes a copy
- * of this value and sets it as the new value of the attribute.
- * Otherwise the attribute container is set the 'not present' state.
- */
- void
- value (const value_optional& x);
-
/**
* @brief Set the attribute value without copying.
*
* @param p A new value to use.
*
- * This function will try to use the passed value directly instead
- * of making a copy.
+ * This function will try to use the passed value directly
+ * instead of making a copy.
*/
void
value (::std::unique_ptr< value_type > p);
@@ -39246,44 +39682,143 @@ namespace neuroml2
//@}
/**
- * @name segment
- *
- * @brief Accessor and modifier functions for the %segment
- * optional attribute.
+ * @name Constructors
*/
//@{
/**
- * @brief Attribute type.
+ * @brief Create an instance from the ultimate base and
+ * initializers for required elements and attributes.
*/
- typedef ::neuroml2::NmlId segment_type;
+ SpikeThresh (const value_type&);
/**
- * @brief Attribute optional container type.
+ * @brief Create an instance from a DOM element.
+ *
+ * @param e A DOM element to extract the data from.
+ * @param f Flags to create the new instance with.
+ * @param c A pointer to the object that will contain the new
+ * instance.
*/
- typedef ::xsd::cxx::tree::optional< segment_type > segment_optional;
+ SpikeThresh (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ /**
+ * @brief Copy constructor.
+ *
+ * @param x An instance to make a copy of.
+ * @param f Flags to create the copy with.
+ * @param c A pointer to the object that will contain the copy.
+ *
+ * For polymorphic object models use the @c _clone function instead.
+ */
+ SpikeThresh (const SpikeThresh& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
+
+ /**
+ * @brief Copy the instance polymorphically.
+ *
+ * @param f Flags to create the copy with.
+ * @param c A pointer to the object that will contain the copy.
+ * @return A pointer to the dynamically allocated copy.
+ *
+ * This function ensures that the dynamic type of the instance is
+ * used for copying and should be used for polymorphic object
+ * models instead of the copy constructor.
+ */
+ virtual SpikeThresh*
+ _clone (::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0) const;
+
+ /**
+ * @brief Copy assignment operator.
+ *
+ * @param x An instance to make a copy of.
+ * @return A reference to itself.
+ *
+ * For polymorphic object models use the @c _clone function instead.
+ */
+ SpikeThresh&
+ operator= (const SpikeThresh& x);
+
+ //@}
+
+ /**
+ * @brief Destructor.
+ */
+ virtual
+ ~SpikeThresh ();
+
+ // Implementation.
+ //
+
+ //@cond
+
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< value_type > value_;
+ ::xsd::cxx::tree::one< segmentGroup_type > segmentGroup_;
+ static const segmentGroup_type segmentGroup_default_value_;
+
+ //@endcond
+ };
+
+ bool
+ operator== (const SpikeThresh&, const SpikeThresh&);
+
+ bool
+ operator!= (const SpikeThresh&, const SpikeThresh&);
+
+
+ /**
+ * @brief Class corresponding to the %SpecificCapacitance schema type.
+ *
+ * Capacitance per unit area
+ * @param value
+ *
+ * @nosubgrouping
+ */
+ {
+ public:
+ /**
+ * @name value
+ *
+ * @brief Accessor and modifier functions for the %value
+ * required attribute.
+ */
+ //@{
+
+ /**
+ * @brief Attribute type.
+ */
+ typedef ::neuroml2::Nml2Quantity_specificCapacitance value_type;
/**
* @brief Attribute traits type.
*/
- typedef ::xsd::cxx::tree::traits< segment_type, char > segment_traits;
+ typedef ::xsd::cxx::tree::traits< value_type, char > value_traits;
/**
- * @brief Return a read-only (constant) reference to the attribute
- * container.
+ * @brief Return a read-only (constant) reference to the attribute.
*
- * @return A constant reference to the optional container.
+ * @return A constant reference to the attribute.
*/
- const segment_optional&
- segment () const;
+ const value_type&
+ value () const;
/**
- * @brief Return a read-write reference to the attribute container.
+ * @brief Return a read-write reference to the attribute.
*
- * @return A reference to the optional container.
+ * @return A reference to the attribute.
*/
- segment_optional&
- segment ();
+ value_type&
+ value ();
/**
* @brief Set the attribute value.
@@ -39294,30 +39829,85 @@ namespace neuroml2
* the new value of the attribute.
*/
void
- segment (const segment_type& x);
+ value (const value_type& x);
+
+ /**
+ * @brief Set the attribute value without copying.
+ *
+ * @param p A new value to use.
+ *
+ * This function will try to use the passed value directly
+ * instead of making a copy.
+ */
+ void
+ value (::std::unique_ptr< value_type > p);
+
+ //@}
+
+ /**
+ * @name segmentGroup
+ *
+ * @brief Accessor and modifier functions for the %segmentGroup
+ * optional attribute with a default value.
+ */
+ //@{
+
+ /**
+ * @brief Attribute type.
+ */
+ typedef ::neuroml2::NmlId segmentGroup_type;
+
+ /**
+ * @brief Attribute traits type.
+ */
+ typedef ::xsd::cxx::tree::traits< segmentGroup_type, char > segmentGroup_traits;
+
+ /**
+ * @brief Return a read-only (constant) reference to the attribute.
+ *
+ * @return A constant reference to the attribute.
+ */
+ const segmentGroup_type&
+ segmentGroup () const;
+
+ /**
+ * @brief Return a read-write reference to the attribute.
+ *
+ * @return A reference to the attribute.
+ */
+ segmentGroup_type&
+ segmentGroup ();
/**
* @brief Set the attribute value.
*
- * @param x An optional container with the new value to set.
+ * @param x A new value to set.
*
- * If the value is present in @a x then this function makes a copy
- * of this value and sets it as the new value of the attribute.
- * Otherwise the attribute container is set the 'not present' state.
+ * This function makes a copy of its argument and sets it as
+ * the new value of the attribute.
*/
void
- segment (const segment_optional& x);
+ segmentGroup (const segmentGroup_type& x);
/**
* @brief Set the attribute value without copying.
*
* @param p A new value to use.
*
- * This function will try to use the passed value directly instead
- * of making a copy.
+ * This function will try to use the passed value directly
+ * instead of making a copy.
*/
void
- segment (::std::unique_ptr< segment_type > p);
+ segmentGroup (::std::unique_ptr< segmentGroup_type > p);
+
+ /**
+ * @brief Return the default value for the attribute.
+ *
+ * @return A read-only (constant) reference to the attribute's
+ * default value.
+ */
+ static const segmentGroup_type&
+ segmentGroup_default_value ();
//@}
@@ -39330,7 +39920,7 @@ namespace neuroml2
* @brief Create an instance from the ultimate base and
* initializers for required elements and attributes.
*/
- ValueAcrossSegOrSegGroup ();
+ SpecificCapacitance (const value_type&);
/**
* @brief Create an instance from a DOM element.
@@ -39340,9 +39930,9 @@ namespace neuroml2
* @param c A pointer to the object that will contain the new
* instance.
*/
- ValueAcrossSegOrSegGroup (const ::xercesc::DOMElement& e,
- ::xml_schema::flags f = 0,
- ::xml_schema::container* c = 0);
+ SpecificCapacitance (const ::xercesc::DOMElement& e,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
/**
* @brief Copy constructor.
@@ -39353,9 +39943,9 @@ namespace neuroml2
*
* For polymorphic object models use the @c _clone function instead.
*/
- ValueAcrossSegOrSegGroup (const ValueAcrossSegOrSegGroup& x,
- ::xml_schema::flags f = 0,
- ::xml_schema::container* c = 0);
+ SpecificCapacitance (const SpecificCapacitance& x,
+ ::xml_schema::flags f = 0,
+ ::xml_schema::container* c = 0);
/**
* @brief Copy the instance polymorphically.
@@ -39368,7 +39958,7 @@ namespace neuroml2
* used for copying and should be used for polymorphic object
* models instead of the copy constructor.
*/
- virtual ValueAcrossSegOrSegGroup*
+ virtual SpecificCapacitance*
_clone (::xml_schema::flags f = 0,
::xml_schema::container* c = 0) const;
@@ -39380,8 +39970,8 @@ namespace neuroml2
*
* For polymorphic object models use the @c _clone function instead.
*/
- ValueAcrossSegOrSegGroup&
- operator= (const ValueAcrossSegOrSegGroup& x);
+ SpecificCapacitance&
+ operator= (const SpecificCapacitance& x);
//@}
@@ -39389,7 +39979,7 @@ namespace neuroml2
* @brief Destructor.
*/
virtual
- ~ValueAcrossSegOrSegGroup ();
+ ~SpecificCapacitance ();
// Implementation.
//
@@ -39402,174 +39992,155 @@ namespace neuroml2
::xml_schema::flags);
protected:
- value_optional value_;
+ ::xsd::cxx::tree::one< value_type > value_;
::xsd::cxx::tree::one< segmentGroup_type > segmentGroup_;
static const segmentGroup_type segmentGroup_default_value_;
- segment_optional segment_;
//@endcond
};
bool
- operator== (const ValueAcrossSegOrSegGroup&, const ValueAcrossSegOrSegGroup&);
+ operator== (const SpecificCapacitance&, const SpecificCapacitance&);
bool
- operator!= (const ValueAcrossSegOrSegGroup&, const ValueAcrossSegOrSegGroup&);
+ operator!= (const SpecificCapacitance&, const SpecificCapacitance&);
/**
- * @brief Class corresponding to the %SpikeThresh schema type.
+ * @brief Class corresponding to the %InitMembPotential schema type.
*
- * Using a thin extension of ValueAcrossSegOrSegGroup to facilitate
- * library generation (e.g. libNeuroML)
+ * Explicitly set initial membrane potential for the cell
+ * @param value
*
* @nosubgrouping
*/
- class SpikeThresh: public ::neuroml2::ValueAcrossSegOrSegGroup
{
public:
/**
- * @name Constructors
+ * @name value
+ *
+ * @brief Accessor and modifier functions for the %value
+ * required attribute.
*/
//@{
/**
- * @brief Create an instance from the ultimate base and
- * initializers for required elements and attributes.
+ * @brief Attribute type.
*/
- SpikeThresh ();
+ typedef ::neuroml2::Nml2Quantity_voltage value_type;
/**
- * @brief Create an instance from a DOM element.
+ * @brief Attribute traits type.
+ */
+ typedef ::xsd::cxx::tree::traits< value_type, char > value_traits;
+
+ /**
+ * @brief Return a read-only (constant) reference to the attribute.
*
- * @param e A DOM element to extract the data from.
- * @param f Flags to create the new instance with.
- * @param c A pointer to the object that will contain the new
- * instance.
+ * @return A constant reference to the attribute.
*/
- SpikeThresh (const ::xercesc::DOMElement& e,
- ::xml_schema::flags f = 0,
- ::xml_schema::container* c = 0);
+ const value_type&
+ value () const;
/**
- * @brief Copy constructor.
+ * @brief Return a read-write reference to the attribute.
*
- * @param x An instance to make a copy of.
- * @param f Flags to create the copy with.
- * @param c A pointer to the object that will contain the copy.
+ * @return A reference to the attribute.
+ */
+ value_type&
+ value ();
+
+ /**
+ * @brief Set the attribute value.
*
- * For polymorphic object models use the @c _clone function instead.
+ * @param x A new value to set.
+ *
+ * This function makes a copy of its argument and sets it as
+ * the new value of the attribute.
*/
- SpikeThresh (const SpikeThresh& x,
- ::xml_schema::flags f = 0,
- ::xml_schema::container* c = 0);
+ void
+ value (const value_type& x);
/**
- * @brief Copy the instance polymorphically.
+ * @brief Set the attribute value without copying.
*
- * @param f Flags to create the copy with.
- * @param c A pointer to the object that will contain the copy.
- * @return A pointer to the dynamically allocated copy.
+ * @param p A new value to use.
*
- * This function ensures that the dynamic type of the instance is
- * used for copying and should be used for polymorphic object
- * models instead of the copy constructor.
+ * This function will try to use the passed value directly
+ * instead of making a copy.
*/
- virtual SpikeThresh*
- _clone (::xml_schema::flags f = 0,
- ::xml_schema::container* c = 0) const;
+ void
+ value (::std::unique_ptr< value_type > p);
//@}
/**
- * @brief Destructor.
+ * @name segmentGroup
+ *
+ * @brief Accessor and modifier functions for the %segmentGroup
+ * optional attribute with a default value.
*/
- virtual
- ~SpikeThresh ();
- };
+ //@{
- /**
- * @brief Class corresponding to the %SpecificCapacitance schema type.
- *
- * Using a thin extension of ValueAcrossSegOrSegGroup to facilitate
- * library generation (e.g. libNeuroML)
- *
- * @nosubgrouping
- */
- class SpecificCapacitance: public ::neuroml2::ValueAcrossSegOrSegGroup
- {
- public:
/**
- * @name Constructors
+ * @brief Attribute type.
*/
- //@{
+ typedef ::neuroml2::NmlId segmentGroup_type;
/**
- * @brief Create an instance from the ultimate base and
- * initializers for required elements and attributes.
+ * @brief Attribute traits type.
*/
- SpecificCapacitance ();
+ typedef ::xsd::cxx::tree::traits< segmentGroup_type, char > segmentGroup_traits;
/**
- * @brief Create an instance from a DOM element.
+ * @brief Return a read-only (constant) reference to the attribute.
*
- * @param e A DOM element to extract the data from.
- * @param f Flags to create the new instance with.
- * @param c A pointer to the object that will contain the new
- * instance.
+ * @return A constant reference to the attribute.
*/
- SpecificCapacitance (const ::xercesc::DOMElement& e,
- ::xml_schema::flags f = 0,
- ::xml_schema::container* c = 0);
+ const segmentGroup_type&
+ segmentGroup () const;
/**
- * @brief Copy constructor.
- *
- * @param x An instance to make a copy of.
- * @param f Flags to create the copy with.
- * @param c A pointer to the object that will contain the copy.
+ * @brief Return a read-write reference to the attribute.
*
- * For polymorphic object models use the @c _clone function instead.
+ * @return A reference to the attribute.
*/
- SpecificCapacitance (const SpecificCapacitance& x,
- ::xml_schema::flags f = 0,
- ::xml_schema::container* c = 0);
+ segmentGroup_type&
+ segmentGroup ();
/**
- * @brief Copy the instance polymorphically.
+ * @brief Set the attribute value.
*
- * @param f Flags to create the copy with.
- * @param c A pointer to the object that will contain the copy.
- * @return A pointer to the dynamically allocated copy.
+ * @param x A new value to set.
*
- * This function ensures that the dynamic type of the instance is
- * used for copying and should be used for polymorphic object
- * models instead of the copy constructor.
+ * This function makes a copy of its argument and sets it as
+ * the new value of the attribute.
*/
- virtual SpecificCapacitance*
- _clone (::xml_schema::flags f = 0,
- ::xml_schema::container* c = 0) const;
+ void
+ segmentGroup (const segmentGroup_type& x);
- //@}
+ /**
+ * @brief Set the attribute value without copying.
+ *
+ * @param p A new value to use.
+ *
+ * This function will try to use the passed value directly
+ * instead of making a copy.
+ */
+ void
+ segmentGroup (::std::unique_ptr< segmentGroup_type > p);
/**
- * @brief Destructor.
+ * @brief Return the default value for the attribute.
+ *
+ * @return A read-only (constant) reference to the attribute's
+ * default value.
*/
- virtual
- ~SpecificCapacitance ();
- };
+ static const segmentGroup_type&
+ segmentGroup_default_value ();
+
+ //@}
- /**
- * @brief Class corresponding to the %InitMembPotential schema type.
- *
- * Using a thin extension of ValueAcrossSegOrSegGroup to facilitate
- * library generation (e.g. libNeuroML)
- *
- * @nosubgrouping
- */
- class InitMembPotential: public ::neuroml2::ValueAcrossSegOrSegGroup
- {
- public:
/**
* @name Constructors
*/
@@ -39579,7 +40150,7 @@ namespace neuroml2
* @brief Create an instance from the ultimate base and
* initializers for required elements and attributes.
*/
- InitMembPotential ();
+ InitMembPotential (const value_type&);
/**
* @brief Create an instance from a DOM element.
@@ -39621,6 +40192,17 @@ namespace neuroml2
_clone (::xml_schema::flags f = 0,
::xml_schema::container* c = 0) const;
+ /**
+ * @brief Copy assignment operator.
+ *
+ * @param x An instance to make a copy of.
+ * @return A reference to itself.
+ *
+ * For polymorphic object models use the @c _clone function instead.
+ */
+ InitMembPotential&
+ operator= (const InitMembPotential& x);
+
//@}
/**
@@ -39628,19 +40210,167 @@ namespace neuroml2
*/
virtual
~InitMembPotential ();
+
+ // Implementation.
+ //
+
+ //@cond
+
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< value_type > value_;
+ ::xsd::cxx::tree::one< segmentGroup_type > segmentGroup_;
+ static const segmentGroup_type segmentGroup_default_value_;
+
+ //@endcond
};
+ bool
+ operator== (const InitMembPotential&, const InitMembPotential&);
+
+ bool
+ operator!= (const InitMembPotential&, const InitMembPotential&);
+
+
/**
* @brief Class corresponding to the %Resistivity schema type.
*
- * Using a thin extension of ValueAcrossSegOrSegGroup to facilitate
- * library generation (e.g. libNeuroML)
+ * The resistivity, or specific axial resistance, of the cytoplasm
+ * @param value
*
* @nosubgrouping
*/
- class Resistivity: public ::neuroml2::ValueAcrossSegOrSegGroup
{
public:
+ /**
+ * @name value
+ *
+ * @brief Accessor and modifier functions for the %value
+ * required attribute.
+ */
+ //@{
+
+ /**
+ * @brief Attribute type.
+ */
+ typedef ::neuroml2::Nml2Quantity_resistivity value_type;
+
+ /**
+ * @brief Attribute traits type.
+ */
+ typedef ::xsd::cxx::tree::traits< value_type, char > value_traits;
+
+ /**
+ * @brief Return a read-only (constant) reference to the attribute.
+ *
+ * @return A constant reference to the attribute.
+ */
+ const value_type&
+ value () const;
+
+ /**
+ * @brief Return a read-write reference to the attribute.
+ *
+ * @return A reference to the attribute.
+ */
+ value_type&
+ value ();
+
+ /**
+ * @brief Set the attribute value.
+ *
+ * @param x A new value to set.
+ *
+ * This function makes a copy of its argument and sets it as
+ * the new value of the attribute.
+ */
+ void
+ value (const value_type& x);
+
+ /**
+ * @brief Set the attribute value without copying.
+ *
+ * @param p A new value to use.
+ *
+ * This function will try to use the passed value directly
+ * instead of making a copy.
+ */
+ void
+ value (::std::unique_ptr< value_type > p);
+
+ //@}
+
+ /**
+ * @name segmentGroup
+ *
+ * @brief Accessor and modifier functions for the %segmentGroup
+ * optional attribute with a default value.
+ */
+ //@{
+
+ /**
+ * @brief Attribute type.
+ */
+ typedef ::neuroml2::NmlId segmentGroup_type;
+
+ /**
+ * @brief Attribute traits type.
+ */
+ typedef ::xsd::cxx::tree::traits< segmentGroup_type, char > segmentGroup_traits;
+
+ /**
+ * @brief Return a read-only (constant) reference to the attribute.
+ *
+ * @return A constant reference to the attribute.
+ */
+ const segmentGroup_type&
+ segmentGroup () const;
+
+ /**
+ * @brief Return a read-write reference to the attribute.
+ *
+ * @return A reference to the attribute.
+ */
+ segmentGroup_type&
+ segmentGroup ();
+
+ /**
+ * @brief Set the attribute value.
+ *
+ * @param x A new value to set.
+ *
+ * This function makes a copy of its argument and sets it as
+ * the new value of the attribute.
+ */
+ void
+ segmentGroup (const segmentGroup_type& x);
+
+ /**
+ * @brief Set the attribute value without copying.
+ *
+ * @param p A new value to use.
+ *
+ * This function will try to use the passed value directly
+ * instead of making a copy.
+ */
+ void
+ segmentGroup (::std::unique_ptr< segmentGroup_type > p);
+
+ /**
+ * @brief Return the default value for the attribute.
+ *
+ * @return A read-only (constant) reference to the attribute's
+ * default value.
+ */
+ static const segmentGroup_type&
+ segmentGroup_default_value ();
+
+ //@}
+
/**
* @name Constructors
*/
@@ -39650,7 +40380,7 @@ namespace neuroml2
* @brief Create an instance from the ultimate base and
* initializers for required elements and attributes.
*/
- Resistivity ();
+ Resistivity (const value_type&);
/**
* @brief Create an instance from a DOM element.
@@ -39692,6 +40422,17 @@ namespace neuroml2
_clone (::xml_schema::flags f = 0,
::xml_schema::container* c = 0) const;
+ /**
+ * @brief Copy assignment operator.
+ *
+ * @param x An instance to make a copy of.
+ * @return A reference to itself.
+ *
+ * For polymorphic object models use the @c _clone function instead.
+ */
+ Resistivity&
+ operator= (const Resistivity& x);
+
//@}
/**
@@ -39699,11 +40440,45 @@ namespace neuroml2
*/
virtual
~Resistivity ();
+
+ // Implementation.
+ //
+
+ //@cond
+
+ protected:
+ void
+ parse (::xsd::cxx::xml::dom::parser< char >&,
+ ::xml_schema::flags);
+
+ protected:
+ ::xsd::cxx::tree::one< value_type > value_;
+ ::xsd::cxx::tree::one< segmentGroup_type > segmentGroup_;
+ static const segmentGroup_type segmentGroup_default_value_;
+
+ //@endcond
};
+ bool
+ operator== (const Resistivity&, const Resistivity&);
+
+ bool
+ operator!= (const Resistivity&, const Resistivity&);
+
+
/**
* @brief Class corresponding to the %ChannelPopulation schema type.
*
+ * 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**
+ * @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
+ * @param erev The reversal potential of the current produced
+ *
* @nosubgrouping
*/
class ChannelPopulation: public ::neuroml2::Base
@@ -40095,17 +40870,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %ion
* required attribute.
- *
- * Specifying the ion here again is redundant, this will be set in
- * ionChannel definition. It is added here
- * TEMPORARILY since selecting all ca or na conducting channel
- * populations/densities in a cell would be difficult otherwise.
- * Also, it will make it easier to set the correct native simulator value
- * for erev (e.g. ek for ion = k in NEURON).
- * Currently a required attribute.
- * It should be removed in the longer term, due to possible
- * inconsistencies in this value and that in the ionChannel
- * element. TODO: remove.
*/
//@{
@@ -40266,6 +41030,15 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ChannelDensityNonUniform schema type.
*
+ * 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
+ * @param erev The reversal potential of the current produced
+ *
* @nosubgrouping
*/
class ChannelDensityNonUniform: public ::neuroml2::Base
@@ -40456,17 +41229,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %ion
* required attribute.
- *
- * Specifying the ion here again is redundant, this will be set in
- * ionChannel definition. It is added here
- * TEMPORARILY since selecting all ca or na conducting channel
- * populations/densities in a cell would be difficult otherwise.
- * Also, it will make it easier to set the correct native simulator value
- * for erev (e.g. ek for ion = k in NEURON).
- * Currently a required attribute.
- * It should be removed in the longer term, due to possible
- * inconsistencies in this value and that in the ionChannel
- * element. TODO: remove.
*/
//@{
@@ -40622,6 +41384,15 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ChannelDensityNonUniformNernst schema type.
*
+ * 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
+ *
* @nosubgrouping
*/
class ChannelDensityNonUniformNernst: public ::neuroml2::Base
@@ -40754,17 +41525,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %ion
* required attribute.
- *
- * Specifying the ion here again is redundant, this will be set in
- * ionChannel definition. It is added here
- * TEMPORARILY since selecting all ca or na conducting channel
- * populations/densities in a cell would be difficult otherwise.
- * Also, it will make it easier to set the correct native simulator value
- * for erev (e.g. ek for ion = k in NEURON).
- * Currently a required attribute.
- * It should be removed in the longer term, due to possible
- * inconsistencies in this value and that in the ionChannel
- * element. TODO: remove.
*/
//@{
@@ -40918,6 +41678,16 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ChannelDensityNonUniformGHK schema type.
*
+ * 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
+ *
* @nosubgrouping
*/
class ChannelDensityNonUniformGHK: public ::neuroml2::Base
@@ -41050,17 +41820,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %ion
* required attribute.
- *
- * Specifying the ion here again is redundant, this will be set in
- * ionChannel definition. It is added here
- * TEMPORARILY since selecting all ca or na conducting channel
- * populations/densities in a cell would be difficult otherwise.
- * Also, it will make it easier to set the correct native simulator value
- * for erev (e.g. ek for ion = k in NEURON).
- * Currently a required attribute.
- * It should be removed in the longer term, due to possible
- * inconsistencies in this value and that in the ionChannel
- * element. TODO: remove.
*/
//@{
@@ -41214,6 +41973,13 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ChannelDensity schema type.
*
+ * 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**
+ * @param erev The reversal potential of the current produced
+ * @param condDensity
+ *
* @nosubgrouping
*/
class ChannelDensity: public ::neuroml2::Base
@@ -41623,17 +42389,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %ion
* required attribute.
- *
- * Specifying the ion here again is redundant, this will be set in
- * ionChannel definition. It is added here
- * TEMPORARILY since selecting all ca or na conducting channel
- * populations/densities in a cell would be difficult otherwise.
- * Also, it will make it easier to set the correct native simulator value
- * for erev (e.g. ek for ion = k in NEURON).
- * Currently a required attribute.
- * It should be removed in the longer term, due to possible
- * inconsistencies in this value and that in the ionChannel
- * element. TODO: remove.
*/
//@{
@@ -41793,6 +42548,13 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ChannelDensityVShift schema type.
*
+ * 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.
+ * @param vShift
+ * @param erev The reversal potential of the current produced
+ * @param condDensity
+ *
* @nosubgrouping
*/
class ChannelDensityVShift: public ::neuroml2::ChannelDensity
@@ -41956,6 +42718,13 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ChannelDensityNernst schema type.
*
+ * 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.
+ * @param condDensity
+ *
* @nosubgrouping
*/
class ChannelDensityNernst: public ::neuroml2::Base
@@ -42307,17 +43076,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %ion
* required attribute.
- *
- * Specifying the ion here again is redundant, this will be set in
- * ionChannel definition. It is added here
- * TEMPORARILY since selecting all ca or na conducting channel
- * populations/densities in a cell would be difficult otherwise.
- * Also, it will make it easier to set the correct native simulator value
- * for erev (e.g. ek for ion = k in NEURON).
- * Currently a required attribute.
- * It should be removed in the longer term, due to possible
- * inconsistencies in this value and that in the ionChannel
- * element. TODO: remove.
*/
//@{
@@ -42475,6 +43233,12 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ChannelDensityNernstCa2 schema type.
*
+ * 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.
+ * @param condDensity
+ *
* @nosubgrouping
*/
class ChannelDensityNernstCa2: public ::neuroml2::ChannelDensityNernst
@@ -42545,6 +43309,13 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ChannelDensityGHK schema type.
*
+ * 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.
+ * @param permeability
+ *
* @nosubgrouping
*/
class ChannelDensityGHK: public ::neuroml2::Base
@@ -42814,17 +43585,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %ion
* required attribute.
- *
- * Specifying the ion here again is redundant, this will be set in
- * ionChannel definition. It is added here
- * TEMPORARILY since selecting all ca or na conducting channel
- * populations/densities in a cell would be difficult otherwise.
- * Also, it will make it easier to set the correct native simulator value
- * for erev (e.g. ek for ion = k in NEURON).
- * Currently a required attribute.
- * It should be removed in the longer term, due to possible
- * inconsistencies in this value and that in the ionChannel
- * element. TODO: remove.
*/
//@{
@@ -42982,6 +43742,12 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ChannelDensityGHK2 schema type.
*
+ * 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.
+ * @param condDensity
+ *
* @nosubgrouping
*/
class ChannelDensityGHK2: public ::neuroml2::Base
@@ -43269,17 +44035,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %ion
* required attribute.
- *
- * Specifying the ion here again is redundant, this will be set in
- * ionChannel definition. It is added here
- * TEMPORARILY since selecting all ca or na conducting channel
- * populations/densities in a cell would be difficult otherwise.
- * Also, it will make it easier to set the correct native simulator value
- * for erev (e.g. ek for ion = k in NEURON).
- * Currently a required attribute.
- * It should be removed in the longer term, due to possible
- * inconsistencies in this value and that in the ionChannel
- * element. TODO: remove.
*/
//@{
@@ -43436,9 +44191,23 @@ namespace neuroml2
/**
* @brief Class corresponding to the %VariableParameter schema type.
*
+ * 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 ) )
+ *
* @nosubgrouping
*/
- class VariableParameter: public ::xml_schema::type
{
public:
/**
@@ -43732,9 +44501,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %InhomogeneousValue schema type.
*
+ * Specifies the **value** of an **inhomogeneousParameter.** For usage
+ * see **variableParameter**
+ *
* @nosubgrouping
*/
- class InhomogeneousValue: public ::xml_schema::type
{
public:
/**
@@ -43951,9 +44722,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Species schema type.
*
+ * Description of a chemical species identified by **ion,** which has
+ * internal, **concentration,** and external, **extConcentration**
+ * values for its concentration
+ * @param initialConcentration
+ * @param initialExtConcentration
+ *
* @nosubgrouping
*/
- class Species: public ::neuroml2::ValueAcrossSegOrSegGroup
{
public:
/**
@@ -44077,10 +44853,6 @@ namespace neuroml2
*
* @brief Accessor and modifier functions for the %ion
* optional attribute.
- *
- * Specifying the ion here again is redundant, the ion name should be the
- * same as id. Kept for now
- * until LEMS implementation can select by id. TODO: remove.
*/
//@{
@@ -44268,6 +45040,73 @@ namespace neuroml2
//@}
+ /**
+ * @name segmentGroup
+ *
+ * @brief Accessor and modifier functions for the %segmentGroup
+ * optional attribute with a default value.
+ */
+ //@{
+
+ /**
+ * @brief Attribute type.
+ */
+ typedef ::neuroml2::NmlId segmentGroup_type;
+
+ /**
+ * @brief Attribute traits type.
+ */
+ typedef ::xsd::cxx::tree::traits< segmentGroup_type, char > segmentGroup_traits;
+
+ /**
+ * @brief Return a read-only (constant) reference to the attribute.
+ *
+ * @return A constant reference to the attribute.
+ */
+ const segmentGroup_type&
+ segmentGroup () const;
+
+ /**
+ * @brief Return a read-write reference to the attribute.
+ *
+ * @return A reference to the attribute.
+ */
+ segmentGroup_type&
+ segmentGroup ();
+
+ /**
+ * @brief Set the attribute value.
+ *
+ * @param x A new value to set.
+ *
+ * This function makes a copy of its argument and sets it as
+ * the new value of the attribute.
+ */
+ void
+ segmentGroup (const segmentGroup_type& x);
+
+ /**
+ * @brief Set the attribute value without copying.
+ *
+ * @param p A new value to use.
+ *
+ * This function will try to use the passed value directly
+ * instead of making a copy.
+ */
+ void
+ segmentGroup (::std::unique_ptr< segmentGroup_type > p);
+
+ /**
+ * @brief Return the default value for the attribute.
+ *
+ * @return A read-only (constant) reference to the attribute's
+ * default value.
+ */
+ static const segmentGroup_type&
+ segmentGroup_default_value ();
+
+ //@}
+
/**
* @name Constructors
*/
@@ -44357,6 +45196,8 @@ namespace neuroml2
ion_optional ion_;
::xsd::cxx::tree::one< initialConcentration_type > initialConcentration_;
::xsd::cxx::tree::one< initialExtConcentration_type > initialExtConcentration_;
+ ::xsd::cxx::tree::one< segmentGroup_type > segmentGroup_;
+ static const segmentGroup_type segmentGroup_default_value_;
//@endcond
};
@@ -44514,9 +45355,15 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IntracellularProperties schema type.
*
+ * 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
+ *
* @nosubgrouping
*/
- class IntracellularProperties: public ::xml_schema::type
{
public:
/**
@@ -44744,6 +45591,8 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IntracellularProperties2CaPools schema type.
*
+ * Variant of intracellularProperties with 2 independent Ca pools
+ *
* @nosubgrouping
*/
class IntracellularProperties2CaPools: public ::neuroml2::IntracellularProperties
@@ -44979,7 +45828,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class ExtracellularPropertiesLocal: public ::xml_schema::type
{
public:
/**
@@ -45362,8 +46210,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %PulseGenerator schema type.
*
- * Generates a constant current pulse of a certain amplitude (with
- * dimensions for current) for a specified duration after a delay.
+ * Generates a constant current pulse of a certain **amplitude** for a
+ * specified **duration** after a **delay.** Scaled by **weight,** if
+ * set
+ * @param delay Delay before change in current. Current is zero prior to
+ * this.
+ * @param duration Duration for holding current at amplitude. Current is
+ * zero after delay + duration.
+ * @param amplitude Amplitude of current pulse
*
* @nosubgrouping
*/
@@ -45645,8 +46499,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %PulseGeneratorDL schema type.
*
- * Generates a constant current pulse of a certain amplitude (non
- * dimensional) for a specified duration after a delay.
+ * 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
+ * @param delay Delay before change in current. Current is zero prior to
+ * this.
+ * @param duration Duration for holding current at amplitude. Current is
+ * zero after delay + duration.
+ * @param amplitude Amplitude of current pulse
*
* @nosubgrouping
*/
@@ -45928,6 +46788,19 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SineGenerator schema type.
*
+ * 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
+ * @param phase Phase ( between 0 and 2*pi ) at which to start the
+ * varying current ( i. e. at time given by delay )
+ * @param delay Delay before change in current. Current is zero prior to
+ * this.
+ * @param duration Duration for holding current at amplitude. Current is
+ * zero after delay + duration.
+ * @param amplitude Maximum amplitude of current
+ * @param period Time period of oscillation
+ *
* @nosubgrouping
*/
class SineGenerator: public ::neuroml2::Standalone
@@ -46328,6 +47201,20 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SineGeneratorDL schema type.
*
+ * 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
+ * @param phase Phase ( between 0 and 2*pi ) at which to start the
+ * varying current ( i. e. at time given by delay )
+ * @param delay Delay before change in current. Current is zero prior to
+ * this.
+ * @param duration Duration for holding current at amplitude. Current is
+ * zero after delay + duration.
+ * @param amplitude Maximum amplitude of current
+ * @param period Time period of oscillation
+ *
* @nosubgrouping
*/
class SineGeneratorDL: public ::neuroml2::Standalone
@@ -46728,6 +47615,21 @@ namespace neuroml2
/**
* @brief Class corresponding to the %RampGenerator schema type.
*
+ * 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
+ * @param delay Delay before change in current. Current is
+ * baselineAmplitude prior to this.
+ * @param duration Duration for holding current at amplitude. Current is
+ * baselineAmplitude after delay + duration.
+ * @param startAmplitude Amplitude of linearly varying current at time
+ * delay
+ * @param finishAmplitude Amplitude of linearly varying current at time
+ * delay + duration
+ * @param baselineAmplitude Amplitude of current before time delay, and
+ * after time delay + duration
+ *
* @nosubgrouping
*/
class RampGenerator: public ::neuroml2::Standalone
@@ -47128,6 +48030,22 @@ namespace neuroml2
/**
* @brief Class corresponding to the %RampGeneratorDL schema type.
*
+ * 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
+ * @param delay Delay before change in current. Current is
+ * baselineAmplitude prior to this.
+ * @param duration Duration for holding current at amplitude. Current is
+ * baselineAmplitude after delay + duration.
+ * @param startAmplitude Amplitude of linearly varying current at time
+ * delay
+ * @param finishAmplitude Amplitude of linearly varying current at time
+ * delay + duration
+ * @param baselineAmplitude Amplitude of current before time delay, and
+ * after time delay + duration
+ *
* @nosubgrouping
*/
class RampGeneratorDL: public ::neuroml2::Standalone
@@ -47528,6 +48446,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %CompoundInput schema type.
*
+ * 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
+ *
* @nosubgrouping
*/
class CompoundInput: public ::neuroml2::Standalone
@@ -47823,6 +48746,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %CompoundInputDL schema type.
*
+ * 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
+ *
* @nosubgrouping
*/
class CompoundInputDL: public ::neuroml2::Standalone
@@ -48118,6 +49046,19 @@ namespace neuroml2
/**
* @brief Class corresponding to the %VoltageClamp schema type.
*
+ * Voltage clamp. Applies a variable current **i** to try to keep parent
+ * at **targetVoltage.** Not yet fully tested!!! Consider using
+ * voltageClampTriple!!
+ * @param delay Delay before change in current. Current is zero prior to
+ * this.
+ * @param duration Duration for attempting to keep parent at
+ * targetVoltage. Current is zero after delay + duration.
+ * @param targetVoltage Current will be applied to try to get parent to
+ * this target voltage
+ * @param simpleSeriesResistance Current will be calculated by the
+ * difference in voltage between the target and parent, divided by this
+ * value
+ *
* @nosubgrouping
*/
class VoltageClamp: public ::neuroml2::Standalone
@@ -48458,6 +49399,24 @@ namespace neuroml2
/**
* @brief Class corresponding to the %VoltageClampTriple schema type.
*
+ * 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.
+ * @param active Whether the voltage clamp is active ( 1 ) or inactive (
+ * 0 ).
+ * @param delay Delay before switching from conditioningVoltage to
+ * testingVoltage.
+ * @param duration Duration to hold at testingVoltage.
+ * @param conditioningVoltage Target voltage before time delay
+ * @param testingVoltage Target voltage between times delay and delay +
+ * duration
+ * @param returnVoltage Target voltage after time duration
+ * @param simpleSeriesResistance Current will be calculated by the
+ * difference in voltage between the target and parent, divided by this
+ * value
+ *
* @nosubgrouping
*/
class VoltageClampTriple: public ::neuroml2::Standalone
@@ -48978,6 +49937,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Spike schema type.
*
+ * Emits a single spike at the specified **time**
+ * @param time Time at which to emit one spike event
+ *
* @nosubgrouping
*/
class Spike: public ::neuroml2::BaseNonNegativeIntegerId
@@ -49138,6 +50100,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SpikeArray schema type.
*
+ * Set of spike ComponentTypes, each emitting one spike at a certain
+ * time. Can be used to feed a predetermined spike train into a cell
+ *
* @nosubgrouping
*/
class SpikeArray: public ::neuroml2::Standalone
@@ -49303,6 +50268,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %TimedSynapticInput schema type.
*
+ * Spike array connected to a single **synapse,** producing a current
+ * triggered by each **spike** in the array.
+ *
* @nosubgrouping
*/
class TimedSynapticInput: public ::neuroml2::Standalone
@@ -49588,6 +50556,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SpikeGenerator schema type.
*
+ * Simple generator of spikes at a regular interval set by **period**
+ * @param period Time between spikes. The first spike will be emitted
+ * after this time.
+ *
* @nosubgrouping
*/
class SpikeGenerator: public ::neuroml2::Standalone
@@ -49748,6 +50720,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SpikeGeneratorRandom schema type.
*
+ * Generator of spikes with a random interspike interval of at least
+ * **minISI** and at most **maxISI**
+ * @param maxISI Maximum interspike interval
+ * @param minISI Minimum interspike interval
+ *
* @nosubgrouping
*/
class SpikeGeneratorRandom: public ::neuroml2::Standalone
@@ -49968,6 +50945,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SpikeGeneratorPoisson schema type.
*
+ * Generator of spikes whose ISI is distributed according to an
+ * exponential PDF with scale: 1 / **averageRate**
+ * @param averageRate The average rate at which spikes are emitted
+ *
* @nosubgrouping
*/
class SpikeGeneratorPoisson: public ::neuroml2::Standalone
@@ -50128,6 +51109,12 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SpikeGeneratorRefPoisson schema type.
*
+ * Generator of spikes whose ISI distribution is the maximum entropy
+ * distribution over [ **minimumISI,** +infinity ) with mean: 1 /
+ * **averageRate**
+ * @param minimumISI The minimum interspike interval
+ * @param averageRate The average rate at which spikes are emitted
+ *
* @nosubgrouping
*/
class SpikeGeneratorRefPoisson: public ::neuroml2::SpikeGeneratorPoisson
@@ -50289,6 +51276,12 @@ namespace neuroml2
/**
* @brief Class corresponding to the %PoissonFiringSynapse schema type.
*
+ * 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** .
+ * @param averageRate The average rate at which spikes are emitted
+ *
* @nosubgrouping
*/
class PoissonFiringSynapse: public ::neuroml2::Standalone
@@ -50569,6 +51562,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %TransientPoissonFiringSynapse schema type.
*
+ * 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** .
+ * @param averageRate
+ * @param delay
+ * @param duration
+ *
* @nosubgrouping
*/
class TransientPoissonFiringSynapse: public ::neuroml2::Standalone
@@ -50969,6 +51970,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Network schema type.
*
+ * 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 ).
+ *
* @nosubgrouping
*/
class Network: public ::neuroml2::Standalone
@@ -52339,7 +53348,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class SpaceStructure: public ::xml_schema::type
{
public:
/**
@@ -52952,6 +53960,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Region schema type.
*
+ * Initial attempt to specify 3D region for placing cells. Work in
+ * progress. . .
+ *
* @nosubgrouping
*/
class Region: public ::neuroml2::Base
@@ -53129,6 +54140,15 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Population schema type.
*
+ * 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.
+ * @param size Number of instances of this Component to create when the
+ * population is instantiated
+ *
* @nosubgrouping
*/
class Population: public ::neuroml2::Standalone
@@ -53809,7 +54829,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class Layout: public ::xml_schema::type
{
public:
/**
@@ -54217,7 +55236,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class UnstructuredLayout: public ::xml_schema::type
{
public:
/**
@@ -54383,7 +55401,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class RandomLayout: public ::xml_schema::type
{
public:
/**
@@ -54626,7 +55643,6 @@ namespace neuroml2
*
* @nosubgrouping
*/
- class GridLayout: public ::xml_schema::type
{
public:
/**
@@ -54922,9 +55938,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Instance schema type.
*
+ * Specifies a single instance of a component in a **population** (
+ * placed at **location** ).
+ *
* @nosubgrouping
*/
- class Instance: public ::xml_schema::type
{
public:
/**
@@ -55355,9 +56373,14 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Location schema type.
*
+ * Specifies the ( x, y, z ) location of a single **instance** of a
+ * component in a **population**
+ * @param x
+ * @param y
+ * @param z
+ *
* @nosubgrouping
*/
- class Location: public ::xml_schema::type
{
public:
/**
@@ -55761,13 +56784,12 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SynapticConnection schema type.
*
- * Single explicit connection. Introduced to test connections in LEMS.
- * Will probably be removed in favour of
- * connections wrapped in projection element
+ * Explicit event connection between named components, which gets
+ * processed via a new instance of a **synapse** component which is
+ * created on the target component
*
* @nosubgrouping
*/
- class SynapticConnection: public ::xml_schema::type
{
public:
/**
@@ -56344,8 +57366,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Projection schema type.
*
- * Projection (set of synaptic connections) between two populations.
- * Chemical/event based synaptic transmission
+ * Projection from one population, **presynapticPopulation** to another,
+ * **postsynapticPopulation,** through **synapse.** Contains lists of
+ * **connection** or **connectionWD** elements.
*
* @nosubgrouping
*/
@@ -56710,7 +57733,7 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BaseConnectionOldFormat schema type.
*
- * Base of all synaptic connections with preCellId, postSegmentId, etc.
+ * 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
*
@@ -57202,7 +58225,7 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BaseConnectionNewFormat schema type.
*
- * Base of all synaptic connections with preCell, postSegment, etc.
+ * Base of all synaptic connections with preCell, postSegment, etc.
* See BaseConnectionOldFormat
*
* @nosubgrouping
@@ -57693,8 +58716,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Connection schema type.
*
- * Individual chemical (event based) synaptic connection, weight==1 and
- * no delay
+ * 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.
*
* @nosubgrouping
*/
@@ -57766,7 +58791,12 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ConnectionWD schema type.
*
- * Individual synaptic connection with weight and delay
+ * 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
+ * @param weight
+ * @param delay
*
* @nosubgrouping
*/
@@ -57979,8 +59009,8 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ElectricalProjection schema type.
*
- * Projection between two populations consisting of electrical
- * connections (gap junctions)
+ * A projection between **presynapticPopulation** to another
+ * **postsynapticPopulation** through gap junctions.
*
* @nosubgrouping
*/
@@ -58279,7 +59309,7 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ElectricalConnection schema type.
*
- * Individual electrical synaptic connection
+ * To enable connections between populations through gap junctions.
*
* @nosubgrouping
*/
@@ -58443,8 +59473,9 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ElectricalConnectionInstance schema type.
*
- * Projection between two populations consisting of analog connections
- * (e.g. graded synapses)
+ * To enable connections between populations through gap junctions.
+ * Populations need to be of type **populationList** and contain
+ * **instance** and **location** elements.
*
* @nosubgrouping
*/
@@ -58517,8 +59548,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ElectricalConnectionInstanceW schema type.
*
- * Projection between two populations consisting of analog connections
- * (e.g. graded synapses). Includes setting of weight for the connection
+ * 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
+ * @param weight
*
* @nosubgrouping
*/
@@ -58672,8 +59706,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ContinuousProjection schema type.
*
- * Projection between two populations consisting of analog connections
- * (e.g. graded synapses)
+ * 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.
*
* @nosubgrouping
*/
@@ -58972,7 +60009,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ContinuousConnection schema type.
*
- * Individual continuous/analog synaptic connection
+ * 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.
*
* @nosubgrouping
*/
@@ -59196,7 +60236,12 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ContinuousConnectionInstance schema type.
*
- * Individual continuous/analog synaptic connection - instance based
+ * 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.
*
* @nosubgrouping
*/
@@ -59270,8 +60315,13 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ContinuousConnectionInstanceW schema type.
*
- * Individual continuous/analog synaptic connection - instance based.
- * Includes setting of _weight for the connection
+ * 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
+ * @param weight
*
* @nosubgrouping
*/
@@ -59426,13 +60476,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ExplicitInput schema type.
*
- * Single explicit input. Introduced to test inputs in LEMS. Will
- * probably be removed in favour of
- * inputs wrapped in inputList element
+ * An explicit input ( anything which extends **basePointCurrent** ) to
+ * a target cell in a population
*
* @nosubgrouping
*/
- class ExplicitInput: public ::xml_schema::type
{
public:
/**
@@ -59726,8 +60774,7 @@ namespace neuroml2
/**
* @brief Class corresponding to the %InputList schema type.
*
- * List of inputs to a population. Currents will be provided by the
- * specified component.
+ * An explicit list of **input** s to a **population.**
*
* @nosubgrouping
*/
@@ -60079,11 +61126,12 @@ namespace neuroml2
/**
* @brief Class corresponding to the %Input schema type.
*
- * Individual input to the cell specified by target
+ * Specifies a single input to a **target,** optionally giving the
+ * **segmentId** ( default 0 ) and **fractionAlong** the segment (
+ * default 0. 5 ).
*
* @nosubgrouping
*/
- class Input: public ::xml_schema::type
{
public:
/**
@@ -60514,8 +61562,8 @@ namespace neuroml2
/**
* @brief Class corresponding to the %InputW schema type.
*
- * Individual input to the cell specified by target. Includes setting of
- * _weight for the connection
+ * Specifies input lists. Can set **weight** to scale individual inputs.
+ * @param weight
*
* @nosubgrouping
*/
@@ -60668,6 +61716,21 @@ namespace neuroml2
/**
* @brief Class corresponding to the %basePyNNCell schema type.
*
+ * 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
+ * @param cm
+ * @param i_offset
+ * @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
+ * @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
+ * @param v_init
+ *
* @nosubgrouping
*/
class basePyNNCell: public ::neuroml2::BaseCell
@@ -61013,6 +62076,22 @@ namespace neuroml2
/**
* @brief Class corresponding to the %basePyNNIaFCell schema type.
*
+ * Base type of any PyNN standard integrate and fire model
+ * @param tau_refrac
+ * @param v_thresh
+ * @param tau_m
+ * @param v_rest
+ * @param v_reset
+ * @param cm
+ * @param i_offset
+ * @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
+ * @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
+ * @param v_init
+ *
* @nosubgrouping
*/
class basePyNNIaFCell: public ::neuroml2::basePyNNCell
@@ -61363,6 +62442,28 @@ namespace neuroml2
/**
* @brief Class corresponding to the %basePyNNIaFCondCell schema type.
*
+ * Base type of conductance based PyNN IaF cell models
+ * @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
+ * @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
+ * @param tau_refrac
+ * @param v_thresh
+ * @param tau_m
+ * @param v_rest
+ * @param v_reset
+ * @param cm
+ * @param i_offset
+ * @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
+ * @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
+ * @param v_init
+ *
* @nosubgrouping
*/
class basePyNNIaFCondCell: public ::neuroml2::basePyNNIaFCell
@@ -61571,6 +62672,23 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IF_curr_alpha schema type.
*
+ * Leaky integrate and fire model with fixed threshold and
+ * alpha-function-shaped post-synaptic current
+ * @param tau_refrac
+ * @param v_thresh
+ * @param tau_m
+ * @param v_rest
+ * @param v_reset
+ * @param cm
+ * @param i_offset
+ * @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
+ * @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
+ * @param v_init
+ *
* @nosubgrouping
*/
class IF_curr_alpha: public ::neuroml2::basePyNNIaFCell
@@ -61649,6 +62767,23 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IF_curr_exp schema type.
*
+ * Leaky integrate and fire model with fixed threshold and
+ * decaying-exponential post-synaptic current
+ * @param tau_refrac
+ * @param v_thresh
+ * @param tau_m
+ * @param v_rest
+ * @param v_reset
+ * @param cm
+ * @param i_offset
+ * @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
+ * @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
+ * @param v_init
+ *
* @nosubgrouping
*/
class IF_curr_exp: public ::neuroml2::basePyNNIaFCell
@@ -61727,6 +62862,29 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IF_cond_alpha schema type.
*
+ * Leaky integrate and fire model with fixed threshold and
+ * alpha-function-shaped post-synaptic conductance
+ * @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
+ * @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
+ * @param tau_refrac
+ * @param v_thresh
+ * @param tau_m
+ * @param v_rest
+ * @param v_reset
+ * @param cm
+ * @param i_offset
+ * @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
+ * @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
+ * @param v_init
+ *
* @nosubgrouping
*/
class IF_cond_alpha: public ::neuroml2::basePyNNIaFCondCell
@@ -61807,6 +62965,29 @@ namespace neuroml2
/**
* @brief Class corresponding to the %IF_cond_exp schema type.
*
+ * Leaky integrate and fire model with fixed threshold and
+ * exponentially-decaying post-synaptic conductance
+ * @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
+ * @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
+ * @param tau_refrac
+ * @param v_thresh
+ * @param tau_m
+ * @param v_rest
+ * @param v_reset
+ * @param cm
+ * @param i_offset
+ * @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
+ * @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
+ * @param v_init
+ *
* @nosubgrouping
*/
class IF_cond_exp: public ::neuroml2::basePyNNIaFCondCell
@@ -61887,6 +63068,35 @@ namespace neuroml2
/**
* @brief Class corresponding to the %EIF_cond_exp_isfa_ista schema type.
*
+ * Adaptive exponential integrate and fire neuron according to Brette R
+ * and Gerstner W ( 2005 ) with exponentially-decaying post-synaptic
+ * conductance
+ * @param v_spike
+ * @param delta_T
+ * @param tau_w
+ * @param a
+ * @param b
+ * @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
+ * @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
+ * @param tau_refrac
+ * @param v_thresh
+ * @param tau_m
+ * @param v_rest
+ * @param v_reset
+ * @param cm
+ * @param i_offset
+ * @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
+ * @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
+ * @param v_init
+ *
* @nosubgrouping
*/
class EIF_cond_exp_isfa_ista: public ::neuroml2::basePyNNIaFCondCell
@@ -62244,6 +63454,35 @@ namespace neuroml2
/**
* @brief Class corresponding to the %EIF_cond_alpha_isfa_ista schema type.
*
+ * Adaptive exponential integrate and fire neuron according to Brette R
+ * and Gerstner W ( 2005 ) with alpha-function-shaped post-synaptic
+ * conductance
+ * @param v_spike
+ * @param delta_T
+ * @param tau_w
+ * @param a
+ * @param b
+ * @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
+ * @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
+ * @param tau_refrac
+ * @param v_thresh
+ * @param tau_m
+ * @param v_rest
+ * @param v_reset
+ * @param cm
+ * @param i_offset
+ * @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
+ * @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
+ * @param v_init
+ *
* @nosubgrouping
*/
class EIF_cond_alpha_isfa_ista: public ::neuroml2::EIF_cond_exp_isfa_ista
@@ -62329,6 +63568,28 @@ namespace neuroml2
/**
* @brief Class corresponding to the %HH_cond_exp schema type.
*
+ * Single-compartment Hodgkin-Huxley-type neuron with transient sodium
+ * and delayed-rectifier potassium currents using the ion channel models
+ * from Traub.
+ * @param gbar_K
+ * @param gbar_Na
+ * @param g_leak
+ * @param e_rev_K
+ * @param e_rev_Na
+ * @param e_rev_leak
+ * @param v_offset
+ * @param e_rev_E
+ * @param e_rev_I
+ * @param cm
+ * @param i_offset
+ * @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
+ * @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
+ * @param v_init
+ *
* @nosubgrouping
*/
class HH_cond_exp: public ::neuroml2::basePyNNCell
@@ -62875,6 +64136,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %BasePynnSynapse schema type.
*
+ * Base type for all PyNN synapses. Note, the current **I** produced is
+ * dimensionless, but it requires a membrane potential **v** with
+ * dimension voltage
+ * @param tau_syn
+ *
* @nosubgrouping
*/
class BasePynnSynapse: public ::neuroml2::BaseSynapse
@@ -63024,6 +64290,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ExpCondSynapse schema type.
*
+ * Conductance based synapse with instantaneous rise and single
+ * exponential decay ( with time constant tau_syn )
+ * @param e_rev
+ * @param tau_syn
+ *
* @nosubgrouping
*/
class ExpCondSynapse: public ::neuroml2::BasePynnSynapse
@@ -63174,6 +64445,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %AlphaCondSynapse schema type.
*
+ * Alpha synapse: rise time and decay time are both tau_syn. Conductance
+ * based synapse.
+ * @param e_rev
+ * @param tau_syn
+ *
* @nosubgrouping
*/
class AlphaCondSynapse: public ::neuroml2::BasePynnSynapse
@@ -63324,6 +64600,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %ExpCurrSynapse schema type.
*
+ * Current based synapse with instantaneous rise and single exponential
+ * decay ( with time constant tau_syn )
+ * @param tau_syn
+ *
* @nosubgrouping
*/
class ExpCurrSynapse: public ::neuroml2::BasePynnSynapse
@@ -63393,6 +64673,10 @@ namespace neuroml2
/**
* @brief Class corresponding to the %AlphaCurrSynapse schema type.
*
+ * Alpha synapse: rise time and decay time are both tau_syn. Current
+ * based synapse.
+ * @param tau_syn
+ *
* @nosubgrouping
*/
class AlphaCurrSynapse: public ::neuroml2::BasePynnSynapse
@@ -63462,6 +64746,11 @@ namespace neuroml2
/**
* @brief Class corresponding to the %SpikeSourcePoisson schema type.
*
+ * Spike source, generating spikes according to a Poisson process.
+ * @param start
+ * @param duration
+ * @param rate
+ *
* @nosubgrouping
*/
class SpikeSourcePoisson: public ::neuroml2::Standalone
@@ -63761,6 +65050,9 @@ namespace neuroml2
::std::ostream&
operator<< (::std::ostream&, const Nml2Quantity_resistance&);
+ ::std::ostream&
+ operator<< (::std::ostream&, const Nml2Quantity_resistivity&);
+
::std::ostream&
operator<< (::std::ostream&, const Nml2Quantity_conductance&);
@@ -64151,9 +65443,6 @@ namespace neuroml2
::std::ostream&
operator<< (::std::ostream&, const MembraneProperties2CaPools&);
- ::std::ostream&
- operator<< (::std::ostream&, const ValueAcrossSegOrSegGroup&);
-
::std::ostream&
operator<< (::std::ostream&, const SpikeThresh&);
@@ -64777,6 +66066,16 @@ namespace neuroml2
operator<< (::xml_schema::list_stream&,
const Nml2Quantity_resistance&);
+ void
+ operator<< (::xercesc::DOMElement&, const Nml2Quantity_resistivity&);
+
+ void
+ operator<< (::xercesc::DOMAttr&, const Nml2Quantity_resistivity&);
+
+ void
+ operator<< (::xml_schema::list_stream&,
+ const Nml2Quantity_resistivity&);
+
void
operator<< (::xercesc::DOMElement&, const Nml2Quantity_conductance&);
@@ -65495,9 +66794,6 @@ namespace neuroml2
void
operator<< (::xercesc::DOMElement&, const MembraneProperties2CaPools&);
- void
- operator<< (::xercesc::DOMElement&, const ValueAcrossSegOrSegGroup&);
-
void
operator<< (::xercesc::DOMElement&, const SpikeThresh&);
@@ -65808,4 +67104,4 @@ namespace neuroml2
//
// End epilogue.
-#endif // NEUROML_API_SCHEMA_NEURO_ML_V2_1_HXX
+#endif // NEUROML_API_SCHEMA_NEURO_ML_V2_2_HXX
diff --git a/src/schema/NeuroML_v2.2.xsd b/src/schema/NeuroML_v2.2.xsd
new file mode 100644
index 0000000..a5a5461
--- /dev/null
+++ b/src/schema/NeuroML_v2.2.xsd
@@ -0,0 +1,3666 @@
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+ 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 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:
+:type v0: voltage
+:param k:
+:type k: conductance_per_voltage
+:param vr:
+:type vr: voltage
+:param vt:
+:type vt: voltage
+:param vpeak:
+:type vpeak: voltage
+:param a:
+:type a: per_time
+:param b:
+:type b: conductance
+:param c:
+:type c: voltage
+:param d:
+: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:
+:type gL: conductance
+:param EL:
+:type EL: voltage
+:param VT:
+:type VT: voltage
+:param thresh:
+:type thresh: voltage
+:param reset:
+:type reset: voltage
+:param delT:
+:type delT: voltage
+:param tauw:
+:type tauw: time
+:param refract:
+:type refract: time
+:param a:
+:type a: conductance
+:param b:
+: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 and Rinzel 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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/update.sh b/update.sh
new file mode 100755
index 0000000..9906fcb
--- /dev/null
+++ b/update.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# Copyright 2023 NeuroML contributors
+# Author: NeuroML contributors
+# File : update.sh
+#
+# Script to regenerate and update the API for a new version of the NeuroML schema
+#
+NEUROML_VERSION="2.2"
+
+echo "Please ensure that you have ctest and xsd installed. See readme for details."
+
+rm -rf build && \
+ mkdir build && \
+ pushd build && \
+ cmake -DREGENERATE_BINDINGS=ON ../ && \
+ make && \
+ pushd src && sed -i -e 's/:param \(.*\):/@param \1/' -e '/:type/ d' -e '/\\n/ d' NeuroML_v${NEUROML_VERSION}.hxx && popd && \
+ make doc && make copy_wrappers &&
+ make test && popd && \
+ echo "All done"