NeuroML Biophysics specifications and PSICS
The biophysics schema concerns the electrical properties of cells and, particularly the allocation of membrane channels. Most of the general observations about NeuroML apply to this schema, particluarly with regard to deep nesting, untyped elements and simulator independence.
The cannonical element for specifying channel densities is:
<bio:mechanism name="Kf" type="Channel Mechanism"> <bio:parameter name="gmax" value="0.5"> <bio:group>pdend</bio:group> </bio:parameter> </bio:mechanism>
<ChannelMechanism channel="Kf" gmax="0.5" region="pdend" />
The first form also has scope for causing confusion or breaking an importer in a number of ways:
- what happens if there are no parameters inside a bio:mechanism block, of if there are more than one?
- The name attribute isn't a freely settable name for this element but rather must match the (freely settable) name attribute of a channel definition. Using "name" in both contexts risks confusion and prevents mechanisms having a name set by which they can be referred to from elsewhere.
- The "Channel Mechanism" value for the type attribute entails constraints on the embedded parameters elements that suggest it would be better as a new element type
- The existence of a parameter named "gmax" is required for this to specify a channel density. Reading this type of structure to find a channel density implies logic of the form: "if the 'type' attribute on a mechanism is 'Channel Mechanism' then find an embedded parameter object of which the 'name' attribute is 'gmax' and get the corresponding 'value' attribute". These magic values should be attributes or elemet tags.
- Likewise the use of an embedded group element could be an attribute on a top level ChannelMechanism element, unless there could be multiple group elements in a parameter, in which case the meaning becomes unclear.
Similar dificulties arise with the specification of conductance and axial resistance:
<bio:specificCapacitance> <bio:parameter value="0.6"> <bio:group>all</bio:group> </bio:parameter> </bio:specificCapacitance> <bio:specificAxialResistance> <bio:parameter value="0.1"> <bio:group>all</bio:group> </bio:parameter> </bio:specificAxialResistance>
Since these both require a parameter, they could be written more comprehensibly as
<specificCapacitance value="0.6" /> <specificAxialResistance value="0.6" />
<biophysics specificCapacitance="0.6" specificAxialResistance="0.1"> ... </biophysics>
This is, however less flexible than the element based approach, which can define separate capacitances for different regions of membrane. In this case the first of the two forms above would be reuired with a region specifacation as in:
<specificCapacitance value="0.6" region="axon" />
The initialMembPotential element expresses something that either isn't settable, or isn't a property of the cell, and so probably doesn't belong here. If it is an instruction to the simulator about what potential to start the simulation at, then it certainly belongs elsewhere. If it is a statement that conditions should be such that the resting membrane potential should have this value, then it is just wishful thinking.
In practice, it often is useful to have a cell rest at a given potential, and a variety of tricks are used to achieve this. These do not appear to be accessible from the current specification. One of the most common, if questionable approaches, is to adjust the leak reversal potential after setting up the simulation so that the net current is everywhere zero (published models exist in which the resulting leak reversals are way outside any physiological range).
The strategy supported by PSICS is to allows some channel densities to be adjusted in order to achieve a given rest. Typically these would be a sodium and a potassium leak. The specification block looks like:
<DensityAdjustment maintain="-65mV" vary="leak-Na, leak-K" />
Element names
The specificAxialResistance is not so much a resistance (Ohm) as resitivity (Ohm m) and should probably be specificResistivity. The axial concept comes from the fact that cables are generally discretized into sections that span the entire width of the cable, but this is not implicit in the model, so the "axial" part is probably not required.
The use of mechanism as in "Channel Mechanism" sounds a bit like part of a clock and doesn't contain the specification of a mechanism in any case. It just holds the maximal conductance density to be applied to a region of membrane so "density" might be a better term.
Use of gmax and e: it is easy to be pedantic here, but these really aren't properties of a channel distribution or even a channel itself. They both depend on the solutions either side of the channel. But they are very conveneint. PSICS draws a different compromise by expressing all chanel densities as the number of channels per unit area but then in the channel definition it has an attribute for the single-channel conductance as well as for the permeant ion. It curently takes the reversal potential from a separate specification of the internal and external environment of the cell, but uses the single channel conductances as it is.
The grouping of cables via bio:group is rather a general term, whereas here it must contain the name of a cableGroup defined in the cell morphology specification. As such, cableGroupID might be better, (but see the MorphML section for queries about whether cableGroup realy is the right level of abstraction for identifying regions on neuronal arbirizations).

