Cells

Defines both abstract cell models ( e.g. izhikevichCell, adaptive exponential integrate and fire cell, adExIaFCell ), point conductance based cell models ( pointCellCondBased, pointCellCondBasedCa ) and cells models ( cell ), which specify the morphology ( containing segments ) and biophysicalProperties separately.


Original ComponentType definitions: Cells.xml. Schema against which NeuroML based on these should be valid: NeuroML_v2.2.xsd. Generated on 25/08/21 from this commit. Please file any issues or questions at the issue tracker here.


baseCell

extends baseStandalone

Base type of any cell ( e.g. point neuron like izhikevich2007Cell, or a morphologically detailed cell with segments ) which can be used in a population.

Go to the libNeuroML documentation

from neuroml import BaseCell

variable = BaseCell(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, extensiontype_=None, **kwargs_)

baseSpikingCell

extends baseCell

Base type of any cell which can emit spike events.

spike

Spike event

Direction: out

baseCellMembPot

extends baseSpikingCell

Any spiking cell which has a membrane potential v with units of voltage ( as opposed to a dimensionless membrane potential used in baseCellMembPotDL ).

v

Membrane potential

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

baseCellMembPotDL

extends baseSpikingCell

Any spiking cell which has a dimensioness membrane potential, V ( as opposed to a membrane potential units of voltage, baseCellMembPot ).

V

Membrane potential

Dimensionless

spike

Spike event (from baseSpikingCell)

Direction: out

baseChannelPopulation

extends baseVoltageDepPointCurrent

Base type for any current produced by a population of channels, all of which are of type ionChannel.

ionChannel

baseIonChannel

i

The total (usually time varying) current produced by this ComponentType (from basePointCurrent)

current

v

The current may vary with the voltage exposed by the ComponentType on which this is placed (from baseVoltageDepPointCurrent)

voltage

channelPopulation

extends baseChannelPopulation

Population of a number of ohmic ion channels. These each produce a conductance channelg across a reversal potential erev, giving a total current i. Note that active membrane currents are more frequently specified as a density over an area of the cell using channelDensity.

erev

The reversal potential of the current produced

voltage

number

The number of channels present. This will be multiplied by the time varying conductance of the individual ion channel (which extends baseIonChannel) to produce the total conductance

Dimensionless

ion

Which ion flows through the channel. Note: ideally this needs to be a property of ionChannel only, but it’s here as it makes it easier to select channelPopulations transmitting specific ions.

vShift = 0mV

voltage

i

The total (usually time varying) current produced by this ComponentType (from basePointCurrent)

current

v

The current may vary with the voltage exposed by the ComponentType on which this is placed (from baseVoltageDepPointCurrent)

voltage

Structure

CHILD INSTANCE: ionChannel

Derived Variables

channelg = ionChannel->g

geff = channelg * number

i = geff * (erev - v) (exposed as i)

Go to the libNeuroML documentation

from neuroml import ChannelPopulation

variable = ChannelPopulation(neuro_lex_id=None, id=None, ion_channel=None, number=None, erev=None, segment_groups='all', segments=None, ion=None, variable_parameters=None, **kwargs_)
<channelPopulation id="naChansDend" ionChannel="NaConductance" segment="2" number="120000" erev="50mV" ion="na"/>

channelPopulationNernst

extends baseChannelPopulation

Population of a number of channels with a time varying reversal potential erev determined by Nernst equation. Note: hard coded for Ca only!

number

The number of channels present. This will be multiplied by the time varying conductance of the individual ion channel (which extends baseIonChannel) to produce the total conductance

Dimensionless

ion

Which ion flows through the channel. Note: ideally this needs to be a property of ionChannel only, but it’s here as it makes it easier to select channelPopulations transmitting specific ions.

R = 8.3144621 J_per_K_per_mol

idealGasConstantDims

zCa = 2

Dimensionless

F = 96485.3 C_per_mol

charge_per_mole

vShift = 0mV

voltage

erev

The reversal potential of the current produced, calculated from _caConcExt and _caConc

voltage

i

The total (usually time varying) current produced by this ComponentType (from basePointCurrent)

current

caConc

The internal Ca2+ concentration, as calculated/exposed by the parent Component

concentration

caConcExt

The external Ca2+ concentration, as calculated/exposed by the parent Component

concentration

temperature

The temperature to use in the calculation of _erev. Note this is generally exposed by a networkWithTemperature.

temperature

v

The current may vary with the voltage exposed by the ComponentType on which this is placed (from baseVoltageDepPointCurrent)

voltage

Structure

CHILD INSTANCE: ionChannel

Derived Variables

singleChannelConductance = ionChannel->g

totalConductance = singleChannelConductance * number

erev = (R * temperature / (zCa * F)) * log(caConcExt / caConc) (exposed as erev)

i = totalConductance * (erev - v) (exposed as i)

baseChannelDensity

Base type for a current of density iDensity distributed on an area of a cell, flowing through the specified ionChannel. Instances of this ( normally channelDensity ) are specified in the membraneProperties of the cell.

ionChannel

baseIonChannel

iDensity

currentDensity

baseChannelDensityCond

extends baseChannelDensity

Base type for distributed conductances on an area of a cell producing a ( not necessarily ohmic ) current.

condDensity

conductanceDensity

variableParameter

Specifies a parameter ( e.g. condDensity ) which can vary its value across a segmentGroup. The value is calculated from value attribute of the inhomogeneousValue subelement. This element is normally a child of channelDensityNonUniform, channelDensityNonUniformNernst or channelDensityNonUniformGHK and is used to calculate the value of the conductance, etc. which will vary on different parts of the cell. The segmentGroup specified here needs to define an inhomogeneousParameter ( referenced from inhomogeneousParameter in the inhomogeneousValue ), which calculates a variable ( e.g. p ) varying across the cell ( e.g. based on the path length from soma ), which is then used in the value attribute of the inhomogeneousValue ( so for example condDensity = f( p ) ).

parameter

segmentGroup

inhomogeneousValue

inhomogeneousValue

Go to the libNeuroML documentation

from neuroml import VariableParameter

variable = VariableParameter(parameter=None, segment_groups=None, inhomogeneous_value=None, **kwargs_)
<variableParameter parameter="condDensity" segmentGroup="dendrite_group">
                        <inhomogeneousValue inhomogeneousParameter="dendrite_group_x1" value="5e-7 * exp(-p/200)"/>  
                    </variableParameter>

inhomogeneousValue

Specifies the value of an inhomogeneousParameter. For usage see variableParameter.

inhomogeneousParameter

value

Go to the libNeuroML documentation

from neuroml import InhomogeneousValue

variable = InhomogeneousValue(inhomogeneous_parameters=None, value=None, **kwargs_)
<inhomogeneousValue inhomogeneousParameter="dendrite_group_x1" value="5e-7 * exp(-p/200)"/>

channelDensityNonUniform

extends baseChannelDensity

Specifies a time varying ohmic conductance density, which is distributed on a region of the cell. The conductance density of the channel is not uniform, but is set using the variableParameter. Note, there is no dynamical description of this in LEMS yet, as this type only makes sense for multicompartmental cells. A ComponentType for this needs to be present to enable export of NeuroML 2 multicompartmental cells via LEMS/jNeuroML to NEURON.

erev

The reversal potential of the current produced

voltage

segmentGroup

ion

Which ion flows through the channel. Note: ideally this needs to be a property of ionChannel only, but it’s here as it makes it easier to select channelPopulations transmitting specific ions.

variableParameter

variableParameter

ZERO_CURR_DENS = 0 A_per_m2

currentDensity

Structure

CHILD INSTANCE: ionChannel

Derived Variables

iDensity = ZERO_CURR_DENS (exposed as iDensity)

Go to the libNeuroML documentation

from neuroml import ChannelDensityNonUniform

variable = ChannelDensityNonUniform(neuro_lex_id=None, id=None, ion_channel=None, erev=None, ion=None, variable_parameters=None, **kwargs_)
<channelDensityNonUniform id="nonuniform_na_chans" ionChannel="NaConductance" erev="50mV" ion="na">
                    <variableParameter parameter="condDensity" segmentGroup="dendrite_group">
                        <inhomogeneousValue inhomogeneousParameter="dendrite_group_x1" value="5e-7 * exp(-p/200)"/>  
                    </variableParameter>
                </channelDensityNonUniform>

channelDensityNonUniformNernst

extends baseChannelDensity

Specifies a time varying conductance density, which is distributed on a region of the cell, and whose reversal potential is calculated from the Nernst equation. Hard coded for Ca only!. The conductance density of the channel is not uniform, but is set using the variableParameter. Note, there is no dynamical description of this in LEMS yet, as this type only makes sense for multicompartmental cells. A ComponentType for this needs to be present to enable export of NeuroML 2 multicompartmental cells via LEMS/jNeuroML to NEURON.

segmentGroup

ion

Which ion flows through the channel. Note: ideally this needs to be a property of ionChannel only, but it’s here as it makes it easier to select channelPopulations transmitting specific ions.

variableParameter

variableParameter

ZERO_CURR_DENS = 0 A_per_m2

currentDensity

Structure

CHILD INSTANCE: ionChannel

Derived Variables

iDensity = ZERO_CURR_DENS (exposed as iDensity)

Go to the libNeuroML documentation

from neuroml import ChannelDensityNonUniformNernst

variable = ChannelDensityNonUniformNernst(neuro_lex_id=None, id=None, ion_channel=None, ion=None, variable_parameters=None, **kwargs_)

channelDensityNonUniformGHK

extends baseChannelDensity

Specifies a time varying conductance density, which is distributed on a region of the cell, and whose current is calculated from the Goldman-Hodgkin-Katz equation. Hard coded for Ca only!. The conductance density of the channel is not uniform, but is set using the variableParameter. Note, there is no dynamical description of this in LEMS yet, as this type only makes sense for multicompartmental cells. A ComponentType for this needs to be present to enable export of NeuroML 2 multicompartmental cells via LEMS/jNeuroML to NEURON.

segmentGroup

ion

Which ion flows through the channel. Note: ideally this needs to be a property of ionChannel only, but it’s here as it makes it easier to select channelPopulations transmitting specific ions.

variableParameter

variableParameter

ZERO_CURR_DENS = 0 A_per_m2

currentDensity

Structure

CHILD INSTANCE: ionChannel

Derived Variables

iDensity = ZERO_CURR_DENS (exposed as iDensity)

Go to the libNeuroML documentation

