/*
* A Calcium-based Phantom Bursting Model for Pancreatic Islets
*
* Model Status
*
* This model is has consistent units and has been verified as
* valid CellML by ValidateCellML. It is currently unsuitably constrained
* and can not be solved.
*
* Model Structure
*
* Pancreatic beta-cells are located in clusters within the pancreas
* called the islets of Langerhans. Beta-cells secrete the hormone
* insulin in response to elevated blood glucose levels, and in
* doing so, they play an essential role in glucose homeostasis.
* When beta-cells fail to function properly, this can lead to
* pathologies such as type II diabetes.
*
* Insulin secretion is oscillatory, and it is in-phase with oscillations
* in the free cytosolic calcium concentration ([Ca2+]i), and theses
* Ca2+ oscillations reflect a bursting pattern in the beta-cell
* electrical activity. Electrical bursting consists of periodic
* active phases of cell firing (excitation) followed by silent
* phases of hyperpolarisation (rest). These oscillations can be
* divided into three categories:
*
* Fast bursting, which has a period between 2 and 5 seconds and
* which often occurs in single cells and in islets where acetylcholine
* is present;
*
* Medium bursting, which has a period of 10 to 60 seconds and
* which occurs in islets where there is a stimulatory glucose
* concentration; and
*
* Slow bursting, which has a period of 2 to 4 minutes and which
* occurs in single cells and in islets.
*
* The first mathematical models of beta-cells were developed to
* describe medium bursting, and the first models to address the
* variability in beta-cell oscillations were developed by Chay
* in 1995 and 1997 (see Extracellular and Intracellular Calcium
* Effects on Pancreatic Beta Cells, Chay, 1997 for more details).
* In these models the main mechanism for oscillations was variation
* in the Ca2+ concentration in the ER, which directly or indirectly
* modulates one or more Ca2+-dependent channels. In the Bertram
* and Sherman model described here the authors analyse in detail
* how the ER exerts its affects using a phantom bursting model
* (see below).
*
* The phantom bursting model is a general paradigm for temporal
* plasticity in bursting in beta-cells in which bursting is driven
* by the interaction of two slow variables with disparate time
* constants (see The Phantom Burster Model for Pancreatic Beta-Cells,
* 2000 for more details). There are three potential slow variables
* which could drive the phantom bursting in vivo:
*
* cytosolic Ca2+ concentration;
*
* ER Ca2+ concentration;
*
* and the ADP to ATP ratio.
*
* The model has been described here in CellML (the raw CellML
* description of the Bertram and Sherman 2004 model can be downloaded
* in various formats as described in ).
*
* The complete original paper reference is cited below:
*
* A Calcium-based Phantom Bursting Model for Pancreatic Islets,
* Richard Bertram and Arthur Sherman, 2004, Bulletin of Mathematical
* Biology, 66, 1313-1344. (Full text (HTML) and PDF versions of
* the article are available to subscribers on the Bulletin of
* Mathematical Biology website.) PubMed ID: 15294427
*
* cell diagram
*
* [[Image file: bertram_2004.png]]
*
* A schematic diagram of the ionic currents and fluxes across
* the ER and the cell surface membranes, which are described by
* the mathematical model.
*/
import nsrunit;
unit conversion on;
// unit millisecond predefined
// unit millivolt predefined
// unit micromolar predefined
unit picoS=1E-12 kilogram^(-1)*meter^(-2)*second^3*ampere^2;
unit femtoF=1E-15 kilogram^(-1)*meter^(-2)*second^4*ampere^2;
unit femtoA=1E-15 ampere^1;
unit first_order_rate_constant=1E3 second^(-1);
unit micromolar_per_femtoA_millisecond=1E15 meter^(-3)*second^(-1)*ampere^(-1)*mole^1;
unit flux=1 meter^(-3)*second^(-1)*mole^1;
math main {
//Warning: the following variables were set 'extern' or given
// an initial value of '0' because the model would otherwise be
// underdetermined: V, n, c, a, c_er, IP3
realDomain time millisecond;
time.min=0;
extern time.max;
extern time.delta;
real V(time) millivolt;
//Warning: Assuming zero initial condition; nothing provided in original CellML model.
when(time=time.min) V=0;
real Cm femtoF;
Cm=5300.0;
real i_Ca(time) femtoA;
real i_K(time) femtoA;
real i_K_Ca(time) femtoA;
real i_K_ATP(time) femtoA;
real g_Ca picoS;
g_Ca=1200.0;
real V_Ca millivolt;
V_Ca=25.0;
real m_infinity(time) dimensionless;
real vm millivolt;
vm=-20.0;
real sm millivolt;
sm=12.0;
real V_K millivolt;
V_K=-75.0;
real g_K picoS;
g_K=3000.0;
real n(time) dimensionless;
//Warning: Assuming zero initial condition; nothing provided in original CellML model.
when(time=time.min) n=0;
real tau_n millisecond;
tau_n=16.0;
real n_infinity(time) dimensionless;
real vn millivolt;
vn=-16.0;
real sn millivolt;
sn=5.0;
real g_K_Ca picoS;
g_K_Ca=300.0;
real c(time) micromolar;
//Warning: Assuming zero initial condition; nothing provided in original CellML model.
when(time=time.min) c=0;
real omega(time) dimensionless;
real kD micromolar;
kD=0.3;
real g_K_ATP picoS;
g_K_ATP=500.0;
real a(time) dimensionless;
//Warning: Assuming zero initial condition; nothing provided in original CellML model.
when(time=time.min) a=0;
real tau_a millisecond;
tau_a=300000.0;
real a_infinity(time) dimensionless;
real sa micromolar;
sa=0.1;
real r micromolar;
r=0.14;
real fcyt dimensionless;
fcyt=0.01;
real Jmem(time) flux;
real Jer(time) flux;
real c_er(time) micromolar;
//Warning: Assuming zero initial condition; nothing provided in original CellML model.
when(time=time.min) c_er=0;
real fer dimensionless;
fer=0.01;
real Vcyt_Ver dimensionless;
Vcyt_Ver=5.0;
real alpha micromolar_per_femtoA_millisecond;
alpha=4.5E-6;
real kPMCA first_order_rate_constant;
kPMCA=0.2;
real J_SERCA(time) flux;
real kSERCA first_order_rate_constant;
kSERCA=0.4;
real Jleak(time) flux;
real pleak first_order_rate_constant;
pleak=0.0005;
real JIP3(time) flux;
real O_infinity(time) first_order_rate_constant;
real d_act micromolar;
d_act=0.35;
real d_IP3 micromolar;
d_IP3=0.5;
real d_inact micromolar;
d_inact=0.4;
extern real IP3 micromolar;
//
//
V:time=((-1)*(i_Ca+i_K+i_K_Ca+i_K_ATP)/Cm);
//
i_Ca=(g_Ca*m_infinity*(V-V_Ca));
//
m_infinity=((1+exp((vm-V)/sm))^(-1));
//
i_K=(g_K*n*(V-V_K));
//
n:time=((n_infinity-n)/tau_n);
n_infinity=((1+exp((vn-V)/sn))^(-1));
//
i_K_Ca=(g_K_Ca*omega*(V-V_K));
//
omega=(c^5/(c^5+kD^5));
//
i_K_ATP=(g_K_ATP*a*(V-V_K));
//
a:time=((a_infinity-a)/tau_a);
a_infinity=((1+exp((r-c)/sa))^(-1));
//
c:time=(fcyt*(Jmem+Jer));
//
c_er:time=((-1)*fer*Vcyt_Ver*Jer);
//
Jmem=((-1)*(alpha*i_Ca+kPMCA*c));
//
J_SERCA=(kSERCA*c);
//
Jleak=(pleak*(c_er-c));
//
JIP3=(O_infinity*(c_er-c));
O_infinity=((c/(d_act+c))^3*(IP3/(d_IP3+IP3))^3*(c/(d_inact+c))^3*(1 first_order_rate_constant));
//
Jer=(Jleak+JIP3-J_SERCA);
}