PSICS - the Parallel Stochastic Ion Channel Simulator
previous ←   → next
Under development
Please let us know of errors, unclear text or if you have suggestions form improvements:

Electrical Properties and the Channel Distribution

The two attributes of the properties object, membraneCapacitance and cytoplasmResistivity, set the passive electrical properties of the cell. The rest of the CellProperties object is concerned with the distribution of ion channel in the membrane.

Channel Distribution

There are two ways of specifying channel densities: by referring to labelled regions or points on the cell, and with expressions involving morphological parameters such as the radius and path distance. The two cases are not exclusive: a single population specification can use elements of both.

Every ChannelPopulation block must have the channel type set as the channel attribute. The other attributes can be used in a variety of combinations as described below. In addition to these attributes, a ChannelPopulation can also include one or more RegionMask blocks. Each RegionMask defines a boolean function (a mask) across the structure saying whether a given point is in or out. The masks are combined to define the region of the cell within which the density specfication applies.

Expression based distributions

The simplest density specification is simply to set the density attribute to a number giving the number of channels per square micron. More complex expressions can be built up out of basic morphological quantitites: the path distance from the soma p, the radius r, direct distance from the soma d and branch order b. Standard mathematical functions can be included so, for example
5 * exp(-1 * p / 100)
would give a density that falls of by a factor e every 100um from the soma. And
5 * pow(sin(0.1 * p), 2)
would give a density varying between 0 and 5 periodically with p.

Density modulation

Two attributes can modify the density spedified by the expression. If set, the maxDensity provides an upper limit to number of channels per square micron. This can be set even if you do not expect the density to go above the given value and serves as a safety net in case of problems in cases where you are not sure whether the expression will generate reasonable values everywhere. The totalNumber attribute also protects against dodgy expressions by rescaling the generated density by whatever factor is needed to give that total population size. This is useful, for example, if you really do want an exponentially increasing density away from the origin, but do not know what multiplier to use in order to get reasonable number densities at the terminals.

Channel allocation

There are two allocation modes: regular and Poisson. The regular mode ensures that the density locally is as close as possible to the value generated from the expression (with modulation if applicable). The channels still have discrete position, so what this means is that, for a density d and local circumference l then there is one channel placed every 1/(d l) microns along the structure. For the pisson distribution, the density is interpreted probabilistically so that the probability of finding a channel in a small section of length delta_x is delta_x d l.

Relative distributions

Frequently, the realtive densities of different channel types are more important than their absolute values, so for example, doubling the densities of both the sodium and potassium channels on a HH model has far less effect than doubling either one separately. It is also often useful to define a set of relative densities for different channel types that work well together and then scale them up or down together across the structure. This can, of course, be done by using the same expression for each, but in order to reduce duplication, it is also possible to base the density of one population on the density of another. This is done with relativeTo attribute to set the base population and the densityFactor attribute for the scaling.

Masking

The density expression give a real-valued quantity across the cell. If you want the channel population to apply only to a particuler reagion, then this could be done by designing an expression that goes to zero outside the region of interest. In general, however, this can be more conveniently achieved by keeping the epxression simple and adding one or more RegionMask blocks to define the region.

Each mask has an action and a region specifiction. The action can be one of include, exclude and restrict to. The region specification, by the where attribute, is a boolean expression using the same quantities (p, r, d, b) as for the density expressions as well as the special symbol "region" and any point ids or labels defined in the morphology.

Masks are combined in order, modifying the set of the points where channels should be attached. If the action of the first mask is restrict to or exclude, then the starting point is all points on the cell. If the first action is include then it starts with no points included. As their names suggest, the restrict to action takes intersection of the corrent points and those defined by the mask; include takes the union, and exclude takes the intersection with the complement of the mask. Taking the union with the complemente of the mask is not supported as a single operation as it doesn't generally make much sense to do that and the effect can alsmost certainly be achieved in a more understandable manner by a different combination of masks.

The special region sysmbol is used to define masks based on labelled points on the structure. It can be used in the expressions region=label, region < label and region > label. Giving matches to points at, proximal to, or distal to the specified label respectively. The label may contain the wildcard "*" which stands for one or more characters. Thus, for example, if points on the axon have been labelled "axon_1", "axon_2" etc, the whole axon could be specified with region=axon* for the where attribute, ie, with a region mask like
<RegionMask action="include" where="region=axon*"/>
. Note however that there may be better alternatives (see the discussion of the partOf attribute for cell morphology). For an axon you could also attach a start_of_axon label at the base of the axon and use
<RegionMask action="include" where="region > start_of_axon"/>
which would save having to set labels for every point on the axon.

Achieving a resting potential - the DensityAdjustment element