from neuroml import ChannelDensityNonUniformGHK

variable = ChannelDensityNonUniformGHK(neuro_lex_id=None, id=None, ion_channel=None, ion=None, variable_parameters=None, **kwargs_)

channelDensity

extends baseChannelDensityCond

Specifies a time varying ohmic conductance density, gDensity, which is distributed on an area of the cell ( specified in membraneProperties ) with fixed reversal potential erev producing a current density iDensity.

condDensity

(from baseChannelDensityCond)

conductanceDensity

erev

The reversal potential of the current produced

voltage

segmentGroup

Which segmentGroup the channelDensity is placed on. If this is missing, it implies it is placed on all _segment_s of the cell

ion

Which ion flows through the channel. Note: ideally this needs to be a property of ionChannel only, but it’s here as it makes it easier to select channelPopulations transmitting specific ions.

vShift = 0mV

voltage

Structure

CHILD INSTANCE: ionChannel

Derived Variables

channelf = ionChannel->fopen

gDensity = condDensity * channelf (exposed as gDensity)

iDensity = gDensity * (erev - v) (exposed as iDensity)

Go to the libNeuroML documentation

from neuroml import ChannelDensity

variable = ChannelDensity(neuro_lex_id=None, id=None, ion_channel=None, cond_density=None, erev=None, segment_groups='all', segments=None, ion=None, variable_parameters=None, extensiontype_=None, **kwargs_)
<channelDensity id="pasChans" ionChannel="pas" condDensity="3.0 S_per_m2" erev="-70mV" ion="non_specific"/>
<channelDensity id="naChansSoma" ionChannel="NaConductance" segmentGroup="soma_group" condDensity="120.0 mS_per_cm2" erev="50mV" ion="na"/>
<channelDensity id="naChans" ionChannel="HH_Na" segmentGroup="soma_group" condDensity="120.0 mS_per_cm2" ion="na" erev="50mV"/>

channelDensityVShift

extends channelDensity

Same as channelDensity, but with a vShift parameter to change voltage activation of gates. The exact usage of vShift in expressions for rates is determined by the individual gates.

condDensity

(from baseChannelDensityCond)

conductanceDensity

erev

The reversal potential of the current produced (from channelDensity)

voltage

vShift

voltage

segmentGroup

Which segmentGroup the channelDensity is placed on. If this is missing, it implies it is placed on all _segment_s of the cell

ion

Which ion flows through the channel. Note: ideally this needs to be a property of ionChannel only, but it’s here as it makes it easier to select channelPopulations transmitting specific ions.

Go to the libNeuroML documentation

from neuroml import ChannelDensityVShift

variable = ChannelDensityVShift(neuro_lex_id=None, id=None, ion_channel=None, cond_density=None, erev=None, segment_groups='all', segments=None, ion=None, variable_parameters=None, v_shift=None, **kwargs_)

channelDensityNernst

extends baseChannelDensityCond

Specifies a time varying conductance density, gDensity, which is distributed on an area of the cell, producing a current density iDensity and whose reversal potential is calculated from the Nernst equation. Hard coded for Ca only! See https://github.com/OpenSourceBrain/ghk-nernst.

segmentGroup

Which segmentGroup the channelDensityNernst is placed on. If this is missing, it implies it is placed on all _segment_s of the cell

ion

Which ion flows through the channel. Note: ideally this needs to be a property of ionChannel only, but it’s here as it makes it easier to select channelPopulations transmitting specific ions.

R = 8.3144621 J_per_K_per_mol

idealGasConstantDims

zCa = 2

Dimensionless

F = 96485.3 C_per_mol

charge_per_mole

erev

The reversal potential of the current produced, calculated from caConcExt and caConc

voltage

gDensity

(from baseChannelDensityCond)

conductanceDensity

iDensity

(from baseChannelDensity)

currentDensity

caConc

concentration

caConcExt

concentration

temperature

temperature

v

(from baseChannelDensity)

voltage

Structure

CHILD INSTANCE: ionChannel

Derived Variables

channelf = ionChannel->fopen

Conditional Derived Variables

IF caConcExt > 0 THEN

gDensity = condDensity * channelf  (exposed as gDensity)

IF caConcExt <= 0 THEN

gDensity = 0  (exposed as gDensity)

IF caConcExt > 0 THEN

erev = (R * temperature / (zCa * F)) * log(caConcExt / caConc)  (exposed as erev)

IF caConcExt <= 0 THEN

erev = 0  (exposed as erev)

IF caConcExt > 0 THEN

iDensity = gDensity * (erev - v)  (exposed as iDensity)

IF caConcExt <= 0 THEN

iDensity = 0  (exposed as iDensity)

Go to the libNeuroML documentation

from neuroml import ChannelDensityNernst

variable = ChannelDensityNernst(neuro_lex_id=None, id=None, ion_channel=None, cond_density=None, segment_groups='all', segments=None, ion=None, variable_parameters=None, extensiontype_=None, **kwargs_)

channelDensityNernstCa2

extends baseChannelDensityCond

This component is similar to the original component type channelDensityNernst but it is changed in order to have a reversal potential that depends on a second independent Ca++ pool ( ca2 ). See https://github.com/OpenSourceBrain/ghk-nernst.

segmentGroup

Which segmentGroup the channelDensityNernstCa2 is placed on. If this is missing, it implies it is placed on all _segment_s of the cell

ion

Which ion flows through the channel. Note: ideally this needs to be a property of ionChannel only, but it’s here as it makes it easier to select channelPopulations transmitting specific ions.

R = 8.3144621 J_per_K_per_mol

idealGasConstantDims

zCa = 2

Dimensionless

F = 96485.3 C_per_mol

charge_per_mole

erev

The reversal potential of the current produced

voltage

gDensity

(from baseChannelDensityCond)

conductanceDensity

iDensity

(from baseChannelDensity)

currentDensity

caConc2

concentration

caConcExt2

concentration

temperature

temperature

v

(from baseChannelDensity)

voltage

Structure

CHILD INSTANCE: ionChannel

Derived Variables

channelf = ionChannel->fopen

Conditional Derived Variables

IF caConcExt2 > 0 THEN

gDensity = condDensity * channelf  (exposed as gDensity)

IF caConcExt2 <= 0 THEN

gDensity = 0  (exposed as gDensity)

IF caConcExt2 > 0 THEN

erev = (R * temperature / (zCa * F)) * log(caConcExt2 / caConc2)  (exposed as erev)

IF caConcExt2 <= 0 THEN

erev = 0  (exposed as erev)

IF caConcExt2 > 0 THEN

iDensity = gDensity * (erev - v)  (exposed as iDensity)

IF caConcExt2 <= 0 THEN

iDensity = 0  (exposed as iDensity)

Go to the libNeuroML documentation

from neuroml import ChannelDensityNernstCa2

variable = ChannelDensityNernstCa2(neuro_lex_id=None, id=None, ion_channel=None, cond_density=None, segment_groups='all', segments=None, ion=None, variable_parameters=None, **kwargs_)

channelDensityGHK

extends baseChannelDensity

Specifies a time varying conductance density, gDensity, which is distributed on an area of the cell, producing a current density iDensity and whose reversal potential is calculated from the Goldman Hodgkin Katz equation. Hard coded for Ca only! See https://github.com/OpenSourceBrain/ghk-nernst.

permeability

permeability

segmentGroup

Which segmentGroup the channelDensityGHK is placed on. If this is missing, it implies it is placed on all _segment_s of the cell

ion

Which ion flows through the channel. Note: ideally this needs to be a property of ionChannel only, but it’s here as it makes it easier to select channelPopulations transmitting specific ions.

R = 8.3144621 J_per_K_per_mol

idealGasConstantDims

zCa = 2

Dimensionless

F = 96485.3 C_per_mol

charge_per_mole

caConc

concentration

caConcExt

concentration

temperature

temperature

v

(from baseChannelDensity)

voltage

Structure

CHILD INSTANCE: ionChannel

Derived Variables

K = (zCa * F) / (R * temperature)

expKv = exp(-1 * K * v)

channelf = ionChannel->fopen

Conditional Derived Variables

IF caConcExt > 0 THEN

iDensity = -1 * channelf * permeability * zCa * F * K * v * ( caConc - (caConcExt * expKv) ) / (1 - expKv)  (exposed as iDensity)

IF caConcExt <= 0 THEN

iDensity = 0  (exposed as iDensity)

Go to the libNeuroML documentation

from neuroml import ChannelDensityGHK

variable = ChannelDensityGHK(neuro_lex_id=None, id=None, ion_channel=None, permeability=None, segment_groups='all', segments=None, ion=None, **kwargs_)

channelDensityGHK2

extends baseChannelDensityCond

Time varying conductance density, gDensity, which is distributed on an area of the cell, producing a current density iDensity. Modified version of Jaffe et al. 1994 ( used also in Lawrence et al. 2006 ). See https://github.com/OpenSourceBrain/ghk-nernst.

segmentGroup

Which segmentGroup the channelDensityGHK2 is placed on. If this is missing, it implies it is placed on all _segment_s of the cell

ion

Which ion flows through the channel. Note: ideally this needs to be a property of ionChannel only, but it’s here as it makes it easier to select channelPopulations transmitting specific ions.

VOLT_SCALE = 1 mV

voltage

CONC_SCALE = 1 mM

concentration

TEMP_SCALE = 1 K

temperature

caConc

concentration

caConcExt

concentration

temperature

temperature

v

(from baseChannelDensity)

voltage

Structure

CHILD INSTANCE: ionChannel

Derived Variables

V = v / VOLT_SCALE

ca_conc_i = caConc / CONC_SCALE

ca_conc_ext = caConcExt / CONC_SCALE

T = temperature / TEMP_SCALE

channelf = ionChannel->fopen

gDensity = condDensity * channelf (exposed as gDensity)

tmp = (25 * T) / (293.15 * 2)

Conditional Derived Variables

IF V/tmp = 0. THEN

pOpen = tmp * 1e-3 * (1 - ((ca_conc_i/ca_conc_ext) * exp(V/tmp))) * (1 - (V/tmp)/2)

IF V/tmp != 0. THEN

pOpen = tmp * 1e-3 * (1 - ((ca_conc_i/ca_conc_ext) * exp(V/tmp))) * ((V/tmp) / (exp(V/tmp) - 1))

IF ca_conc_ext > 0 THEN

iDensity = gDensity * pOpen  (exposed as iDensity)

IF ca_conc_ext <= 0 THEN

