Full cell models
This documentation is work in progress. Currently, the extension of Documenter.jl in my package MoST.jl is still experimental. As the package evolves further, this documentation will increase in readability.
InaMo.Cells
This package contains the full cell models used in Inada 2009.
Probably, most experiments by Inada et al. were performed with the model variants in VariableCa.
Base classes (Interfaces)
InaMo.Cells.Interfaces
This package contains base models of the three AVN cell types (AN, N, NH), which capture common structure. CellBase is used for all AVN cell types, ANCellBase for all AN cell models (i.e. ANCellConst with constant intracellular Ca2+ and ANCell with variable Ca2+ influenced by the SR), and for N and NH cells the structure is analogous.
InaMo.Cells.Interfaces.CellBase
NOTE: Some parameter settings in this model have a few peculiarities. First, the volume terms v_cyto, v_sub, v_jsr, and v_nsr, are not given by Inada et al.. Formulas are instead taken from Kurata 2002, where the parameters are named v_i, v_sub, v_rel, and v_up respectively. The same formulas are also used in the C++ implementation by Inada et al., which also uses another formula to determine the total cell volume v_cell. This is captured here in the function c_to_v, whose rationale we had to guess from the undocumented C++ version.
Second, the permeability na_p is not given directly by Inada et al., but instead calculated from the conductivity g_na. We use the function p_from_g to convert the value from the article.
Finally, a similar issue occurs with the equilibrium potentia v_k (called E_k in Inada 2009). Its value is also not given in the article, but can be calculated from potassium concentrations using the nernst function.
model CellBase "contains all code that is common among all cell types in Inada 2009"
extends InaMo.Currents.Interfaces.TwoPinCell;
extends InaMo.Icons.Cell;
inner parameter Boolean use_ach = false "should acetylcholine sensitive potassium channel be included in the model";
inner parameter SI.Concentration ach = 0 "concentration of acetylcholine available for I_ACh";
inner parameter SI.Concentration na_in = 8 "intracellular sodium concentration";
inner parameter SI.Concentration na_ex = 140 "extracellular sodium concentration";
inner parameter PermeabilityFM na_p = p_from_g(253e-9, na_ex, 1, temp) "permeability of cell membrane to sodium ions";
inner parameter SI.Concentration k_in = 140 "intracellular potassium concentration";
inner parameter SI.Concentration k_ex = 5.4 "extracellular potassium concentration";
inner parameter SI.Concentration ca_ex = 2 "extracellular calcium concentration";
inner parameter SI.Temperature temp = 310 "cell medium temperature";
function c_to_v "function used to determine cell volume based on membrane capacitance"
input SI.Capacitance c_m "membrane capacitance";
input SI.Volume v_low = 2.19911e-15 "low estimate for cell volume (obtained when c_m = c_low)";
input SI.Volume v_high = 7.147123e-15 "high estimate for cell volume (obtained when c_m = c_low + c_span)";
output SI.Volume v_cell "resulting total cell volume";
protected
SI.Capacitance c_low = 20e-12 "low value for c_m (where v_low is returned)";
SI.Capacitance c_span = 45e-12 "span that must be added to c_m to reach an output of v_high";
algorithm
v_cell := (c_m - c_low) / c_span * (v_high - v_low) + v_low;
annotation(
Documentation(info = "<html>
<p>This function was obtained from the C++ code by Inada et al..
Unfortunately it was completely undocumented, meaning that the
documentation in this project represents our best guess of the rationale
behind the function.</p>
<p>"v_low" and "v_high" were named "central"
and "peripheral" in the code and the function itself was named
"SEt_PArAMS", which indicates that perhaps the original intent
of the function was to set multiple parameter values for the SAN cells
(which use the terms "central" and "peripheral".
However, that interpretation does not make a lot of sense anymore when
talking about AN, N, and NH cells, which is why we changed the parameter
names.</p>
</html>"));
end c_to_v;
// NOTE: Kurata 2002 uses v_cell = 3.5e-15, Inada 2009 gives no value
// NOTE: but C++- and CellML-implementations use this formula
parameter SI.Volume v_cell = c_to_v(l2.c) "total cell volume";
inner parameter SI.Volume v_cyto = 0.46 * v_cell - v_sub "volume of cytosol";
// from Kurata 2002 (v_i)
inner parameter SI.Volume v_sub = 0.01 * v_cell "volume of subspace";
// from Kurata 2002 (v_sub)
inner parameter SI.Volume v_jsr = 0.0012 * v_cell "volume of junctional SR";
// from Kurata 2002 (v_rel)
inner parameter SI.Volume v_nsr = 0.0116 * v_cell "volume of network SR";
// from Kurata 2002 (v_up)
// v_k (E_K) is not given in Inada 2009 => calculate with nernst
parameter SI.Voltage v_k = nernst(k_in, k_ex, 1, temp) "equilibrium potential for potassium currents";
InaMo.Currents.Basic.BackgroundChannel bg "I_b" annotation(
Placement(visible = true, transformation(origin = {-51, 53}, extent = {{-17, -17}, {17, 17}}, rotation = 0)));
replaceable InaMo.Currents.Atrioventricular.LTypeCalciumChannel cal "I_Ca,L" annotation(
Placement(visible = true, transformation(origin = {-29, -53}, extent = {{-17, -17}, {17, 17}}, rotation = 180)));
InaMo.Currents.Atrioventricular.RapidDelayedRectifierChannel kr "I_K,r" annotation(
Placement(visible = true, transformation(origin = {-63, -53}, extent = {{-17, -17}, {17, 17}}, rotation = 180)));
InaMo.Currents.Atrioventricular.SodiumCalciumExchanger naca "I_NaCa" annotation(
Placement(visible = true, transformation(origin = {-17, 53}, extent = {{-17, -17}, {17, 17}}, rotation = 0)));
InaMo.Currents.Atrioventricular.SodiumPotassiumPump nak "I_NaK / I_p" annotation(
Placement(visible = true, transformation(origin = {51, 53}, extent = {{-17, -17}, {17, 17}}, rotation = 0)));
InaMo.Membrane.LipidBilayer l2 "cell membrane as capacitor" annotation(
Placement(visible = true, transformation(origin = {17, 53}, extent = {{-17, -17}, {17, 17}}, rotation = 0)));
InaMo.Currents.Atrioventricular.AcetylcholineSensitiveChannel c_ach if use_ach "I_ACh" annotation(
Placement(visible = true, transformation(origin = {85, 53}, extent = {{-17, -17}, {17, 17}}, rotation = 0)));
equation
connect(l2.p, p) annotation(
Line(points = {{18, 70}, {16, 70}, {16, 86}, {-50, 86}, {-50, 100}, {-50, 100}}, color = {0, 0, 255}));
connect(l2.n, n) annotation(
Line(points = {{18, 36}, {16, 36}, {16, 26}, {-52, 26}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
connect(bg.p, p) annotation(
Line(points = {{-50, 70}, {-50, 70}, {-50, 100}, {-50, 100}}, color = {0, 0, 255}));
connect(bg.n, n) annotation(
Line(points = {{-50, 36}, {-52, 36}, {-52, 2}, {-50, 2}, {-50, 0}}, color = {0, 0, 255}));
connect(cal.p, p) annotation(
Line(points = {{-28, -70}, {-30, -70}, {-30, -80}, {-88, -80}, {-88, 86}, {-50, 86}, {-50, 100}}, color = {0, 0, 255}));
connect(cal.n, n) annotation(
Line(points = {{-28, -36}, {-28, -36}, {-28, -16}, {-52, -16}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
connect(kr.p, p) annotation(
Line(points = {{-62, -70}, {-64, -70}, {-64, -80}, {-88, -80}, {-88, 86}, {-50, 86}, {-50, 100}}, color = {0, 0, 255}));
connect(kr.n, n) annotation(
Line(points = {{-62, -36}, {-62, -36}, {-62, -16}, {-52, -16}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
connect(naca.p, p) annotation(
Line(points = {{-16, 70}, {-18, 70}, {-18, 86}, {-50, 86}, {-50, 100}, {-50, 100}}, color = {0, 0, 255}));
connect(naca.n, n) annotation(
Line(points = {{-16, 36}, {-18, 36}, {-18, 26}, {-52, 26}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
connect(nak.p, p) annotation(
Line(points = {{52, 70}, {50, 70}, {50, 86}, {-50, 86}, {-50, 100}, {-50, 100}}, color = {0, 0, 255}));
connect(nak.n, n) annotation(
Line(points = {{52, 36}, {50, 36}, {50, 26}, {-52, 26}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
connect(c_ach.p, p) annotation(
Line(points = {{86, 70}, {84, 70}, {84, 86}, {-50, 86}, {-50, 100}, {-50, 100}}, color = {0, 0, 255}));
connect(c_ach.n, n) annotation(
Line(points = {{86, 36}, {84, 36}, {84, 26}, {-52, 26}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
annotation(
Documentation(info = "<html>
<p>
NOTE: Some parameter settings in this model have a few peculiarities.
First, the volume terms v_cyto, v_sub, v_jsr, and v_nsr, are not given
by Inada et al.. Formulas are instead taken from Kurata 2002, where
the parameters are named v_i, v_sub, v_rel, and v_up respectively.
The same formulas are also used in the C++ implementation by
Inada et al., which also uses another formula to determine the total
cell volume v_cell.
This is captured here in the function c_to_v, whose rationale we had
to guess from the undocumented C++ version.
</p>
<p>
Second, the permeability na_p is not given directly by Inada et al.,
but instead calculated from the conductivity g_na. We use the function
p_from_g to convert the value from the article.
</p>
<p>
Finally, a similar issue occurs with the equilibrium potentia v_k
(called E_k in Inada 2009).
Its value is also not given in the article, but can be calculated from
potassium concentrations using the nernst function.
</p>
</html>"),
Diagram(graphics = {Rectangle(fillColor = {211, 211, 211}, pattern = LinePattern.None, fillPattern = FillPattern.Solid, extent = {{-100, 60}, {100, -60}})}));
end CellBase;
InaMo.Cells.Interfaces.ANCellBase
partial model ANCellBase "base model for atrio-nodal cells"
extends CellBase(bg(g_max = 1.8e-9, v_eq = -52.5e-3), cal(g_max = 18.5e-9, v_eq = 62.1e-3, act.n.start = 4.069e-5, inact_slow.n.start = 0.9875, inact_fast.n.start = 0.9985), kr(g_max = 1.5e-9, v_eq = v_k, act_slow.n.start = 0.04840, act_fast.n.start = 0.07107, inact.n.start = 0.9866), naca(k_NaCa = 5.92e-9), nak(i_max = 24.6e-12), l2(c = 40e-12));
InaMo.Currents.Atrioventricular.InwardRectifier kir(g_max = 12.5e-9, v_eq = v_k) "I_K1" annotation(
Placement(transformation(extent = {{-12, -70}, {22, -36}}, rotation = 180)));
InaMo.Currents.Atrioventricular.SodiumChannel na(act.n.start = 0.01227, inact_slow.n.start = 0.6162, inact_fast.n.start = 0.7170) "I_Na" annotation(
Placement(transformation(extent = {{22, -70}, {56, -36}}, rotation = 180)));
InaMo.Currents.Atrioventricular.TransientOutwardChannel to(g_max = 20e-9, v_eq = v_k, act.n.start = 8.857e-3, inact_slow.n.start = 0.1503, inact_fast.n.start = 0.8734) "I_to" annotation(
Placement(transformation(extent = {{56, -70}, {90, -36}}, rotation = 180)));
equation
connect(kir.p, p) annotation(
Line(points = {{6, -70}, {4, -70}, {4, -80}, {-88, -80}, {-88, 86}, {-50, 86}, {-50, 100}}, color = {0, 0, 255}));
connect(kir.n, n) annotation(
Line(points = {{6, -36}, {6, -26}, {-28, -26}, {-28, -16}, {-52, -16}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
connect(na.p, p) annotation(
Line(points = {{40, -70}, {38, -70}, {38, -80}, {-88, -80}, {-88, 86}, {-50, 86}, {-50, 100}}, color = {0, 0, 255}));
connect(na.n, n) annotation(
Line(points = {{40, -36}, {40, -36}, {40, -26}, {-28, -26}, {-28, -16}, {-52, -16}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
connect(to.p, p) annotation(
Line(points = {{74, -70}, {72, -70}, {72, -80}, {-88, -80}, {-88, 86}, {-50, 86}, {-50, 100}}, color = {0, 0, 255}));
connect(to.n, n) annotation(
Line(points = {{74, -36}, {74, -36}, {74, -26}, {-28, -26}, {-28, -16}, {-52, -16}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
end ANCellBase;
InaMo.Cells.Interfaces.NCellBase
NOTE: C++ and CellML-implementations set cal.v_eq to 6.2e-2 instead of 6.21e-2. This seems more like a typo, so we leave v_eq unchanged.
NOTE: v_eq is not given in Inada 2009 (where it is called E_st). We therefore use the value given in Kurata 2002.
NOTE: Kurata 2002 and C++ have a positive sign for st.v_eq, but CellML has a negative sign (which is also given in C++, but only in AN and NH cell where st.g_max = 0). We therefore use the positive sign.
partial model NCellBase "base model for nodal cells"
extends CellBase(bg(g_max = 1.2e-9, v_eq = -22.5e-3), redeclare InaMo.Currents.Atrioventricular.LTypeCalciumChannelN cal(g_max = 9e-9, v_eq = 62.1e-3, act.n.start = 1.533e-4, inact_slow.n.start = 0.4441, inact_fast.n.start = 0.6861), kr(g_max = 3.5e-9, v_eq = v_k, act_slow.n.start = 0.1287, act_fast.n.start = 0.6067, inact.n.start = 0.9775), naca(k_NaCa = 2.14e-9), nak(i_max = 143e-12), l2(c = 29e-12));
InaMo.Currents.Atrioventricular.HyperpolarizationActivatedChannel hcn(g_max = 1e-9, act.n.start = 0.03825) "I_f" annotation(
Placement(transformation(extent = {{-12, -70}, {22, -36}}, rotation = 180)));
// v_eq is given in table S7 directly as number
InaMo.Currents.Atrioventricular.SustainedInwardChannel st(g_max = 0.1e-9, v_eq = 37.4e-3, act.n.start = 0.1933, inact.n.start = 0.4886) "I_st" annotation(
Placement(transformation(extent = {{22, -70}, {56, -36}}, rotation = 180)));
equation
connect(hcn.p, p) annotation(
Line(points = {{6, -70}, {4, -70}, {4, -80}, {-88, -80}, {-88, 86}, {-50, 86}, {-50, 100}}, color = {0, 0, 255}));
connect(hcn.n, n) annotation(
Line(points = {{6, -36}, {6, -26}, {-28, -26}, {-28, -16}, {-52, -16}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
connect(st.p, p) annotation(
Line(points = {{40, -70}, {38, -70}, {38, -80}, {-88, -80}, {-88, 86}, {-50, 86}, {-50, 100}}, color = {0, 0, 255}));
connect(st.n, n) annotation(
Line(points = {{40, -36}, {40, -36}, {40, -26}, {-28, -26}, {-28, -16}, {-52, -16}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
annotation(
Documentation(info = "<html>
<p>
NOTE: C++ and CellML-implementations set cal.v_eq to 6.2e-2 instead of
6.21e-2.
This seems more like a typo, so we leave v_eq unchanged.
</p>
<p>
NOTE: v_eq is not given in Inada 2009 (where it is called E_st).
We therefore use the value given in Kurata 2002.
</p>
<p>
NOTE: Kurata 2002 and C++ have a positive sign for st.v_eq, but CellML has a
negative sign (which is also given in C++, but only in AN and NH cell
where st.g_max = 0).
We therefore use the positive sign.
</p>
</html>"));
end NCellBase;
InaMo.Cells.Interfaces.NHCellBase
partial model NHCellBase "base model for nodal-his cells"
extends CellBase(bg(g_max = 2e-9, v_eq = -40e-3), cal(g_max = 21e-9, v_eq = 62.1e-3, act.n.start = 5.025e-5, inact_slow.n.start = 0.9831, inact_fast.n.start = 0.9981), kr(g_max = 2e-9, v_eq = v_k, act_slow.n.start = 0.07024, act_fast.n.start = 0.09949, inact.n.start = 0.9853), naca(k_NaCa = 5.92e-9), nak(i_max = 197e-12), l2(c = 40e-12));
InaMo.Currents.Atrioventricular.InwardRectifier kir(g_max = 15e-9, v_eq = v_k) annotation(
Placement(transformation(extent = {{-12, -70}, {22, -36}}, rotation = 180)));
InaMo.Currents.Atrioventricular.SodiumChannel na(act.n.start = 0.01529, inact_slow.n.start = 0.5552, inact_fast.n.start = 0.6438) annotation(
Placement(transformation(extent = {{22, -70}, {56, -36}}, rotation = 180)));
InaMo.Currents.Atrioventricular.TransientOutwardChannel to(g_max = 14e-9, v_eq = v_k, act.n.start = 9.581e-3, inact_slow.n.start = 0.1297, inact_fast.n.start = 0.8640) annotation(
Placement(transformation(extent = {{56, -70}, {90, -36}}, rotation = 180)));
equation
connect(kir.p, p) annotation(
Line(points = {{6, -70}, {4, -70}, {4, -80}, {-88, -80}, {-88, 86}, {-50, 86}, {-50, 100}}, color = {0, 0, 255}));
connect(kir.n, n) annotation(
Line(points = {{6, -36}, {6, -26}, {-28, -26}, {-28, -16}, {-52, -16}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
connect(na.p, p) annotation(
Line(points = {{40, -70}, {38, -70}, {38, -80}, {-88, -80}, {-88, 86}, {-50, 86}, {-50, 100}}, color = {0, 0, 255}));
connect(na.n, n) annotation(
Line(points = {{40, -36}, {40, -36}, {40, -26}, {-28, -26}, {-28, -16}, {-52, -16}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
connect(to.p, p) annotation(
Line(points = {{74, -70}, {72, -70}, {72, -80}, {-88, -80}, {-88, 86}, {-50, 86}, {-50, 100}}, color = {0, 0, 255}));
connect(to.n, n) annotation(
Line(points = {{74, -36}, {74, -36}, {74, -26}, {-28, -26}, {-28, -16}, {-52, -16}, {-52, 0}, {-50, 0}}, color = {0, 0, 255}));
end NHCellBase;
Constant intracellular Ca2+ concentration (ConstantCa)
InaMo.Cells.ConstantCa
InaMo.Cells.ConstantCa.ANCellConst
NOTE: Inada et al. state that they also performed experiments with constant intracellular Ca2+ at 0.1 μM (see supplement, page 3), but they do not give any reference plots for this setup.
model ANCellConst "atrio-nodal cell model with constant intracellular Ca2+ concentration"
extends InaMo.Cells.Interfaces.ANCellBase;
extends InaMo.Icons.CellConst(cell_type = "AN");
InaMo.Concentrations.Basic.ConstantConcentration ca_sub(c_const = 1e-4, vol = v_sub) "Ca2+ in subspace available to Ca2+-sensitive currents" annotation(
Placement(transformation(origin = {16, 0}, extent = {{-17, -17}, {17, 17}})));
equation
connect(cal.ca, ca_sub.substance) annotation(
Line(points = {{-34, -36}, {-36, -36}, {-36, -6}, {-10, -6}, {-10, -16}, {16, -16}, {16, -16}}));
connect(ca_sub.substance, naca.ca) annotation(
Line(points = {{16, -16}, {-10, -16}, {-10, 38}, {-12, 38}, {-12, 36}}));
annotation(
Documentation(info = "<html>
<p>NOTE: Inada et al. state that they also performed experiments with constant
intracellular Ca2+ at 0.1 μM (see supplement, page 3), but they do not give
any reference plots for this setup.</p>
</html>"));
end ANCellConst;
- Within group cal (prefix _ indicates shortened variable name)
- Within group kir (prefix _ indicates shortened variable name)
- Within group kr (prefix _ indicates shortened variable name)
- Within group na (prefix _ indicates shortened variable name)
- Within group act (prefix _ indicates shortened variable name)
- Within group naca (prefix _ indicates shortened variable name)
- Within group to (prefix _ indicates shortened variable name)
Functions:
function act.fsteady
input Real x "input value";
input Real y_min = 0.0 "lower asymptote (fitting parameter)";
input Real y_max = 1.0 "upper asmyptote when d_off=1 and nu=1 (fititng parameter)";
input Real x0 = -0.0032 "x-value of sigmoid midpoint when d_off=1 and nu=1 (fitting parameter)";
input Real sx = 151.285930408472 "scaling factor for x axis (i.e. steepness, fitting parameter)";
input Real se = 1.0 "scaling factor for exponential part (fitting parameter)";
input Real d_off = 1.0 "offset in denominator (affects upper asymptote, fitting parameter)";
input Real nu = 1.0 "reciprocal of exponent of denominator (affects upper asymptote, fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
y := y_min + (y_max - y_min) / (se * exp(-x_adj) + d_off) ^ (1.0 / nu);
end act.fsteady;
function c_to_v "function used to determine cell volume based on membrane capacitance"
input Real c_m(quantity = "Capacitance", unit = "F", min = 0.0) "membrane capacitance";
input Real v_low(quantity = "Volume", unit = "m3") = 2.19911e-15 "low estimate for cell volume (obtained when c_m = c_low)";
input Real v_high(quantity = "Volume", unit = "m3") = 7.147123e-15 "high estimate for cell volume (obtained when c_m = c_low + c_span)";
output Real v_cell(quantity = "Volume", unit = "m3") "resulting total cell volume";
protected Real c_low(quantity = "Capacitance", unit = "F", min = 0.0) = 2e-11 "low value for c_m (where v_low is returned)";
protected Real c_span(quantity = "Capacitance", unit = "F", min = 0.0) = 4.5e-11 "span that must be added to c_m to reach an output of v_high";
algorithm
v_cell := (c_m - c_low) / c_span * (v_high - v_low) + v_low;
end c_to_v;
function inact.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 9.42, 603.6) + kr.ftau.falpha(x, 0.0, -18.3, 92.01000000000001)) + off;
end inact.ftau;
function to.act.ftau
input Real x "input value";
input Real off = 0.000596 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, -0.03061, 90.0, 1.037 / 0.003188) + kr.ftau.falpha(x, -0.02384, -120.0, 0.396 / 0.003188)) + off;
end to.act.ftau;
function kr.ftau.falpha
input Real x "input value";
input Real x0 = 0.0 "x-value where y = 1 (fitting parameter)";
input Real sx = 39.8 "scaling factor for x axis (fitting parameter)";
input Real sy = 17.0 "scaling factor for y axis (fitting parameter)";
output Real y "result";
algorithm
y := sy * exp(sx * (x - x0));
end kr.ftau.falpha;
function michaelisMenten "equation for enzymatic reactions following Michaelis-Menten kinetics"
input Real s(quantity = "Concentration", unit = "mol/m3") "substrate concentration";
input Real k(quantity = "Concentration", unit = "mol/m3") "concentration producing half-maximum reaction rate (michaelis constant)";
output Real rate(unit = "1") "reaction rate";
algorithm
rate := s / (s + k);
end michaelisMenten;
function inact_fast.ftau
input Real x "input value";
input Real y_min = 0.01 "minimum value achieved at edges (fitting parameter)";
input Real y_max = 0.1639 "maximum value achieved at peak (fititng parameter)";
input Real x0 = -0.04 "x-value of bell curve midpoint (fitting parameter)";
input Real sigma = 0.009635092111651035 "standard deviation determining the width of the bell curve (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and standard deviation";
algorithm
x_adj := (x - x0) / sigma;
y := y_min + (y_max - y_min) * exp(-0.5 * x_adj ^ 2.0);
end inact_fast.ftau;
function act_fast.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 39.8, 17.0) + kr.ftau.falpha(x, 0.0, -51.0, 0.211)) + off;
end act_fast.ftau;
function inact.fsteady
input Real x "input value";
output Real y "output value";
algorithm
y := act.fsteady(x, 0.0, 1.0, -0.0049, -1000.0 / 15.14, 1.0, 1.0, 1.0) * inact_fast.ftau(x, 1.0, (-0.3) + 1.0, 0.0, sqrt(500.0 / 2.0) / 1000.0);
end inact.fsteady;
function ghkFlux "ghk flux equation for a single ion"
input Real v(quantity = "ElectricPotential", unit = "V") "membrane potential";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
input Real ion_in(quantity = "Concentration", unit = "mol/m3") "intracellular ion concentration";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Real ion_p(quantity = "Permeability (fluid mechanics)", unit = "m3/(s.m2)") "permeability of cell membrane to Na+ cations";
input Integer ion_z "ion valence";
output Real i(quantity = "CurrentDensity", unit = "A/m2") "current density resulting from ion flux through membrane";
protected Real g_max(quantity = "Conductance", unit = "S");
protected Real v_eq(quantity = "ElectricPotential", unit = "V");
protected Real FoRT(unit = "1/V") = 96485.33289000001 / (8.3144598 * temp);
algorithm
g_max := ion_p * ion_ex * FoRT * 96485.33289000001 * /*Real*/(ion_z) ^ 2.0;
v_eq := nernst(ion_in, ion_ex, ion_z, temp);
if abs(v) < 1e-06 then
i := g_max / FoRT / /*Real*/(ion_z) * (exp(-v_eq * FoRT * /*Real*/(ion_z)) - 1.0);
else
i := g_max * v * (exp((v - v_eq) * FoRT * /*Real*/(ion_z)) - 1.0) / (exp(v * FoRT * /*Real*/(ion_z)) - 1.0);
end if;
end ghkFlux;
function cal.ftau.falpha
input Real x "input value";
output Real y "output value";
algorithm
y := fa(x, -0.035, 26.12 * 2.5, -1000.0 / 2.5) + fa(x, 0.0, 78.11 / 0.208, -208.0);
end cal.ftau.falpha;
function cal.act.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (cal.ftau.falpha(x) + fa(x, 0.005, 10.52 / 0.4, 400.0)) + off;
end cal.act.ftau;
function fa
input Real x "input value";
input Real x0 = -0.035 "offset for x (fitting parameter)";
input Real sy = 65.3 "scaling factor for y (fitting parameter)";
input Real sx = -400.0 "scaling factor for x (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
if abs(x - x0) < 1e-06 then
y := sy;
else
y := sy * x_adj / (exp(x_adj) - 1.0);
end if;
end fa;
function nernst "Nernst equation to find the equlibrium potential for a single ion"
input Real ion_in(quantity = "Concentration", unit = "mol/m3") "intracellular ion concentration";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real v_eq(quantity = "ElectricPotential", unit = "V") "equlibirium potential";
algorithm
v_eq := 8.3144598 * temp / /*Real*/(ion_z) / 96485.33289000001 * log(ion_ex / ion_in);
end nernst;
function inact_fast.fsteady
input Real x "input value";
output Real y "result of applying the HH-style equation steady = alpha/(alpha + beta)";
algorithm
y := kr.ftau.falpha(x, -0.0669, -1000.0 / 5.57, 44.9) / (kr.ftau.falpha(x, -0.0669, -1000.0 / 5.57, 44.9) + act.fsteady(x, 0.0, 1491.0, -0.0946, 1000.0 / 12.9, 323.3, 1.0, 1.0));
end inact_fast.fsteady;
function p_from_g "calculate membrane permeability for ion from membrane conductance"
input Real g(quantity = "Conductance", unit = "S") "membrane conductance for given ion";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real p(quantity = "Permeability (fluid mechanics)", unit = "m3/(s.m2)") "membrane permeability for given ion";
protected Real unit_area(quantity = "Area", unit = "m2") = 1.0 "unit area of 1 m², used to get correct units";
algorithm
p := g / ion_ex * 8.3144598 * temp / (96485.33289000001 * /*Real*/(ion_z)) ^ 2.0 / unit_area;
end p_from_g;
name | unit | label | value |
---|---|---|---|
ca_sub.substance.rate | "mol/s" | molar flow rate of substance | |
to.inact_total | total inactivation resulting from fast and slow inactivation gates | ||
to.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.inact_fast.steady | value that n would reach if v_gate was held constant | ||
to.inact_fast.n | ratio of molecules in open conformation | 0.8734 | |
to.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.inact_slow.steady | value that n would reach if v_gate was held constant | ||
to.inact_slow.n | ratio of molecules in open conformation | 0.1503 | |
to.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.act.steady | value that n would reach if v_gate was held constant | ||
to.act.n | ratio of molecules in open conformation | 0.008857 | |
to.g | "S" | ion conductance | |
to.i_open | "A" | i if open_ratio = 1 | |
to.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
to.i_ion | "A" | current used for ion flux | |
to.v_gate | "V" | voltage used for activation/inactivation gates | |
na.inact_total | total inactivation resulting from fast and slow inactivation terms | ||
na.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.inact_slow.steady | value that n would reach if v_gate was held constant | ||
na.inact_slow.n | ratio of molecules in open conformation | 0.6162 | |
na.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.inact_fast.steady | value that n would reach if v_gate was held constant | ||
na.inact_fast.n | ratio of molecules in open conformation | 0.717 | |
na.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.act.steady | "1" | steady state achieved if current voltage is held constant | |
na.act.beta | "1" | rate of transfer from open to closed conformation | |
na.act.alpha | "1" | rate of transfer from closed to open conformation | |
na.act.n | ratio of molecules in open conformation | 0.01227 | |
na.i_open | i if open_ratio = 1 | ||
na.open_ratio | ratio between 0 (fully closed) and 1 (fully open) | ||
na.i_ion | "A" | current used for ion flux | |
na.v_gate | "V" | voltage used for activation/inactivation gates | |
kir.voltage_act.n | ratio of molecules in open conformation | ||
kir.voltage_inact.n | ratio of molecules in open conformation | ||
kir.g | "S" | ion conductance | |
kir.i_open | "A" | i if open_ratio = 1 | |
kir.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
kir.i_ion | "A" | current used for ion flux | |
kir.v_gate | "V" | voltage used for activation/inactivation gates | |
l2.i | "A" | Current flowing from pin p to pin n | |
l2.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
nak.i | "A" | Current flowing from pin p to pin n | |
nak.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
naca.e4 | "1" | ratio of exchanger molecules in state e4 | |
naca.e3 | "1" | ratio of exchanger molecules in state e3 | |
naca.e2 | "1" | ratio of exchanger molecules in state e2 | |
naca.e1 | "1" | ratio of exchanger molecules in state e1 | |
naca.d | "1" | common denominator to turn relative frequencies into actual ratios between 0 and 1 | |
naca.x4 | "1" | relative frequancy of E4 states | |
naca.x3 | "1" | relative frequency of E3 states | |
naca.x2 | "1" | relative frequency of E2 states | |
naca.x1 | "1" | relative frequency of E1 states | |
naca.k_14 | "1" | rate constant for transition from E1 to E4 | |
naca.k_41 | "1" | rate constant for transition from E4 to E1 | |
naca.k_32 | "1" | rate constant for transition from E3 to E2 | |
naca.k_23 | "1" | rate constant for transition from E2 to E3 | |
naca.k_21 | "1" | rate constant for transition from E2 to E1 | |
naca.k_12 | "1" | rate constant for transition from E1 to E2 | |
naca.f1_2n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | |
naca.f1_2n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | |
naca.do | "1" | common denominator summing relative frequencies for all E2 substates | |
naca.do_cv | "1" | relative frequency of E2 states that are occupied by Ca2+ and occluded | |
naca.di | "1" | common denominator summing relative frequencies for all E1 substates | |
naca.di_cv | "1" | relative frequency of E1 states that are occupied by Ca2+ and occluded | |
naca.i_ion | "A" | current used for TransmembraneCaFlow | |
naca.trans.rate | "mol/s" | rate of change in substance amount | |
naca.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
kr.act_total | total activation due to slow and fast activation terms | ||
kr.inact.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.inact.steady | value that n would reach if v_gate was held constant | ||
kr.inact.n | ratio of molecules in open conformation | 0.9866 | |
kr.act_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_slow.steady | value that n would reach if v_gate was held constant | ||
kr.act_slow.n | ratio of molecules in open conformation | 0.0484 | |
kr.act_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_fast.steady | value that n would reach if v_gate was held constant | ||
kr.act_fast.n | ratio of molecules in open conformation | 0.07106999999999999 | |
kr.g | "S" | ion conductance | |
kr.i_open | "A" | i if open_ratio = 1 | |
kr.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
kr.i_ion | "A" | current used for ion flux | |
kr.v_gate | "V" | voltage used for activation/inactivation gates | |
cal.inact_total | |||
cal.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_fast.steady | value that n would reach if v_gate was held constant | ||
cal.inact_fast.n | ratio of molecules in open conformation | 0.9985000000000001 | |
cal.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_slow.steady | value that n would reach if v_gate was held constant | ||
cal.inact_slow.n | ratio of molecules in open conformation | 0.9875 | |
cal.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.act.steady | value that n would reach if v_gate was held constant | ||
cal.act.n | ratio of molecules in open conformation | 4.069e-05 | |
cal.trans.rate | "mol/s" | rate of change in substance amount | |
cal.g | "S" | ion conductance | |
cal.i_open | "A" | i if open_ratio = 1 | |
cal.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
cal.i_ion | "A" | current used for ion flux | |
cal.v_gate | "V" | voltage used for activation/inactivation gates | |
bg.i_ion | "A" | current used for ion flux | |
bg.v_gate | "V" | voltage used for activation/inactivation gates | |
n.v | "V" | Potential at the pin | |
p.v | "V" | Potential at the pin | |
v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
cal.con.substance.amount | "mol" | amount of substance | cal.con.c_const * cal.con.vol |
naca.con.substance.amount | "mol" | amount of substance | naca.con.c_const * naca.con.vol |
naca.di_cn | "1" | relative frequency of E1 states whose first two binding sites are occupied by Ca2+ and whose last binding site is occupied by Na+ | naca.di_c * na_in / naca.k_cn_i |
naca.di_3n | "1" | relative frequency of E1 states where exactly three Na+ sites are occupied by Na+ | naca.di_2n * na_in / naca.k_3n_i |
naca.do_3n | "1" | relative frequency of E2 states where exactly three Na+ sites are occupied by Na+ | naca.do_2n * na_ex / naca.k_3n_o |
naca.do_2n | "1" | relative frequency of E2 states where exactly the first two Na+ sites are occupied by Na+ | naca.do_1n * na_ex / naca.k_2n_o |
naca.di_2n | "1" | relative frequency of E1 states where exactly the first two Na+ sites are occupied by Na+ | naca.di_1n * na_in / naca.k_2n_i |
naca.di_c | "1" | relative frequency of E1 states that are occupied by Ca2+ and not occluded | ca_sub.substance.amount / (naca.k_c_i * v_sub) |
p.i | "A" | Current flowing into the pin | 0.0 |
n.i | "A" | Current flowing into the pin | 0.0 |
bg.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | 1.0 |
ca_sub.substance.amount | "mol" | amount of substance | ca_sub.c_const * ca_sub.vol |
cal.ach_factor | 1.0 | ||
naca.di_1n | "1" | relative frequency of E1 states where only the first Na+ site is occupied by Na+ | na_in / naca.k_1n_i |
naca.do_c | "1" | relative frequency of E2 states that are occupied by Ca2+ and not occluded | ca_ex / naca.k_c_o |
naca.do_1n | "1" | relative frequency of E2 states where only the first Na+ site is occupied by Na+ | na_ex / naca.k_1n_o |
naca.f1_3n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_ex, naca.k_3n_o) |
naca.f1_3n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_in, naca.k_3n_i) |
kir.n_pot | "1" | [K+]_ex-dependent gating variable | InaMo.Functions.Biochemical.michaelisMenten(k_ex, 0.59) |
use_ach | should acetylcholine sensitive potassium channel be included in the model | false | |
ach | "mol/m3" | concentration of acetylcholine available for I_ACh | 0.0 |
na_in | "mol/m3" | intracellular sodium concentration | 8.0 |
na_ex | "mol/m3" | extracellular sodium concentration | 140.0 |
na_p | "m3/(s.m2)" | permeability of cell membrane to sodium ions | InaMo.Functions.Biochemical.p_from_g(2.53e-07, na_ex, 1, temp) |
k_in | "mol/m3" | intracellular potassium concentration | 140.0 |
k_ex | "mol/m3" | extracellular potassium concentration | 5.4 |
ca_ex | "mol/m3" | extracellular calcium concentration | 2.0 |
temp | "K" | cell medium temperature | 288.15 |
v_cell | "m3" | total cell volume | InaMo.Cells.ConstantCa.ANCellConst.c_to_v(l2.c, 2.19911e-15, 7.147123e-15) |
v_cyto | "m3" | volume of cytosol | 0.46 * v_cell - v_sub |
v_sub | "m3" | volume of subspace | 0.01 * v_cell |
v_jsr | "m3" | volume of junctional SR | 0.0012 * v_cell |
v_nsr | "m3" | volume of network SR | 0.0116 * v_cell |
v_k | "V" | equilibrium potential for potassium currents | InaMo.Functions.Biochemical.nernst(k_in, k_ex, 1, temp) |
bg.v_eq | "V" | equilibrium potential | -0.0525 |
bg.g_max | "S" | maximum conductance | 1.8e-09 |
bg.current_name | "I_b" | ||
cal.v_eq | "V" | equilibrium potential | 0.0621 |
cal.g_max | "S" | maximum conductance | 1.85e-08 |
cal.trans.n | "1" | stoichiometric ratio of ion transport | cal.n_ca |
cal.trans.z | valence of ion | 2 | |
cal.con.c_const | "mol/m3" | fixed concentration | ca_ex |
cal.con.vol | "m3" | volume of the compartment | 1.0 |
cal.n_ca | "1" | stoichiometric ratio of transport | 1.0 |
cal.current_name | "I_Ca,L" | ||
cal.k_ach | "1" | ratio of maximum channel inhibition by acetylcholine | 0.0 |
kr.v_eq | "V" | equilibrium potential | v_k |
kr.g_max | "S" | maximum conductance | 1.5e-09 |
kr.current_name | "I_K,r" | ||
naca.trans.n | "1" | stoichiometric ratio of ion transport | naca.n_ca |
naca.trans.z | valence of ion | 2 | |
naca.con.c_const | "mol/m3" | fixed concentration | ca_ex |
naca.con.vol | "m3" | volume of the compartment | 1.0 |
naca.n_ca | "1" | stoichiometric ratio of transport | -2.0 |
naca.current_name | "I_NaCa" | ||
naca.k_c_i | "mol/m3" | dissociation constant for channel with Ca++ bound on inside | 0.0207 |
naca.k_cn_i | "mol/m3" | dissociation constant for channel with Ca++ and one Na+ bound on inside | 26.44 |
naca.k_1n_i | "mol/m3" | dissociation constant for channel with one Na+ bound on inside | 395.3 |
naca.k_2n_i | "mol/m3" | dissociation constant for channel with two Na+ bound on inside | 2.289 |
naca.k_3n_i | "mol/m3" | dissociation constant for channel with three Na+ bound on inside | 26.44 |
naca.k_c_o | "mol/m3" | dissociation constant for channel with Ca++ bound on outside | 3.663 |
naca.k_1n_o | "mol/m3" | dissociation constant for channel with one Na+ bound on outside | 1628.0 |
naca.k_2n_o | "mol/m3" | dissociation constant for channel with two Na+ bound on outside | 561.4 |
naca.k_3n_o | "mol/m3" | dissociation constant for channel with three Na+ bound on outside | 4.663 |
naca.q_ci | fractional charge movement during intracellular Ca++ occlusion reaction | 0.1369 | |
naca.q_co | fractional charge movement during extracellular Ca++ occlusion reaction | 0.0 | |
naca.q_n | fractional charge movement during Na+ occlusion reactions | 0.4315 | |
naca.k_NaCa | "A" | scaling factor for Na+/Ca++ exchanger current | 5.92e-09 |
naca.FoRT | helper variable to simplify equations | 11604.52214706721 / temp | |
nak.current_name | "I_NaK" | ||
nak.i_max | "A" | maximum current (actual maximum is 1.6 * i_max) | 2.46e-11 |
nak.k_m_Na | "mol/m3" | Michaelis constant for Na+ binding | 5.64 |
nak.k_m_K | "mol/m3" | Michaelis constant for K+ binding | 0.621 |
l2.c | "F" | membrane capacitance | 4e-11 |
l2.v_init | "V" | initial potential (from short initial stimulation) | -0.09 |
l2.use_init | determines whether initial value for v is used | true | |
kir.v_eq | "V" | equilibrium potential | v_k |
kir.g_max | "S" | maximum conductance | 1.25e-08 |
kir.current_name | "I_K1" | ||
kir.FoRT | helper variable to simplyfiy equations | 96485.33289000001 / (temp * 8.3144598) | |
kir.use_vact | use voltage-dependent activation gate? (only Inada 2009) | true | |
na.ion_ex | "mol/m3" | extracellular concentration of ion | na_ex |
na.ion_p | "m3/(s.m2)" | permeability of ion | na_p |
na.ion_z | valence of ion | 1 | |
na.current_name | "I_Na" | ||
to.v_eq | "V" | equilibrium potential | v_k |
to.g_max | "S" | maximum conductance | 2e-08 |
to.current_name | "I_to" | ||
cell_type | "AN" | ||
ca_sub.c_const | "mol/m3" | fixed concentration | 0.0001 |
ca_sub.vol | "m3" | volume of the compartment | v_sub |
na.ion_in | "mol/m3" | intracellular concentration of ion | na_in |
bg.g | "S" | ion conductance | bg.g_max |
InaMo.Cells.ConstantCa.NCellConst
NOTE: Inada et al. state that they also performed experiments with constant intracellular Ca2+ at 0.1 μM (see supplement, page 3), but they do not give any reference plots for this setup.
model NCellConst "nodal cell model with constant intracellular Ca2+ concentration"
extends InaMo.Cells.Interfaces.NCellBase;
extends InaMo.Icons.CellConst(cell_type = "N");
InaMo.Concentrations.Basic.ConstantConcentration ca_sub(c_const = 1e-4, vol = v_sub) "Ca2+ in subspace available to Ca2+-sensitive currents" annotation(
Placement(transformation(origin = {16, 0}, extent = {{-17, -17}, {17, 17}})));
equation
connect(cal.ca, ca_sub.substance) annotation(
Line(points = {{-34, -36}, {-36, -36}, {-36, -6}, {-10, -6}, {-10, -16}, {16, -16}, {16, -16}}));
connect(ca_sub.substance, naca.ca) annotation(
Line(points = {{16, -16}, {-10, -16}, {-10, 38}, {-12, 38}, {-12, 36}}));
annotation(
Documentation(info = "<html>
<p>NOTE: Inada et al. state that they also performed experiments with constant
intracellular Ca2+ at 0.1 μM (see supplement, page 3), but they do not give
any reference plots for this setup.</p>
</html>"));
end NCellConst;
- Within group cal (prefix _ indicates shortened variable name)
- Within group hcn (prefix _ indicates shortened variable name)
- Within group kr (prefix _ indicates shortened variable name)
- Within group naca (prefix _ indicates shortened variable name)
- Within group st (prefix _ indicates shortened variable name)
- Within group inact (prefix _ indicates shortened variable name)
Functions:
function act.fsteady
input Real x "input value";
input Real y_min = 0.0 "lower asymptote (fitting parameter)";
input Real y_max = 1.0 "upper asmyptote when d_off=1 and nu=1 (fititng parameter)";
input Real x0 = -0.0182 "x-value of sigmoid midpoint when d_off=1 and nu=1 (fitting parameter)";
input Real sx = 200.0 "scaling factor for x axis (i.e. steepness, fitting parameter)";
input Real se = 1.0 "scaling factor for exponential part (fitting parameter)";
input Real d_off = 1.0 "offset in denominator (affects upper asymptote, fitting parameter)";
input Real nu = 1.0 "reciprocal of exponent of denominator (affects upper asymptote, fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
y := y_min + (y_max - y_min) / (se * exp(-x_adj) + d_off) ^ (1.0 / nu);
end act.fsteady;
function c_to_v "function used to determine cell volume based on membrane capacitance"
input Real c_m(quantity = "Capacitance", unit = "F", min = 0.0) "membrane capacitance";
input Real v_low(quantity = "Volume", unit = "m3") = 2.19911e-15 "low estimate for cell volume (obtained when c_m = c_low)";
input Real v_high(quantity = "Volume", unit = "m3") = 7.147123e-15 "high estimate for cell volume (obtained when c_m = c_low + c_span)";
output Real v_cell(quantity = "Volume", unit = "m3") "resulting total cell volume";
protected Real c_low(quantity = "Capacitance", unit = "F", min = 0.0) = 2e-11 "low value for c_m (where v_low is returned)";
protected Real c_span(quantity = "Capacitance", unit = "F", min = 0.0) = 4.5e-11 "span that must be added to c_m to reach an output of v_high";
algorithm
v_cell := (c_m - c_low) / c_span * (v_high - v_low) + v_low;
end c_to_v;
function inact.fsteady
input Real x "input value";
output Real y "output value";
algorithm
y := act.fsteady(x, 0.0, 1.0, -0.0049, -1000.0 / 15.14, 1.0, 1.0, 1.0) * inact_fast.ftau(x, 1.0, (-0.3) + 1.0, 0.0, sqrt(500.0 / 2.0) / 1000.0);
end inact.fsteady;
function kr.ftau.falpha
input Real x "input value";
input Real x0 = 0.0 "x-value where y = 1 (fitting parameter)";
input Real sx = 39.8 "scaling factor for x axis (fitting parameter)";
input Real sy = 17.0 "scaling factor for y axis (fitting parameter)";
output Real y "result";
algorithm
y := sy * exp(sx * (x - x0));
end kr.ftau.falpha;
function michaelisMenten "equation for enzymatic reactions following Michaelis-Menten kinetics"
input Real s(quantity = "Concentration", unit = "mol/m3") "substrate concentration";
input Real k(quantity = "Concentration", unit = "mol/m3") "concentration producing half-maximum reaction rate (michaelis constant)";
output Real rate(unit = "1") "reaction rate";
algorithm
rate := s / (s + k);
end michaelisMenten;
function ftau.fbeta
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 1000.0 / 8.0, 0.016) + kr.ftau.falpha(x, 0.0, 1000.0 / 50.0, 0.015)) + off;
end ftau.fbeta;
function inact_fast.ftau
input Real x "input value";
input Real y_min = 0.01 "minimum value achieved at edges (fitting parameter)";
input Real y_max = 0.1639 "maximum value achieved at peak (fititng parameter)";
input Real x0 = -0.04 "x-value of bell curve midpoint (fitting parameter)";
input Real sigma = 0.009635092111651035 "standard deviation determining the width of the bell curve (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and standard deviation";
algorithm
x_adj := (x - x0) / sigma;
y := y_min + (y_max - y_min) * exp(-0.5 * x_adj ^ 2.0);
end inact_fast.ftau;
function cal.act.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (cal.ftau.falpha(x) + falpha.fa(x, 0.005, 10.52 / 0.4, 400.0)) + off;
end cal.act.ftau;
function inact.fbeta
input Real x "input value";
output Real y "output value";
algorithm
y := fbeta.fa(x, 0.0) + act.fsteady(x, 0.0, 0.229, 0.0, 1000.0 / 5.0, 1.0, 1.0, 1.0);
end inact.fbeta;
function falpha.fa
input Real x "input value";
input Real x0 = -0.035 "offset for x (fitting parameter)";
input Real sy = 65.3 "scaling factor for y (fitting parameter)";
input Real sx = -400.0 "scaling factor for x (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
if abs(x - x0) < 1e-06 then
y := sy;
else
y := sy * x_adj / (exp(x_adj) - 1.0);
end if;
end falpha.fa;
function nernst "Nernst equation to find the equlibrium potential for a single ion"
input Real ion_in(quantity = "Concentration", unit = "mol/m3") "intracellular ion concentration";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real v_eq(quantity = "ElectricPotential", unit = "V") "equlibirium potential";
algorithm
v_eq := 8.3144598 * temp / /*Real*/(ion_z) / 96485.33289000001 * log(ion_ex / ion_in);
end nernst;
function st.ftau.falpha
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, -1000.0 / 11.0, 0.00015) + kr.ftau.falpha(x, 0.0, -1000.0 / 700.0, 0.0002)) + off;
end st.ftau.falpha;
function st.act.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (st.ftau.falpha(x, 0.0) + ftau.fbeta(x, 0.0)) + off;
end st.act.ftau;
function act_fast.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 39.8, 17.0) + kr.ftau.falpha(x, 0.0, -51.0, 0.211)) + off;
end act_fast.ftau;
function cal.ftau.falpha
input Real x "input value";
output Real y "output value";
algorithm
y := falpha.fa(x, -0.035, 26.12 * 2.5, -1000.0 / 2.5) + falpha.fa(x, 0.0, 78.11 / 0.208, -208.0);
end cal.ftau.falpha;
function inact.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 9.42, 603.6) + kr.ftau.falpha(x, 0.0, -18.3, 92.01000000000001)) + off;
end inact.ftau;
function fbeta.fa
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, -1000.0 / 10.0, 95.0 / 150.4) + kr.ftau.falpha(x, 0.0, -1000.0 / 700.0, 50.0 / 150.4)) + off;
end fbeta.fa;
function p_from_g "calculate membrane permeability for ion from membrane conductance"
input Real g(quantity = "Conductance", unit = "S") "membrane conductance for given ion";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real p(quantity = "Permeability (fluid mechanics)", unit = "m3/(s.m2)") "membrane permeability for given ion";
protected Real unit_area(quantity = "Area", unit = "m2") = 1.0 "unit area of 1 m², used to get correct units";
algorithm
p := g / ion_ex * 8.3144598 * temp / (96485.33289000001 * /*Real*/(ion_z)) ^ 2.0 / unit_area;
end p_from_g;
function inact.falpha
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 1000.0 / 13.0, 3100.0 / 150.4) + kr.ftau.falpha(x, 0.0, 1000.0 / 70.0, 700.0 / 150.4)) + off;
end inact.falpha;
name | unit | label | value |
---|---|---|---|
ca_sub.substance.rate | "mol/s" | molar flow rate of substance | |
st.inact.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
st.inact.steady | "1" | steady state achieved if current voltage is held constant | |
st.inact.beta | "1" | rate of transfer from open to closed conformation | |
st.inact.alpha | "1" | rate of transfer from closed to open conformation | |
st.inact.n | ratio of molecules in open conformation | 0.4886 | |
st.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
st.act.steady | value that n would reach if v_gate was held constant | ||
st.act.n | ratio of molecules in open conformation | 0.1933 | |
st.g | "S" | ion conductance | |
st.i_open | "A" | i if open_ratio = 1 | |
st.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
st.i_ion | "A" | current used for ion flux | |
st.v_gate | "V" | voltage used for activation/inactivation gates | |
hcn.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
hcn.act.steady | value that n would reach if v_gate was held constant | ||
hcn.act.n | "1" | ratio of molecules in open conformation | 0.03825 |
hcn.g | "S" | ion conductance | |
hcn.i_open | "A" | i if open_ratio = 1 | |
hcn.i_ion | "A" | current used for ion flux | |
hcn.v_gate | "V" | voltage used for activation/inactivation gates | |
l2.i | "A" | Current flowing from pin p to pin n | |
l2.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
nak.i | "A" | Current flowing from pin p to pin n | |
nak.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
naca.e4 | "1" | ratio of exchanger molecules in state e4 | |
naca.e3 | "1" | ratio of exchanger molecules in state e3 | |
naca.e2 | "1" | ratio of exchanger molecules in state e2 | |
naca.e1 | "1" | ratio of exchanger molecules in state e1 | |
naca.d | "1" | common denominator to turn relative frequencies into actual ratios between 0 and 1 | |
naca.x4 | "1" | relative frequancy of E4 states | |
naca.x3 | "1" | relative frequency of E3 states | |
naca.x2 | "1" | relative frequency of E2 states | |
naca.x1 | "1" | relative frequency of E1 states | |
naca.k_14 | "1" | rate constant for transition from E1 to E4 | |
naca.k_41 | "1" | rate constant for transition from E4 to E1 | |
naca.k_32 | "1" | rate constant for transition from E3 to E2 | |
naca.k_23 | "1" | rate constant for transition from E2 to E3 | |
naca.k_21 | "1" | rate constant for transition from E2 to E1 | |
naca.k_12 | "1" | rate constant for transition from E1 to E2 | |
naca.f1_2n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | |
naca.f1_2n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | |
naca.do | "1" | common denominator summing relative frequencies for all E2 substates | |
naca.do_cv | "1" | relative frequency of E2 states that are occupied by Ca2+ and occluded | |
naca.di | "1" | common denominator summing relative frequencies for all E1 substates | |
naca.di_cv | "1" | relative frequency of E1 states that are occupied by Ca2+ and occluded | |
naca.i_ion | "A" | current used for TransmembraneCaFlow | |
naca.trans.rate | "mol/s" | rate of change in substance amount | |
naca.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
kr.act_total | total activation due to slow and fast activation terms | ||
kr.inact.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.inact.steady | value that n would reach if v_gate was held constant | ||
kr.inact.n | ratio of molecules in open conformation | 0.9775 | |
kr.act_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_slow.steady | value that n would reach if v_gate was held constant | ||
kr.act_slow.n | ratio of molecules in open conformation | 0.1287 | |
kr.act_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_fast.steady | value that n would reach if v_gate was held constant | ||
kr.act_fast.n | ratio of molecules in open conformation | 0.6067 | |
kr.g | "S" | ion conductance | |
kr.i_open | "A" | i if open_ratio = 1 | |
kr.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
kr.i_ion | "A" | current used for ion flux | |
kr.v_gate | "V" | voltage used for activation/inactivation gates | |
cal.inact_total | |||
cal.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_fast.steady | value that n would reach if v_gate was held constant | ||
cal.inact_fast.n | ratio of molecules in open conformation | 0.6861 | |
cal.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_slow.steady | value that n would reach if v_gate was held constant | ||
cal.inact_slow.n | ratio of molecules in open conformation | 0.4441 | |
cal.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.act.steady | value that n would reach if v_gate was held constant | ||
cal.act.n | ratio of molecules in open conformation | 0.0001533 | |
cal.trans.rate | "mol/s" | rate of change in substance amount | |
cal.g | "S" | ion conductance | |
cal.i_open | "A" | i if open_ratio = 1 | |
cal.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
cal.i_ion | "A" | current used for ion flux | |
cal.v_gate | "V" | voltage used for activation/inactivation gates | |
bg.i_ion | "A" | current used for ion flux | |
bg.v_gate | "V" | voltage used for activation/inactivation gates | |
n.v | "V" | Potential at the pin | |
p.v | "V" | Potential at the pin | |
v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
cal.con.substance.amount | "mol" | amount of substance | cal.con.c_const * cal.con.vol |
naca.con.substance.amount | "mol" | amount of substance | naca.con.c_const * naca.con.vol |
naca.di_cn | "1" | relative frequency of E1 states whose first two binding sites are occupied by Ca2+ and whose last binding site is occupied by Na+ | naca.di_c * na_in / naca.k_cn_i |
naca.di_3n | "1" | relative frequency of E1 states where exactly three Na+ sites are occupied by Na+ | naca.di_2n * na_in / naca.k_3n_i |
naca.do_3n | "1" | relative frequency of E2 states where exactly three Na+ sites are occupied by Na+ | naca.do_2n * na_ex / naca.k_3n_o |
naca.do_2n | "1" | relative frequency of E2 states where exactly the first two Na+ sites are occupied by Na+ | naca.do_1n * na_ex / naca.k_2n_o |
naca.di_2n | "1" | relative frequency of E1 states where exactly the first two Na+ sites are occupied by Na+ | naca.di_1n * na_in / naca.k_2n_i |
naca.di_c | "1" | relative frequency of E1 states that are occupied by Ca2+ and not occluded | ca_sub.substance.amount / (naca.k_c_i * v_sub) |
p.i | "A" | Current flowing into the pin | 0.0 |
n.i | "A" | Current flowing into the pin | 0.0 |
bg.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | 1.0 |
ca_sub.substance.amount | "mol" | amount of substance | ca_sub.c_const * ca_sub.vol |
cal.ach_factor | 1.0 | ||
naca.di_1n | "1" | relative frequency of E1 states where only the first Na+ site is occupied by Na+ | na_in / naca.k_1n_i |
naca.do_c | "1" | relative frequency of E2 states that are occupied by Ca2+ and not occluded | ca_ex / naca.k_c_o |
naca.do_1n | "1" | relative frequency of E2 states where only the first Na+ site is occupied by Na+ | na_ex / naca.k_1n_o |
naca.f1_3n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_ex, naca.k_3n_o) |
naca.f1_3n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_in, naca.k_3n_i) |
use_ach | should acetylcholine sensitive potassium channel be included in the model | false | |
ach | "mol/m3" | concentration of acetylcholine available for I_ACh | 0.0 |
na_in | "mol/m3" | intracellular sodium concentration | 8.0 |
na_ex | "mol/m3" | extracellular sodium concentration | 140.0 |
na_p | "m3/(s.m2)" | permeability of cell membrane to sodium ions | InaMo.Functions.Biochemical.p_from_g(2.53e-07, na_ex, 1, temp) |
k_in | "mol/m3" | intracellular potassium concentration | 140.0 |
k_ex | "mol/m3" | extracellular potassium concentration | 5.4 |
ca_ex | "mol/m3" | extracellular calcium concentration | 2.0 |
temp | "K" | cell medium temperature | 288.15 |
v_cell | "m3" | total cell volume | InaMo.Cells.ConstantCa.NCellConst.c_to_v(l2.c, 2.19911e-15, 7.147123e-15) |
v_cyto | "m3" | volume of cytosol | 0.46 * v_cell - v_sub |
v_sub | "m3" | volume of subspace | 0.01 * v_cell |
v_jsr | "m3" | volume of junctional SR | 0.0012 * v_cell |
v_nsr | "m3" | volume of network SR | 0.0116 * v_cell |
v_k | "V" | equilibrium potential for potassium currents | InaMo.Functions.Biochemical.nernst(k_in, k_ex, 1, temp) |
bg.v_eq | "V" | equilibrium potential | -0.0225 |
bg.g_max | "S" | maximum conductance | 1.2e-09 |
bg.current_name | "I_b" | ||
cal.v_eq | "V" | equilibrium potential | 0.0621 |
cal.g_max | "S" | maximum conductance | 9e-09 |
cal.trans.n | "1" | stoichiometric ratio of ion transport | cal.n_ca |
cal.trans.z | valence of ion | 2 | |
cal.con.c_const | "mol/m3" | fixed concentration | ca_ex |
cal.con.vol | "m3" | volume of the compartment | 1.0 |
cal.n_ca | "1" | stoichiometric ratio of transport | 1.0 |
cal.current_name | "I_Ca,L" | ||
cal.k_ach | "1" | ratio of maximum channel inhibition by acetylcholine | 0.0 |
kr.v_eq | "V" | equilibrium potential | v_k |
kr.g_max | "S" | maximum conductance | 3.5e-09 |
kr.current_name | "I_K,r" | ||
naca.trans.n | "1" | stoichiometric ratio of ion transport | naca.n_ca |
naca.trans.z | valence of ion | 2 | |
naca.con.c_const | "mol/m3" | fixed concentration | ca_ex |
naca.con.vol | "m3" | volume of the compartment | 1.0 |
naca.n_ca | "1" | stoichiometric ratio of transport | -2.0 |
naca.current_name | "I_NaCa" | ||
naca.k_c_i | "mol/m3" | dissociation constant for channel with Ca++ bound on inside | 0.0207 |
naca.k_cn_i | "mol/m3" | dissociation constant for channel with Ca++ and one Na+ bound on inside | 26.44 |
naca.k_1n_i | "mol/m3" | dissociation constant for channel with one Na+ bound on inside | 395.3 |
naca.k_2n_i | "mol/m3" | dissociation constant for channel with two Na+ bound on inside | 2.289 |
naca.k_3n_i | "mol/m3" | dissociation constant for channel with three Na+ bound on inside | 26.44 |
naca.k_c_o | "mol/m3" | dissociation constant for channel with Ca++ bound on outside | 3.663 |
naca.k_1n_o | "mol/m3" | dissociation constant for channel with one Na+ bound on outside | 1628.0 |
naca.k_2n_o | "mol/m3" | dissociation constant for channel with two Na+ bound on outside | 561.4 |
naca.k_3n_o | "mol/m3" | dissociation constant for channel with three Na+ bound on outside | 4.663 |
naca.q_ci | fractional charge movement during intracellular Ca++ occlusion reaction | 0.1369 | |
naca.q_co | fractional charge movement during extracellular Ca++ occlusion reaction | 0.0 | |
naca.q_n | fractional charge movement during Na+ occlusion reactions | 0.4315 | |
naca.k_NaCa | "A" | scaling factor for Na+/Ca++ exchanger current | 2.14e-09 |
naca.FoRT | helper variable to simplify equations | 11604.52214706721 / temp | |
nak.current_name | "I_NaK" | ||
nak.i_max | "A" | maximum current (actual maximum is 1.6 * i_max) | 1.43e-10 |
nak.k_m_Na | "mol/m3" | Michaelis constant for Na+ binding | 5.64 |
nak.k_m_K | "mol/m3" | Michaelis constant for K+ binding | 0.621 |
l2.c | "F" | membrane capacitance | 2.9e-11 |
l2.v_init | "V" | initial potential (from short initial stimulation) | -0.09 |
l2.use_init | determines whether initial value for v is used | true | |
hcn.v_eq | "V" | equilibrium potential | -0.03 |
hcn.g_max | "S" | maximum conductance | 1e-09 |
hcn.current_name | "I_f" | ||
hcn.act_shift | "V" | 0.0 | |
hcn.act.shift | "V" | hcn.act_shift | |
st.v_eq | "V" | equilibrium potential | 0.0374 |
st.g_max | "S" | maximum conductance | 1e-10 |
st.current_name | "I_st" | ||
cell_type | "N" | ||
ca_sub.c_const | "mol/m3" | fixed concentration | 0.0001 |
ca_sub.vol | "m3" | volume of the compartment | v_sub |
bg.g | "S" | ion conductance | bg.g_max |
InaMo.Cells.ConstantCa.NHCellConst
NOTE: Inada et al. state that they also performed experiments with constant intracellular Ca2+ at 0.1 μM (see supplement, page 3), but they do not give any reference plots for this setup.
model NHCellConst "nodal-his cell model with constant intracellular Ca2+ concentration"
extends InaMo.Cells.Interfaces.NHCellBase;
extends InaMo.Icons.CellConst(cell_type = "NH");
InaMo.Concentrations.Basic.ConstantConcentration ca_sub(c_const = 1e-4, vol = v_sub) "Ca2+ in subspace available to Ca2+-sensitive currents" annotation(
Placement(transformation(origin = {16, 0}, extent = {{-17, -17}, {17, 17}})));
equation
connect(cal.ca, ca_sub.substance) annotation(
Line(points = {{-34, -36}, {-36, -36}, {-36, -6}, {-10, -6}, {-10, -16}, {16, -16}, {16, -16}}));
connect(ca_sub.substance, naca.ca) annotation(
Line(points = {{16, -16}, {-10, -16}, {-10, 38}, {-12, 38}, {-12, 36}}));
annotation(
Documentation(info = "<html>
<p>NOTE: Inada et al. state that they also performed experiments with constant
intracellular Ca2+ at 0.1 μM (see supplement, page 3), but they do not give
any reference plots for this setup.</p>
</html>"));
end NHCellConst;
- Within group cal (prefix _ indicates shortened variable name)
- Within group kir (prefix _ indicates shortened variable name)
- Within group kr (prefix _ indicates shortened variable name)
- Within group na (prefix _ indicates shortened variable name)
- Within group act (prefix _ indicates shortened variable name)
- Within group naca (prefix _ indicates shortened variable name)
- Within group to (prefix _ indicates shortened variable name)
Functions:
function act.fsteady
input Real x "input value";
input Real y_min = 0.0 "lower asymptote (fitting parameter)";
input Real y_max = 1.0 "upper asmyptote when d_off=1 and nu=1 (fititng parameter)";
input Real x0 = -0.0032 "x-value of sigmoid midpoint when d_off=1 and nu=1 (fitting parameter)";
input Real sx = 151.285930408472 "scaling factor for x axis (i.e. steepness, fitting parameter)";
input Real se = 1.0 "scaling factor for exponential part (fitting parameter)";
input Real d_off = 1.0 "offset in denominator (affects upper asymptote, fitting parameter)";
input Real nu = 1.0 "reciprocal of exponent of denominator (affects upper asymptote, fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
y := y_min + (y_max - y_min) / (se * exp(-x_adj) + d_off) ^ (1.0 / nu);
end act.fsteady;
function cal.ftau.falpha
input Real x "input value";
output Real y "output value";
algorithm
y := fa(x, -0.035, 26.12 * 2.5, -1000.0 / 2.5) + fa(x, 0.0, 78.11 / 0.208, -208.0);
end cal.ftau.falpha;
function c_to_v "function used to determine cell volume based on membrane capacitance"
input Real c_m(quantity = "Capacitance", unit = "F", min = 0.0) "membrane capacitance";
input Real v_low(quantity = "Volume", unit = "m3") = 2.19911e-15 "low estimate for cell volume (obtained when c_m = c_low)";
input Real v_high(quantity = "Volume", unit = "m3") = 7.147123e-15 "high estimate for cell volume (obtained when c_m = c_low + c_span)";
output Real v_cell(quantity = "Volume", unit = "m3") "resulting total cell volume";
protected Real c_low(quantity = "Capacitance", unit = "F", min = 0.0) = 2e-11 "low value for c_m (where v_low is returned)";
protected Real c_span(quantity = "Capacitance", unit = "F", min = 0.0) = 4.5e-11 "span that must be added to c_m to reach an output of v_high";
algorithm
v_cell := (c_m - c_low) / c_span * (v_high - v_low) + v_low;
end c_to_v;
function inact.fsteady
input Real x "input value";
output Real y "output value";
algorithm
y := act.fsteady(x, 0.0, 1.0, -0.0049, -1000.0 / 15.14, 1.0, 1.0, 1.0) * inact_fast.ftau(x, 1.0, (-0.3) + 1.0, 0.0, sqrt(500.0 / 2.0) / 1000.0);
end inact.fsteady;
function kr.ftau.falpha
input Real x "input value";
input Real x0 = 0.0 "x-value where y = 1 (fitting parameter)";
input Real sx = 39.8 "scaling factor for x axis (fitting parameter)";
input Real sy = 17.0 "scaling factor for y axis (fitting parameter)";
output Real y "result";
algorithm
y := sy * exp(sx * (x - x0));
end kr.ftau.falpha;
function michaelisMenten "equation for enzymatic reactions following Michaelis-Menten kinetics"
input Real s(quantity = "Concentration", unit = "mol/m3") "substrate concentration";
input Real k(quantity = "Concentration", unit = "mol/m3") "concentration producing half-maximum reaction rate (michaelis constant)";
output Real rate(unit = "1") "reaction rate";
algorithm
rate := s / (s + k);
end michaelisMenten;
function inact_fast.ftau
input Real x "input value";
input Real y_min = 0.01 "minimum value achieved at edges (fitting parameter)";
input Real y_max = 0.1639 "maximum value achieved at peak (fititng parameter)";
input Real x0 = -0.04 "x-value of bell curve midpoint (fitting parameter)";
input Real sigma = 0.009635092111651035 "standard deviation determining the width of the bell curve (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and standard deviation";
algorithm
x_adj := (x - x0) / sigma;
y := y_min + (y_max - y_min) * exp(-0.5 * x_adj ^ 2.0);
end inact_fast.ftau;
function to.act.ftau
input Real x "input value";
input Real off = 0.000596 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, -0.03061, 90.0, 1.037 / 0.003188) + kr.ftau.falpha(x, -0.02384, -120.0, 0.396 / 0.003188)) + off;
end to.act.ftau;
function cal.act.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (cal.ftau.falpha(x) + fa(x, 0.005, 10.52 / 0.4, 400.0)) + off;
end cal.act.ftau;
function inact_fast.fsteady
input Real x "input value";
output Real y "result of applying the HH-style equation steady = alpha/(alpha + beta)";
algorithm
y := kr.ftau.falpha(x, -0.0669, -1000.0 / 5.57, 44.9) / (kr.ftau.falpha(x, -0.0669, -1000.0 / 5.57, 44.9) + act.fsteady(x, 0.0, 1491.0, -0.0946, 1000.0 / 12.9, 323.3, 1.0, 1.0));
end inact_fast.fsteady;
function inact.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 9.42, 603.6) + kr.ftau.falpha(x, 0.0, -18.3, 92.01000000000001)) + off;
end inact.ftau;
function ghkFlux "ghk flux equation for a single ion"
input Real v(quantity = "ElectricPotential", unit = "V") "membrane potential";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
input Real ion_in(quantity = "Concentration", unit = "mol/m3") "intracellular ion concentration";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Real ion_p(quantity = "Permeability (fluid mechanics)", unit = "m3/(s.m2)") "permeability of cell membrane to Na+ cations";
input Integer ion_z "ion valence";
output Real i(quantity = "CurrentDensity", unit = "A/m2") "current density resulting from ion flux through membrane";
protected Real g_max(quantity = "Conductance", unit = "S");
protected Real v_eq(quantity = "ElectricPotential", unit = "V");
protected Real FoRT(unit = "1/V") = 96485.33289000001 / (8.3144598 * temp);
algorithm
g_max := ion_p * ion_ex * FoRT * 96485.33289000001 * /*Real*/(ion_z) ^ 2.0;
v_eq := nernst(ion_in, ion_ex, ion_z, temp);
if abs(v) < 1e-06 then
i := g_max / FoRT / /*Real*/(ion_z) * (exp(-v_eq * FoRT * /*Real*/(ion_z)) - 1.0);
else
i := g_max * v * (exp((v - v_eq) * FoRT * /*Real*/(ion_z)) - 1.0) / (exp(v * FoRT * /*Real*/(ion_z)) - 1.0);
end if;
end ghkFlux;
function fa
input Real x "input value";
input Real x0 = -0.035 "offset for x (fitting parameter)";
input Real sy = 65.3 "scaling factor for y (fitting parameter)";
input Real sx = -400.0 "scaling factor for x (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
if abs(x - x0) < 1e-06 then
y := sy;
else
y := sy * x_adj / (exp(x_adj) - 1.0);
end if;
end fa;
function act_fast.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 39.8, 17.0) + kr.ftau.falpha(x, 0.0, -51.0, 0.211)) + off;
end act_fast.ftau;
function nernst "Nernst equation to find the equlibrium potential for a single ion"
input Real ion_in(quantity = "Concentration", unit = "mol/m3") "intracellular ion concentration";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real v_eq(quantity = "ElectricPotential", unit = "V") "equlibirium potential";
algorithm
v_eq := 8.3144598 * temp / /*Real*/(ion_z) / 96485.33289000001 * log(ion_ex / ion_in);
end nernst;
function p_from_g "calculate membrane permeability for ion from membrane conductance"
input Real g(quantity = "Conductance", unit = "S") "membrane conductance for given ion";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real p(quantity = "Permeability (fluid mechanics)", unit = "m3/(s.m2)") "membrane permeability for given ion";
protected Real unit_area(quantity = "Area", unit = "m2") = 1.0 "unit area of 1 m², used to get correct units";
algorithm
p := g / ion_ex * 8.3144598 * temp / (96485.33289000001 * /*Real*/(ion_z)) ^ 2.0 / unit_area;
end p_from_g;
name | unit | label | value |
---|---|---|---|
ca_sub.substance.rate | "mol/s" | molar flow rate of substance | |
to.inact_total | total inactivation resulting from fast and slow inactivation gates | ||
to.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.inact_fast.steady | value that n would reach if v_gate was held constant | ||
to.inact_fast.n | ratio of molecules in open conformation | 0.864 | |
to.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.inact_slow.steady | value that n would reach if v_gate was held constant | ||
to.inact_slow.n | ratio of molecules in open conformation | 0.1297 | |
to.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.act.steady | value that n would reach if v_gate was held constant | ||
to.act.n | ratio of molecules in open conformation | 0.009580999999999999 | |
to.g | "S" | ion conductance | |
to.i_open | "A" | i if open_ratio = 1 | |
to.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
to.i_ion | "A" | current used for ion flux | |
to.v_gate | "V" | voltage used for activation/inactivation gates | |
na.inact_total | total inactivation resulting from fast and slow inactivation terms | ||
na.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.inact_slow.steady | value that n would reach if v_gate was held constant | ||
na.inact_slow.n | ratio of molecules in open conformation | 0.5552 | |
na.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.inact_fast.steady | value that n would reach if v_gate was held constant | ||
na.inact_fast.n | ratio of molecules in open conformation | 0.6438 | |
na.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.act.steady | "1" | steady state achieved if current voltage is held constant | |
na.act.beta | "1" | rate of transfer from open to closed conformation | |
na.act.alpha | "1" | rate of transfer from closed to open conformation | |
na.act.n | ratio of molecules in open conformation | 0.01529 | |
na.i_open | i if open_ratio = 1 | ||
na.open_ratio | ratio between 0 (fully closed) and 1 (fully open) | ||
na.i_ion | "A" | current used for ion flux | |
na.v_gate | "V" | voltage used for activation/inactivation gates | |
kir.voltage_act.n | ratio of molecules in open conformation | ||
kir.voltage_inact.n | ratio of molecules in open conformation | ||
kir.g | "S" | ion conductance | |
kir.i_open | "A" | i if open_ratio = 1 | |
kir.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
kir.i_ion | "A" | current used for ion flux | |
kir.v_gate | "V" | voltage used for activation/inactivation gates | |
l2.i | "A" | Current flowing from pin p to pin n | |
l2.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
nak.i | "A" | Current flowing from pin p to pin n | |
nak.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
naca.e4 | "1" | ratio of exchanger molecules in state e4 | |
naca.e3 | "1" | ratio of exchanger molecules in state e3 | |
naca.e2 | "1" | ratio of exchanger molecules in state e2 | |
naca.e1 | "1" | ratio of exchanger molecules in state e1 | |
naca.d | "1" | common denominator to turn relative frequencies into actual ratios between 0 and 1 | |
naca.x4 | "1" | relative frequancy of E4 states | |
naca.x3 | "1" | relative frequency of E3 states | |
naca.x2 | "1" | relative frequency of E2 states | |
naca.x1 | "1" | relative frequency of E1 states | |
naca.k_14 | "1" | rate constant for transition from E1 to E4 | |
naca.k_41 | "1" | rate constant for transition from E4 to E1 | |
naca.k_32 | "1" | rate constant for transition from E3 to E2 | |
naca.k_23 | "1" | rate constant for transition from E2 to E3 | |
naca.k_21 | "1" | rate constant for transition from E2 to E1 | |
naca.k_12 | "1" | rate constant for transition from E1 to E2 | |
naca.f1_2n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | |
naca.f1_2n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | |
naca.do | "1" | common denominator summing relative frequencies for all E2 substates | |
naca.do_cv | "1" | relative frequency of E2 states that are occupied by Ca2+ and occluded | |
naca.di | "1" | common denominator summing relative frequencies for all E1 substates | |
naca.di_cv | "1" | relative frequency of E1 states that are occupied by Ca2+ and occluded | |
naca.i_ion | "A" | current used for TransmembraneCaFlow | |
naca.trans.rate | "mol/s" | rate of change in substance amount | |
naca.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
kr.act_total | total activation due to slow and fast activation terms | ||
kr.inact.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.inact.steady | value that n would reach if v_gate was held constant | ||
kr.inact.n | ratio of molecules in open conformation | 0.9853 | |
kr.act_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_slow.steady | value that n would reach if v_gate was held constant | ||
kr.act_slow.n | ratio of molecules in open conformation | 0.07024 | |
kr.act_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_fast.steady | value that n would reach if v_gate was held constant | ||
kr.act_fast.n | ratio of molecules in open conformation | 0.09949 | |
kr.g | "S" | ion conductance | |
kr.i_open | "A" | i if open_ratio = 1 | |
kr.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
kr.i_ion | "A" | current used for ion flux | |
kr.v_gate | "V" | voltage used for activation/inactivation gates | |
cal.inact_total | |||
cal.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_fast.steady | value that n would reach if v_gate was held constant | ||
cal.inact_fast.n | ratio of molecules in open conformation | 0.9981 | |
cal.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_slow.steady | value that n would reach if v_gate was held constant | ||
cal.inact_slow.n | ratio of molecules in open conformation | 0.9831 | |
cal.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.act.steady | value that n would reach if v_gate was held constant | ||
cal.act.n | ratio of molecules in open conformation | 5.025e-05 | |
cal.trans.rate | "mol/s" | rate of change in substance amount | |
cal.g | "S" | ion conductance | |
cal.i_open | "A" | i if open_ratio = 1 | |
cal.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
cal.i_ion | "A" | current used for ion flux | |
cal.v_gate | "V" | voltage used for activation/inactivation gates | |
bg.i_ion | "A" | current used for ion flux | |
bg.v_gate | "V" | voltage used for activation/inactivation gates | |
n.v | "V" | Potential at the pin | |
p.v | "V" | Potential at the pin | |
v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
cal.con.substance.amount | "mol" | amount of substance | cal.con.c_const * cal.con.vol |
naca.con.substance.amount | "mol" | amount of substance | naca.con.c_const * naca.con.vol |
naca.di_cn | "1" | relative frequency of E1 states whose first two binding sites are occupied by Ca2+ and whose last binding site is occupied by Na+ | naca.di_c * na_in / naca.k_cn_i |
naca.di_3n | "1" | relative frequency of E1 states where exactly three Na+ sites are occupied by Na+ | naca.di_2n * na_in / naca.k_3n_i |
naca.do_3n | "1" | relative frequency of E2 states where exactly three Na+ sites are occupied by Na+ | naca.do_2n * na_ex / naca.k_3n_o |
naca.do_2n | "1" | relative frequency of E2 states where exactly the first two Na+ sites are occupied by Na+ | naca.do_1n * na_ex / naca.k_2n_o |
naca.di_2n | "1" | relative frequency of E1 states where exactly the first two Na+ sites are occupied by Na+ | naca.di_1n * na_in / naca.k_2n_i |
naca.di_c | "1" | relative frequency of E1 states that are occupied by Ca2+ and not occluded | ca_sub.substance.amount / (naca.k_c_i * v_sub) |
p.i | "A" | Current flowing into the pin | 0.0 |
n.i | "A" | Current flowing into the pin | 0.0 |
bg.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | 1.0 |
ca_sub.substance.amount | "mol" | amount of substance | ca_sub.c_const * ca_sub.vol |
cal.ach_factor | 1.0 | ||
naca.di_1n | "1" | relative frequency of E1 states where only the first Na+ site is occupied by Na+ | na_in / naca.k_1n_i |
naca.do_c | "1" | relative frequency of E2 states that are occupied by Ca2+ and not occluded | ca_ex / naca.k_c_o |
naca.do_1n | "1" | relative frequency of E2 states where only the first Na+ site is occupied by Na+ | na_ex / naca.k_1n_o |
naca.f1_3n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_ex, naca.k_3n_o) |
naca.f1_3n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_in, naca.k_3n_i) |
kir.n_pot | "1" | [K+]_ex-dependent gating variable | InaMo.Functions.Biochemical.michaelisMenten(k_ex, 0.59) |
use_ach | should acetylcholine sensitive potassium channel be included in the model | false | |
ach | "mol/m3" | concentration of acetylcholine available for I_ACh | 0.0 |
na_in | "mol/m3" | intracellular sodium concentration | 8.0 |
na_ex | "mol/m3" | extracellular sodium concentration | 140.0 |
na_p | "m3/(s.m2)" | permeability of cell membrane to sodium ions | InaMo.Functions.Biochemical.p_from_g(2.53e-07, na_ex, 1, temp) |
k_in | "mol/m3" | intracellular potassium concentration | 140.0 |
k_ex | "mol/m3" | extracellular potassium concentration | 5.4 |
ca_ex | "mol/m3" | extracellular calcium concentration | 2.0 |
temp | "K" | cell medium temperature | 288.15 |
v_cell | "m3" | total cell volume | InaMo.Cells.ConstantCa.NHCellConst.c_to_v(l2.c, 2.19911e-15, 7.147123e-15) |
v_cyto | "m3" | volume of cytosol | 0.46 * v_cell - v_sub |
v_sub | "m3" | volume of subspace | 0.01 * v_cell |
v_jsr | "m3" | volume of junctional SR | 0.0012 * v_cell |
v_nsr | "m3" | volume of network SR | 0.0116 * v_cell |
v_k | "V" | equilibrium potential for potassium currents | InaMo.Functions.Biochemical.nernst(k_in, k_ex, 1, temp) |
bg.v_eq | "V" | equilibrium potential | -0.04 |
bg.g_max | "S" | maximum conductance | 2e-09 |
bg.current_name | "I_b" | ||
cal.v_eq | "V" | equilibrium potential | 0.0621 |
cal.g_max | "S" | maximum conductance | 2.1e-08 |
cal.trans.n | "1" | stoichiometric ratio of ion transport | cal.n_ca |
cal.trans.z | valence of ion | 2 | |
cal.con.c_const | "mol/m3" | fixed concentration | ca_ex |
cal.con.vol | "m3" | volume of the compartment | 1.0 |
cal.n_ca | "1" | stoichiometric ratio of transport | 1.0 |
cal.current_name | "I_Ca,L" | ||
cal.k_ach | "1" | ratio of maximum channel inhibition by acetylcholine | 0.0 |
kr.v_eq | "V" | equilibrium potential | v_k |
kr.g_max | "S" | maximum conductance | 2e-09 |
kr.current_name | "I_K,r" | ||
naca.trans.n | "1" | stoichiometric ratio of ion transport | naca.n_ca |
naca.trans.z | valence of ion | 2 | |
naca.con.c_const | "mol/m3" | fixed concentration | ca_ex |
naca.con.vol | "m3" | volume of the compartment | 1.0 |
naca.n_ca | "1" | stoichiometric ratio of transport | -2.0 |
naca.current_name | "I_NaCa" | ||
naca.k_c_i | "mol/m3" | dissociation constant for channel with Ca++ bound on inside | 0.0207 |
naca.k_cn_i | "mol/m3" | dissociation constant for channel with Ca++ and one Na+ bound on inside | 26.44 |
naca.k_1n_i | "mol/m3" | dissociation constant for channel with one Na+ bound on inside | 395.3 |
naca.k_2n_i | "mol/m3" | dissociation constant for channel with two Na+ bound on inside | 2.289 |
naca.k_3n_i | "mol/m3" | dissociation constant for channel with three Na+ bound on inside | 26.44 |
naca.k_c_o | "mol/m3" | dissociation constant for channel with Ca++ bound on outside | 3.663 |
naca.k_1n_o | "mol/m3" | dissociation constant for channel with one Na+ bound on outside | 1628.0 |
naca.k_2n_o | "mol/m3" | dissociation constant for channel with two Na+ bound on outside | 561.4 |
naca.k_3n_o | "mol/m3" | dissociation constant for channel with three Na+ bound on outside | 4.663 |
naca.q_ci | fractional charge movement during intracellular Ca++ occlusion reaction | 0.1369 | |
naca.q_co | fractional charge movement during extracellular Ca++ occlusion reaction | 0.0 | |
naca.q_n | fractional charge movement during Na+ occlusion reactions | 0.4315 | |
naca.k_NaCa | "A" | scaling factor for Na+/Ca++ exchanger current | 5.92e-09 |
naca.FoRT | helper variable to simplify equations | 11604.52214706721 / temp | |
nak.current_name | "I_NaK" | ||
nak.i_max | "A" | maximum current (actual maximum is 1.6 * i_max) | 1.97e-10 |
nak.k_m_Na | "mol/m3" | Michaelis constant for Na+ binding | 5.64 |
nak.k_m_K | "mol/m3" | Michaelis constant for K+ binding | 0.621 |
l2.c | "F" | membrane capacitance | 4e-11 |
l2.v_init | "V" | initial potential (from short initial stimulation) | -0.09 |
l2.use_init | determines whether initial value for v is used | true | |
kir.v_eq | "V" | equilibrium potential | v_k |
kir.g_max | "S" | maximum conductance | 1.5e-08 |
kir.current_name | "I_K1" | ||
kir.FoRT | helper variable to simplyfiy equations | 96485.33289000001 / (temp * 8.3144598) | |
kir.use_vact | use voltage-dependent activation gate? (only Inada 2009) | true | |
na.ion_ex | "mol/m3" | extracellular concentration of ion | na_ex |
na.ion_p | "m3/(s.m2)" | permeability of ion | na_p |
na.ion_z | valence of ion | 1 | |
na.current_name | "I_Na" | ||
to.v_eq | "V" | equilibrium potential | v_k |
to.g_max | "S" | maximum conductance | 1.4e-08 |
to.current_name | "I_to" | ||
cell_type | "NH" | ||
ca_sub.c_const | "mol/m3" | fixed concentration | 0.0001 |
ca_sub.vol | "m3" | volume of the compartment | v_sub |
na.ion_in | "mol/m3" | intracellular concentration of ion | na_in |
bg.g | "S" | ion conductance | bg.g_max |
Variable intracellular Ca2+ concentration (VariableCa)
InaMo.Cells.VariableCa
InaMo.Cells.VariableCa.ANCell
model ANCell "full atrio-nodal cell model by Inada et al. (2009)"
extends InaMo.Cells.Interfaces.ANCellBase;
extends InaMo.Icons.CellVar(cell_type = "AN");
// starting values for CaHandling are from Inada 2009
InaMo.Concentrations.Atrioventricular.CaHandling ca(cyto.c_start = 0.1206e-3, sub.c_start = 0.06397e-3, jsr.c_start = 0.4273, nsr.c_start = 1.068, tc.f_start = 0.02359, tm.f_a_start = 0.3667, tm.f_b_start = 0.5594, cm_cyto.f_start = 0.04845, cm_sub.f_start = 0.02626, cq.f_start = 0.3379, cm_sl.f_start = 3.936e-5, jsr_sub.p = 1805.6) "intracellular Ca2+ handling by SR and buffers" annotation(
Placement(transformation(origin = {16, 0}, extent = {{-17, -17}, {17, 17}})));
// [Ca2+]_rel
// NOTE: value from C++ code, not given in paper
equation
connect(ca.ca_sub, naca.ca) annotation(
Line(points = {{0, 0}, {-10, 0}, {-10, 36}, {-12, 36}, {-12, 36}}));
connect(cal.ca, ca.ca_sub) annotation(
Line(points = {{-34, -36}, {-34, -36}, {-34, 0}, {0, 0}, {0, 0}}));
end ANCell;
- Within group ca (prefix _ indicates shortened variable name)
- Within group cm_cyto (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cm_sl (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cm_sub (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cq (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cyto (prefix _ indicates shortened variable name)
- Within group jsr (prefix _ indicates shortened variable name)
- Within group jsr_sub (prefix _ indicates shortened variable name)
- Within group nsr (prefix _ indicates shortened variable name)
- Within group sub (prefix _ indicates shortened variable name)
- Within group tc (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group tm (prefix _ indicates shortened variable name)
- Within group free (prefix _ indicates shortened variable name)
- Within group occupied_a (prefix _ indicates shortened variable name)
- Within group occupied_b (prefix _ indicates shortened variable name)
- Within group cal (prefix _ indicates shortened variable name)
- Within group kir (prefix _ indicates shortened variable name)
- Within group kr (prefix _ indicates shortened variable name)
- Within group na (prefix _ indicates shortened variable name)
- Within group act (prefix _ indicates shortened variable name)
- Within group naca (prefix _ indicates shortened variable name)
- Within group to (prefix _ indicates shortened variable name)
Functions:
function inact.fsteady
input Real x "input value";
output Real y "output value";
algorithm
y := act.fsteady(x, 0.0, 1.0, -0.0049, -1000.0 / 15.14, 1.0, 1.0, 1.0) * inact_fast.ftau(x, 1.0, (-0.3) + 1.0, 0.0, sqrt(500.0 / 2.0) / 1000.0);
end inact.fsteady;
function act.fsteady
input Real x "input value";
input Real y_min = 0.0 "lower asymptote (fitting parameter)";
input Real y_max = 1.0 "upper asmyptote when d_off=1 and nu=1 (fititng parameter)";
input Real x0 = -0.0032 "x-value of sigmoid midpoint when d_off=1 and nu=1 (fitting parameter)";
input Real sx = 151.285930408472 "scaling factor for x axis (i.e. steepness, fitting parameter)";
input Real se = 1.0 "scaling factor for exponential part (fitting parameter)";
input Real d_off = 1.0 "offset in denominator (affects upper asymptote, fitting parameter)";
input Real nu = 1.0 "reciprocal of exponent of denominator (affects upper asymptote, fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
y := y_min + (y_max - y_min) / (se * exp(-x_adj) + d_off) ^ (1.0 / nu);
end act.fsteady;
function c_to_v "function used to determine cell volume based on membrane capacitance"
input Real c_m(quantity = "Capacitance", unit = "F", min = 0.0) "membrane capacitance";
input Real v_low(quantity = "Volume", unit = "m3") = 2.19911e-15 "low estimate for cell volume (obtained when c_m = c_low)";
input Real v_high(quantity = "Volume", unit = "m3") = 7.147123e-15 "high estimate for cell volume (obtained when c_m = c_low + c_span)";
output Real v_cell(quantity = "Volume", unit = "m3") "resulting total cell volume";
protected Real c_low(quantity = "Capacitance", unit = "F", min = 0.0) = 2e-11 "low value for c_m (where v_low is returned)";
protected Real c_span(quantity = "Capacitance", unit = "F", min = 0.0) = 4.5e-11 "span that must be added to c_m to reach an output of v_high";
algorithm
v_cell := (c_m - c_low) / c_span * (v_high - v_low) + v_low;
end c_to_v;
function inact_fast.fsteady
input Real x "input value";
output Real y "result of applying the HH-style equation steady = alpha/(alpha + beta)";
algorithm
y := kr.ftau.falpha(x, -0.0669, -1000.0 / 5.57, 44.9) / (kr.ftau.falpha(x, -0.0669, -1000.0 / 5.57, 44.9) + act.fsteady(x, 0.0, 1491.0, -0.0946, 1000.0 / 12.9, 323.3, 1.0, 1.0));
end inact_fast.fsteady;
function kr.ftau.falpha
input Real x "input value";
input Real x0 = 0.0 "x-value where y = 1 (fitting parameter)";
input Real sx = 39.8 "scaling factor for x axis (fitting parameter)";
input Real sy = 17.0 "scaling factor for y axis (fitting parameter)";
output Real y "result";
algorithm
y := sy * exp(sx * (x - x0));
end kr.ftau.falpha;
function michaelisMenten "equation for enzymatic reactions following Michaelis-Menten kinetics"
input Real s(quantity = "Concentration", unit = "mol/m3") "substrate concentration";
input Real k(quantity = "Concentration", unit = "mol/m3") "concentration producing half-maximum reaction rate (michaelis constant)";
output Real rate(unit = "1") "reaction rate";
algorithm
rate := s / (s + k);
end michaelisMenten;
function inact_fast.ftau
input Real x "input value";
input Real y_min = 0.01 "minimum value achieved at edges (fitting parameter)";
input Real y_max = 0.1639 "maximum value achieved at peak (fititng parameter)";
input Real x0 = -0.04 "x-value of bell curve midpoint (fitting parameter)";
input Real sigma = 0.009635092111651035 "standard deviation determining the width of the bell curve (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and standard deviation";
algorithm
x_adj := (x - x0) / sigma;
y := y_min + (y_max - y_min) * exp(-0.5 * x_adj ^ 2.0);
end inact_fast.ftau;
function ghkFlux "ghk flux equation for a single ion"
input Real v(quantity = "ElectricPotential", unit = "V") "membrane potential";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
input Real ion_in(quantity = "Concentration", unit = "mol/m3") "intracellular ion concentration";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Real ion_p(quantity = "Permeability (fluid mechanics)", unit = "m3/(s.m2)") "permeability of cell membrane to Na+ cations";
input Integer ion_z "ion valence";
output Real i(quantity = "CurrentDensity", unit = "A/m2") "current density resulting from ion flux through membrane";
protected Real g_max(quantity = "Conductance", unit = "S");
protected Real v_eq(quantity = "ElectricPotential", unit = "V");
protected Real FoRT(unit = "1/V") = 96485.33289000001 / (8.3144598 * temp);
algorithm
g_max := ion_p * ion_ex * FoRT * 96485.33289000001 * /*Real*/(ion_z) ^ 2.0;
v_eq := nernst(ion_in, ion_ex, ion_z, temp);
if abs(v) < 1e-06 then
i := g_max / FoRT / /*Real*/(ion_z) * (exp(-v_eq * FoRT * /*Real*/(ion_z)) - 1.0);
else
i := g_max * v * (exp((v - v_eq) * FoRT * /*Real*/(ion_z)) - 1.0) / (exp(v * FoRT * /*Real*/(ion_z)) - 1.0);
end if;
end ghkFlux;
function inact.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 9.42, 603.6) + kr.ftau.falpha(x, 0.0, -18.3, 92.01000000000001)) + off;
end inact.ftau;
function fa
input Real x "input value";
input Real x0 = -0.035 "offset for x (fitting parameter)";
input Real sy = 65.3 "scaling factor for y (fitting parameter)";
input Real sx = -400.0 "scaling factor for x (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
if abs(x - x0) < 1e-06 then
y := sy;
else
y := sy * x_adj / (exp(x_adj) - 1.0);
end if;
end fa;
function to.act.ftau
input Real x "input value";
input Real off = 0.000596 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, -0.03061, 90.0, 1.037 / 0.003188) + kr.ftau.falpha(x, -0.02384, -120.0, 0.396 / 0.003188)) + off;
end to.act.ftau;
function nernst "Nernst equation to find the equlibrium potential for a single ion"
input Real ion_in(quantity = "Concentration", unit = "mol/m3") "intracellular ion concentration";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real v_eq(quantity = "ElectricPotential", unit = "V") "equlibirium potential";
algorithm
v_eq := 8.3144598 * temp / /*Real*/(ion_z) / 96485.33289000001 * log(ion_ex / ion_in);
end nernst;
function hillLangmuir "Hill-Langmuir equation measuring the occupancy of a molecule by a ligand"
input Real c(quantity = "Concentration", unit = "mol/m3") "ligand concentration";
input Real ka(quantity = "Concentration", unit = "mol/m3") "concentration producing half occupation";
input Real n(unit = "1") "Hill coefficient";
output Real rate(unit = "1") "occupancy of molecule by ligand";
algorithm
rate := c ^ n / (c ^ n + ka ^ n);
end hillLangmuir;
function cal.act.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (cal.ftau.falpha(x) + fa(x, 0.005, 10.52 / 0.4, 400.0)) + off;
end cal.act.ftau;
function cal.ftau.falpha
input Real x "input value";
output Real y "output value";
algorithm
y := fa(x, -0.035, 26.12 * 2.5, -1000.0 / 2.5) + fa(x, 0.0, 78.11 / 0.208, -208.0);
end cal.ftau.falpha;
function act_fast.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 39.8, 17.0) + kr.ftau.falpha(x, 0.0, -51.0, 0.211)) + off;
end act_fast.ftau;
function p_from_g "calculate membrane permeability for ion from membrane conductance"
input Real g(quantity = "Conductance", unit = "S") "membrane conductance for given ion";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real p(quantity = "Permeability (fluid mechanics)", unit = "m3/(s.m2)") "membrane permeability for given ion";
protected Real unit_area(quantity = "Area", unit = "m2") = 1.0 "unit area of 1 m², used to get correct units";
algorithm
p := g / ion_ex * 8.3144598 * temp / (96485.33289000001 * /*Real*/(ion_z)) ^ 2.0 / unit_area;
end p_from_g;
name | unit | label | value |
---|---|---|---|
ca.cm_sl.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sl.occupied.substance.amount | "mol" | amount of substance | |
ca.cm_sl.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sl.free.substance.amount | "mol" | amount of substance | |
ca.cm_sl.site.rate | "mol/s" | molar flow rate of substance | |
ca.cq.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cq.occupied.substance.amount | "mol" | amount of substance | |
ca.cq.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cq.free.substance.amount | "mol" | amount of substance | |
ca.cq.site.rate | "mol/s" | molar flow rate of substance | |
ca.cm_sub.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sub.occupied.substance.amount | "mol" | amount of substance | |
ca.cm_sub.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sub.free.substance.amount | "mol" | amount of substance | |
ca.cm_sub.site.rate | "mol/s" | molar flow rate of substance | |
ca.cm_cyto.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_cyto.occupied.substance.amount | "mol" | amount of substance | |
ca.cm_cyto.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_cyto.free.substance.amount | "mol" | amount of substance | |
ca.cm_cyto.site.rate | "mol/s" | molar flow rate of substance | |
ca.tm.occupied_b.con | "mol/m3" | concentration of substance in compartment | |
ca.tm.occupied_b.substance.amount | "mol" | amount of substance | |
ca.tm.occupied_a.con | "mol/m3" | concentration of substance in compartment | |
ca.tm.occupied_a.substance.amount | "mol" | amount of substance | |
ca.tm.free.con | "mol/m3" | concentration of substance in compartment | |
ca.tm.free.substance.rate | "mol/s" | molar flow rate of substance | |
ca.tm.free.substance.amount | "mol" | amount of substance | |
ca.tm.site_b.rate | "mol/s" | molar flow rate of substance | |
ca.tm.site_a.rate | "mol/s" | molar flow rate of substance | |
ca.tc.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.tc.occupied.substance.amount | "mol" | amount of substance | |
ca.tc.free.con | "mol/m3" | concentration of substance in compartment | |
ca.tc.free.substance.amount | "mol" | amount of substance | |
ca.tc.site.rate | "mol/s" | molar flow rate of substance | |
ca.jsr_sub.coeff | "1/s" | coefficient of transport | |
ca.jsr_sub.rate | "mol/s" | rate of change in substance amount | |
ca.nsr_jsr.rate | "mol/s" | rate of change in substance amount | |
ca.cyto_nsr.rate | "mol/s" | rate of change in substance amount | |
ca.sub_cyto.rate | "mol/s" | rate of change in substance amount | |
ca.nsr.con | "mol/m3" | concentration of substance in compartment | |
ca.nsr.substance.rate | "mol/s" | molar flow rate of substance | |
ca.nsr.substance.amount | "mol" | amount of substance | |
ca.jsr.con | "mol/m3" | concentration of substance in compartment | |
ca.jsr.substance.rate | "mol/s" | molar flow rate of substance | |
ca.jsr.substance.amount | "mol" | amount of substance | |
ca.cyto.con | "mol/m3" | concentration of substance in compartment | |
ca.cyto.substance.rate | "mol/s" | molar flow rate of substance | |
ca.cyto.substance.amount | "mol" | amount of substance | |
ca.sub.con | "mol/m3" | concentration of substance in compartment | |
ca.sub.substance.rate | "mol/s" | molar flow rate of substance | |
ca.sub.substance.amount | "mol" | amount of substance | |
ca.ca_sub.rate | "mol/s" | molar flow rate of substance | |
to.inact_total | total inactivation resulting from fast and slow inactivation gates | ||
to.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.inact_fast.steady | value that n would reach if v_gate was held constant | ||
to.inact_fast.n | ratio of molecules in open conformation | 0.8734 | |
to.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.inact_slow.steady | value that n would reach if v_gate was held constant | ||
to.inact_slow.n | ratio of molecules in open conformation | 0.1503 | |
to.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.act.steady | value that n would reach if v_gate was held constant | ||
to.act.n | ratio of molecules in open conformation | 0.008857 | |
to.g | "S" | ion conductance | |
to.i_open | "A" | i if open_ratio = 1 | |
to.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
to.i_ion | "A" | current used for ion flux | |
to.v_gate | "V" | voltage used for activation/inactivation gates | |
na.inact_total | total inactivation resulting from fast and slow inactivation terms | ||
na.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.inact_slow.steady | value that n would reach if v_gate was held constant | ||
na.inact_slow.n | ratio of molecules in open conformation | 0.6162 | |
na.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.inact_fast.steady | value that n would reach if v_gate was held constant | ||
na.inact_fast.n | ratio of molecules in open conformation | 0.717 | |
na.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.act.steady | "1" | steady state achieved if current voltage is held constant | |
na.act.beta | "1" | rate of transfer from open to closed conformation | |
na.act.alpha | "1" | rate of transfer from closed to open conformation | |
na.act.n | ratio of molecules in open conformation | 0.01227 | |
na.i_open | i if open_ratio = 1 | ||
na.open_ratio | ratio between 0 (fully closed) and 1 (fully open) | ||
na.i_ion | "A" | current used for ion flux | |
na.v_gate | "V" | voltage used for activation/inactivation gates | |
kir.voltage_act.n | ratio of molecules in open conformation | ||
kir.voltage_inact.n | ratio of molecules in open conformation | ||
kir.g | "S" | ion conductance | |
kir.i_open | "A" | i if open_ratio = 1 | |
kir.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
kir.i_ion | "A" | current used for ion flux | |
kir.v_gate | "V" | voltage used for activation/inactivation gates | |
l2.i | "A" | Current flowing from pin p to pin n | |
l2.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
nak.i | "A" | Current flowing from pin p to pin n | |
nak.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
naca.e4 | "1" | ratio of exchanger molecules in state e4 | |
naca.e3 | "1" | ratio of exchanger molecules in state e3 | |
naca.e2 | "1" | ratio of exchanger molecules in state e2 | |
naca.e1 | "1" | ratio of exchanger molecules in state e1 | |
naca.d | "1" | common denominator to turn relative frequencies into actual ratios between 0 and 1 | |
naca.x4 | "1" | relative frequancy of E4 states | |
naca.x3 | "1" | relative frequency of E3 states | |
naca.x2 | "1" | relative frequency of E2 states | |
naca.x1 | "1" | relative frequency of E1 states | |
naca.k_14 | "1" | rate constant for transition from E1 to E4 | |
naca.k_41 | "1" | rate constant for transition from E4 to E1 | |
naca.k_32 | "1" | rate constant for transition from E3 to E2 | |
naca.k_23 | "1" | rate constant for transition from E2 to E3 | |
naca.k_21 | "1" | rate constant for transition from E2 to E1 | |
naca.k_12 | "1" | rate constant for transition from E1 to E2 | |
naca.f1_2n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | |
naca.f1_2n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | |
naca.do | "1" | common denominator summing relative frequencies for all E2 substates | |
naca.do_cv | "1" | relative frequency of E2 states that are occupied by Ca2+ and occluded | |
naca.di | "1" | common denominator summing relative frequencies for all E1 substates | |
naca.di_cn | "1" | relative frequency of E1 states whose first two binding sites are occupied by Ca2+ and whose last binding site is occupied by Na+ | |
naca.di_cv | "1" | relative frequency of E1 states that are occupied by Ca2+ and occluded | |
naca.di_c | "1" | relative frequency of E1 states that are occupied by Ca2+ and not occluded | |
naca.i_ion | "A" | current used for TransmembraneCaFlow | |
naca.trans.rate | "mol/s" | rate of change in substance amount | |
naca.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
kr.act_total | total activation due to slow and fast activation terms | ||
kr.inact.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.inact.steady | value that n would reach if v_gate was held constant | ||
kr.inact.n | ratio of molecules in open conformation | 0.9866 | |
kr.act_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_slow.steady | value that n would reach if v_gate was held constant | ||
kr.act_slow.n | ratio of molecules in open conformation | 0.0484 | |
kr.act_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_fast.steady | value that n would reach if v_gate was held constant | ||
kr.act_fast.n | ratio of molecules in open conformation | 0.07106999999999999 | |
kr.g | "S" | ion conductance | |
kr.i_open | "A" | i if open_ratio = 1 | |
kr.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
kr.i_ion | "A" | current used for ion flux | |
kr.v_gate | "V" | voltage used for activation/inactivation gates | |
cal.inact_total | |||
cal.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_fast.steady | value that n would reach if v_gate was held constant | ||
cal.inact_fast.n | ratio of molecules in open conformation | 0.9985000000000001 | |
cal.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_slow.steady | value that n would reach if v_gate was held constant | ||
cal.inact_slow.n | ratio of molecules in open conformation | 0.9875 | |
cal.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.act.steady | value that n would reach if v_gate was held constant | ||
cal.act.n | ratio of molecules in open conformation | 4.069e-05 | |
cal.trans.rate | "mol/s" | rate of change in substance amount | |
cal.g | "S" | ion conductance | |
cal.i_open | "A" | i if open_ratio = 1 | |
cal.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
cal.i_ion | "A" | current used for ion flux | |
cal.v_gate | "V" | voltage used for activation/inactivation gates | |
bg.i_ion | "A" | current used for ion flux | |
bg.v_gate | "V" | voltage used for activation/inactivation gates | |
n.v | "V" | Potential at the pin | |
p.v | "V" | Potential at the pin | |
v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
cal.con.substance.amount | "mol" | amount of substance | cal.con.c_const * cal.con.vol |
naca.con.substance.amount | "mol" | amount of substance | naca.con.c_const * naca.con.vol |
naca.di_3n | "1" | relative frequency of E1 states where exactly three Na+ sites are occupied by Na+ | naca.di_2n * na_in / naca.k_3n_i |
naca.do_3n | "1" | relative frequency of E2 states where exactly three Na+ sites are occupied by Na+ | naca.do_2n * na_ex / naca.k_3n_o |
naca.do_2n | "1" | relative frequency of E2 states where exactly the first two Na+ sites are occupied by Na+ | naca.do_1n * na_ex / naca.k_2n_o |
naca.di_2n | "1" | relative frequency of E1 states where exactly the first two Na+ sites are occupied by Na+ | naca.di_1n * na_in / naca.k_2n_i |
p.i | "A" | Current flowing into the pin | 0.0 |
n.i | "A" | Current flowing into the pin | 0.0 |
bg.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | 1.0 |
ca.mg.substance.amount | "mol" | amount of substance | ca.mg.c_const * ca.mg.vol |
ca.sub_cyto.coeff | "1/s" | coefficient of transport | 1.0 / ca.sub_cyto.tau |
ca.nsr_jsr.coeff | "1/s" | coefficient of transport | 1.0 / ca.nsr_jsr.tau |
cal.ach_factor | 1.0 | ||
naca.di_1n | "1" | relative frequency of E1 states where only the first Na+ site is occupied by Na+ | na_in / naca.k_1n_i |
naca.do_c | "1" | relative frequency of E2 states that are occupied by Ca2+ and not occluded | ca_ex / naca.k_c_o |
naca.do_1n | "1" | relative frequency of E2 states where only the first Na+ site is occupied by Na+ | na_ex / naca.k_1n_o |
naca.f1_3n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_ex, naca.k_3n_o) |
naca.f1_3n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_in, naca.k_3n_i) |
kir.n_pot | "1" | [K+]_ex-dependent gating variable | InaMo.Functions.Biochemical.michaelisMenten(k_ex, 0.59) |
use_ach | should acetylcholine sensitive potassium channel be included in the model | false | |
ach | "mol/m3" | concentration of acetylcholine available for I_ACh | 0.0 |
na_in | "mol/m3" | intracellular sodium concentration | 8.0 |
na_ex | "mol/m3" | extracellular sodium concentration | 140.0 |
na_p | "m3/(s.m2)" | permeability of cell membrane to sodium ions | InaMo.Functions.Biochemical.p_from_g(2.53e-07, na_ex, 1, temp) |
k_in | "mol/m3" | intracellular potassium concentration | 140.0 |
k_ex | "mol/m3" | extracellular potassium concentration | 5.4 |
ca_ex | "mol/m3" | extracellular calcium concentration | 2.0 |
temp | "K" | cell medium temperature | 288.15 |
v_cell | "m3" | total cell volume | InaMo.Cells.VariableCa.ANCell.c_to_v(l2.c, 2.19911e-15, 7.147123e-15) |
v_cyto | "m3" | volume of cytosol | 0.46 * v_cell - v_sub |
v_sub | "m3" | volume of subspace | 0.01 * v_cell |
v_jsr | "m3" | volume of junctional SR | 0.0012 * v_cell |
v_nsr | "m3" | volume of network SR | 0.0116 * v_cell |
v_k | "V" | equilibrium potential for potassium currents | InaMo.Functions.Biochemical.nernst(k_in, k_ex, 1, temp) |
bg.v_eq | "V" | equilibrium potential | -0.0525 |
bg.g_max | "S" | maximum conductance | 1.8e-09 |
bg.current_name | "I_b" | ||
cal.v_eq | "V" | equilibrium potential | 0.0621 |
cal.g_max | "S" | maximum conductance | 1.85e-08 |
cal.trans.n | "1" | stoichiometric ratio of ion transport | cal.n_ca |
cal.trans.z | valence of ion | 2 | |
cal.con.c_const | "mol/m3" | fixed concentration | ca_ex |
cal.con.vol | "m3" | volume of the compartment | 1.0 |
cal.n_ca | "1" | stoichiometric ratio of transport | 1.0 |
cal.current_name | "I_Ca,L" | ||
cal.k_ach | "1" | ratio of maximum channel inhibition by acetylcholine | 0.0 |
kr.v_eq | "V" | equilibrium potential | v_k |
kr.g_max | "S" | maximum conductance | 1.5e-09 |
kr.current_name | "I_K,r" | ||
naca.trans.n | "1" | stoichiometric ratio of ion transport | naca.n_ca |
naca.trans.z | valence of ion | 2 | |
naca.con.c_const | "mol/m3" | fixed concentration | ca_ex |
naca.con.vol | "m3" | volume of the compartment | 1.0 |
naca.n_ca | "1" | stoichiometric ratio of transport | -2.0 |
naca.current_name | "I_NaCa" | ||
naca.k_c_i | "mol/m3" | dissociation constant for channel with Ca++ bound on inside | 0.0207 |
naca.k_cn_i | "mol/m3" | dissociation constant for channel with Ca++ and one Na+ bound on inside | 26.44 |
naca.k_1n_i | "mol/m3" | dissociation constant for channel with one Na+ bound on inside | 395.3 |
naca.k_2n_i | "mol/m3" | dissociation constant for channel with two Na+ bound on inside | 2.289 |
naca.k_3n_i | "mol/m3" | dissociation constant for channel with three Na+ bound on inside | 26.44 |
naca.k_c_o | "mol/m3" | dissociation constant for channel with Ca++ bound on outside | 3.663 |
naca.k_1n_o | "mol/m3" | dissociation constant for channel with one Na+ bound on outside | 1628.0 |
naca.k_2n_o | "mol/m3" | dissociation constant for channel with two Na+ bound on outside | 561.4 |
naca.k_3n_o | "mol/m3" | dissociation constant for channel with three Na+ bound on outside | 4.663 |
naca.q_ci | fractional charge movement during intracellular Ca++ occlusion reaction | 0.1369 | |
naca.q_co | fractional charge movement during extracellular Ca++ occlusion reaction | 0.0 | |
naca.q_n | fractional charge movement during Na+ occlusion reactions | 0.4315 | |
naca.k_NaCa | "A" | scaling factor for Na+/Ca++ exchanger current | 5.92e-09 |
naca.FoRT | helper variable to simplify equations | 11604.52214706721 / temp | |
nak.current_name | "I_NaK" | ||
nak.i_max | "A" | maximum current (actual maximum is 1.6 * i_max) | 2.46e-11 |
nak.k_m_Na | "mol/m3" | Michaelis constant for Na+ binding | 5.64 |
nak.k_m_K | "mol/m3" | Michaelis constant for K+ binding | 0.621 |
l2.c | "F" | membrane capacitance | 4e-11 |
l2.v_init | "V" | initial potential (from short initial stimulation) | -0.09 |
l2.use_init | determines whether initial value for v is used | true | |
kir.v_eq | "V" | equilibrium potential | v_k |
kir.g_max | "S" | maximum conductance | 1.25e-08 |
kir.current_name | "I_K1" | ||
kir.FoRT | helper variable to simplyfiy equations | 96485.33289000001 / (temp * 8.3144598) | |
kir.use_vact | use voltage-dependent activation gate? (only Inada 2009) | true | |
na.ion_ex | "mol/m3" | extracellular concentration of ion | na_ex |
na.ion_p | "m3/(s.m2)" | permeability of ion | na_p |
na.ion_z | valence of ion | 1 | |
na.current_name | "I_Na" | ||
to.v_eq | "V" | equilibrium potential | v_k |
to.g_max | "S" | maximum conductance | 2e-08 |
to.current_name | "I_to" | ||
cell_type | "AN" | ||
ca.tc_tot | "mol/m3" | total concentration of troponin-Ca | 0.031 |
ca.tmc_tot | "mol/m3" | total concentration of troponin-Mg binding to Ca2+ | 0.062 |
ca.cm_tot | "mol/m3" | total concentration of calmodulin | 0.045 |
ca.cq_tot | "mol/m3" | total concentration of calsequestrin | 10.0 |
ca.mg.c_const | "mol/m3" | fixed concentration | 2.5 |
ca.mg.vol | "m3" | volume of the compartment | v_cyto |
ca.sub.vol | "m3" | volume of the compartment | v_sub |
ca.sub.c_start | "mol/m3" | initial value of concentration | 6.397e-05 |
ca.cyto.vol | "m3" | volume of the compartment | v_cyto |
ca.cyto.c_start | "mol/m3" | initial value of concentration | 0.0001206 |
ca.jsr.vol | "m3" | volume of the compartment | v_jsr |
ca.jsr.c_start | "mol/m3" | initial value of concentration | 0.4273 |
ca.nsr.vol | "m3" | volume of the compartment | v_nsr |
ca.nsr.c_start | "mol/m3" | initial value of concentration | 1.068 |
ca.sub_cyto.vol_src | "m3" | volume of source compartment | ca.sub.vol |
ca.sub_cyto.vol_dst | "m3" | volume of destination compartment | ca.cyto.vol |
ca.sub_cyto.vol_trans | "m3" | volume of substance that is transferred between compartments over 1/coeff seconds | min(ca.sub_cyto.vol_src, ca.sub_cyto.vol_dst) |
ca.sub_cyto.tau | "s" | time constant of diffusion | 4e-05 |
ca.cyto_nsr.current_name | "SERCA" | ||
ca.cyto_nsr.vol_src | "m3" | volume of source compartment | ca.cyto.vol |
ca.cyto_nsr.p | "mol/s" | maximum flow rate | 5.0 * v_nsr |
ca.cyto_nsr.k | "mol/m3" | Michaelis constant | 0.0005999999999999999 |
ca.nsr_jsr.vol_src | "m3" | volume of source compartment | ca.nsr.vol |
ca.nsr_jsr.vol_dst | "m3" | volume of destination compartment | ca.jsr.vol |
ca.nsr_jsr.vol_trans | "m3" | volume of substance that is transferred between compartments over 1/coeff seconds | min(ca.nsr_jsr.vol_src, ca.nsr_jsr.vol_dst) |
ca.nsr_jsr.tau | "s" | time constant of diffusion | 0.06 |
ca.jsr_sub.vol_src | "m3" | volume of source compartment | ca.jsr.vol |
ca.jsr_sub.vol_dst | "m3" | volume of destination compartment | ca.sub.vol |
ca.jsr_sub.vol_trans | "m3" | volume of substance that is transferred between compartments over 1/coeff seconds | min(ca.jsr_sub.vol_src, ca.jsr_sub.vol_dst) |
ca.jsr_sub.current_name | "RyR" | ||
ca.jsr_sub.p | "1/s" | rate coefficient (inverse of time constant) | 1805.6 |
ca.jsr_sub.ka | "mol/m3" | concentration producing half occupation | 0.0012 |
ca.jsr_sub.n | "1" | Hill coefficient | 2.0 |
ca.tc.n_tot | "mol" | total amount of buffer | ca.tc_tot * v_cyto |
ca.tc.f_start | "1" | initial value for f | 0.02359 |
ca.tc.k | "mol-1s-1" | association constant | 88800.0 / v_cyto |
ca.tc.kb | "s-1" | dissociation constant | 446.0 |
ca.tc.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.tc.assoc.k | "mol-1s-1" | association constant | ca.tc.k |
ca.tc.assoc.kb | "s-1" | dissociation constant | ca.tc.kb |
ca.tc.free.vol | "m3" | volume of the compartment | ca.tc.vol |
ca.tc.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.tc.f_start) * ca.tc.n_tot / ca.tc.vol |
ca.tc.occupied.vol | "m3" | volume of the compartment | ca.tc.vol |
ca.tc.occupied.c_start | "mol/m3" | initial value of concentration | ca.tc.f_start * ca.tc.n_tot / ca.tc.vol |
ca.tm.n_tot | "mol" | total amount of buffer | ca.tmc_tot * v_cyto |
ca.tm.f_a_start | "1" | initial value for f | 0.3667 |
ca.tm.f_b_start | "1" | initial value for f | 0.5594 |
ca.tm.k_a | "mol-1s-1" | association constant for binding to ligand A | 227700.0 / v_cyto |
ca.tm.k_b | "mol-1s-1" | association constant for binding to ligand B | 2277.0 / v_cyto |
ca.tm.kb_a | "s-1" | dissociation constant for binding to ligand A | 7.51 |
ca.tm.kb_b | "s-1" | dissociation constant for binding to ligand B | 751.0 |
ca.tm.vol | "m3" | volume of compartment in which buffer resides | v_cyto |
ca.tm.assoc_a.k | "mol-1s-1" | association constant | ca.tm.k_a |
ca.tm.assoc_a.kb | "s-1" | dissociation constant | ca.tm.kb_a |
ca.tm.assoc_b.k | "mol-1s-1" | association constant | ca.tm.k_b |
ca.tm.assoc_b.kb | "s-1" | dissociation constant | ca.tm.kb_b |
ca.tm.free.vol | "m3" | volume of the compartment | ca.tm.vol |
ca.tm.free.c_start | "mol/m3" | initial value of concentration | (1.0 - (ca.tm.f_a_start + ca.tm.f_b_start)) * ca.tm.n_tot / ca.tm.vol |
ca.tm.occupied_a.vol | "m3" | volume of the compartment | ca.tm.vol |
ca.tm.occupied_a.c_start | "mol/m3" | initial value of concentration | ca.tm.f_a_start * ca.tm.n_tot / ca.tm.vol |
ca.tm.occupied_b.vol | "m3" | volume of the compartment | ca.tm.vol |
ca.tm.occupied_b.c_start | "mol/m3" | initial value of concentration | ca.tm.f_b_start * ca.tm.n_tot / ca.tm.vol |
ca.cm_cyto.n_tot | "mol" | total amount of buffer | ca.cm_tot * v_cyto |
ca.cm_cyto.f_start | "1" | initial value for f | 0.04845 |
ca.cm_cyto.k | "mol-1s-1" | association constant | 227700.0 / v_cyto |
ca.cm_cyto.kb | "s-1" | dissociation constant | 542.0 |
ca.cm_cyto.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cm_cyto.assoc.k | "mol-1s-1" | association constant | ca.cm_cyto.k |
ca.cm_cyto.assoc.kb | "s-1" | dissociation constant | ca.cm_cyto.kb |
ca.cm_cyto.free.vol | "m3" | volume of the compartment | ca.cm_cyto.vol |
ca.cm_cyto.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cm_cyto.f_start) * ca.cm_cyto.n_tot / ca.cm_cyto.vol |
ca.cm_cyto.occupied.vol | "m3" | volume of the compartment | ca.cm_cyto.vol |
ca.cm_cyto.occupied.c_start | "mol/m3" | initial value of concentration | ca.cm_cyto.f_start * ca.cm_cyto.n_tot / ca.cm_cyto.vol |
ca.cm_sub.n_tot | "mol" | total amount of buffer | ca.cm_tot * v_sub |
ca.cm_sub.f_start | "1" | initial value for f | 0.02626 |
ca.cm_sub.k | "mol-1s-1" | association constant | ca.cm_cyto.k * v_cyto / v_sub |
ca.cm_sub.kb | "s-1" | dissociation constant | ca.cm_cyto.kb |
ca.cm_sub.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cm_sub.assoc.k | "mol-1s-1" | association constant | ca.cm_sub.k |
ca.cm_sub.assoc.kb | "s-1" | dissociation constant | ca.cm_sub.kb |
ca.cm_sub.free.vol | "m3" | volume of the compartment | ca.cm_sub.vol |
ca.cm_sub.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cm_sub.f_start) * ca.cm_sub.n_tot / ca.cm_sub.vol |
ca.cm_sub.occupied.vol | "m3" | volume of the compartment | ca.cm_sub.vol |
ca.cm_sub.occupied.c_start | "mol/m3" | initial value of concentration | ca.cm_sub.f_start * ca.cm_sub.n_tot / ca.cm_sub.vol |
ca.cq.n_tot | "mol" | total amount of buffer | ca.cq_tot * v_jsr |
ca.cq.f_start | "1" | initial value for f | 0.3379 |
ca.cq.k | "mol-1s-1" | association constant | 534.0 / v_jsr |
ca.cq.kb | "s-1" | dissociation constant | 445.0 |
ca.cq.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cq.assoc.k | "mol-1s-1" | association constant | ca.cq.k |
ca.cq.assoc.kb | "s-1" | dissociation constant | ca.cq.kb |
ca.cq.free.vol | "m3" | volume of the compartment | ca.cq.vol |
ca.cq.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cq.f_start) * ca.cq.n_tot / ca.cq.vol |
ca.cq.occupied.vol | "m3" | volume of the compartment | ca.cq.vol |
ca.cq.occupied.c_start | "mol/m3" | initial value of concentration | ca.cq.f_start * ca.cq.n_tot / ca.cq.vol |
ca.cm_sl_tot | "mol/m3" | total concentration of calmodulin in sarcolemma | 0.02583333333333333 |
ca.cm_sl.n_tot | "mol" | total amount of buffer | ca.cm_sl_tot * v_sub |
ca.cm_sl.f_start | "1" | initial value for f | 3.936e-05 |
ca.cm_sl.k | "mol-1s-1" | association constant | 115.0 / v_sub |
ca.cm_sl.kb | "s-1" | dissociation constant | 1000.0 |
ca.cm_sl.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cm_sl.assoc.k | "mol-1s-1" | association constant | ca.cm_sl.k |
ca.cm_sl.assoc.kb | "s-1" | dissociation constant | ca.cm_sl.kb |
ca.cm_sl.free.vol | "m3" | volume of the compartment | ca.cm_sl.vol |
ca.cm_sl.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cm_sl.f_start) * ca.cm_sl.n_tot / ca.cm_sl.vol |
ca.cm_sl.occupied.vol | "m3" | volume of the compartment | ca.cm_sl.vol |
ca.cm_sl.occupied.c_start | "mol/m3" | initial value of concentration | ca.cm_sl.f_start * ca.cm_sl.n_tot / ca.cm_sl.vol |
na.ion_in | "mol/m3" | intracellular concentration of ion | na_in |
bg.g | "S" | ion conductance | bg.g_max |
InaMo.Cells.VariableCa.NCell
model NCell "full nodal cell model by Inada et al. (2009)"
extends InaMo.Cells.Interfaces.NCellBase;
extends InaMo.Icons.CellVar(cell_type = "N");
// starting values for CaHandling are from Inada 2009
InaMo.Concentrations.Atrioventricular.CaHandling ca(cyto.c_start = 0.3623e-3, sub.c_start = 0.2294e-3, jsr.c_start = 0.08227, nsr.c_start = 1.146, tc.f_start = 0.6838, tm.f_a_start = 0.6192, tm.f_b_start = 0.3363, cm_cyto.f_start = 0.1336, cm_sub.f_start = 0.08894, cq.f_start = 0.08736, cm_sl.f_start = 4.764e-5, jsr_sub.p = 1500) "intracellular Ca2+ handling by SR and buffers" annotation(
Placement(transformation(origin = {16, 0}, extent = {{-17, -17}, {17, 17}})));
// [Ca2+]_rel
// NOTE: value from C++ code, not given in paper
equation
connect(ca.ca_sub, naca.ca) annotation(
Line(points = {{0, 0}, {-10, 0}, {-10, 36}, {-12, 36}, {-12, 36}}));
connect(cal.ca, ca.ca_sub) annotation(
Line(points = {{-34, -36}, {-34, -36}, {-34, 0}, {0, 0}, {0, 0}}));
end NCell;
- Within group ca (prefix _ indicates shortened variable name)
- Within group cm_cyto (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cm_sl (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cm_sub (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cq (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cyto (prefix _ indicates shortened variable name)
- Within group jsr (prefix _ indicates shortened variable name)
- Within group jsr_sub (prefix _ indicates shortened variable name)
- Within group nsr (prefix _ indicates shortened variable name)
- Within group sub (prefix _ indicates shortened variable name)
- Within group tc (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group tm (prefix _ indicates shortened variable name)
- Within group free (prefix _ indicates shortened variable name)
- Within group occupied_a (prefix _ indicates shortened variable name)
- Within group occupied_b (prefix _ indicates shortened variable name)
- Within group cal (prefix _ indicates shortened variable name)
- Within group hcn (prefix _ indicates shortened variable name)
- Within group kr (prefix _ indicates shortened variable name)
- Within group naca (prefix _ indicates shortened variable name)
- Within group st (prefix _ indicates shortened variable name)
- Within group inact (prefix _ indicates shortened variable name)
Functions:
function inact.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 9.42, 603.6) + kr.ftau.falpha(x, 0.0, -18.3, 92.01000000000001)) + off;
end inact.ftau;
function act.fsteady
input Real x "input value";
input Real y_min = 0.0 "lower asymptote (fitting parameter)";
input Real y_max = 1.0 "upper asmyptote when d_off=1 and nu=1 (fititng parameter)";
input Real x0 = -0.0182 "x-value of sigmoid midpoint when d_off=1 and nu=1 (fitting parameter)";
input Real sx = 200.0 "scaling factor for x axis (i.e. steepness, fitting parameter)";
input Real se = 1.0 "scaling factor for exponential part (fitting parameter)";
input Real d_off = 1.0 "offset in denominator (affects upper asymptote, fitting parameter)";
input Real nu = 1.0 "reciprocal of exponent of denominator (affects upper asymptote, fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
y := y_min + (y_max - y_min) / (se * exp(-x_adj) + d_off) ^ (1.0 / nu);
end act.fsteady;
function c_to_v "function used to determine cell volume based on membrane capacitance"
input Real c_m(quantity = "Capacitance", unit = "F", min = 0.0) "membrane capacitance";
input Real v_low(quantity = "Volume", unit = "m3") = 2.19911e-15 "low estimate for cell volume (obtained when c_m = c_low)";
input Real v_high(quantity = "Volume", unit = "m3") = 7.147123e-15 "high estimate for cell volume (obtained when c_m = c_low + c_span)";
output Real v_cell(quantity = "Volume", unit = "m3") "resulting total cell volume";
protected Real c_low(quantity = "Capacitance", unit = "F", min = 0.0) = 2e-11 "low value for c_m (where v_low is returned)";
protected Real c_span(quantity = "Capacitance", unit = "F", min = 0.0) = 4.5e-11 "span that must be added to c_m to reach an output of v_high";
algorithm
v_cell := (c_m - c_low) / c_span * (v_high - v_low) + v_low;
end c_to_v;
function cal.ftau.falpha
input Real x "input value";
output Real y "output value";
algorithm
y := falpha.fa(x, -0.035, 26.12 * 2.5, -1000.0 / 2.5) + falpha.fa(x, 0.0, 78.11 / 0.208, -208.0);
end cal.ftau.falpha;
function kr.ftau.falpha
input Real x "input value";
input Real x0 = 0.0 "x-value where y = 1 (fitting parameter)";
input Real sx = 39.8 "scaling factor for x axis (fitting parameter)";
input Real sy = 17.0 "scaling factor for y axis (fitting parameter)";
output Real y "result";
algorithm
y := sy * exp(sx * (x - x0));
end kr.ftau.falpha;
function michaelisMenten "equation for enzymatic reactions following Michaelis-Menten kinetics"
input Real s(quantity = "Concentration", unit = "mol/m3") "substrate concentration";
input Real k(quantity = "Concentration", unit = "mol/m3") "concentration producing half-maximum reaction rate (michaelis constant)";
output Real rate(unit = "1") "reaction rate";
algorithm
rate := s / (s + k);
end michaelisMenten;
function st.ftau.falpha
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, -1000.0 / 11.0, 0.00015) + kr.ftau.falpha(x, 0.0, -1000.0 / 700.0, 0.0002)) + off;
end st.ftau.falpha;
function inact_fast.ftau
input Real x "input value";
input Real y_min = 0.01 "minimum value achieved at edges (fitting parameter)";
input Real y_max = 0.1639 "maximum value achieved at peak (fititng parameter)";
input Real x0 = -0.04 "x-value of bell curve midpoint (fitting parameter)";
input Real sigma = 0.009635092111651035 "standard deviation determining the width of the bell curve (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and standard deviation";
algorithm
x_adj := (x - x0) / sigma;
y := y_min + (y_max - y_min) * exp(-0.5 * x_adj ^ 2.0);
end inact_fast.ftau;
function st.act.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (st.ftau.falpha(x, 0.0) + ftau.fbeta(x, 0.0)) + off;
end st.act.ftau;
function inact.fsteady
input Real x "input value";
output Real y "output value";
algorithm
y := act.fsteady(x, 0.0, 1.0, -0.0049, -1000.0 / 15.14, 1.0, 1.0, 1.0) * inact_fast.ftau(x, 1.0, (-0.3) + 1.0, 0.0, sqrt(500.0 / 2.0) / 1000.0);
end inact.fsteady;
function falpha.fa
input Real x "input value";
input Real x0 = -0.035 "offset for x (fitting parameter)";
input Real sy = 65.3 "scaling factor for y (fitting parameter)";
input Real sx = -400.0 "scaling factor for x (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
if abs(x - x0) < 1e-06 then
y := sy;
else
y := sy * x_adj / (exp(x_adj) - 1.0);
end if;
end falpha.fa;
function inact.falpha
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 1000.0 / 13.0, 3100.0 / 150.4) + kr.ftau.falpha(x, 0.0, 1000.0 / 70.0, 700.0 / 150.4)) + off;
end inact.falpha;
function nernst "Nernst equation to find the equlibrium potential for a single ion"
input Real ion_in(quantity = "Concentration", unit = "mol/m3") "intracellular ion concentration";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real v_eq(quantity = "ElectricPotential", unit = "V") "equlibirium potential";
algorithm
v_eq := 8.3144598 * temp / /*Real*/(ion_z) / 96485.33289000001 * log(ion_ex / ion_in);
end nernst;
function act_fast.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 39.8, 17.0) + kr.ftau.falpha(x, 0.0, -51.0, 0.211)) + off;
end act_fast.ftau;
function hillLangmuir "Hill-Langmuir equation measuring the occupancy of a molecule by a ligand"
input Real c(quantity = "Concentration", unit = "mol/m3") "ligand concentration";
input Real ka(quantity = "Concentration", unit = "mol/m3") "concentration producing half occupation";
input Real n(unit = "1") "Hill coefficient";
output Real rate(unit = "1") "occupancy of molecule by ligand";
algorithm
rate := c ^ n / (c ^ n + ka ^ n);
end hillLangmuir;
function ftau.fbeta
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 1000.0 / 8.0, 0.016) + kr.ftau.falpha(x, 0.0, 1000.0 / 50.0, 0.015)) + off;
end ftau.fbeta;
function fbeta.fa
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, -1000.0 / 10.0, 95.0 / 150.4) + kr.ftau.falpha(x, 0.0, -1000.0 / 700.0, 50.0 / 150.4)) + off;
end fbeta.fa;
function cal.act.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (cal.ftau.falpha(x) + falpha.fa(x, 0.005, 10.52 / 0.4, 400.0)) + off;
end cal.act.ftau;
function p_from_g "calculate membrane permeability for ion from membrane conductance"
input Real g(quantity = "Conductance", unit = "S") "membrane conductance for given ion";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real p(quantity = "Permeability (fluid mechanics)", unit = "m3/(s.m2)") "membrane permeability for given ion";
protected Real unit_area(quantity = "Area", unit = "m2") = 1.0 "unit area of 1 m², used to get correct units";
algorithm
p := g / ion_ex * 8.3144598 * temp / (96485.33289000001 * /*Real*/(ion_z)) ^ 2.0 / unit_area;
end p_from_g;
function inact.fbeta
input Real x "input value";
output Real y "output value";
algorithm
y := fbeta.fa(x, 0.0) + act.fsteady(x, 0.0, 0.229, 0.0, 1000.0 / 5.0, 1.0, 1.0, 1.0);
end inact.fbeta;
name | unit | label | value |
---|---|---|---|
ca.cm_sl.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sl.occupied.substance.amount | "mol" | amount of substance | |
ca.cm_sl.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sl.free.substance.amount | "mol" | amount of substance | |
ca.cm_sl.site.rate | "mol/s" | molar flow rate of substance | |
ca.cq.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cq.occupied.substance.amount | "mol" | amount of substance | |
ca.cq.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cq.free.substance.amount | "mol" | amount of substance | |
ca.cq.site.rate | "mol/s" | molar flow rate of substance | |
ca.cm_sub.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sub.occupied.substance.amount | "mol" | amount of substance | |
ca.cm_sub.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sub.free.substance.amount | "mol" | amount of substance | |
ca.cm_sub.site.rate | "mol/s" | molar flow rate of substance | |
ca.cm_cyto.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_cyto.occupied.substance.amount | "mol" | amount of substance | |
ca.cm_cyto.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_cyto.free.substance.amount | "mol" | amount of substance | |
ca.cm_cyto.site.rate | "mol/s" | molar flow rate of substance | |
ca.tm.occupied_b.con | "mol/m3" | concentration of substance in compartment | |
ca.tm.occupied_b.substance.amount | "mol" | amount of substance | |
ca.tm.occupied_a.con | "mol/m3" | concentration of substance in compartment | |
ca.tm.occupied_a.substance.amount | "mol" | amount of substance | |
ca.tm.free.con | "mol/m3" | concentration of substance in compartment | |
ca.tm.free.substance.rate | "mol/s" | molar flow rate of substance | |
ca.tm.free.substance.amount | "mol" | amount of substance | |
ca.tm.site_b.rate | "mol/s" | molar flow rate of substance | |
ca.tm.site_a.rate | "mol/s" | molar flow rate of substance | |
ca.tc.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.tc.occupied.substance.amount | "mol" | amount of substance | |
ca.tc.free.con | "mol/m3" | concentration of substance in compartment | |
ca.tc.free.substance.amount | "mol" | amount of substance | |
ca.tc.site.rate | "mol/s" | molar flow rate of substance | |
ca.jsr_sub.coeff | "1/s" | coefficient of transport | |
ca.jsr_sub.rate | "mol/s" | rate of change in substance amount | |
ca.nsr_jsr.rate | "mol/s" | rate of change in substance amount | |
ca.cyto_nsr.rate | "mol/s" | rate of change in substance amount | |
ca.sub_cyto.rate | "mol/s" | rate of change in substance amount | |
ca.nsr.con | "mol/m3" | concentration of substance in compartment | |
ca.nsr.substance.rate | "mol/s" | molar flow rate of substance | |
ca.nsr.substance.amount | "mol" | amount of substance | |
ca.jsr.con | "mol/m3" | concentration of substance in compartment | |
ca.jsr.substance.rate | "mol/s" | molar flow rate of substance | |
ca.jsr.substance.amount | "mol" | amount of substance | |
ca.cyto.con | "mol/m3" | concentration of substance in compartment | |
ca.cyto.substance.rate | "mol/s" | molar flow rate of substance | |
ca.cyto.substance.amount | "mol" | amount of substance | |
ca.sub.con | "mol/m3" | concentration of substance in compartment | |
ca.sub.substance.rate | "mol/s" | molar flow rate of substance | |
ca.sub.substance.amount | "mol" | amount of substance | |
ca.ca_sub.rate | "mol/s" | molar flow rate of substance | |
st.inact.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
st.inact.steady | "1" | steady state achieved if current voltage is held constant | |
st.inact.beta | "1" | rate of transfer from open to closed conformation | |
st.inact.alpha | "1" | rate of transfer from closed to open conformation | |
st.inact.n | ratio of molecules in open conformation | 0.4886 | |
st.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
st.act.steady | value that n would reach if v_gate was held constant | ||
st.act.n | ratio of molecules in open conformation | 0.1933 | |
st.g | "S" | ion conductance | |
st.i_open | "A" | i if open_ratio = 1 | |
st.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
st.i_ion | "A" | current used for ion flux | |
st.v_gate | "V" | voltage used for activation/inactivation gates | |
hcn.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
hcn.act.steady | value that n would reach if v_gate was held constant | ||
hcn.act.n | "1" | ratio of molecules in open conformation | 0.03825 |
hcn.g | "S" | ion conductance | |
hcn.i_open | "A" | i if open_ratio = 1 | |
hcn.i_ion | "A" | current used for ion flux | |
hcn.v_gate | "V" | voltage used for activation/inactivation gates | |
l2.i | "A" | Current flowing from pin p to pin n | |
l2.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
nak.i | "A" | Current flowing from pin p to pin n | |
nak.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
naca.e4 | "1" | ratio of exchanger molecules in state e4 | |
naca.e3 | "1" | ratio of exchanger molecules in state e3 | |
naca.e2 | "1" | ratio of exchanger molecules in state e2 | |
naca.e1 | "1" | ratio of exchanger molecules in state e1 | |
naca.d | "1" | common denominator to turn relative frequencies into actual ratios between 0 and 1 | |
naca.x4 | "1" | relative frequancy of E4 states | |
naca.x3 | "1" | relative frequency of E3 states | |
naca.x2 | "1" | relative frequency of E2 states | |
naca.x1 | "1" | relative frequency of E1 states | |
naca.k_14 | "1" | rate constant for transition from E1 to E4 | |
naca.k_41 | "1" | rate constant for transition from E4 to E1 | |
naca.k_32 | "1" | rate constant for transition from E3 to E2 | |
naca.k_23 | "1" | rate constant for transition from E2 to E3 | |
naca.k_21 | "1" | rate constant for transition from E2 to E1 | |
naca.k_12 | "1" | rate constant for transition from E1 to E2 | |
naca.f1_2n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | |
naca.f1_2n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | |
naca.do | "1" | common denominator summing relative frequencies for all E2 substates | |
naca.do_cv | "1" | relative frequency of E2 states that are occupied by Ca2+ and occluded | |
naca.di | "1" | common denominator summing relative frequencies for all E1 substates | |
naca.di_cn | "1" | relative frequency of E1 states whose first two binding sites are occupied by Ca2+ and whose last binding site is occupied by Na+ | |
naca.di_cv | "1" | relative frequency of E1 states that are occupied by Ca2+ and occluded | |
naca.di_c | "1" | relative frequency of E1 states that are occupied by Ca2+ and not occluded | |
naca.i_ion | "A" | current used for TransmembraneCaFlow | |
naca.trans.rate | "mol/s" | rate of change in substance amount | |
naca.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
kr.act_total | total activation due to slow and fast activation terms | ||
kr.inact.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.inact.steady | value that n would reach if v_gate was held constant | ||
kr.inact.n | ratio of molecules in open conformation | 0.9775 | |
kr.act_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_slow.steady | value that n would reach if v_gate was held constant | ||
kr.act_slow.n | ratio of molecules in open conformation | 0.1287 | |
kr.act_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_fast.steady | value that n would reach if v_gate was held constant | ||
kr.act_fast.n | ratio of molecules in open conformation | 0.6067 | |
kr.g | "S" | ion conductance | |
kr.i_open | "A" | i if open_ratio = 1 | |
kr.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
kr.i_ion | "A" | current used for ion flux | |
kr.v_gate | "V" | voltage used for activation/inactivation gates | |
cal.inact_total | |||
cal.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_fast.steady | value that n would reach if v_gate was held constant | ||
cal.inact_fast.n | ratio of molecules in open conformation | 0.6861 | |
cal.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_slow.steady | value that n would reach if v_gate was held constant | ||
cal.inact_slow.n | ratio of molecules in open conformation | 0.4441 | |
cal.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.act.steady | value that n would reach if v_gate was held constant | ||
cal.act.n | ratio of molecules in open conformation | 0.0001533 | |
cal.trans.rate | "mol/s" | rate of change in substance amount | |
cal.g | "S" | ion conductance | |
cal.i_open | "A" | i if open_ratio = 1 | |
cal.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
cal.i_ion | "A" | current used for ion flux | |
cal.v_gate | "V" | voltage used for activation/inactivation gates | |
bg.i_ion | "A" | current used for ion flux | |
bg.v_gate | "V" | voltage used for activation/inactivation gates | |
n.v | "V" | Potential at the pin | |
p.v | "V" | Potential at the pin | |
v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
cal.con.substance.amount | "mol" | amount of substance | cal.con.c_const * cal.con.vol |
naca.con.substance.amount | "mol" | amount of substance | naca.con.c_const * naca.con.vol |
naca.di_3n | "1" | relative frequency of E1 states where exactly three Na+ sites are occupied by Na+ | naca.di_2n * na_in / naca.k_3n_i |
naca.do_3n | "1" | relative frequency of E2 states where exactly three Na+ sites are occupied by Na+ | naca.do_2n * na_ex / naca.k_3n_o |
naca.do_2n | "1" | relative frequency of E2 states where exactly the first two Na+ sites are occupied by Na+ | naca.do_1n * na_ex / naca.k_2n_o |
naca.di_2n | "1" | relative frequency of E1 states where exactly the first two Na+ sites are occupied by Na+ | naca.di_1n * na_in / naca.k_2n_i |
p.i | "A" | Current flowing into the pin | 0.0 |
n.i | "A" | Current flowing into the pin | 0.0 |
bg.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | 1.0 |
ca.mg.substance.amount | "mol" | amount of substance | ca.mg.c_const * ca.mg.vol |
ca.sub_cyto.coeff | "1/s" | coefficient of transport | 1.0 / ca.sub_cyto.tau |
ca.nsr_jsr.coeff | "1/s" | coefficient of transport | 1.0 / ca.nsr_jsr.tau |
cal.ach_factor | 1.0 | ||
naca.di_1n | "1" | relative frequency of E1 states where only the first Na+ site is occupied by Na+ | na_in / naca.k_1n_i |
naca.do_c | "1" | relative frequency of E2 states that are occupied by Ca2+ and not occluded | ca_ex / naca.k_c_o |
naca.do_1n | "1" | relative frequency of E2 states where only the first Na+ site is occupied by Na+ | na_ex / naca.k_1n_o |
naca.f1_3n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_ex, naca.k_3n_o) |
naca.f1_3n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_in, naca.k_3n_i) |
use_ach | should acetylcholine sensitive potassium channel be included in the model | false | |
ach | "mol/m3" | concentration of acetylcholine available for I_ACh | 0.0 |
na_in | "mol/m3" | intracellular sodium concentration | 8.0 |
na_ex | "mol/m3" | extracellular sodium concentration | 140.0 |
na_p | "m3/(s.m2)" | permeability of cell membrane to sodium ions | InaMo.Functions.Biochemical.p_from_g(2.53e-07, na_ex, 1, temp) |
k_in | "mol/m3" | intracellular potassium concentration | 140.0 |
k_ex | "mol/m3" | extracellular potassium concentration | 5.4 |
ca_ex | "mol/m3" | extracellular calcium concentration | 2.0 |
temp | "K" | cell medium temperature | 288.15 |
v_cell | "m3" | total cell volume | InaMo.Cells.VariableCa.NCell.c_to_v(l2.c, 2.19911e-15, 7.147123e-15) |
v_cyto | "m3" | volume of cytosol | 0.46 * v_cell - v_sub |
v_sub | "m3" | volume of subspace | 0.01 * v_cell |
v_jsr | "m3" | volume of junctional SR | 0.0012 * v_cell |
v_nsr | "m3" | volume of network SR | 0.0116 * v_cell |
v_k | "V" | equilibrium potential for potassium currents | InaMo.Functions.Biochemical.nernst(k_in, k_ex, 1, temp) |
bg.v_eq | "V" | equilibrium potential | -0.0225 |
bg.g_max | "S" | maximum conductance | 1.2e-09 |
bg.current_name | "I_b" | ||
cal.v_eq | "V" | equilibrium potential | 0.0621 |
cal.g_max | "S" | maximum conductance | 9e-09 |
cal.trans.n | "1" | stoichiometric ratio of ion transport | cal.n_ca |
cal.trans.z | valence of ion | 2 | |
cal.con.c_const | "mol/m3" | fixed concentration | ca_ex |
cal.con.vol | "m3" | volume of the compartment | 1.0 |
cal.n_ca | "1" | stoichiometric ratio of transport | 1.0 |
cal.current_name | "I_Ca,L" | ||
cal.k_ach | "1" | ratio of maximum channel inhibition by acetylcholine | 0.0 |
kr.v_eq | "V" | equilibrium potential | v_k |
kr.g_max | "S" | maximum conductance | 3.5e-09 |
kr.current_name | "I_K,r" | ||
naca.trans.n | "1" | stoichiometric ratio of ion transport | naca.n_ca |
naca.trans.z | valence of ion | 2 | |
naca.con.c_const | "mol/m3" | fixed concentration | ca_ex |
naca.con.vol | "m3" | volume of the compartment | 1.0 |
naca.n_ca | "1" | stoichiometric ratio of transport | -2.0 |
naca.current_name | "I_NaCa" | ||
naca.k_c_i | "mol/m3" | dissociation constant for channel with Ca++ bound on inside | 0.0207 |
naca.k_cn_i | "mol/m3" | dissociation constant for channel with Ca++ and one Na+ bound on inside | 26.44 |
naca.k_1n_i | "mol/m3" | dissociation constant for channel with one Na+ bound on inside | 395.3 |
naca.k_2n_i | "mol/m3" | dissociation constant for channel with two Na+ bound on inside | 2.289 |
naca.k_3n_i | "mol/m3" | dissociation constant for channel with three Na+ bound on inside | 26.44 |
naca.k_c_o | "mol/m3" | dissociation constant for channel with Ca++ bound on outside | 3.663 |
naca.k_1n_o | "mol/m3" | dissociation constant for channel with one Na+ bound on outside | 1628.0 |
naca.k_2n_o | "mol/m3" | dissociation constant for channel with two Na+ bound on outside | 561.4 |
naca.k_3n_o | "mol/m3" | dissociation constant for channel with three Na+ bound on outside | 4.663 |
naca.q_ci | fractional charge movement during intracellular Ca++ occlusion reaction | 0.1369 | |
naca.q_co | fractional charge movement during extracellular Ca++ occlusion reaction | 0.0 | |
naca.q_n | fractional charge movement during Na+ occlusion reactions | 0.4315 | |
naca.k_NaCa | "A" | scaling factor for Na+/Ca++ exchanger current | 2.14e-09 |
naca.FoRT | helper variable to simplify equations | 11604.52214706721 / temp | |
nak.current_name | "I_NaK" | ||
nak.i_max | "A" | maximum current (actual maximum is 1.6 * i_max) | 1.43e-10 |
nak.k_m_Na | "mol/m3" | Michaelis constant for Na+ binding | 5.64 |
nak.k_m_K | "mol/m3" | Michaelis constant for K+ binding | 0.621 |
l2.c | "F" | membrane capacitance | 2.9e-11 |
l2.v_init | "V" | initial potential (from short initial stimulation) | -0.09 |
l2.use_init | determines whether initial value for v is used | true | |
hcn.v_eq | "V" | equilibrium potential | -0.03 |
hcn.g_max | "S" | maximum conductance | 1e-09 |
hcn.current_name | "I_f" | ||
hcn.act_shift | "V" | 0.0 | |
hcn.act.shift | "V" | hcn.act_shift | |
st.v_eq | "V" | equilibrium potential | 0.0374 |
st.g_max | "S" | maximum conductance | 1e-10 |
st.current_name | "I_st" | ||
cell_type | "N" | ||
ca.tc_tot | "mol/m3" | total concentration of troponin-Ca | 0.031 |
ca.tmc_tot | "mol/m3" | total concentration of troponin-Mg binding to Ca2+ | 0.062 |
ca.cm_tot | "mol/m3" | total concentration of calmodulin | 0.045 |
ca.cq_tot | "mol/m3" | total concentration of calsequestrin | 10.0 |
ca.mg.c_const | "mol/m3" | fixed concentration | 2.5 |
ca.mg.vol | "m3" | volume of the compartment | v_cyto |
ca.sub.vol | "m3" | volume of the compartment | v_sub |
ca.sub.c_start | "mol/m3" | initial value of concentration | 0.0002294 |
ca.cyto.vol | "m3" | volume of the compartment | v_cyto |
ca.cyto.c_start | "mol/m3" | initial value of concentration | 0.0003623 |
ca.jsr.vol | "m3" | volume of the compartment | v_jsr |
ca.jsr.c_start | "mol/m3" | initial value of concentration | 0.08227 |
ca.nsr.vol | "m3" | volume of the compartment | v_nsr |
ca.nsr.c_start | "mol/m3" | initial value of concentration | 1.146 |
ca.sub_cyto.vol_src | "m3" | volume of source compartment | ca.sub.vol |
ca.sub_cyto.vol_dst | "m3" | volume of destination compartment | ca.cyto.vol |
ca.sub_cyto.vol_trans | "m3" | volume of substance that is transferred between compartments over 1/coeff seconds | min(ca.sub_cyto.vol_src, ca.sub_cyto.vol_dst) |
ca.sub_cyto.tau | "s" | time constant of diffusion | 4e-05 |
ca.cyto_nsr.current_name | "SERCA" | ||
ca.cyto_nsr.vol_src | "m3" | volume of source compartment | ca.cyto.vol |
ca.cyto_nsr.p | "mol/s" | maximum flow rate | 5.0 * v_nsr |
ca.cyto_nsr.k | "mol/m3" | Michaelis constant | 0.0005999999999999999 |
ca.nsr_jsr.vol_src | "m3" | volume of source compartment | ca.nsr.vol |
ca.nsr_jsr.vol_dst | "m3" | volume of destination compartment | ca.jsr.vol |
ca.nsr_jsr.vol_trans | "m3" | volume of substance that is transferred between compartments over 1/coeff seconds | min(ca.nsr_jsr.vol_src, ca.nsr_jsr.vol_dst) |
ca.nsr_jsr.tau | "s" | time constant of diffusion | 0.06 |
ca.jsr_sub.vol_src | "m3" | volume of source compartment | ca.jsr.vol |
ca.jsr_sub.vol_dst | "m3" | volume of destination compartment | ca.sub.vol |
ca.jsr_sub.vol_trans | "m3" | volume of substance that is transferred between compartments over 1/coeff seconds | min(ca.jsr_sub.vol_src, ca.jsr_sub.vol_dst) |
ca.jsr_sub.current_name | "RyR" | ||
ca.jsr_sub.p | "1/s" | rate coefficient (inverse of time constant) | 1500.0 |
ca.jsr_sub.ka | "mol/m3" | concentration producing half occupation | 0.0012 |
ca.jsr_sub.n | "1" | Hill coefficient | 2.0 |
ca.tc.n_tot | "mol" | total amount of buffer | ca.tc_tot * v_cyto |
ca.tc.f_start | "1" | initial value for f | 0.6838 |
ca.tc.k | "mol-1s-1" | association constant | 88800.0 / v_cyto |
ca.tc.kb | "s-1" | dissociation constant | 446.0 |
ca.tc.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.tc.assoc.k | "mol-1s-1" | association constant | ca.tc.k |
ca.tc.assoc.kb | "s-1" | dissociation constant | ca.tc.kb |
ca.tc.free.vol | "m3" | volume of the compartment | ca.tc.vol |
ca.tc.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.tc.f_start) * ca.tc.n_tot / ca.tc.vol |
ca.tc.occupied.vol | "m3" | volume of the compartment | ca.tc.vol |
ca.tc.occupied.c_start | "mol/m3" | initial value of concentration | ca.tc.f_start * ca.tc.n_tot / ca.tc.vol |
ca.tm.n_tot | "mol" | total amount of buffer | ca.tmc_tot * v_cyto |
ca.tm.f_a_start | "1" | initial value for f | 0.6192 |
ca.tm.f_b_start | "1" | initial value for f | 0.3363 |
ca.tm.k_a | "mol-1s-1" | association constant for binding to ligand A | 227700.0 / v_cyto |
ca.tm.k_b | "mol-1s-1" | association constant for binding to ligand B | 2277.0 / v_cyto |
ca.tm.kb_a | "s-1" | dissociation constant for binding to ligand A | 7.51 |
ca.tm.kb_b | "s-1" | dissociation constant for binding to ligand B | 751.0 |
ca.tm.vol | "m3" | volume of compartment in which buffer resides | v_cyto |
ca.tm.assoc_a.k | "mol-1s-1" | association constant | ca.tm.k_a |
ca.tm.assoc_a.kb | "s-1" | dissociation constant | ca.tm.kb_a |
ca.tm.assoc_b.k | "mol-1s-1" | association constant | ca.tm.k_b |
ca.tm.assoc_b.kb | "s-1" | dissociation constant | ca.tm.kb_b |
ca.tm.free.vol | "m3" | volume of the compartment | ca.tm.vol |
ca.tm.free.c_start | "mol/m3" | initial value of concentration | (1.0 - (ca.tm.f_a_start + ca.tm.f_b_start)) * ca.tm.n_tot / ca.tm.vol |
ca.tm.occupied_a.vol | "m3" | volume of the compartment | ca.tm.vol |
ca.tm.occupied_a.c_start | "mol/m3" | initial value of concentration | ca.tm.f_a_start * ca.tm.n_tot / ca.tm.vol |
ca.tm.occupied_b.vol | "m3" | volume of the compartment | ca.tm.vol |
ca.tm.occupied_b.c_start | "mol/m3" | initial value of concentration | ca.tm.f_b_start * ca.tm.n_tot / ca.tm.vol |
ca.cm_cyto.n_tot | "mol" | total amount of buffer | ca.cm_tot * v_cyto |
ca.cm_cyto.f_start | "1" | initial value for f | 0.1336 |
ca.cm_cyto.k | "mol-1s-1" | association constant | 227700.0 / v_cyto |
ca.cm_cyto.kb | "s-1" | dissociation constant | 542.0 |
ca.cm_cyto.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cm_cyto.assoc.k | "mol-1s-1" | association constant | ca.cm_cyto.k |
ca.cm_cyto.assoc.kb | "s-1" | dissociation constant | ca.cm_cyto.kb |
ca.cm_cyto.free.vol | "m3" | volume of the compartment | ca.cm_cyto.vol |
ca.cm_cyto.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cm_cyto.f_start) * ca.cm_cyto.n_tot / ca.cm_cyto.vol |
ca.cm_cyto.occupied.vol | "m3" | volume of the compartment | ca.cm_cyto.vol |
ca.cm_cyto.occupied.c_start | "mol/m3" | initial value of concentration | ca.cm_cyto.f_start * ca.cm_cyto.n_tot / ca.cm_cyto.vol |
ca.cm_sub.n_tot | "mol" | total amount of buffer | ca.cm_tot * v_sub |
ca.cm_sub.f_start | "1" | initial value for f | 0.08894000000000001 |
ca.cm_sub.k | "mol-1s-1" | association constant | ca.cm_cyto.k * v_cyto / v_sub |
ca.cm_sub.kb | "s-1" | dissociation constant | ca.cm_cyto.kb |
ca.cm_sub.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cm_sub.assoc.k | "mol-1s-1" | association constant | ca.cm_sub.k |
ca.cm_sub.assoc.kb | "s-1" | dissociation constant | ca.cm_sub.kb |
ca.cm_sub.free.vol | "m3" | volume of the compartment | ca.cm_sub.vol |
ca.cm_sub.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cm_sub.f_start) * ca.cm_sub.n_tot / ca.cm_sub.vol |
ca.cm_sub.occupied.vol | "m3" | volume of the compartment | ca.cm_sub.vol |
ca.cm_sub.occupied.c_start | "mol/m3" | initial value of concentration | ca.cm_sub.f_start * ca.cm_sub.n_tot / ca.cm_sub.vol |
ca.cq.n_tot | "mol" | total amount of buffer | ca.cq_tot * v_jsr |
ca.cq.f_start | "1" | initial value for f | 0.08735999999999999 |
ca.cq.k | "mol-1s-1" | association constant | 534.0 / v_jsr |
ca.cq.kb | "s-1" | dissociation constant | 445.0 |
ca.cq.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cq.assoc.k | "mol-1s-1" | association constant | ca.cq.k |
ca.cq.assoc.kb | "s-1" | dissociation constant | ca.cq.kb |
ca.cq.free.vol | "m3" | volume of the compartment | ca.cq.vol |
ca.cq.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cq.f_start) * ca.cq.n_tot / ca.cq.vol |
ca.cq.occupied.vol | "m3" | volume of the compartment | ca.cq.vol |
ca.cq.occupied.c_start | "mol/m3" | initial value of concentration | ca.cq.f_start * ca.cq.n_tot / ca.cq.vol |
ca.cm_sl_tot | "mol/m3" | total concentration of calmodulin in sarcolemma | 0.02583333333333333 |
ca.cm_sl.n_tot | "mol" | total amount of buffer | ca.cm_sl_tot * v_sub |
ca.cm_sl.f_start | "1" | initial value for f | 4.764e-05 |
ca.cm_sl.k | "mol-1s-1" | association constant | 115.0 / v_sub |
ca.cm_sl.kb | "s-1" | dissociation constant | 1000.0 |
ca.cm_sl.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cm_sl.assoc.k | "mol-1s-1" | association constant | ca.cm_sl.k |
ca.cm_sl.assoc.kb | "s-1" | dissociation constant | ca.cm_sl.kb |
ca.cm_sl.free.vol | "m3" | volume of the compartment | ca.cm_sl.vol |
ca.cm_sl.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cm_sl.f_start) * ca.cm_sl.n_tot / ca.cm_sl.vol |
ca.cm_sl.occupied.vol | "m3" | volume of the compartment | ca.cm_sl.vol |
ca.cm_sl.occupied.c_start | "mol/m3" | initial value of concentration | ca.cm_sl.f_start * ca.cm_sl.n_tot / ca.cm_sl.vol |
bg.g | "S" | ion conductance | bg.g_max |
InaMo.Cells.VariableCa.NHCell
model NHCell "full nodal-his cell model by Inada et al. (2009)"
extends InaMo.Cells.Interfaces.NHCellBase;
extends InaMo.Icons.CellVar(cell_type = "NH");
// starting values for CaHandling are from Inada 2009
InaMo.Concentrations.Atrioventricular.CaHandling ca(cyto.c_start = 0.1386e-3, sub.c_start = 0.07314e-3, jsr.c_start = 0.4438, nsr.c_start = 1.187, tc.f_start = 0.02703, tm.f_a_start = 0.4020, tm.f_b_start = 0.5282, cm_cyto.f_start = 0.05530, cm_sub.f_start = 0.02992, cq.f_start = 0.3463, cm_sl.f_start = 4.843e-5, jsr_sub.p = 1805.6) "intracellular Ca2+ handling by SR and buffers" annotation(
Placement(transformation(origin = {16, 0}, extent = {{-17, -17}, {17, 17}})));
// [Ca2+]_rel
// NOTE: value from C++ code, not given in paper
equation
connect(ca.ca_sub, naca.ca) annotation(
Line(points = {{0, 0}, {-10, 0}, {-10, 36}, {-12, 36}, {-12, 36}}));
connect(cal.ca, ca.ca_sub) annotation(
Line(points = {{-34, -36}, {-34, -36}, {-34, 0}, {0, 0}, {0, 0}}));
end NHCell;
- Within group ca (prefix _ indicates shortened variable name)
- Within group cm_cyto (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cm_sl (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cm_sub (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cq (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group cyto (prefix _ indicates shortened variable name)
- Within group jsr (prefix _ indicates shortened variable name)
- Within group jsr_sub (prefix _ indicates shortened variable name)
- Within group nsr (prefix _ indicates shortened variable name)
- Within group sub (prefix _ indicates shortened variable name)
- Within group tc (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group occupied (prefix _ indicates shortened variable name)
- Within group assoc (prefix _ indicates shortened variable name)
- Within group tm (prefix _ indicates shortened variable name)
- Within group free (prefix _ indicates shortened variable name)
- Within group occupied_a (prefix _ indicates shortened variable name)
- Within group occupied_b (prefix _ indicates shortened variable name)
- Within group cal (prefix _ indicates shortened variable name)
- Within group kir (prefix _ indicates shortened variable name)
- Within group kr (prefix _ indicates shortened variable name)
- Within group na (prefix _ indicates shortened variable name)
- Within group act (prefix _ indicates shortened variable name)
- Within group naca (prefix _ indicates shortened variable name)
- Within group to (prefix _ indicates shortened variable name)
Functions:
function act.fsteady
input Real x "input value";
input Real y_min = 0.0 "lower asymptote (fitting parameter)";
input Real y_max = 1.0 "upper asmyptote when d_off=1 and nu=1 (fititng parameter)";
input Real x0 = -0.0032 "x-value of sigmoid midpoint when d_off=1 and nu=1 (fitting parameter)";
input Real sx = 151.285930408472 "scaling factor for x axis (i.e. steepness, fitting parameter)";
input Real se = 1.0 "scaling factor for exponential part (fitting parameter)";
input Real d_off = 1.0 "offset in denominator (affects upper asymptote, fitting parameter)";
input Real nu = 1.0 "reciprocal of exponent of denominator (affects upper asymptote, fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
y := y_min + (y_max - y_min) / (se * exp(-x_adj) + d_off) ^ (1.0 / nu);
end act.fsteady;
function inact.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 9.42, 603.6) + kr.ftau.falpha(x, 0.0, -18.3, 92.01000000000001)) + off;
end inact.ftau;
function c_to_v "function used to determine cell volume based on membrane capacitance"
input Real c_m(quantity = "Capacitance", unit = "F", min = 0.0) "membrane capacitance";
input Real v_low(quantity = "Volume", unit = "m3") = 2.19911e-15 "low estimate for cell volume (obtained when c_m = c_low)";
input Real v_high(quantity = "Volume", unit = "m3") = 7.147123e-15 "high estimate for cell volume (obtained when c_m = c_low + c_span)";
output Real v_cell(quantity = "Volume", unit = "m3") "resulting total cell volume";
protected Real c_low(quantity = "Capacitance", unit = "F", min = 0.0) = 2e-11 "low value for c_m (where v_low is returned)";
protected Real c_span(quantity = "Capacitance", unit = "F", min = 0.0) = 4.5e-11 "span that must be added to c_m to reach an output of v_high";
algorithm
v_cell := (c_m - c_low) / c_span * (v_high - v_low) + v_low;
end c_to_v;
function cal.ftau.falpha
input Real x "input value";
output Real y "output value";
algorithm
y := fa(x, -0.035, 26.12 * 2.5, -1000.0 / 2.5) + fa(x, 0.0, 78.11 / 0.208, -208.0);
end cal.ftau.falpha;
function inact_fast.fsteady
input Real x "input value";
output Real y "result of applying the HH-style equation steady = alpha/(alpha + beta)";
algorithm
y := kr.ftau.falpha(x, -0.0669, -1000.0 / 5.57, 44.9) / (kr.ftau.falpha(x, -0.0669, -1000.0 / 5.57, 44.9) + act.fsteady(x, 0.0, 1491.0, -0.0946, 1000.0 / 12.9, 323.3, 1.0, 1.0));
end inact_fast.fsteady;
function kr.ftau.falpha
input Real x "input value";
input Real x0 = 0.0 "x-value where y = 1 (fitting parameter)";
input Real sx = 39.8 "scaling factor for x axis (fitting parameter)";
input Real sy = 17.0 "scaling factor for y axis (fitting parameter)";
output Real y "result";
algorithm
y := sy * exp(sx * (x - x0));
end kr.ftau.falpha;
function michaelisMenten "equation for enzymatic reactions following Michaelis-Menten kinetics"
input Real s(quantity = "Concentration", unit = "mol/m3") "substrate concentration";
input Real k(quantity = "Concentration", unit = "mol/m3") "concentration producing half-maximum reaction rate (michaelis constant)";
output Real rate(unit = "1") "reaction rate";
algorithm
rate := s / (s + k);
end michaelisMenten;
function inact_fast.ftau
input Real x "input value";
input Real y_min = 0.01 "minimum value achieved at edges (fitting parameter)";
input Real y_max = 0.1639 "maximum value achieved at peak (fititng parameter)";
input Real x0 = -0.04 "x-value of bell curve midpoint (fitting parameter)";
input Real sigma = 0.009635092111651035 "standard deviation determining the width of the bell curve (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and standard deviation";
algorithm
x_adj := (x - x0) / sigma;
y := y_min + (y_max - y_min) * exp(-0.5 * x_adj ^ 2.0);
end inact_fast.ftau;
function cal.act.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (cal.ftau.falpha(x) + fa(x, 0.005, 10.52 / 0.4, 400.0)) + off;
end cal.act.ftau;
function ghkFlux "ghk flux equation for a single ion"
input Real v(quantity = "ElectricPotential", unit = "V") "membrane potential";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
input Real ion_in(quantity = "Concentration", unit = "mol/m3") "intracellular ion concentration";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Real ion_p(quantity = "Permeability (fluid mechanics)", unit = "m3/(s.m2)") "permeability of cell membrane to Na+ cations";
input Integer ion_z "ion valence";
output Real i(quantity = "CurrentDensity", unit = "A/m2") "current density resulting from ion flux through membrane";
protected Real g_max(quantity = "Conductance", unit = "S");
protected Real v_eq(quantity = "ElectricPotential", unit = "V");
protected Real FoRT(unit = "1/V") = 96485.33289000001 / (8.3144598 * temp);
algorithm
g_max := ion_p * ion_ex * FoRT * 96485.33289000001 * /*Real*/(ion_z) ^ 2.0;
v_eq := nernst(ion_in, ion_ex, ion_z, temp);
if abs(v) < 1e-06 then
i := g_max / FoRT / /*Real*/(ion_z) * (exp(-v_eq * FoRT * /*Real*/(ion_z)) - 1.0);
else
i := g_max * v * (exp((v - v_eq) * FoRT * /*Real*/(ion_z)) - 1.0) / (exp(v * FoRT * /*Real*/(ion_z)) - 1.0);
end if;
end ghkFlux;
function act_fast.ftau
input Real x "input value";
input Real off = 0.0 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, 0.0, 39.8, 17.0) + kr.ftau.falpha(x, 0.0, -51.0, 0.211)) + off;
end act_fast.ftau;
function fa
input Real x "input value";
input Real x0 = -0.035 "offset for x (fitting parameter)";
input Real sy = 65.3 "scaling factor for y (fitting parameter)";
input Real sx = -400.0 "scaling factor for x (fitting parameter)";
output Real y "result";
protected Real x_adj "adjusted x with offset and scaling factor";
algorithm
x_adj := sx * (x - x0);
if abs(x - x0) < 1e-06 then
y := sy;
else
y := sy * x_adj / (exp(x_adj) - 1.0);
end if;
end fa;
function nernst "Nernst equation to find the equlibrium potential for a single ion"
input Real ion_in(quantity = "Concentration", unit = "mol/m3") "intracellular ion concentration";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real v_eq(quantity = "ElectricPotential", unit = "V") "equlibirium potential";
algorithm
v_eq := 8.3144598 * temp / /*Real*/(ion_z) / 96485.33289000001 * log(ion_ex / ion_in);
end nernst;
function to.act.ftau
input Real x "input value";
input Real off = 0.000596 "offset added to result to increase minimum (fitting parameter)";
output Real y "result of applying the HH-style equation tau = 1/(alpha + beta)";
algorithm
y := 1.0 / (kr.ftau.falpha(x, -0.03061, 90.0, 1.037 / 0.003188) + kr.ftau.falpha(x, -0.02384, -120.0, 0.396 / 0.003188)) + off;
end to.act.ftau;
function hillLangmuir "Hill-Langmuir equation measuring the occupancy of a molecule by a ligand"
input Real c(quantity = "Concentration", unit = "mol/m3") "ligand concentration";
input Real ka(quantity = "Concentration", unit = "mol/m3") "concentration producing half occupation";
input Real n(unit = "1") "Hill coefficient";
output Real rate(unit = "1") "occupancy of molecule by ligand";
algorithm
rate := c ^ n / (c ^ n + ka ^ n);
end hillLangmuir;
function inact.fsteady
input Real x "input value";
output Real y "output value";
algorithm
y := act.fsteady(x, 0.0, 1.0, -0.0049, -1000.0 / 15.14, 1.0, 1.0, 1.0) * inact_fast.ftau(x, 1.0, (-0.3) + 1.0, 0.0, sqrt(500.0 / 2.0) / 1000.0);
end inact.fsteady;
function p_from_g "calculate membrane permeability for ion from membrane conductance"
input Real g(quantity = "Conductance", unit = "S") "membrane conductance for given ion";
input Real ion_ex(quantity = "Concentration", unit = "mol/m3") "extracellular ion concentration";
input Integer ion_z "valence of ion";
input Real temp(quantity = "ThermodynamicTemperature", unit = "K", displayUnit = "degC", min = 0.0, start = 288.15, nominal = 300.0) "cell medium temperature";
output Real p(quantity = "Permeability (fluid mechanics)", unit = "m3/(s.m2)") "membrane permeability for given ion";
protected Real unit_area(quantity = "Area", unit = "m2") = 1.0 "unit area of 1 m², used to get correct units";
algorithm
p := g / ion_ex * 8.3144598 * temp / (96485.33289000001 * /*Real*/(ion_z)) ^ 2.0 / unit_area;
end p_from_g;
name | unit | label | value |
---|---|---|---|
ca.cm_sl.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sl.occupied.substance.amount | "mol" | amount of substance | |
ca.cm_sl.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sl.free.substance.amount | "mol" | amount of substance | |
ca.cm_sl.site.rate | "mol/s" | molar flow rate of substance | |
ca.cq.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cq.occupied.substance.amount | "mol" | amount of substance | |
ca.cq.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cq.free.substance.amount | "mol" | amount of substance | |
ca.cq.site.rate | "mol/s" | molar flow rate of substance | |
ca.cm_sub.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sub.occupied.substance.amount | "mol" | amount of substance | |
ca.cm_sub.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_sub.free.substance.amount | "mol" | amount of substance | |
ca.cm_sub.site.rate | "mol/s" | molar flow rate of substance | |
ca.cm_cyto.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_cyto.occupied.substance.amount | "mol" | amount of substance | |
ca.cm_cyto.free.con | "mol/m3" | concentration of substance in compartment | |
ca.cm_cyto.free.substance.amount | "mol" | amount of substance | |
ca.cm_cyto.site.rate | "mol/s" | molar flow rate of substance | |
ca.tm.occupied_b.con | "mol/m3" | concentration of substance in compartment | |
ca.tm.occupied_b.substance.amount | "mol" | amount of substance | |
ca.tm.occupied_a.con | "mol/m3" | concentration of substance in compartment | |
ca.tm.occupied_a.substance.amount | "mol" | amount of substance | |
ca.tm.free.con | "mol/m3" | concentration of substance in compartment | |
ca.tm.free.substance.rate | "mol/s" | molar flow rate of substance | |
ca.tm.free.substance.amount | "mol" | amount of substance | |
ca.tm.site_b.rate | "mol/s" | molar flow rate of substance | |
ca.tm.site_a.rate | "mol/s" | molar flow rate of substance | |
ca.tc.occupied.con | "mol/m3" | concentration of substance in compartment | |
ca.tc.occupied.substance.amount | "mol" | amount of substance | |
ca.tc.free.con | "mol/m3" | concentration of substance in compartment | |
ca.tc.free.substance.amount | "mol" | amount of substance | |
ca.tc.site.rate | "mol/s" | molar flow rate of substance | |
ca.jsr_sub.coeff | "1/s" | coefficient of transport | |
ca.jsr_sub.rate | "mol/s" | rate of change in substance amount | |
ca.nsr_jsr.rate | "mol/s" | rate of change in substance amount | |
ca.cyto_nsr.rate | "mol/s" | rate of change in substance amount | |
ca.sub_cyto.rate | "mol/s" | rate of change in substance amount | |
ca.nsr.con | "mol/m3" | concentration of substance in compartment | |
ca.nsr.substance.rate | "mol/s" | molar flow rate of substance | |
ca.nsr.substance.amount | "mol" | amount of substance | |
ca.jsr.con | "mol/m3" | concentration of substance in compartment | |
ca.jsr.substance.rate | "mol/s" | molar flow rate of substance | |
ca.jsr.substance.amount | "mol" | amount of substance | |
ca.cyto.con | "mol/m3" | concentration of substance in compartment | |
ca.cyto.substance.rate | "mol/s" | molar flow rate of substance | |
ca.cyto.substance.amount | "mol" | amount of substance | |
ca.sub.con | "mol/m3" | concentration of substance in compartment | |
ca.sub.substance.rate | "mol/s" | molar flow rate of substance | |
ca.sub.substance.amount | "mol" | amount of substance | |
ca.ca_sub.rate | "mol/s" | molar flow rate of substance | |
to.inact_total | total inactivation resulting from fast and slow inactivation gates | ||
to.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.inact_fast.steady | value that n would reach if v_gate was held constant | ||
to.inact_fast.n | ratio of molecules in open conformation | 0.864 | |
to.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.inact_slow.steady | value that n would reach if v_gate was held constant | ||
to.inact_slow.n | ratio of molecules in open conformation | 0.1297 | |
to.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
to.act.steady | value that n would reach if v_gate was held constant | ||
to.act.n | ratio of molecules in open conformation | 0.009580999999999999 | |
to.g | "S" | ion conductance | |
to.i_open | "A" | i if open_ratio = 1 | |
to.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
to.i_ion | "A" | current used for ion flux | |
to.v_gate | "V" | voltage used for activation/inactivation gates | |
na.inact_total | total inactivation resulting from fast and slow inactivation terms | ||
na.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.inact_slow.steady | value that n would reach if v_gate was held constant | ||
na.inact_slow.n | ratio of molecules in open conformation | 0.5552 | |
na.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.inact_fast.steady | value that n would reach if v_gate was held constant | ||
na.inact_fast.n | ratio of molecules in open conformation | 0.6438 | |
na.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
na.act.steady | "1" | steady state achieved if current voltage is held constant | |
na.act.beta | "1" | rate of transfer from open to closed conformation | |
na.act.alpha | "1" | rate of transfer from closed to open conformation | |
na.act.n | ratio of molecules in open conformation | 0.01529 | |
na.i_open | i if open_ratio = 1 | ||
na.open_ratio | ratio between 0 (fully closed) and 1 (fully open) | ||
na.i_ion | "A" | current used for ion flux | |
na.v_gate | "V" | voltage used for activation/inactivation gates | |
kir.voltage_act.n | ratio of molecules in open conformation | ||
kir.voltage_inact.n | ratio of molecules in open conformation | ||
kir.g | "S" | ion conductance | |
kir.i_open | "A" | i if open_ratio = 1 | |
kir.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
kir.i_ion | "A" | current used for ion flux | |
kir.v_gate | "V" | voltage used for activation/inactivation gates | |
l2.i | "A" | Current flowing from pin p to pin n | |
l2.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
nak.i | "A" | Current flowing from pin p to pin n | |
nak.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
naca.e4 | "1" | ratio of exchanger molecules in state e4 | |
naca.e3 | "1" | ratio of exchanger molecules in state e3 | |
naca.e2 | "1" | ratio of exchanger molecules in state e2 | |
naca.e1 | "1" | ratio of exchanger molecules in state e1 | |
naca.d | "1" | common denominator to turn relative frequencies into actual ratios between 0 and 1 | |
naca.x4 | "1" | relative frequancy of E4 states | |
naca.x3 | "1" | relative frequency of E3 states | |
naca.x2 | "1" | relative frequency of E2 states | |
naca.x1 | "1" | relative frequency of E1 states | |
naca.k_14 | "1" | rate constant for transition from E1 to E4 | |
naca.k_41 | "1" | rate constant for transition from E4 to E1 | |
naca.k_32 | "1" | rate constant for transition from E3 to E2 | |
naca.k_23 | "1" | rate constant for transition from E2 to E3 | |
naca.k_21 | "1" | rate constant for transition from E2 to E1 | |
naca.k_12 | "1" | rate constant for transition from E1 to E2 | |
naca.f1_2n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | |
naca.f1_2n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | |
naca.do | "1" | common denominator summing relative frequencies for all E2 substates | |
naca.do_cv | "1" | relative frequency of E2 states that are occupied by Ca2+ and occluded | |
naca.di | "1" | common denominator summing relative frequencies for all E1 substates | |
naca.di_cn | "1" | relative frequency of E1 states whose first two binding sites are occupied by Ca2+ and whose last binding site is occupied by Na+ | |
naca.di_cv | "1" | relative frequency of E1 states that are occupied by Ca2+ and occluded | |
naca.di_c | "1" | relative frequency of E1 states that are occupied by Ca2+ and not occluded | |
naca.i_ion | "A" | current used for TransmembraneCaFlow | |
naca.trans.rate | "mol/s" | rate of change in substance amount | |
naca.v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
kr.act_total | total activation due to slow and fast activation terms | ||
kr.inact.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.inact.steady | value that n would reach if v_gate was held constant | ||
kr.inact.n | ratio of molecules in open conformation | 0.9853 | |
kr.act_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_slow.steady | value that n would reach if v_gate was held constant | ||
kr.act_slow.n | ratio of molecules in open conformation | 0.07024 | |
kr.act_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
kr.act_fast.steady | value that n would reach if v_gate was held constant | ||
kr.act_fast.n | ratio of molecules in open conformation | 0.09949 | |
kr.g | "S" | ion conductance | |
kr.i_open | "A" | i if open_ratio = 1 | |
kr.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
kr.i_ion | "A" | current used for ion flux | |
kr.v_gate | "V" | voltage used for activation/inactivation gates | |
cal.inact_total | |||
cal.inact_fast.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_fast.steady | value that n would reach if v_gate was held constant | ||
cal.inact_fast.n | ratio of molecules in open conformation | 0.9981 | |
cal.inact_slow.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.inact_slow.steady | value that n would reach if v_gate was held constant | ||
cal.inact_slow.n | ratio of molecules in open conformation | 0.9831 | |
cal.act.tau | "s" | time constant for obtaining steady state (i.e. time until difference between n and steady has reduced by a factor of 1/e) | |
cal.act.steady | value that n would reach if v_gate was held constant | ||
cal.act.n | ratio of molecules in open conformation | 5.025e-05 | |
cal.trans.rate | "mol/s" | rate of change in substance amount | |
cal.g | "S" | ion conductance | |
cal.i_open | "A" | i if open_ratio = 1 | |
cal.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | |
cal.i_ion | "A" | current used for ion flux | |
cal.v_gate | "V" | voltage used for activation/inactivation gates | |
bg.i_ion | "A" | current used for ion flux | |
bg.v_gate | "V" | voltage used for activation/inactivation gates | |
n.v | "V" | Potential at the pin | |
p.v | "V" | Potential at the pin | |
v | "V" | Voltage drop of the two pins (= p.v - n.v) | |
cal.con.substance.amount | "mol" | amount of substance | cal.con.c_const * cal.con.vol |
naca.con.substance.amount | "mol" | amount of substance | naca.con.c_const * naca.con.vol |
naca.di_3n | "1" | relative frequency of E1 states where exactly three Na+ sites are occupied by Na+ | naca.di_2n * na_in / naca.k_3n_i |
naca.do_3n | "1" | relative frequency of E2 states where exactly three Na+ sites are occupied by Na+ | naca.do_2n * na_ex / naca.k_3n_o |
naca.do_2n | "1" | relative frequency of E2 states where exactly the first two Na+ sites are occupied by Na+ | naca.do_1n * na_ex / naca.k_2n_o |
naca.di_2n | "1" | relative frequency of E1 states where exactly the first two Na+ sites are occupied by Na+ | naca.di_1n * na_in / naca.k_2n_i |
p.i | "A" | Current flowing into the pin | 0.0 |
n.i | "A" | Current flowing into the pin | 0.0 |
bg.open_ratio | "1" | ratio between 0 (fully closed) and 1 (fully open) | 1.0 |
ca.mg.substance.amount | "mol" | amount of substance | ca.mg.c_const * ca.mg.vol |
ca.sub_cyto.coeff | "1/s" | coefficient of transport | 1.0 / ca.sub_cyto.tau |
ca.nsr_jsr.coeff | "1/s" | coefficient of transport | 1.0 / ca.nsr_jsr.tau |
cal.ach_factor | 1.0 | ||
naca.di_1n | "1" | relative frequency of E1 states where only the first Na+ site is occupied by Na+ | na_in / naca.k_1n_i |
naca.do_c | "1" | relative frequency of E2 states that are occupied by Ca2+ and not occluded | ca_ex / naca.k_c_o |
naca.do_1n | "1" | relative frequency of E2 states where only the first Na+ site is occupied by Na+ | na_ex / naca.k_1n_o |
naca.f1_3n_o | "1" | fraction of E2 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_ex, naca.k_3n_o) |
naca.f1_3n_i | "1" | fraction of E1 states whose first two Na+ sites are occupied by Na+ | InaMo.Functions.Biochemical.michaelisMenten(na_in, naca.k_3n_i) |
kir.n_pot | "1" | [K+]_ex-dependent gating variable | InaMo.Functions.Biochemical.michaelisMenten(k_ex, 0.59) |
use_ach | should acetylcholine sensitive potassium channel be included in the model | false | |
ach | "mol/m3" | concentration of acetylcholine available for I_ACh | 0.0 |
na_in | "mol/m3" | intracellular sodium concentration | 8.0 |
na_ex | "mol/m3" | extracellular sodium concentration | 140.0 |
na_p | "m3/(s.m2)" | permeability of cell membrane to sodium ions | InaMo.Functions.Biochemical.p_from_g(2.53e-07, na_ex, 1, temp) |
k_in | "mol/m3" | intracellular potassium concentration | 140.0 |
k_ex | "mol/m3" | extracellular potassium concentration | 5.4 |
ca_ex | "mol/m3" | extracellular calcium concentration | 2.0 |
temp | "K" | cell medium temperature | 288.15 |
v_cell | "m3" | total cell volume | InaMo.Cells.VariableCa.NHCell.c_to_v(l2.c, 2.19911e-15, 7.147123e-15) |
v_cyto | "m3" | volume of cytosol | 0.46 * v_cell - v_sub |
v_sub | "m3" | volume of subspace | 0.01 * v_cell |
v_jsr | "m3" | volume of junctional SR | 0.0012 * v_cell |
v_nsr | "m3" | volume of network SR | 0.0116 * v_cell |
v_k | "V" | equilibrium potential for potassium currents | InaMo.Functions.Biochemical.nernst(k_in, k_ex, 1, temp) |
bg.v_eq | "V" | equilibrium potential | -0.04 |
bg.g_max | "S" | maximum conductance | 2e-09 |
bg.current_name | "I_b" | ||
cal.v_eq | "V" | equilibrium potential | 0.0621 |
cal.g_max | "S" | maximum conductance | 2.1e-08 |
cal.trans.n | "1" | stoichiometric ratio of ion transport | cal.n_ca |
cal.trans.z | valence of ion | 2 | |
cal.con.c_const | "mol/m3" | fixed concentration | ca_ex |
cal.con.vol | "m3" | volume of the compartment | 1.0 |
cal.n_ca | "1" | stoichiometric ratio of transport | 1.0 |
cal.current_name | "I_Ca,L" | ||
cal.k_ach | "1" | ratio of maximum channel inhibition by acetylcholine | 0.0 |
kr.v_eq | "V" | equilibrium potential | v_k |
kr.g_max | "S" | maximum conductance | 2e-09 |
kr.current_name | "I_K,r" | ||
naca.trans.n | "1" | stoichiometric ratio of ion transport | naca.n_ca |
naca.trans.z | valence of ion | 2 | |
naca.con.c_const | "mol/m3" | fixed concentration | ca_ex |
naca.con.vol | "m3" | volume of the compartment | 1.0 |
naca.n_ca | "1" | stoichiometric ratio of transport | -2.0 |
naca.current_name | "I_NaCa" | ||
naca.k_c_i | "mol/m3" | dissociation constant for channel with Ca++ bound on inside | 0.0207 |
naca.k_cn_i | "mol/m3" | dissociation constant for channel with Ca++ and one Na+ bound on inside | 26.44 |
naca.k_1n_i | "mol/m3" | dissociation constant for channel with one Na+ bound on inside | 395.3 |
naca.k_2n_i | "mol/m3" | dissociation constant for channel with two Na+ bound on inside | 2.289 |
naca.k_3n_i | "mol/m3" | dissociation constant for channel with three Na+ bound on inside | 26.44 |
naca.k_c_o | "mol/m3" | dissociation constant for channel with Ca++ bound on outside | 3.663 |
naca.k_1n_o | "mol/m3" | dissociation constant for channel with one Na+ bound on outside | 1628.0 |
naca.k_2n_o | "mol/m3" | dissociation constant for channel with two Na+ bound on outside | 561.4 |
naca.k_3n_o | "mol/m3" | dissociation constant for channel with three Na+ bound on outside | 4.663 |
naca.q_ci | fractional charge movement during intracellular Ca++ occlusion reaction | 0.1369 | |
naca.q_co | fractional charge movement during extracellular Ca++ occlusion reaction | 0.0 | |
naca.q_n | fractional charge movement during Na+ occlusion reactions | 0.4315 | |
naca.k_NaCa | "A" | scaling factor for Na+/Ca++ exchanger current | 5.92e-09 |
naca.FoRT | helper variable to simplify equations | 11604.52214706721 / temp | |
nak.current_name | "I_NaK" | ||
nak.i_max | "A" | maximum current (actual maximum is 1.6 * i_max) | 1.97e-10 |
nak.k_m_Na | "mol/m3" | Michaelis constant for Na+ binding | 5.64 |
nak.k_m_K | "mol/m3" | Michaelis constant for K+ binding | 0.621 |
l2.c | "F" | membrane capacitance | 4e-11 |
l2.v_init | "V" | initial potential (from short initial stimulation) | -0.09 |
l2.use_init | determines whether initial value for v is used | true | |
kir.v_eq | "V" | equilibrium potential | v_k |
kir.g_max | "S" | maximum conductance | 1.5e-08 |
kir.current_name | "I_K1" | ||
kir.FoRT | helper variable to simplyfiy equations | 96485.33289000001 / (temp * 8.3144598) | |
kir.use_vact | use voltage-dependent activation gate? (only Inada 2009) | true | |
na.ion_ex | "mol/m3" | extracellular concentration of ion | na_ex |
na.ion_p | "m3/(s.m2)" | permeability of ion | na_p |
na.ion_z | valence of ion | 1 | |
na.current_name | "I_Na" | ||
to.v_eq | "V" | equilibrium potential | v_k |
to.g_max | "S" | maximum conductance | 1.4e-08 |
to.current_name | "I_to" | ||
cell_type | "NH" | ||
ca.tc_tot | "mol/m3" | total concentration of troponin-Ca | 0.031 |
ca.tmc_tot | "mol/m3" | total concentration of troponin-Mg binding to Ca2+ | 0.062 |
ca.cm_tot | "mol/m3" | total concentration of calmodulin | 0.045 |
ca.cq_tot | "mol/m3" | total concentration of calsequestrin | 10.0 |
ca.mg.c_const | "mol/m3" | fixed concentration | 2.5 |
ca.mg.vol | "m3" | volume of the compartment | v_cyto |
ca.sub.vol | "m3" | volume of the compartment | v_sub |
ca.sub.c_start | "mol/m3" | initial value of concentration | 7.313999999999999e-05 |
ca.cyto.vol | "m3" | volume of the compartment | v_cyto |
ca.cyto.c_start | "mol/m3" | initial value of concentration | 0.0001386 |
ca.jsr.vol | "m3" | volume of the compartment | v_jsr |
ca.jsr.c_start | "mol/m3" | initial value of concentration | 0.4438 |
ca.nsr.vol | "m3" | volume of the compartment | v_nsr |
ca.nsr.c_start | "mol/m3" | initial value of concentration | 1.187 |
ca.sub_cyto.vol_src | "m3" | volume of source compartment | ca.sub.vol |
ca.sub_cyto.vol_dst | "m3" | volume of destination compartment | ca.cyto.vol |
ca.sub_cyto.vol_trans | "m3" | volume of substance that is transferred between compartments over 1/coeff seconds | min(ca.sub_cyto.vol_src, ca.sub_cyto.vol_dst) |
ca.sub_cyto.tau | "s" | time constant of diffusion | 4e-05 |
ca.cyto_nsr.current_name | "SERCA" | ||
ca.cyto_nsr.vol_src | "m3" | volume of source compartment | ca.cyto.vol |
ca.cyto_nsr.p | "mol/s" | maximum flow rate | 5.0 * v_nsr |
ca.cyto_nsr.k | "mol/m3" | Michaelis constant | 0.0005999999999999999 |
ca.nsr_jsr.vol_src | "m3" | volume of source compartment | ca.nsr.vol |
ca.nsr_jsr.vol_dst | "m3" | volume of destination compartment | ca.jsr.vol |
ca.nsr_jsr.vol_trans | "m3" | volume of substance that is transferred between compartments over 1/coeff seconds | min(ca.nsr_jsr.vol_src, ca.nsr_jsr.vol_dst) |
ca.nsr_jsr.tau | "s" | time constant of diffusion | 0.06 |
ca.jsr_sub.vol_src | "m3" | volume of source compartment | ca.jsr.vol |
ca.jsr_sub.vol_dst | "m3" | volume of destination compartment | ca.sub.vol |
ca.jsr_sub.vol_trans | "m3" | volume of substance that is transferred between compartments over 1/coeff seconds | min(ca.jsr_sub.vol_src, ca.jsr_sub.vol_dst) |
ca.jsr_sub.current_name | "RyR" | ||
ca.jsr_sub.p | "1/s" | rate coefficient (inverse of time constant) | 1805.6 |
ca.jsr_sub.ka | "mol/m3" | concentration producing half occupation | 0.0012 |
ca.jsr_sub.n | "1" | Hill coefficient | 2.0 |
ca.tc.n_tot | "mol" | total amount of buffer | ca.tc_tot * v_cyto |
ca.tc.f_start | "1" | initial value for f | 0.02703 |
ca.tc.k | "mol-1s-1" | association constant | 88800.0 / v_cyto |
ca.tc.kb | "s-1" | dissociation constant | 446.0 |
ca.tc.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.tc.assoc.k | "mol-1s-1" | association constant | ca.tc.k |
ca.tc.assoc.kb | "s-1" | dissociation constant | ca.tc.kb |
ca.tc.free.vol | "m3" | volume of the compartment | ca.tc.vol |
ca.tc.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.tc.f_start) * ca.tc.n_tot / ca.tc.vol |
ca.tc.occupied.vol | "m3" | volume of the compartment | ca.tc.vol |
ca.tc.occupied.c_start | "mol/m3" | initial value of concentration | ca.tc.f_start * ca.tc.n_tot / ca.tc.vol |
ca.tm.n_tot | "mol" | total amount of buffer | ca.tmc_tot * v_cyto |
ca.tm.f_a_start | "1" | initial value for f | 0.402 |
ca.tm.f_b_start | "1" | initial value for f | 0.5282 |
ca.tm.k_a | "mol-1s-1" | association constant for binding to ligand A | 227700.0 / v_cyto |
ca.tm.k_b | "mol-1s-1" | association constant for binding to ligand B | 2277.0 / v_cyto |
ca.tm.kb_a | "s-1" | dissociation constant for binding to ligand A | 7.51 |
ca.tm.kb_b | "s-1" | dissociation constant for binding to ligand B | 751.0 |
ca.tm.vol | "m3" | volume of compartment in which buffer resides | v_cyto |
ca.tm.assoc_a.k | "mol-1s-1" | association constant | ca.tm.k_a |
ca.tm.assoc_a.kb | "s-1" | dissociation constant | ca.tm.kb_a |
ca.tm.assoc_b.k | "mol-1s-1" | association constant | ca.tm.k_b |
ca.tm.assoc_b.kb | "s-1" | dissociation constant | ca.tm.kb_b |
ca.tm.free.vol | "m3" | volume of the compartment | ca.tm.vol |
ca.tm.free.c_start | "mol/m3" | initial value of concentration | (1.0 - (ca.tm.f_a_start + ca.tm.f_b_start)) * ca.tm.n_tot / ca.tm.vol |
ca.tm.occupied_a.vol | "m3" | volume of the compartment | ca.tm.vol |
ca.tm.occupied_a.c_start | "mol/m3" | initial value of concentration | ca.tm.f_a_start * ca.tm.n_tot / ca.tm.vol |
ca.tm.occupied_b.vol | "m3" | volume of the compartment | ca.tm.vol |
ca.tm.occupied_b.c_start | "mol/m3" | initial value of concentration | ca.tm.f_b_start * ca.tm.n_tot / ca.tm.vol |
ca.cm_cyto.n_tot | "mol" | total amount of buffer | ca.cm_tot * v_cyto |
ca.cm_cyto.f_start | "1" | initial value for f | 0.0553 |
ca.cm_cyto.k | "mol-1s-1" | association constant | 227700.0 / v_cyto |
ca.cm_cyto.kb | "s-1" | dissociation constant | 542.0 |
ca.cm_cyto.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cm_cyto.assoc.k | "mol-1s-1" | association constant | ca.cm_cyto.k |
ca.cm_cyto.assoc.kb | "s-1" | dissociation constant | ca.cm_cyto.kb |
ca.cm_cyto.free.vol | "m3" | volume of the compartment | ca.cm_cyto.vol |
ca.cm_cyto.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cm_cyto.f_start) * ca.cm_cyto.n_tot / ca.cm_cyto.vol |
ca.cm_cyto.occupied.vol | "m3" | volume of the compartment | ca.cm_cyto.vol |
ca.cm_cyto.occupied.c_start | "mol/m3" | initial value of concentration | ca.cm_cyto.f_start * ca.cm_cyto.n_tot / ca.cm_cyto.vol |
ca.cm_sub.n_tot | "mol" | total amount of buffer | ca.cm_tot * v_sub |
ca.cm_sub.f_start | "1" | initial value for f | 0.02992 |
ca.cm_sub.k | "mol-1s-1" | association constant | ca.cm_cyto.k * v_cyto / v_sub |
ca.cm_sub.kb | "s-1" | dissociation constant | ca.cm_cyto.kb |
ca.cm_sub.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cm_sub.assoc.k | "mol-1s-1" | association constant | ca.cm_sub.k |
ca.cm_sub.assoc.kb | "s-1" | dissociation constant | ca.cm_sub.kb |
ca.cm_sub.free.vol | "m3" | volume of the compartment | ca.cm_sub.vol |
ca.cm_sub.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cm_sub.f_start) * ca.cm_sub.n_tot / ca.cm_sub.vol |
ca.cm_sub.occupied.vol | "m3" | volume of the compartment | ca.cm_sub.vol |
ca.cm_sub.occupied.c_start | "mol/m3" | initial value of concentration | ca.cm_sub.f_start * ca.cm_sub.n_tot / ca.cm_sub.vol |
ca.cq.n_tot | "mol" | total amount of buffer | ca.cq_tot * v_jsr |
ca.cq.f_start | "1" | initial value for f | 0.3463 |
ca.cq.k | "mol-1s-1" | association constant | 534.0 / v_jsr |
ca.cq.kb | "s-1" | dissociation constant | 445.0 |
ca.cq.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cq.assoc.k | "mol-1s-1" | association constant | ca.cq.k |
ca.cq.assoc.kb | "s-1" | dissociation constant | ca.cq.kb |
ca.cq.free.vol | "m3" | volume of the compartment | ca.cq.vol |
ca.cq.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cq.f_start) * ca.cq.n_tot / ca.cq.vol |
ca.cq.occupied.vol | "m3" | volume of the compartment | ca.cq.vol |
ca.cq.occupied.c_start | "mol/m3" | initial value of concentration | ca.cq.f_start * ca.cq.n_tot / ca.cq.vol |
ca.cm_sl_tot | "mol/m3" | total concentration of calmodulin in sarcolemma | 0.02583333333333333 |
ca.cm_sl.n_tot | "mol" | total amount of buffer | ca.cm_sl_tot * v_sub |
ca.cm_sl.f_start | "1" | initial value for f | 4.843e-05 |
ca.cm_sl.k | "mol-1s-1" | association constant | 115.0 / v_sub |
ca.cm_sl.kb | "s-1" | dissociation constant | 1000.0 |
ca.cm_sl.vol | "m3" | volume of compartment in which buffer resides | 1.0 |
ca.cm_sl.assoc.k | "mol-1s-1" | association constant | ca.cm_sl.k |
ca.cm_sl.assoc.kb | "s-1" | dissociation constant | ca.cm_sl.kb |
ca.cm_sl.free.vol | "m3" | volume of the compartment | ca.cm_sl.vol |
ca.cm_sl.free.c_start | "mol/m3" | initial value of concentration | (1.0 - ca.cm_sl.f_start) * ca.cm_sl.n_tot / ca.cm_sl.vol |
ca.cm_sl.occupied.vol | "m3" | volume of the compartment | ca.cm_sl.vol |
ca.cm_sl.occupied.c_start | "mol/m3" | initial value of concentration | ca.cm_sl.f_start * ca.cm_sl.n_tot / ca.cm_sl.vol |
na.ion_in | "mol/m3" | intracellular concentration of ion | na_in |
bg.g | "S" | ion conductance | bg.g_max |