One common problem with setting channel distributions is that the resulting cell has a resting potential that varies across the structure and may go well outside the intended range in some places. On common trick to overcome this is to set up the cell model at the desired resting potential, calculate the currents everywhere and then change the reversal potential of the leak so it counteracts the other currents at rest. In a good case, this might only need modest changes in the reversal potential but in others it can require shifts of 100s of millivolts.

This trick is not possible with PSICS because it does not allow the reversal potential of a channel to vary with position on the cell. However, PSICS does support a more physiologically plausible means to achieve a rest via an optional DensityAdjustment element that sets the target potential and specifies how channel densities should be adjusted to achieve it.

The principle behind the density adjustment is that cells can achieve stable resting potentials by locally changing their channel densities. In general, any of the channel densities could be changed, but PSICS supports only the two simplest options of varying either just one channel density, or two together. Varying just one density of, say, a potassium channel, involves adding new channels where the membrane is depolarized from rest, and removing them (providing there are some to remove) if it is to hyperpolaried. In either case, this will change the local input resistance.

Varying two densities together enables the input resistance to be kept constant by switching channels of one type for the other type in proportion to their relative conductances. A typical DensityAdjustment element looks like: <DensityAdjustment maintain="-65mV" vary="Leak-K, Leak-Na"/>
where in this case there are separate leaks for sodium and potassium being varied. Leak conductances of this nature are convenient choices since they are generally present all over the cell, but other channels may be used too.

Because of the discrete positioning of channels, it is generally not possible to get a precise current balance at every point on the cell. For example, it may be necessary to remove more channels than are actually present on a given compartment. PSICS handles this by spreading the effect to neighboring compartments to achieve as close as possible to a local balance. This also applies to fractional numbers of channels, as in choosing which compartment to put the new channel on when several compartments only require a fraction of a channel each (which happens, for example in the Rallpack tests with discrete leak channels because the leak current densities are extremely low - about one channel per 100um2). The exact procedure is to first compute the desired floating point change in the number of channels per compartment and then to begin applying this in integer quantities working from the terminals inwards. Fractional remainders and negative values are propagated inwards towards the soma, adding up the contributions from different branches where they meet. If there is a channel debt or when it gets to the soma, then this is flagged as an error indicating that the desired balance could not be achieved with the given channels.

Reusing distributions

As well as the relativeTo option on channel populations, there are two other ways to reduce redundancy in the specification. First, a group of populations can be included within a CellRegion block with the match attribute set as in
<CellRegion match="*axon*">
   - channel population definitions to be applied to the axon -
</CellRegion>
Second, the distribution specification can be moved out of the channel population itself into a DistributionRule block. The same rule can then be referred to from several populations by its id using the distribution attribute on the channel population. N.B. this is currently lagging behind the channel population specification and doesn't yet support most of those features.

CellProperties

Membrane and cytoplasm properties of the cell

Standalone model

Attributes set the membrane capacitance and bulk resitivity; the rest of the properties concern channel densities in the membrane.

Attributes

NameTypeDefinitionUnitsRangeRequired
ididentifieridentifier for the distributionyes
membraneCapacitanceFloating point valueMembrane capacitance - capacitance per unit area genrallyaround 1 uF per cm2 (equivalent to 0.01 pF per um2)uF_per_cm2(0.8, 1.2)
cytoplasmResistivityFloating point valueResistivity of contentents of the cell, also known as axial resistivityohm_cm(50, 200)

Elements

Element typeRole
CellRegionRegions of the cell containing subpopulations
ChannelPopulationChannel populations
SynapsePopulationSynapse populations
SingleSynapseSynapses positioned one by one
DistributionRuleDistribution rule
PassivePropertiesRegion specific passive properties
DensityAdjustmentChannel density adjustments
ExclusionEither-or labels

ChannelPopulation

A population of channels combining a channel type, the base density and either a reference to a labelled region of the cell or a distribution rule

within: CellProperties

Attributes

NameTypeDefinitionUnitsRangeRequired
ididentifieroptional identifier for use if access is needed to the parameters of the populationyes
channelidentifier referenceThe channel type (KSChannel, DerivedKSChannel) yes
distributionidentifier referenceThe distribution rule for the channel (DistributionRule)
relativeToidentifier referenceDefine density relative to another population. Either this, or the density expression can be supplied but not both (ChannelPopulation)
densitytext - the expressionDensity expression, can include path length, p, branch order b, radius r and distance from the soma d
allocationone of the possible valuesAllocation rule for individual channels from the evealuated local densityRegular, Poission
maxDensityFloating point valueMaximum densityper_um2[0,100)
densityFactorFloating point valuefactor relative to target population. Only applies if the relativeTo attribute is setnone[0,10)
totalNumberWhole numberTotal number of channels in the population[0, 10^6)
colorplain texthex colorColor to use when displaying population in channel tool

Elements

Element typeRole
RegionMaskmasks for refining restricting target region, can be used on thier own or in conjunction with the labels, or expressions.

RegionMask

A mask for selecting a region of the cell