iDensity = 0  (exposed as iDensity)

Go to the libNeuroML documentation

from neuroml import ChannelDensityGHK2

variable = ChannelDensityGHK2(neuro_lex_id=None, id=None, ion_channel=None, cond_density=None, segment_groups='all', segments=None, ion=None, **kwargs_)

pointCellCondBased

extends baseCellMembPotCap

Simple model of a conductance based cell, with no separate morphology element, just an absolute capacitance C, and a set of channel populations. Note: use of cell is generally preferable ( and more widely supported ), even for a single compartment cell.

C

Total capacitance of the cell membrane (from baseCellMembPotCap)

capacitance

thresh

The voltage threshold above which the cell is considered to be _spiking

voltage

v0

The initial membrane potential of the cell

voltage

populations

baseChannelPopulation

iMemb

Total current crossing the cell membrane (from baseCellMembPotCap)

current

iSyn

Total current due to synaptic inputs (from baseCellMembPotCap)

current

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

synapses

basePointCurrent

State Variables

v: voltage  (exposed as v)

spiking: Dimensionless

On Start

v = v0

spiking = 0

On Conditions

IF v > thresh AND spiking < 0.5 THEN

   spiking = 1

   EVENT OUT on port: spike

IF v < thresh THEN

   spiking = 0

Derived Variables

iChannels = populations[*]->i(reduce method: add)

iSyn = synapses[*]->i(reduce method: add) (exposed as iSyn)

iMemb = iChannels + iSyn (exposed as iMemb)

Time Derivatives

d v /dt = iMemb / C

pointCellCondBasedCa

extends baseCellMembPotCap

TEMPORARY: Point cell with conductances and Ca concentration info. Not yet fully tested!!! TODO: Remove in favour of cell.

C

Total capacitance of the cell membrane (from baseCellMembPotCap)

capacitance

thresh

The voltage threshold above which the cell is considered to be _spiking

voltage

v0

The initial membrane potential of the cell

voltage

populations

baseChannelPopulation

concentrationModels

concentrationModel

caConc

concentration

iCa

current

iMemb

Total current crossing the cell membrane (from baseCellMembPotCap)

current

iSyn

Total current due to synaptic inputs (from baseCellMembPotCap)

current

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

synapses

basePointCurrent

State Variables

v: voltage  (exposed as v)

spiking: Dimensionless

On Start

v = v0

spiking = 0

On Conditions

IF v > thresh AND spiking < 0.5 THEN

   spiking = 1

   EVENT OUT on port: spike

IF v < thresh THEN

   spiking = 0

Derived Variables

iChannels = populations[*]->i(reduce method: add)

iCa = populations[ion=‘ca’]->i(reduce method: add) (exposed as iCa)

caConc = concentrationModels[species=‘ca’]->concentration(reduce method: add) (exposed as caConc)

iSyn = synapses[*]->i(reduce method: add) (exposed as iSyn)

iMemb = iChannels + iSyn (exposed as iMemb)

Time Derivatives

d v /dt = iMemb / C

distal

extends point3DWithDiam

Point on a segment furthest from the soma. Should always be present in the description of a segment, unlike proximal.

diameter

Diameter of the ppoint. Note: no dimension used, see description of point3DWithDiam for details. (from point3DWithDiam)

Dimensionless

x

x coordinate of the point. Note: no dimension used, see description of point3DWithDiam for details. (from point3DWithDiam)

Dimensionless

y

y coordinate of the ppoint. Note: no dimension used, see description of point3DWithDiam for details. (from point3DWithDiam)

Dimensionless

z

z coordinate of the ppoint. Note: no dimension used, see description of point3DWithDiam for details. (from point3DWithDiam)

Dimensionless

radius

A dimensional quantity given by half the _diameter. (from point3DWithDiam)

length

xLength

A version of _x with dimension length. (from point3DWithDiam)

length

yLength

A version of _y with dimension length. (from point3DWithDiam)

length

zLength

A version of _z with dimension length. (from point3DWithDiam)

length

<distal x="10" y="0" z="0" diameter="10"/>
<distal x="20" y="0" z="0" diameter="3"/>
<distal x="30" y="0" z="0" diameter="1"/>

proximal

extends point3DWithDiam

Point on a segment closest to the soma. Note, the proximal point can be omitted, and in this case is defined as being the point fractionAlong between the proximal and distal point of the parent, i.e. if fractionAlong = 1 ( as it is by default ) it will be the distal on the parent, or if fractionAlong = 0, it will be the proximal point. If between 0 and 1, it is the linear interpolation between the two points.

diameter

Diameter of the ppoint. Note: no dimension used, see description of point3DWithDiam for details. (from point3DWithDiam)

Dimensionless

x

x coordinate of the point. Note: no dimension used, see description of point3DWithDiam for details. (from point3DWithDiam)

Dimensionless

y

y coordinate of the ppoint. Note: no dimension used, see description of point3DWithDiam for details. (from point3DWithDiam)

Dimensionless

z

z coordinate of the ppoint. Note: no dimension used, see description of point3DWithDiam for details. (from point3DWithDiam)

Dimensionless

radius

A dimensional quantity given by half the _diameter. (from point3DWithDiam)

length

xLength

A version of _x with dimension length. (from point3DWithDiam)

length

yLength

A version of _y with dimension length. (from point3DWithDiam)

length

zLength

A version of _z with dimension length. (from point3DWithDiam)

length

<proximal x="0" y="0" z="0" diameter="10"/>
<proximal x="25" y="0" z="0" diameter="0.1"/>
<proximal x="0" y="0" z="0" diameter="10"/>

parent

Specifies the segment which is this segment’s parent. The fractionAlong specifies where it is connected, usually 1 ( the default value ), meaning the distal point of the parent, or 0, meaning the proximal point. If it is between these, a linear interpolation between the 2 points should be used.

segment

The id of the parent segment

fractionAlong

The fraction along the the parent segment at which this segment is attached. For usage see proximal

<parent segment="0"/>
<parent segment="1"/>
<parent segment="2" fractionAlong="0.5"/>

segment

A segment defines the smallest unit within a possibly branching structure ( morphology ), such as a dendrite or axon. Its id should be a nonnegative integer ( usually soma/root = 0 ). Its end points are given by the proximal and distal points. The proximal point can be omitted, usually because it is the same as a point on the parent segment, see proximal for details. parent specifies the parent segment. The first segment of a cell ( with no parent ) usually represents the soma. The shape is normally a cylinder ( radii of the proximal and distal equal, but positions different ) or a conical frustum ( radii and positions different ). If the x, y, x positions of the proximal and distal are equal, the segment can be interpreted as a sphere, and in this case the radii of these points must be equal. NOTE: LEMS does not yet support multicompartmental modelling, so the Dynamics here is only appropriate for single compartment modelling.

name

An optional name for the segment. Convenient for providing a suitable variable name for generated code, e.g. soma, dend0

parent

parent

distal

distal

proximal

proximal

LEN = 1m

length

length

length

radDist

length

surfaceArea

area

Derived Variables

radDist = distal->radius (exposed as radDist)

dx = distal->xLength

dy = distal->yLength

dz = distal->zLength

px = proximal->xLength

py = proximal->yLength

pz = proximal->zLength

length = sqrt(((dx - px) * (dx - px) + (dy - py) * (dy - py) + (dz - pz) * (dz - pz))/(LEN * LEN)) * LEN (exposed as length)

Conditional Derived Variables

IF length = 0 * LEN THEN

surfaceArea = 4 * radDist * radDist * 3.14159265  (exposed as surfaceArea)

IF length > 0 * LEN THEN

surfaceArea = 2 * radDist * 3.14159265 * length  (exposed as surfaceArea)

Go to the libNeuroML documentation

from neuroml import Segment

variable = Segment(neuro_lex_id=None, id=None, name=None, parent=None, proximal=None, distal=None, **kwargs_)
<segment id="3" name="Spine1">
                <parent segment="2" fractionAlong="0.5"/>
                <proximal x="25" y="0" z="0" diameter="0.1"/>
                <distal x="25" y="0.2" z="0" diameter="0.1"/>
            </segment>
<segment id="0" name="Soma">
                
                <proximal x="0" y="0" z="0" diameter="10"/>
                <distal x="10" y="0" z="0" diameter="10"/>
            </segment>
<segment id="1" name="Dendrite1">
                <parent segment="0"/>
                
                <distal x="20" y="0" z="0" diameter="3"/>
            </segment>

segmentGroup

A method to describe a group of segments in a morphology, e.g. soma_group, dendrite_group, axon_group. While a name is useful to describe the group, the neuroLexId attribute can be used to explicitly specify the meaning of the group, e.g. sao1044911821 for ‘Neuronal Cell Body’, sao1211023249 for ‘Dendrite’. The segments in this group can be specified as: a list of individual member segments; a path, all of the segments along which should be included; a subTree of the cell to include; other segmentGroups to include ( so all segments from those get included here ). An inhomogeneousParameter can be defined on the region of the cell specified by this group ( see variableParameter for usage ).

neuroLexId

An id string for pointing to an entry in the NeuroLex ontology. Use of this attribute is a shorthand for a full RDF based reference to the MIRIAM Resource urn:miriam:neurolex, with an bqbiol:is qualifier.

notes

notes

annotation

annotation

property

property

members

member

paths

path

subTrees

subTree

includes

include

inhomogeneousParameter

inhomogeneousParameter

Go to the libNeuroML documentation

from neuroml import SegmentGroup

variable = SegmentGroup(neuro_lex_id=None, id=None, notes=None, properties=None, annotation=None, members=None, includes=None, paths=None, sub_trees=None, inhomogeneous_parameters=None, **kwargs_)
<segmentGroup id="dendrite_group" neuroLexId="sao1211023249">    
                <member segment="1"/>
                <member segment="2"/>
                <member segment="3"/>
            </segmentGroup>
<segmentGroup id="soma_group" neuroLexId="sao1044911821">     
                <member segment="0"/>
            </segmentGroup>
<segmentGroup id="spines" neuroLexId="sao1145756102">    
                <member segment="3"/>
            </segmentGroup>

member

A single identified segment which is part of the segmentGroup.

segment

Go to the libNeuroML documentation

from neuroml import Member

variable = Member(segments=None, **kwargs_)
<member segment="0"/>
<member segment="1"/>
<member segment="2"/>

from

In a path or subTree, specifies which segment ( inclusive ) from which to calculate the segmentGroup.

segment

<from segment="1"/>
<from segment="1"/>

