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