within: DistributionRule

Attributes

NameTypeDefinitionUnitsRangeRequired
wheretext - the expressionBoolean expression selecting a region of the cell. The available quantities are the same as for disribution rules.yes
actionone of the possible valuesWhether regions matching the mask should be included or excludedrestrict_to, include, excludeyes

Elements - No child elements are allowed

CellRegion

A region on a cell to which a set of populations are applied.

within: CellProperties

This is a conveneince object to reduce duplication in channel definitions. If you wish to apply several different populations of channels to exactly the same region, instead of creating a distribution rule and then referring to it from each population, you can put them all inside a CellRegion with its match attribute set. In effect, this just adds the match condition as the first RegionMask for each of the enclosed populations.

Attributes

NameTypeDefinitionUnitsRangeRequired
matchplain textRegion to which these properties apply

Elements

Element typeRole
ChannelPopulationChannel populations

DistributionRule

A distribution rule for a channel population

within: CellProperties

For the expression, the quantitities that are available are: dendritic diameter [diameter], branch order [order], path length from the soma [path] and the geometrical distance from the soma [geom], where the names in square brackets are the ones to be used in expressions.

Attributes

NameTypeDefinitionUnitsRangeRequired
ididentifierIdentifier (name) for the rule; unique within the modelyes

Elements

Element typeRole
RegionMaskmasks for refining restricting target region, can be used on thier own or in conjunction with the labels, or expressions.

DensityAdjustment

Channel density adjustment to establish rest potential

within: CellProperties

A density adjustment can be used to implement the effects of a hypothetical homeostatic process that adjusts one or more channel densities to maintain a uniform resting potential

Attributes

NameTypeDefinitionUnitsRangeRequired
maintainFloating point valueThe membrane potential at which currents should balancemV(-80, -50)
varyplain textChannel types to be used to balance the currentThis should be a comma separated list of one or two channel id. If only one channelis listed, then its density is adjusted, where possible, to match the desired rest potential. If two are listed, then both are adjusted to acieve the desired equlibrium and maintain the same conductance density.

Elements - No child elements are allowed

PassiveProperties

Membrane and cytoplasm properties of for a region of the cell

within: CellProperties

If supplied, passive properties objects can override the cell wide resistivity and membrane capacitance for particular regions of the cell. A typical use is if certain parts of the cell are known to have a larger surface area than is represented by the geometry.

Attributes

NameTypeDefinitionUnitsRangeRequired
ididentifieridentifier for this property setyes
membraneCapacitanceFloating point valueMembrane capacitance - capacitance per unit area genrallyaround 1 uF per cm2 (equivalent to 0.01 pF per um2)uF_per_cm2(0.8, 1.2)
cytoplasmResistivityFloating point valueResistivity of contentents of the cell, also known as axial resistivityohm_cm(50, 200)
regionplain textRegion to which tehse properties apply

Elements - No child elements are allowed

Exclusion

Prevents double labelling after discretization

within: CellProperties

Exclusions impose conditions on the labelling of points after rediscretization. By default,a compartment in the discretization inherits all the labels from the original points that lie inside it.Some new ompartments may overlap two distinct property sets so if propertiesare attached accordingto the labels, some compartments may get two sets of prpoerties. To avoid this, an exclusion ruleallows specification of which set of properties should be applied in these cases.

Attributes

NameTypeDefinitionUnitsRangeRequired
winnerplain textDominant region label
loserplain textSuppressed region label - removed from compartments that contain the 'either' label

Elements - No child elements are allowed

SingleSynapse

Attributes

NameTypeDefinitionUnitsRangeRequired
ididentifieroptional identifier for use if access is needed to the parameters of the populationyes
synapseidentifier referenceThe synapse type (Synapse) yes
atlabel reference

Elements - No child elements are allowed

SynapsePopulation

Attributes

NameTypeDefinitionUnitsRangeRequired
ididentifieroptional identifier for use if access is needed to the parameters of the populationyes
synapseidentifier referenceThe synapse type (Synapse) yes
distributionidentifier referenceThe distribution rule for the channel (DistributionRule)
relativeToidentifier referenceDefine density relative to another population. Either this, or the density expression can be supplied but not both (ChannelPopulation)
densitytext - the expressionDensity expression, can include path length, p, branch order b, radius r and distance from the soma d
allocationone of the possible valuesAllocation rule for individual channels from the evealuated local densityRegular, Poission
maxDensityFloating point valueMaximum densityper_um2[0,100)
densityFactorFloating point valuefactor relative to target population. Only applies if the relativeTo attribute is setnone[0,10)
totalNumberWhole numberTotal number of channels in the population[0, 10^6)
colorplain texthex colorColor to use when displaying population in channel tool

Elements

Element typeRole
RegionMaskmasks for refining restricting target region, can be used on thier own or in conjunction with the labels, or expressions.
previous ←   → next