to

In a path, specifies which segment ( inclusive ) up to which to calculate the segmentGroup.

segment

<to segment="2"/>

include

Include all members of another segmentGroup in this group.

href

TODO: fix this!!! This is needed here, since include is used to include external nml files!!

segmentGroup

Go to the libNeuroML documentation

from neuroml import Include

variable = Include(segment_groups=None, **kwargs_)
<include href="NML2_SingleCompHHCell.nml"/>
<include href="NML2_SimpleIonChannel.nml"/>
<include href="NML2_SimpleIonChannel.nml"/>

path

Include all the segments between those specified by from and to, inclusive.

from

from

to

to

Go to the libNeuroML documentation

from neuroml import Path

variable = Path(from_=None, to=None, **kwargs_)
<path>
                    <from segment="1"/>
                    <to segment="2"/>
                </path>

subTree

Include all the segments distal to that specified by from in the segmentGroup.

from

from

Go to the libNeuroML documentation

from neuroml import SubTree

variable = SubTree(from_=None, to=None, **kwargs_)
<subTree>
                    <from segment="1"/>
                </subTree>

inhomogeneousParameter

An inhomogeneous parameter specified across the segmentGroup ( see variableParameter for usage ).

variable

metric

Go to the libNeuroML documentation

from neuroml import InhomogeneousParameter

variable = InhomogeneousParameter(neuro_lex_id=None, id=None, variable=None, metric=None, proximal=None, distal=None, **kwargs_)
<inhomogeneousParameter id="dendrite_group_x2" variable="r" metric="Path Length from root">
                        <proximal translationStart="0"/>
                        <distal normalizationEnd="1"/>
                </inhomogeneousParameter>
<inhomogeneousParameter id="dendrite_group_x1" variable="p" metric="Path Length from root"/>

proximalProperties

What to do at the proximal point when creating an inhomogeneous parameter.

translationStart

distalProperties

What to do at the distal point when creating an inhomogeneous parameter.

normalizationEnd

morphology

The collection of segments which specify the 3D structure of the cell, along with a number of segmentGroups.

segments

segment

segmentGroups

segmentGroup

Go to the libNeuroML documentation

from neuroml import Morphology

variable = Morphology(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, segments=None, segment_groups=None, **kwargs_)
<morphology id="SpikingCell_morphology">
            <segment id="0" name="Soma">
                
                <proximal x="0" y="0" z="0" diameter="10"/>
                <distal x="10" y="0" z="0" diameter="10"/>
            </segment>
            <segment id="1" name="Dendrite1">
                <parent segment="0"/>
                
                <distal x="20" y="0" z="0" diameter="3"/>
            </segment>
            <segment id="2" name="Dendrite2">
                <parent segment="1"/>
                <distal x="30" y="0" z="0" diameter="1"/>
            </segment>
            <segment id="3" name="Spine1">
                <parent segment="2" fractionAlong="0.5"/>
                <proximal x="25" y="0" z="0" diameter="0.1"/>
                <distal x="25" y="0.2" z="0" diameter="0.1"/>
            </segment>
            
            <segmentGroup id="soma_group" neuroLexId="sao1044911821">     
                <member segment="0"/>
            </segmentGroup>
            <segmentGroup id="dendrite_group" neuroLexId="sao1211023249">    
                <member segment="1"/>
                <member segment="2"/>
                <member segment="3"/>
            </segmentGroup>
            <segmentGroup id="spines" neuroLexId="sao1145756102">    
                <member segment="3"/>
            </segmentGroup>
        </morphology>
<morphology id="NeuroMorpho_PyrCell123">  
        <segment id="0" name="Soma">
            
            <proximal x="0" y="0" z="0" diameter="10"/>
            <distal x="10" y="0" z="0" diameter="10"/>
        </segment>
        
    </morphology>
<morphology id="SimpleCell_Morphology">
            
            <segment id="0" name="Soma">    
                
                <proximal x="0" y="0" z="0" diameter="10"/>
                <distal x="10" y="0" z="0" diameter="10"/>
            </segment>
            <segment id="1" name="MainDendrite1">
                <parent segment="0"/>
                
                <proximal x="10" y="0" z="0" diameter="3"/> 
                <distal x="20" y="0" z="0" diameter="3"/>
            </segment>
            <segment id="2" name="MainDendrite2">
                <parent segment="1"/>
                
                <distal x="30" y="0" z="0" diameter="1"/>
            </segment>
            
            <segmentGroup id="soma_group" neuroLexId="sao1044911821">    
                <member segment="0"/>
            </segmentGroup>
            <segmentGroup id="dendrite_group" neuroLexId="sao1211023249">
                <member segment="1"/>
                <member segment="2"/>
                
                <inhomogeneousParameter id="dendrite_group_x1" variable="p" metric="Path Length from root"/>
 
                <inhomogeneousParameter id="dendrite_group_x2" variable="r" metric="Path Length from root">
                        <proximal translationStart="0"/>
                        <distal normalizationEnd="1"/>
                </inhomogeneousParameter>
                
            </segmentGroup>
        </morphology>

specificCapacitance

Capacitance per unit area.

segmentGroup

Derived Variables

specCap = value (exposed as specCap)

Go to the libNeuroML documentation

from neuroml import SpecificCapacitance

variable = SpecificCapacitance(value=None, segment_groups='all', segments=None, **kwargs_)
<specificCapacitance segmentGroup="soma_group" value="1.0 uF_per_cm2"/>
<specificCapacitance segmentGroup="dendrite_group" value="2.0 uF_per_cm2"/>
<specificCapacitance segmentGroup="soma_group" value="1.0 uF_per_cm2"/>

initMembPotential

Explicitly set initial membrane potential for the cell.

value

voltage

Go to the libNeuroML documentation

from neuroml import InitMembPotential

variable = InitMembPotential(value=None, segment_groups='all', segments=None, **kwargs_)
<initMembPotential value="-65mV"/>
<initMembPotential value="-65mV"/>

spikeThresh

Membrane potential at which to emit a spiking event. Note, usually the spiking event will not be emitted again until the membrane potential has fallen below this value and rises again to cross it in a positive direction.

value

voltage

Go to the libNeuroML documentation

from neuroml import SpikeThresh

variable = SpikeThresh(value=None, segment_groups='all', segments=None, **kwargs_)
<spikeThresh value="-20mV"/>
<spikeThresh value="-20mV"/>

membraneProperties

Properties specific to the membrane, such as the populations of channels, channelDensities, specificCapacitance, etc.

initMembPotential

initMembPotential

spikeThresh

spikeThresh

specificCapacitances

specificCapacitance

populations

baseChannelPopulation

channelDensities

baseChannelDensity

iCa

current

totChanCurrent

current

totSpecCap

specificCapacitance

surfaceArea

area

Derived Variables

totSpecCap = specificCapacitances[*]->specCap(reduce method: add) (exposed as totSpecCap)

totChanPopCurrent = populations[*]->i(reduce method: add)

totChanDensCurrentDensity = channelDensities[*]->iDensity(reduce method: add)

totChanCurrent = totChanPopCurrent + (totChanDensCurrentDensity * surfaceArea) (exposed as totChanCurrent)

totChanPopCurrentCa = populations[ion=‘ca’]->i(reduce method: add)

totChanDensCurrentDensityCa = channelDensities[ion=‘ca’]->iDensity(reduce method: add)

iCa = totChanPopCurrentCa + (totChanDensCurrentDensityCa * surfaceArea) (exposed as iCa)

Go to the libNeuroML documentation

from neuroml import MembraneProperties

variable = MembraneProperties(channel_populations=None, channel_densities=None, channel_density_v_shifts=None, channel_density_nernsts=None, channel_density_ghks=None, channel_density_ghk2s=None, channel_density_non_uniforms=None, channel_density_non_uniform_nernsts=None, channel_density_non_uniform_ghks=None, spike_threshes=None, specific_capacitances=None, init_memb_potentials=None, extensiontype_=None, **kwargs_)
<membraneProperties>
                <channelPopulation id="naChansDend" ionChannel="NaConductance" segment="2" number="120000" erev="50mV" ion="na"/>   
                <channelDensity id="pasChans" ionChannel="pas" condDensity="3.0 S_per_m2" erev="-70mV" ion="non_specific"/> 
                <channelDensity id="naChansSoma" ionChannel="NaConductance" segmentGroup="soma_group" condDensity="120.0 mS_per_cm2" erev="50mV" ion="na"/>
                <specificCapacitance segmentGroup="soma_group" value="1.0 uF_per_cm2"/>
                <specificCapacitance segmentGroup="dendrite_group" value="2.0 uF_per_cm2"/>
            </membraneProperties>
<membraneProperties> 
        
            
            <channelDensity id="naChans" ionChannel="HH_Na" segmentGroup="soma_group" condDensity="120.0 mS_per_cm2" ion="na" erev="50mV"/>  
            <!-- Ions present inside the cell. Note: a fixed reversal potential is specified here  
            <reversalPotential species="na" value="50mV"/>
            <reversalPotential species="k" value="-77mV"/>-->
            
        </membraneProperties>
<membraneProperties>
                <channelDensityNonUniform id="nonuniform_na_chans" ionChannel="NaConductance" erev="50mV" ion="na">
                    <variableParameter parameter="condDensity" segmentGroup="dendrite_group">
                        <inhomogeneousValue inhomogeneousParameter="dendrite_group_x1" value="5e-7 * exp(-p/200)"/>  
                    </variableParameter>
                </channelDensityNonUniform>
                <specificCapacitance segmentGroup="soma_group" value="1.0 uF_per_cm2"/>
            </membraneProperties>

membraneProperties2CaPools

extends membraneProperties

Variant of membraneProperties with 2 independent Ca pools.

initMembPotential

initMembPotential

spikeThresh

spikeThresh

specificCapacitances

specificCapacitance

populations

baseChannelPopulation

channelDensities

baseChannelDensity

iCa

(from membraneProperties)

current

iCa2

current

totChanCurrent

(from membraneProperties)

current

totSpecCap

(from membraneProperties)

specificCapacitance

surfaceArea

area

surfaceArea

(from membraneProperties)

area

Derived Variables

totSpecCap = specificCapacitances[*]->specCap(reduce method: add) (exposed as totSpecCap)

totChanPopCurrent = populations[*]->i(reduce method: add)

totChanDensCurrentDensity = channelDensities[*]->iDensity(reduce method: add)

