List of requirements/suggestions for NeuroML Version 2.0
Note: Version 2 of the NeuroML specifications will have generally the same structure as v1.x, but will hopefully clear up some of the inconsistencies between the different levels and incorporate new features not easily added to the current standards.
Some pre version 2.0 NeuroML files will become invalid due to the changes, so the move to v2.0 is a good point to introduce a number of such changes. XSL files to convert v1.x to v2.0 should be created...
Some of these changes can be introduced pre v2.0, as optional alternatives, the examples updated, and then the older form can be disallowed with v2.0
If you have any feedback/suggestions, please get in touch via the neuroml-technology mailing list
| General | |
|
More consistent choice of attributes (<aa bb="XXX"/>) or text elements (<aa> <bb>XXX</bb></aa>) for data: - Attributes should be used by default, unless the extra information about the element has multi parts, in which case a sub element (mainly with attributes) should be used - Text elements should be used when the contents are expected to be a long string, e.g. comment, url, paper title, et. | Generally incorporated |
|
More consistent naming of elements. As underscores are used in NetworkML and ChannelML (synapse_props, current_voltage_relation, etc.) this form should be used in MorphML etc. too. | Generally incorporated |
|
Change namespace identifiers to http://neuroml.org/metadata from http://morphml.org/metadata/schema, etc. | Wait until v2.0, as all existing files will be invalidated |
| Metadata | |
|
Make meta:property tag/value pair attributes: <meta:property tag="???" value="???"/> | Updated** E H |
| MorphML | |
|
Restrict the number of possibilities for specifying parent of segment/cable, etc. to a standardised form. Make parent attribute of segment required. | Updated, but no restriction yet E nC |
|
Make changes necessary for variability in cell structure within network (i.e. differences between cells in a population/cell group), which will be mainly dealt with in NetworkML (see below). | Not incorporated yet |
|
Change fractAlongParent to fract_along_parent for consistent naming of attributes in NetworkML and ChannelML |
Updated** E H nC |
| Biophysics | |
|
Change attribute passiveConductance to passive_conductance to be consistent with naming in NetworkML and ChannelML |
Updated** E H nC |
|
Change specificCapacitance, etc. to spec_capacitance, spec_axial_resistance, init_memb_potential, ion_properties to match new naming convention | Updated** E H nC |
|
Name of group in <group> element to become an attribute (related to next point) |
Not incorporated yet |
|
Reorganise mechanism/parameter/group structure. Probably to <mechanism> <group> <parameters...> </group> <group> <parameters...> </group> </mechanism> A possible alternative would be to remove the nesting and have lists of <mechanismtype name="???" parameter="???" value="???" group="???"> The mechanismtype could be replaced by channel_mechanism, spec_capacitance, etc. |
Not incorporated yet (Priority) |
| ChannelML | |
|
Remove optional expr attribute in parameterised_hh, as the form of expression is wholly determined by the type="linoid", etc. |
Updated** E H N G |
|
Restructure channels to use <linoid A="1" k="0.1" d="-40"/> (or <linoid A="1" Vslope="10" V0="-40"/>) etc. for standard parameterised rate expressions |
Not incorporated yet, however proposal for new ChannelML format in example files ending: _newFormat.xml |
|
Use <generic expr="XXX"> as opposed to calling the element generic_equation_hh |
Updated** E H N G |
|
Change form of conditional generic expression from v < -0.060 ? 5.0 : 5 * (exp (-50 * (v - (-0.060)))), etc. to a nested set of equations |
Not incorporated yet |
|
A more general framework for dealing with ions, etc. allowing any chemical/species to interact with a channel/synapse (first step to SBML support) |
Not incorporated yet |
|
Have source (i.e. not src) and target as attributes of transition |
Updated** E H N G |
|
Make resting_conc, decay_constant and ceiling attributes of decaying_pool_model in CaPool, shell_thickness an attribute of pool_volume_info, name an attribute of ion_species |
Updated** E H N G |
| Level 3/NetworkML | |
|
Remove net:potentialSynapticLocation from biophysics element in Level 3 cell (and rename to net:potential_syn_loc), make a subelement of connectivity under cell, as some cells may specify connectivity without detailed biophysics. Rearrange attributes. |
Updated** E nC |
|
Make specification of size attribute in <instances> element required. Will help memory allocation when parsing large network files. |
Updated** E H X nC |
|
Make name of attribute of target for electrical input population instead of cell_group |
Updated** E H |
|
Move cell_type to be attribute of population |
Updated** E H X nC |
|
Restructure synapse_props element with synapse_type as an attribute and delays etc. as attributes of this element as opposed to default_values. |
Updated** E H X nC |
|
Move source and target to be attributes of projection |
Updated** E H X nC |
|
Make pre cell_id, segment_id etc. attributes of connection, which should speed up reading in of long net conn files, especially when using SAX. (Note: NetworkML plaintext file with 100,000 synapses went from 32MB to 25MB with change). |
Updated** E H X nC |
|
Allow specification of uniquely identified synapse locations on cells (without reference to net conn), not just possible synapse locations. |
Not incorporated yet |
|
Allow variability of structure of cells within populations. A prototype can be specified in a MorphML doc, and each instance will list the changes from the original. Initially this will allow, for example, networks of cells of inhomogenous soma radii, or fluctuations in channel densities, etc. but should be extensible to allow any morphological or biophysical changes of the cells in the network. |
Not incorporated yet |
** = Updated in current specifications. Note: old form will still be valid until v2.0
E = Updated examples to reflect preferred format
H = HTML mappings work with both formats
N = NEURON ChannelML mappings work with both formats
G = GENESIS ChannelML mappings work with both formats
X = X3D mappings for NetworkML work with both formats
nC = Updated neuroConstruct NetworkML/cell import for both formats, exports new form
