Extended LEMS pathsΒΆ

A NeuroML model’s variables and event sources can be designated in the form of LEMS paths. These paths can be used for recording, among other uses. However, there are some limitations of the paths currently used in NeuroML:

  • LEMS is not enough to cover most aspects of spatial cells, and discretisation is one of them. Hence, there should be a way to refer to a specific location on a cell, in order to capture the individual compartments in all cases.

  • The way that <Attachment>β€Šs (that is, synapses and input sources) are accessed is ambiguous. They are supposed to be numbered in the order that mechanisms were attached to the cells, without distinction to the different component types, or logical groups of mechanisms attached (for example, instances of the same synapse type that exist on the same cell are lumped together for all <projection>β€Šs). Even worse, the order that mechanisms are added is unspecified.

Hence, EDEN also supports alternative forms to specify precise locations on a spatially detailed cell, or a synapse or input mechanism, reliably. These extended LEMS paths can be used to designate and record quantities and event sources alike, and EDEN’s CustomSetup extension is also based on them. They are written as follows:

LEMS paths for cell locationsΒΆ

The typical way to access variables in a spatially detailed cell is LEMS paths of the form:

  • population/cell_id[/segment[.fractionAlong]]/: (options continue from this path as follows)
    • v for membrane voltage

    • caConc for ca ion concentration

    • ca2Conc for ca2 ion concentration (a separate ion species of the same atom)

    • biophysicalProperties/membraneProperties/:
      • channel distribution/:

      • iDensity or gdensity for the local current and conductance per area of the ion channel distribution

      • i or g for the current and conductance of the mechanism over the whole pointed compartment (recommended only in special cases)

      • channel mechanism/gate_name/q for gate variables

  • Another way to specify a cell is population[cell_id]/... and the path follows the same way.

The parts in square brackets are optional (if the part in enclosing brackets is used). If segment is not specified, then it is assumed to be 0 (the soma, by convention). If fractionAlong is not specified, then it is assumed to be 0.5 (the middle of the segment).

This way, any site on a neuron can be referred to with a LEMS path. This is especially useful in conjunction with explain_cell and GetLemsLocatorsForCell, and for fully recording over a cell, as seen in NeuroML and spatially detailed cells and other examples.

LEMS paths for input list elementsΒΆ

Instead of the form population/cell_id/synapses:mechanism name:serial number of attached instance/property, which is supported by jLEMS (under certain assumptions), this is how quantities of input mechanisms can be accessed in EDEN as elements of their <inputList>:

input_list/0/variable_name
input_list[0]/...

LEMS paths for synaptic projection elementsΒΆ

Instead of the LEMS form which may assign serial number in unpredictable ways, EDEN offers an alternative form similar to that for <inputList>β€Šs. After the synapse instance and the mechanism’s elements, a pre or post locator is added to select between either half of the synapse (for simple <projection>β€Šs, only post is valid). The pattern is then as follows:

projection/0/(pre or post)/variable_name
projection[0]/(pre or post)/...

Using these forms, one can record or otherwise access the variables of individual synapses or input sources, in the consistent order that they had in their respective <projection>β€Šs or <inputList>β€Šs.

LEMS paths for input streamsΒΆ

The same form can be further used to point to elements of <π™΄πšπšŽπš—πšƒπš’πš–πšŽπšœπšŽπš›πš’πšŽπšœπšπšŽπšŠπšπšŽπš›>β€Šs and <π™΄πšπšŽπš—π™΄πšŸπšŽπš—πšπš‚πšŽπšπšπšŽπšŠπšπšŽπš›>β€Šs and their properties, for <πš…πšŠπš›πš’πšŠπš‹πš•πšŽπšπšŽπšπšŽπš›πšŽπš—πšŒπšŽ>β€Šs to point at or for recording:

  • time series/instance[/column] (column can be omitted if elements have just one)

  • eventΒ  set/instance[/port] (port can be omitted if elements have just one)

  • And the group[instance]/... form can also be used as usual.