totChanCurrent = totChanPopCurrent + (totChanDensCurrentDensity * surfaceArea) (exposed as totChanCurrent)

totChanPopCurrentCa = populations[ion=‘ca’]->i(reduce method: add)

totChanDensCurrentDensityCa = channelDensities[ion=‘ca’]->iDensity(reduce method: add)

iCa = totChanPopCurrentCa + (totChanDensCurrentDensityCa * surfaceArea) (exposed as iCa)

totChanPopCurrentCa2 = populations[ion=‘ca2’]->i(reduce method: add)

totChanDensCurrentDensityCa2 = channelDensities[ion=‘ca2’]->iDensity(reduce method: add)

iCa2 = totChanPopCurrentCa2 + (totChanDensCurrentDensityCa2 * surfaceArea) (exposed as iCa2)

Go to the libNeuroML documentation

from neuroml import MembraneProperties2CaPools

variable = MembraneProperties2CaPools(channel_populations=None, channel_densities=None, channel_density_v_shifts=None, channel_density_nernsts=None, channel_density_ghks=None, channel_density_ghk2s=None, channel_density_non_uniforms=None, channel_density_non_uniform_nernsts=None, channel_density_non_uniform_ghks=None, spike_threshes=None, specific_capacitances=None, init_memb_potentials=None, channel_density_nernst_ca2s=None, **kwargs_)

biophysicalProperties

The biophysical properties of the cell, including the membraneProperties and the intracellularProperties.

membraneProperties

membraneProperties

intracellularProperties

intracellularProperties

totSpecCap

specificCapacitance

Derived Variables

totSpecCap = membraneProperties->totSpecCap (exposed as totSpecCap)

Go to the libNeuroML documentation

from neuroml import BiophysicalProperties

variable = BiophysicalProperties(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, membrane_properties=None, intracellular_properties=None, extracellular_properties=None, **kwargs_)
<biophysicalProperties id="bio_cell">
            <membraneProperties>
                <channelPopulation id="naChansDend" ionChannel="NaConductance" segment="2" number="120000" erev="50mV" ion="na"/>   
                <channelDensity id="pasChans" ionChannel="pas" condDensity="3.0 S_per_m2" erev="-70mV" ion="non_specific"/> 
                <channelDensity id="naChansSoma" ionChannel="NaConductance" segmentGroup="soma_group" condDensity="120.0 mS_per_cm2" erev="50mV" ion="na"/>
                <specificCapacitance segmentGroup="soma_group" value="1.0 uF_per_cm2"/>
                <specificCapacitance segmentGroup="dendrite_group" value="2.0 uF_per_cm2"/>
            </membraneProperties>
            <intracellularProperties>
                <resistivity value="0.1 kohm_cm"/>  
            </intracellularProperties>
        </biophysicalProperties>
<biophysicalProperties id="PyrCellChanDist">
        <membraneProperties> 
        
            
            <channelDensity id="naChans" ionChannel="HH_Na" segmentGroup="soma_group" condDensity="120.0 mS_per_cm2" ion="na" erev="50mV"/>  
            <!-- Ions present inside the cell. Note: a fixed reversal potential is specified here  
            <reversalPotential species="na" value="50mV"/>
            <reversalPotential species="k" value="-77mV"/>-->
            
        </membraneProperties>
        <intracellularProperties>  
            <resistivity value="0.1 kohm_cm"/>  
            <!-- REMOVED UNTIL WE CHECK HOW THE USAGE OF LEMS IMPACTS THIS...
            <biochemistry reactionScheme="InternalCaDynamics"/>  Ref to earlier pathway -->
        </intracellularProperties>
    </biophysicalProperties>
<biophysicalProperties id="biophys">
            <membraneProperties>
                <channelDensityNonUniform id="nonuniform_na_chans" ionChannel="NaConductance" erev="50mV" ion="na">
                    <variableParameter parameter="condDensity" segmentGroup="dendrite_group">
                        <inhomogeneousValue inhomogeneousParameter="dendrite_group_x1" value="5e-7 * exp(-p/200)"/>  
                    </variableParameter>
                </channelDensityNonUniform>
                <specificCapacitance segmentGroup="soma_group" value="1.0 uF_per_cm2"/>
            </membraneProperties>
            <intracellularProperties>
                <resistivity value="0.1 kohm_cm"/>  
            </intracellularProperties>
        </biophysicalProperties>

biophysicalProperties2CaPools

The biophysical properties of the cell, including the membraneProperties2CaPools and the intracellularProperties2CaPools for a cell with two Ca pools.

membraneProperties2CaPools

membraneProperties2CaPools

intracellularProperties2CaPools

intracellularProperties2CaPools

totSpecCap

specificCapacitance

Derived Variables

totSpecCap = membraneProperties2CaPools->totSpecCap (exposed as totSpecCap)

Go to the libNeuroML documentation

from neuroml import BiophysicalProperties2CaPools

variable = BiophysicalProperties2CaPools(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, membrane_properties2_ca_pools=None, intracellular_properties2_ca_pools=None, extracellular_properties=None, **kwargs_)

intracellularProperties

Biophysical properties related to the intracellular space within the cell, such as the resistivity and the list of ionic species present. caConc and caConcExt are explicitly exposed here to facilitate accessing these values from other Components, even though caConcExt is clearly not an intracellular property.

resistivity

resistivity

speciesList

species

caConc

concentration

caConcExt

concentration

Derived Variables

caConc = speciesList[ion=‘ca’]->concentration(reduce method: add) (exposed as caConc)

caConcExt = speciesList[ion=‘ca’]->extConcentration(reduce method: add) (exposed as caConcExt)

Go to the libNeuroML documentation

from neuroml import IntracellularProperties

variable = IntracellularProperties(species=None, resistivities=None, extensiontype_=None, **kwargs_)
<intracellularProperties>
                <resistivity value="0.1 kohm_cm"/>  
            </intracellularProperties>
<intracellularProperties>  
            <resistivity value="0.1 kohm_cm"/>  
            <!-- REMOVED UNTIL WE CHECK HOW THE USAGE OF LEMS IMPACTS THIS...
            <biochemistry reactionScheme="InternalCaDynamics"/>  Ref to earlier pathway -->
        </intracellularProperties>
<intracellularProperties>
                <resistivity value="0.1 kohm_cm"/>  
            </intracellularProperties>

intracellularProperties2CaPools

extends intracellularProperties

Variant of intracellularProperties with 2 independent Ca pools.

speciesList

species

resistivity

resistivity

Derived Variables

caConc2 = speciesList[ion=‘ca2’]->concentration(reduce method: add) (exposed as caConc2)

caConcExt2 = speciesList[ion=‘ca2’]->extConcentration(reduce method: add) (exposed as caConcExt2)

caConc = speciesList[ion=‘ca’]->concentration(reduce method: add) (exposed as caConc)

caConcExt = speciesList[ion=‘ca’]->extConcentration(reduce method: add) (exposed as caConcExt)

Go to the libNeuroML documentation

from neuroml import IntracellularProperties2CaPools

variable = IntracellularProperties2CaPools(species=None, resistivities=None, **kwargs_)

resistivity

The resistivity, or specific axial resistance, of the cytoplasm.

value

resistivity

segmentGroup

Go to the libNeuroML documentation

from neuroml import Resistivity

variable = Resistivity(value=None, segment_groups='all', segments=None, **kwargs_)
<resistivity value="0.1 kohm_cm"/>
<resistivity value="0.1 kohm_cm"/>
<resistivity value="0.1 kohm_cm"/>

concentrationModel

Base for any model of an ion concentration which changes with time. Internal ( concentration ) and external ( extConcentration ) values for the concentration of the ion are given.

ion

concentration

concentration

extConcentration

concentration

initialConcentration

concentration

initialExtConcentration

concentration

surfaceArea

area

State Variables

concentration: concentration  (exposed as concentration)

extConcentration: concentration  (exposed as extConcentration)

On Start

concentration = initialConcentration

extConcentration = initialExtConcentration

decayingPoolConcentrationModel

extends concentrationModel

Model of an intracellular buffering mechanism for ion ( currently hard Coded to be calcium, due to requirement for iCa ) which has a baseline level restingConc and tends to this value with time course decayConstant. The ion is assumed to occupy a shell inside the membrane of thickness shellThickness..

decayConstant

time

restingConc

concentration

shellThickness

length

ion

Faraday = 96485.3C_per_mol

charge_per_mole

AREA_SCALE = 1m2

area

LENGTH_SCALE = 1m

length

concentration

(from concentrationModel)

concentration

extConcentration

(from concentrationModel)

concentration

iCa

current

initialConcentration

(from concentrationModel)

concentration

initialExtConcentration

(from concentrationModel)

concentration

surfaceArea

(from concentrationModel)

area

State Variables

concentration: concentration  (exposed as concentration)

extConcentration: concentration  (exposed as extConcentration)

On Start

concentration = initialConcentration

extConcentration = initialExtConcentration

On Conditions

IF concentration < 0 THEN

   concentration = 0

Derived Variables

effectiveRadius = LENGTH_SCALE * sqrt(surfaceArea/(AREA_SCALE * (4 * 3.14159)))

innerRadius = effectiveRadius - shellThickness

shellVolume = (4 * (effectiveRadius * effectiveRadius * effectiveRadius) * 3.14159 / 3) - (4 * (innerRadius * innerRadius * innerRadius) * 3.14159 / 3)

Time Derivatives

d concentration /dt = iCa / (2 * Faraday * shellVolume) - ((concentration - restingConc) / decayConstant)

Go to the libNeuroML documentation

from neuroml import DecayingPoolConcentrationModel

variable = DecayingPoolConcentrationModel(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, ion=None, resting_conc=None, decay_constant=None, shell_thickness=None, extensiontype_=None, **kwargs_)

fixedFactorConcentrationModel

extends concentrationModel

Model of buffering of concentration of an ion ( currently hard coded to be calcium, due to requirement for iCa ) which has a baseline level restingConc and tends to this value with time course decayConstant. A fixed factor rho is used to scale the incoming current independently of the size of the compartment to produce a concentration change.

decayConstant

time

restingConc

concentration

rho

rho_factor

ion

concentration

(from concentrationModel)

concentration

extConcentration

(from concentrationModel)

concentration

iCa

current

initialConcentration

(from concentrationModel)

concentration

initialExtConcentration

(from concentrationModel)

concentration

surfaceArea

area

surfaceArea

(from concentrationModel)

area

State Variables

concentration: concentration  (exposed as concentration)

