Constants & Primitives
Primitives
Primitives are special symbolic variables that are annotated with additional domain-specific metadata. Conductor.jl uses primitives found in user-defined equations to validate models and improve code generation.
Conductor.MembranePotential
— TypeMembranePotential(V0 = -60mV; <keyword arguments>)
The voltage in an arbitrary compartment.
If V0 == nothing
, the default value of the resulting variable will be left unassigned.
Arguments
dynamic::Bool = true
: when false, the voltage will be a static parameter.source::PrimitiveSource = Intrinsic
: the expected origin of a voltage state.Intrinsic
sources are states from the parent compartment.Extrinsic
sources come from other compartments (e.g. presynaptic compartments).n::Integer = 1
: whenn > 1
, the voltage will be a symbolic array of lengthn
.name::Symbol = :Vₘ
: the symbol to use for the symbolic variable
Conductor.ExtrinsicPotential
— FunctionExtrinsicPotential(; n = 1, name::Symbol = :Vₓ)
A voltage derived from an external source (i.e. not the parent compartment).
Equivalent to: MembranePotential(nothing; dynamic=true, source=Extrinsic, n=n, name=name)
Arguments
n::Integer = 1
: whenn > 1
, the voltage will be a symbolic array of lengthn
.name::Symbol = :Vₓ
: the symbol to use for the symbolic variable
Conductor.IonConcentration
— TypeIonConcentration(ion::IonSpecies, val = nothing; <keyword arguments>)
An intra/extracellular concentration of ions.
Arguments
location::PrimitiveLocation = Inside
: location (Inside
orOutside
) w.r.t. the parent compartment (intracellular or extracellular).dynamic::Bool = false
: when false, the concentration will be a static parameter.name::Symbol = Conductor.PERIODIC_SYMBOL[ion]
: the symbol to use for the symbolic variable. By default, a lookup table is used to find the ion's symbol on the periodic table of elements.
Conductor.IonCurrent
— TypeIonCurrent(ion::IonSpecies, val = nothing; <keyword arguments>)
An ionic membrane current.
Arguments
aggregate::Bool = false
: aggregate currents are the sum of all conductances (with matched ion species) flowing into the parent compartment. For example, an aggregateIonCurrent
for Calcium will be the sum of all other Calcium-permeable currents.dynamic::Bool = true
: whendynamic == false
theIonCurrent
will be a static parameter value.name::Symbol = Symbol("I", Conductor.PERIODIC_SYMBOL[ion])
: the symbol to use for the symbolic variable. By default, a lookup table is used to find the ion's symbol on the periodic table of elements.
Conductor.EquilibriumPotential
— TypeEquilibriumPotential(ion::IonSpecies, val; <keyword arguments>)
An equilibrium (a.k.a. reversal) potential.
Arguments
dynamic::Bool = false
: a dynamicEquilbriumPotential
is assumed to vary with time (e.g. derived from the Nernst equation).name::Symbol = Symbol("I", Conductor.PERIODIC_SYMBOL[ion])
: the symbol to use for the symbolic variable. By default, a lookup table is used to find the ion's symbol on the periodic table of elements.
Conductor.Temperature
— FunctionTemperature(temp; <keyword arguments>)
Temperature (in Kelvin)
Arguments
dynamic::Bool = false
: a dynamicTemperature
is assumed to vary with time.name::Symbol = :T
: the symbol to use for the symbolic variable.
Constants
Conductor.t
— ConstantThe independent variable for time, $t$.
Conductor.D
— FunctionDifferential with respect to time, $t$.
Conductor.ℱ
— ConstantFaraday's Constant
The electric charge of one mole of electrons.
Unicode ℱ can be typed by writing \scrF then pressing tab in the Julia REPL, and in many editors.
Examples
julia> Conductor.ℱ
96485.33212331001 C mol^-1
Conductor.IonSpecies
— TypeIon species to annotate ConductanceSystem
, IonCurrent
, IonConcentration
, etc. May be one of:
- NonIonic
- Sodium
- Potassium
- Chloride
- Calcium
- Cation
- Anion
- Glutamatergic
- Cholinergic
- AMPA
- NMDA
Conductor.R
— ConstantUniversal Gas Constant (base units)
Conductor.mR
— ConstantUniversal Gas Constant (milli-)
Scaled by 1000x. Results in output
Quantities
In addition, Conductor.jl defines the following useful Unitful.jl-compatible units:
Conductor.SpecificConductance
— TypeConductance per unit area.
Conductor.SpecificCapacitance
— TypeCapacitance per unit area.