diff --git a/neuroml/__init__.py b/neuroml/__init__.py index 9ca5a604..b96d5544 100644 --- a/neuroml/__init__.py +++ b/neuroml/__init__.py @@ -1,7 +1,7 @@ from .nml.nml import * # allows importation of all neuroml classes -__version__ = '0.2.47' +__version__ = '0.2.50' __version_info__ = tuple(int(i) for i in __version__.split('.')) -current_neuroml_version = "v2beta5" +current_neuroml_version = "v2.0" diff --git a/neuroml/examples/test_files/complete.nml b/neuroml/examples/test_files/complete.nml index 6ebe5368..67f1cd60 100644 --- a/neuroml/examples/test_files/complete.nml +++ b/neuroml/examples/test_files/complete.nml @@ -1,4 +1,4 @@ - + Lots of notes.... diff --git a/neuroml/examples/test_files/complete.nml.h5 b/neuroml/examples/test_files/complete.nml.h5 index dbe6ea1e..d598d6be 100644 Binary files a/neuroml/examples/test_files/complete.nml.h5 and b/neuroml/examples/test_files/complete.nml.h5 differ diff --git a/neuroml/examples/test_files/testh5.nml b/neuroml/examples/test_files/testh5.nml index 68eb20eb..fad4035f 100644 --- a/neuroml/examples/test_files/testh5.nml +++ b/neuroml/examples/test_files/testh5.nml @@ -1,4 +1,4 @@ - + Root notes diff --git a/neuroml/nml/NeuroML_v2.0.xsd b/neuroml/nml/NeuroML_v2.0.xsd new file mode 100644 index 00000000..32352f7c --- /dev/null +++ b/neuroml/nml/NeuroML_v2.0.xsd @@ -0,0 +1,3256 @@ + + + + + + + + + + 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. + + + + + + + + + + + + + + + + + +