extConcentration: concentration  (exposed as extConcentration)

On Start

concentration = initialConcentration

extConcentration = initialExtConcentration

On Conditions

IF concentration < 0 THEN

   concentration = 0

Time Derivatives

d concentration /dt = (iCa/surfaceArea) * rho - ((concentration - restingConc) / decayConstant)

Go to the libNeuroML documentation

from neuroml import FixedFactorConcentrationModel

variable = FixedFactorConcentrationModel(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, ion=None, resting_conc=None, decay_constant=None, rho=None, **kwargs_)

fixedFactorConcentrationModelTraub

extends concentrationModel

Model of buffering of concentration of an ion ( currently hard coded to be calcium, due to requirement for iCa ) which has a baseline level restingConc and tends to this value with time course 1 / beta. A fixed factor phi is used to scale the incoming current independently of the size of the compartment to produce a concentration change. Not recommended for use in models other than Traub et al. 2005!

beta

per_time

phi

rho_factor

restingConc

concentration

species

concentration

(from concentrationModel)

concentration

extConcentration

(from concentrationModel)

concentration

iCa

current

initialConcentration

(from concentrationModel)

concentration

initialExtConcentration

(from concentrationModel)

concentration

surfaceArea

area

surfaceArea

(from concentrationModel)

area

State Variables

concentration: concentration  (exposed as concentration)

extConcentration: concentration  (exposed as extConcentration)

On Start

concentration = initialConcentration

extConcentration = initialExtConcentration

On Conditions

IF concentration < 0 THEN

   concentration = 0

Time Derivatives

d concentration /dt = (iCa/surfaceArea) * 1e-9 * phi - ((concentration - restingConc) * beta)

species

Description of a chemical species identified by ion, which has internal, concentration, and external, extConcentration values for its concentration.

initialConcentration

concentration

initialExtConcentration

concentration

ion

segmentGroup

concentrationModel

concentrationModel

concentration

concentration

extConcentration

concentration

Structure

CHILD INSTANCE: concentrationModel

Derived Variables

concentration = concentrationModel->concentration (exposed as concentration)

extConcentration = concentrationModel->extConcentration (exposed as extConcentration)

Go to the libNeuroML documentation

from neuroml import Species

variable = Species(value=None, segment_groups='all', segments=None, id=None, concentration_model=None, ion=None, initial_concentration=None, initial_ext_concentration=None, **kwargs_)

cell

extends baseCellMembPot

Cell with segments specified in a morphology element along with details on its biophysicalProperties. NOTE: this can only be correctly simulated using jLEMS when there is a single segment in the cell, and v of this cell represents the membrane potential in that isopotential segment.

neuroLexId

morphology

Should only be used if morphology element is outside the cell. This points to the id of the morphology.

morphology

biophysicalProperties

Should only be used if biophysicalProperties element is outside the cell. This points to the id of the biophysicalProperties

biophysicalProperties

caConc

concentration

caConcExt

concentration

iCa

current

iChannels

current

iSyn

current

spiking

Dimensionless

surfaceArea

area

totSpecCap

specificCapacitance

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

synapses

basePointCurrent

State Variables

v: voltage  (exposed as v)

spiking: Dimensionless  (exposed as spiking)

On Start

spiking = 0

v = initMembPot

On Conditions

IF v > thresh AND spiking < 0.5 THEN

   spiking = 1

   EVENT OUT on port: spike

IF v < thresh THEN

   spiking = 0

Derived Variables

initMembPot = biophysicalProperties->membraneProperties->initMembPotential->value

thresh = biophysicalProperties->membraneProperties->spikeThresh->value

surfaceArea = morphology->segments[*]->surfaceArea(reduce method: add) (exposed as surfaceArea)

totSpecCap = biophysicalProperties->totSpecCap (exposed as totSpecCap)

totCap = totSpecCap * surfaceArea

iChannels = biophysicalProperties->membraneProperties->totChanCurrent (exposed as iChannels)

iSyn = synapses[*]->i(reduce method: add) (exposed as iSyn)

iCa = biophysicalProperties->membraneProperties->iCa (exposed as iCa)

caConc = biophysicalProperties->intracellularProperties->caConc (exposed as caConc)

caConcExt = biophysicalProperties->intracellularProperties->caConcExt (exposed as caConcExt)

Time Derivatives

d v /dt = (iChannels + iSyn) / totCap

Go to the libNeuroML documentation

from neuroml import Cell

variable = Cell(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, morphology_attr=None, biophysical_properties_attr=None, morphology=None, biophysical_properties=None, extensiontype_=None, **kwargs_)
<cell id="SpikingCell" metaid="HippoCA1Cell">
        <notes>A Simple Spiking cell for testing purposes</notes>
        
        <annotation>
            <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
              <rdf:Description rdf:about="HippoCA1Cell">
                <bqbiol:is>
                  <rdf:Bag>
                    
                    <rdf:li rdf:resource="urn:miriam:neurondb:258"/>
                  </rdf:Bag>
                </bqbiol:is>
              </rdf:Description>
            </rdf:RDF>
        </annotation>
        <morphology id="SpikingCell_morphology">
            <segment id="0" name="Soma">
                
                <proximal x="0" y="0" z="0" diameter="10"/>
                <distal x="10" y="0" z="0" diameter="10"/>
            </segment>
            <segment id="1" name="Dendrite1">
                <parent segment="0"/>
                
                <distal x="20" y="0" z="0" diameter="3"/>
            </segment>
            <segment id="2" name="Dendrite2">
                <parent segment="1"/>
                <distal x="30" y="0" z="0" diameter="1"/>
            </segment>
            <segment id="3" name="Spine1">
                <parent segment="2" fractionAlong="0.5"/>
                <proximal x="25" y="0" z="0" diameter="0.1"/>
                <distal x="25" y="0.2" z="0" diameter="0.1"/>
            </segment>
            
            <segmentGroup id="soma_group" neuroLexId="sao1044911821">     
                <member segment="0"/>
            </segmentGroup>
            <segmentGroup id="dendrite_group" neuroLexId="sao1211023249">    
                <member segment="1"/>
                <member segment="2"/>
                <member segment="3"/>
            </segmentGroup>
            <segmentGroup id="spines" neuroLexId="sao1145756102">    
                <member segment="3"/>
            </segmentGroup>
        </morphology>
        <biophysicalProperties id="bio_cell">
            <membraneProperties>
                <channelPopulation id="naChansDend" ionChannel="NaConductance" segment="2" number="120000" erev="50mV" ion="na"/>   
                <channelDensity id="pasChans" ionChannel="pas" condDensity="3.0 S_per_m2" erev="-70mV" ion="non_specific"/> 
                <channelDensity id="naChansSoma" ionChannel="NaConductance" segmentGroup="soma_group" condDensity="120.0 mS_per_cm2" erev="50mV" ion="na"/>
                <specificCapacitance segmentGroup="soma_group" value="1.0 uF_per_cm2"/>
                <specificCapacitance segmentGroup="dendrite_group" value="2.0 uF_per_cm2"/>
            </membraneProperties>
            <intracellularProperties>
                <resistivity value="0.1 kohm_cm"/>  
            </intracellularProperties>
        </biophysicalProperties>
    </cell>
<cell id="PyrCell" morphology="NeuroMorpho_PyrCell123" biophysicalProperties="PyrCellChanDist"/>
<cell id="SimpleCell">
        <morphology id="SimpleCell_Morphology">
            
            <segment id="0" name="Soma">    
                
                <proximal x="0" y="0" z="0" diameter="10"/>
                <distal x="10" y="0" z="0" diameter="10"/>
            </segment>
            <segment id="1" name="MainDendrite1">
                <parent segment="0"/>
                
                <proximal x="10" y="0" z="0" diameter="3"/> 
                <distal x="20" y="0" z="0" diameter="3"/>
            </segment>
            <segment id="2" name="MainDendrite2">
                <parent segment="1"/>
                
                <distal x="30" y="0" z="0" diameter="1"/>
            </segment>
            
            <segmentGroup id="soma_group" neuroLexId="sao1044911821">    
                <member segment="0"/>
            </segmentGroup>
            <segmentGroup id="dendrite_group" neuroLexId="sao1211023249">
                <member segment="1"/>
                <member segment="2"/>
                
                <inhomogeneousParameter id="dendrite_group_x1" variable="p" metric="Path Length from root"/>
 
                <inhomogeneousParameter id="dendrite_group_x2" variable="r" metric="Path Length from root">
                        <proximal translationStart="0"/>
                        <distal normalizationEnd="1"/>
                </inhomogeneousParameter>
                
            </segmentGroup>
        </morphology>
        
        <biophysicalProperties id="biophys">
            <membraneProperties>
                <channelDensityNonUniform id="nonuniform_na_chans" ionChannel="NaConductance" erev="50mV" ion="na">
                    <variableParameter parameter="condDensity" segmentGroup="dendrite_group">
                        <inhomogeneousValue inhomogeneousParameter="dendrite_group_x1" value="5e-7 * exp(-p/200)"/>  
                    </variableParameter>
                </channelDensityNonUniform>
                <specificCapacitance segmentGroup="soma_group" value="1.0 uF_per_cm2"/>
            </membraneProperties>
            <intracellularProperties>
                <resistivity value="0.1 kohm_cm"/>  
            </intracellularProperties>
        </biophysicalProperties>
    </cell>

cell2CaPools

extends cell

Variant of cell with two independent Ca2+ pools. Cell with segments specified in a morphology element along with details on its biophysicalProperties. NOTE: this can only be correctly simulated using jLEMS when there is a single segment in the cell, and v of this cell represents the membrane potential in that isopotential segment.

neuroLexId

biophysicalProperties2CaPools

biophysicalProperties2CaPools

caConc

(from cell)

concentration

caConc2

concentration

caConcExt

(from cell)

concentration

caConcExt2

concentration

iCa

(from cell)

current

iCa2

current

iChannels

(from cell)

current

iSyn

(from cell)

current

spiking

(from cell)

Dimensionless

surfaceArea

(from cell)

area

totSpecCap

(from cell)

specificCapacitance

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

synapses

basePointCurrent

State Variables

v: voltage  (exposed as v)

spiking: Dimensionless  (exposed as spiking)

On Start

spiking = 0

v = initMembPot

On Conditions

IF v > thresh AND spiking < 0.5 THEN

   spiking = 1

   EVENT OUT on port: spike

IF v < thresh THEN

   spiking = 0

Derived Variables

initMembPot = biophysicalProperties2CaPools->membraneProperties2CaPools->initMembPotential->value

thresh = biophysicalProperties2CaPools->membraneProperties2CaPools->spikeThresh->value

surfaceArea = morphology->segments[*]->surfaceArea(reduce method: add) (exposed as surfaceArea)

totSpecCap = biophysicalProperties2CaPools->totSpecCap (exposed as totSpecCap)

totCap = totSpecCap * surfaceArea

iChannels = biophysicalProperties2CaPools->membraneProperties2CaPools->totChanCurrent (exposed as iChannels)

iSyn = synapses[*]->i(reduce method: add) (exposed as iSyn)

iCa = biophysicalProperties2CaPools->membraneProperties2CaPools->iCa (exposed as iCa)

caConc = biophysicalProperties2CaPools->intracellularProperties2CaPools->caConc (exposed as caConc)

caConcExt = biophysicalProperties2CaPools->intracellularProperties2CaPools->caConcExt (exposed as caConcExt)

iCa2 = biophysicalProperties2CaPools->membraneProperties2CaPools->iCa2 (exposed as iCa2)

caConc2 = biophysicalProperties2CaPools->intracellularProperties2CaPools->caConc2 (exposed as caConc2)

caConcExt2 = biophysicalProperties2CaPools->intracellularProperties2CaPools->caConcExt2 (exposed as caConcExt2)

Time Derivatives

d v /dt = (iChannels + iSyn) / totCap

Go to the libNeuroML documentation

from neuroml import Cell2CaPools

variable = Cell2CaPools(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, morphology_attr=None, biophysical_properties_attr=None, morphology=None, biophysical_properties=None, biophysical_properties2_ca_pools=None, **kwargs_)

baseCellMembPotCap

extends baseCellMembPot

Any cell with a membrane potential v with voltage units and a membrane capacitance C. Also defines exposed value iSyn for current due to external synapses and iMemb for total transmembrane current ( usually channel currents plus iSyn ).

C

Total capacitance of the cell membrane

capacitance

iMemb

Total current crossing the cell membrane

current

iSyn

Total current due to synaptic inputs

current

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

Go to the libNeuroML documentation

from neuroml import BaseCellMembPotCap

variable = BaseCellMembPotCap(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, C=None, extensiontype_=None, **kwargs_)

baseIaf

extends baseCellMembPot

Base ComponentType for an integrate and fire cell which emits a spiking event at membrane potential thresh and and resets to reset.

reset

The value the membrane potential is reset to on spiking

voltage

thresh

The membrane potential at which to emit a spiking event and reset voltage

voltage

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

iafTauCell

extends baseIaf

Integrate and fire cell which returns to its leak reversal potential of leakReversal with a time constant tau.

leakReversal

voltage

reset

The value the membrane potential is reset to on spiking (from baseIaf)

voltage

tau

time

thresh

The membrane potential at which to emit a spiking event and reset voltage (from baseIaf)

voltage

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

State Variables

v: voltage  (exposed as v)

On Start

v = leakReversal

On Conditions

IF v > thresh THEN

   v = reset

   EVENT OUT on port: spike

Time Derivatives

d v /dt = (leakReversal - v) / tau

Go to the libNeuroML documentation

from neuroml import IafTauCell

variable = IafTauCell(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, leak_reversal=None, thresh=None, reset=None, tau=None, extensiontype_=None, **kwargs_)
<iafTauCell id="iafTau" leakReversal="-50mV" thresh="-55mV" reset="-70mV" tau="30ms"/>

iafTauRefCell

extends iafTauCell

Integrate and fire cell which returns to its leak reversal potential of leakReversal with a time course tau. It has a refractory period of refract after spiking.

leakReversal

(from iafTauCell)

voltage

refract

time

reset

The value the membrane potential is reset to on spiking (from baseIaf)

voltage

tau

(from iafTauCell)

time

thresh

The membrane potential at which to emit a spiking event and reset voltage (from baseIaf)

voltage

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

State Variables

v: voltage  (exposed as v)

lastSpikeTime: time

On Start

v = leakReversal

Regime: refractory (initial)

On Entry

   lastSpikeTime = t

   v = reset

On Conditions

   IF t > lastSpikeTime + refract THEN

    TRANSITION to REGIME integrating

Regime: integrating (initial)

On Conditions

   IF v > thresh THEN

    EVENT OUT on port: spike

    TRANSITION to REGIME refractory

Time Derivatives

   d v /dt = (leakReversal - v) / tau

Go to the libNeuroML documentation

from neuroml import IafTauRefCell

variable = IafTauRefCell(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, leak_reversal=None, thresh=None, reset=None, tau=None, refract=None, **kwargs_)
<iafTauRefCell id="iafTauRef" leakReversal="-50mV" thresh="-55mV" reset="-70mV" tau="30ms" refract="5ms"/>

baseIafCapCell

extends baseCellMembPotCap

Base Type for all Integrate and Fire cells with a capacitance C, threshold thresh and reset membrane potential reset.

C

Total capacitance of the cell membrane (from baseCellMembPotCap)

capacitance

reset

voltage

thresh

voltage

iMemb

Total current crossing the cell membrane (from baseCellMembPotCap)

current

iSyn

Total current due to synaptic inputs (from baseCellMembPotCap)

current

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

iafCell

extends baseIafCapCell

Integrate and fire cell with capacitance C, leakConductance and leakReversal.

C

Total capacitance of the cell membrane (from baseCellMembPotCap)

capacitance

leakConductance

conductance

leakReversal

voltage

reset

(from baseIafCapCell)

voltage

thresh

(from baseIafCapCell)

voltage

iMemb

Total current crossing the cell membrane (from baseCellMembPotCap)

current

iSyn

Total current due to synaptic inputs (from baseCellMembPotCap)

current

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

synapses

basePointCurrent

State Variables

v: voltage  (exposed as v)

On Start

v = leakReversal

On Conditions

IF v > thresh THEN

   v = reset

   EVENT OUT on port: spike

Derived Variables

iSyn = synapses[*]->i(reduce method: add) (exposed as iSyn)

iMemb = leakConductance * (leakReversal - v) + iSyn (exposed as iMemb)

Time Derivatives

d v /dt = iMemb / C

Go to the libNeuroML documentation

from neuroml import IafCell

variable = IafCell(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, leak_reversal=None, thresh=None, reset=None, C=None, leak_conductance=None, extensiontype_=None, **kwargs_)
<iafCell id="iaf" leakReversal="-50mV" thresh="-55mV" reset="-70mV" C="0.2nF" leakConductance="0.01uS"/>
<iafCell id="iaf" leakConductance="0.2nS" leakReversal="-70mV" thresh="-55mV" reset="-70mV" C="3.2pF"/>
<iafCell id="iaf" leakConductance="0.2nS" leakReversal="-70mV" thresh="-55mV" reset="-70mV" C="3.2pF"/>

iafRefCell

extends iafCell

Integrate and fire cell with capacitance C, leakConductance, leakReversal and refractory period refract.

C

Total capacitance of the cell membrane (from baseCellMembPotCap)

capacitance

leakConductance

(from iafCell)

conductance

leakReversal

(from iafCell)

voltage

refract

time

reset

(from baseIafCapCell)

voltage

thresh

(from baseIafCapCell)

voltage

iMemb

Total current crossing the cell membrane (from baseCellMembPotCap)

current

iSyn

Total current due to synaptic inputs (from baseCellMembPotCap)

current

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

synapses

basePointCurrent

State Variables

v: voltage  (exposed as v)

lastSpikeTime: time

On Start

v = leakReversal

Derived Variables

iSyn = synapses[*]->i(reduce method: add) (exposed as iSyn)

iMemb = leakConductance * (leakReversal - v) + iSyn (exposed as iMemb)

Regime: refractory (initial)

On Entry

   lastSpikeTime = t

   v = reset

On Conditions

   IF t > lastSpikeTime + refract THEN

    TRANSITION to REGIME integrating

Regime: integrating (initial)

On Conditions

   IF v > thresh THEN

    EVENT OUT on port: spike

    TRANSITION to REGIME refractory

Time Derivatives

   d v /dt = iMemb / C

Go to the libNeuroML documentation

from neuroml import IafRefCell

variable = IafRefCell(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, leak_reversal=None, thresh=None, reset=None, C=None, leak_conductance=None, refract=None, **kwargs_)
<iafRefCell id="iafRef" leakReversal="-50mV" thresh="-55mV" reset="-70mV" C="0.2nF" leakConductance="0.01uS" refract="5ms"/>

izhikevichCell

extends baseCellMembPot

Cell based on the 2003 model of Izhikevich, see http://izhikevich.org/publications/spikes.htm.

a

Dimensionless

b

Dimensionless

c

Dimensionless

d

Dimensionless

thresh

voltage

v0

voltage

MSEC = 1ms

time

MVOLT = 1mV

voltage

U

Dimensionless

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

State Variables

v: voltage  (exposed as v)

U: Dimensionless  (exposed as U)

On Start

v = v0

U = v0 * b / MVOLT

On Conditions

IF v > thresh THEN

   v = c * MVOLT

   U = U + d

   EVENT OUT on port: spike

Derived Variables

ISyn = synapses[*]->I(reduce method: add)

Time Derivatives

d v /dt = (0.04 * v^2 / MVOLT + 5 * v + (140.0 - U + ISyn) * MVOLT)/MSEC

d U /dt = a * (b * v / MVOLT - U) / MSEC

Go to the libNeuroML documentation

from neuroml import IzhikevichCell

variable = IzhikevichCell(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, v0=None, thresh=None, a=None, b=None, c=None, d=None, **kwargs_)
<izhikevichCell id="izBurst" v0="-70mV" thresh="30mV" a="0.02" b="0.2" c="-50.0" d="2"/>

izhikevich2007Cell

extends baseCellMembPotCap

Cell based on the modified Izhikevich model in Izhikevich 2007, Dynamical systems in neuroscience, MIT Press.

C

Total capacitance of the cell membrane (from baseCellMembPotCap)

capacitance

a

per_time

b

conductance

c

voltage

d

current

k

conductance_per_voltage

v0

voltage

vpeak

voltage

vr

voltage

vt

voltage

iMemb

Total current crossing the cell membrane (from baseCellMembPotCap)

current

iSyn

Total current due to synaptic inputs (from baseCellMembPotCap)

current

u

current

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

synapses

basePointCurrent

State Variables

v: voltage  (exposed as v)

u: current  (exposed as u)

On Start

v = v0

u = 0

On Conditions

IF v > vpeak THEN

   v = c

   u = u + d

   EVENT OUT on port: spike

Derived Variables

iSyn = synapses[*]->i(reduce method: add) (exposed as iSyn)

iMemb = k * (v-vr) * (v-vt) + iSyn - u (exposed as iMemb)

Time Derivatives

d v /dt = iMemb / C

d u /dt = a * (b * (v-vr) - u)

Go to the libNeuroML documentation

from neuroml import Izhikevich2007Cell

variable = Izhikevich2007Cell(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, C=None, v0=None, k=None, vr=None, vt=None, vpeak=None, a=None, b=None, c=None, d=None, **kwargs_)
<izhikevich2007Cell id="iz2007RS" v0="-60mV" C="100 pF" k="0.7 nS_per_mV" vr="-60 mV" vt="-40 mV" vpeak="35 mV" a="0.03 per_ms" b="-2 nS" c="-50 mV" d="100 pA"/>

adExIaFCell

extends baseCellMembPotCap

Model based on Brette R and Gerstner W ( 2005 ) Adaptive Exponential Integrate-and-Fire Model as an Effective Description of Neuronal Activity. J Neurophysiol 94:3637-3642.

C

Total capacitance of the cell membrane (from baseCellMembPotCap)

capacitance

EL

voltage

VT

voltage

a

conductance

b

current

delT

voltage

gL

conductance

refract

time

reset

voltage

tauw

time

thresh

voltage

iMemb

Total current crossing the cell membrane (from baseCellMembPotCap)

current

iSyn

Total current due to synaptic inputs (from baseCellMembPotCap)

current

v

Membrane potential (from baseCellMembPot)

voltage

w

current

spike

Spike event (from baseSpikingCell)

Direction: out

synapses

basePointCurrent

State Variables

v: voltage  (exposed as v)

w: current  (exposed as w)

lastSpikeTime: time

On Start

v = EL

w = 0

Derived Variables

iSyn = synapses[*]->i(reduce method: add) (exposed as iSyn)

iMemb = -1 * gL * (v - EL) + gL * delT * exp((v - VT) / delT) - w + iSyn (exposed as iMemb)

Regime: refractory (initial)

On Entry

   lastSpikeTime = t

   v = reset

   w = w + b

On Conditions

   IF t > lastSpikeTime + refract THEN

    TRANSITION to REGIME integrating

Time Derivatives

   d w /dt = (a * (v - EL) - w) / tauw

Regime: integrating (initial)

On Conditions

   IF v > thresh THEN

    EVENT OUT on port: spike

    TRANSITION to REGIME refractory

Time Derivatives

   d v /dt = iMemb / C

   d w /dt = (a * (v - EL) - w) / tauw

Go to the libNeuroML documentation

from neuroml import AdExIaFCell

variable = AdExIaFCell(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, C=None, g_l=None, EL=None, reset=None, VT=None, thresh=None, del_t=None, tauw=None, refract=None, a=None, b=None, **kwargs_)
<adExIaFCell id="adExBurst" C="281pF" gL="30nS" EL="-70.6mV" reset="-48.5mV" VT="-50.4mV" thresh="-40.4mV" refract="0ms" delT="2mV" tauw="40ms" a="4nS" b="0.08nA"/>

fitzHughNagumoCell

extends baseCellMembPotDL

Simple dimensionless model of spiking cell from FitzHugh and Nagumo. Superseded by fitzHughNagumo1969Cell ( See https://github.com/NeuroML/NeuroML2/issues/42 ).

I

Dimensionless

SEC = 1s

time

V

Membrane potential (from baseCellMembPotDL)

Dimensionless

W

Dimensionless

spike

Spike event (from baseSpikingCell)

Direction: out

State Variables

V: Dimensionless  (exposed as V)

W: Dimensionless  (exposed as W)

Time Derivatives

d V /dt = ( (V - ((V^3) / 3)) - W + I) / SEC

d W /dt = (0.08 * (V + 0.7 - 0.8 * W)) / SEC

Go to the libNeuroML documentation

from neuroml import FitzHughNagumoCell

variable = FitzHughNagumoCell(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, I=None, **kwargs_)
<fitzHughNagumoCell id="fn1" I="0.8"/>

pinskyRinzelCA3Cell

extends baseCellMembPot

Reduced CA3 cell model from Pinsky and Rinzel 1994. See https://github.com/OpenSourceBrain/PinskyRinzelModel.

MSEC = 1 ms

time

MVOLT = 1 mV

voltage

UAMP_PER_CM2 = 1 uA_per_cm2

currentDensity

Smax = 125.0

Dimensionless

Vsyn = 60.0 mV

voltage

betaqd = 0.001

Dimensionless

Cad

Dimensionless

ICad

currentDensity

Si

Dimensionless

Vd

voltage

Vs

voltage

Wi

Dimensionless

cd

Dimensionless

hs

Dimensionless

ns

Dimensionless

qd

Dimensionless

sd

Dimensionless

v

Membrane potential (from baseCellMembPot)

voltage

spike

Spike event (from baseSpikingCell)

Direction: out

State Variables

Vs: voltage  (exposed as Vs)

Vd: voltage  (exposed as Vd)

Cad: Dimensionless  (exposed as Cad)

hs: Dimensionless  (exposed as hs)

ns: Dimensionless  (exposed as ns)

sd: Dimensionless  (exposed as sd)

cd: Dimensionless  (exposed as cd)

qd: Dimensionless  (exposed as qd)

Si: Dimensionless  (exposed as Si)

Wi: Dimensionless  (exposed as Wi)

Sisat: Dimensionless

On Start

Vs = eL

Vd = eL

qd = qd0

Derived Variables

v = Vs (exposed as v)

ICad = gCasdsd*(Vd-eCa) (exposed as ICad)

alphams_Vs = 0.32*(-46.9-Vs/MVOLT)/(exp((-46.9-Vs/MVOLT)/4.0)-1.0)

betams_Vs = 0.28*(Vs/MVOLT+19.9)/(exp((Vs/MVOLT+19.9)/5.0)-1.0)

Minfs_Vs = alphams_Vs/(alphams_Vs+betams_Vs)

alphans_Vs = 0.016*(-24.9-Vs/MVOLT)/(exp((-24.9-Vs/MVOLT)/5.0)-1.0)

betans_Vs = 0.25exp(-1.0-0.025Vs/MVOLT)

alphahs_Vs = 0.128*exp((-43.0-Vs/MVOLT)/18.0)

betahs_Vs = 4.0/(1.0+exp((-20.0-Vs/MVOLT)/5.0))

alphasd_Vd = 1.6/(1.0+exp(-0.072*(Vd/MVOLT-5.0)))

betasd_Vd = 0.02*(Vd/MVOLT+8.9)/(exp((Vd/MVOLT+8.9)/5.0)-1.0)

Iampa = gAmpaWi(Vd-Vsyn)

Inmda = gNmdaSisat(Vd-Vsyn)/(1.0+0.28exp(-0.062(Vd/MVOLT-60.0)))

Isyn = Iampa+Inmda

Conditional Derived Variables

IF 0.00002*Cad > 0.01 THEN

alphaqd = 0.01

OTHERWISE

alphaqd = 0.00002*Cad

IF Cad/250 > 1 THEN

chid = 1

OTHERWISE

chid = Cad/250

IF Vd < -10*MVOLT THEN

alphacd_Vd = exp((Vd/MVOLT+50.0)/11-(Vd/MVOLT+53.5)/27)/18.975

OTHERWISE

alphacd_Vd = 2.0*exp((-53.5-Vd/MVOLT)/27.0)

IF Vd < -10*MVOLT THEN

betacd_Vd = (2.0*exp((-53.5-Vd/MVOLT)/27.0)-alphacd_Vd)

OTHERWISE

betacd_Vd = 0

IF Si > Smax THEN

Sisat = Smax

OTHERWISE

Sisat = Si

Time Derivatives

d Vs /dt = (-gLs*(Vs-eL)-gNa*(Minfs_Vs^2)hs(Vs-eNa)-gKdrns(Vs-eK)+(gc/pp)*(Vd-Vs)+iSoma/pp) / cm

d Vd /dt = (iDend/(1.0-pp)-Isyn/(1.0-pp)-gLd*(Vd-eL)-ICad-gKahpqd(Vd-eK)-gKCcdchid*(Vd-eK)+(gc*(Vs-Vd))/(1.0-pp)) / cm

d Cad /dt = (-0.13ICad/UAMP_PER_CM2-0.075Cad) / MSEC

d hs /dt = (alphahs_Vs-(alphahs_Vs+betahs_Vs)*hs) / MSEC

d ns /dt = (alphans_Vs-(alphans_Vs+betans_Vs)*ns) / MSEC

d sd /dt = (alphasd_Vd-(alphasd_Vd+betasd_Vd)*sd) / MSEC

d cd /dt = (alphacd_Vd-(alphacd_Vd+betacd_Vd)*cd) / MSEC

d qd /dt = (alphaqd-(alphaqd+betaqd)*qd) / MSEC

d Si /dt = -Si/150.0

d Wi /dt = -Wi/2.0

Go to the libNeuroML documentation

from neuroml import PinskyRinzelCA3Cell

variable = PinskyRinzelCA3Cell(neuro_lex_id=None, id=None, metaid=None, notes=None, properties=None, annotation=None, i_soma=None, i_dend=None, gc=None, g_ls=None, g_ld=None, g_na=None, g_kdr=None, g_ca=None, g_kahp=None, g_kc=None, g_nmda=None, g_ampa=None, e_na=None, e_ca=None, e_k=None, e_l=None, qd0=None, pp=None, alphac=None, betac=None, cm=None, **kwargs_)
<pinskyRinzelCA3Cell id="pr2A" iSoma="0.75 uA_per_cm2" iDend="0 uA_per_cm2" gc="2.1 mS_per_cm2" qd0="0" gLs="0.1 mS_per_cm2" gLd="0.1 mS_per_cm2" gNa="30 mS_per_cm2" gKdr="15 mS_per_cm2" gCa="10 mS_per_cm2" gKahp="0.8 mS_per_cm2" gKC="15 mS_per_cm2" eNa="60 mV" eCa="80 mV" eK="-75 mV" eL="-60 mV" pp="0.5" cm="3 uF_per_cm2" alphac="2" betac="0.1" gNmda="0 mS_per_cm2" gAmpa="0 mS_per_cm2"/>