/*
* Mathematical Model for the Early Development of the Sea Urchin
* Embryo
*
* Model Status
*
* This model has been edited to include initial concentrations
* and correct dimensional errors. The model runs in COR and PCEnv
* to produce oscillating graphs but has not been determined to
* exactly replicate the experimental results.
*
* ValidateCellML verifies this model as valid CellML with consistent
* units.
*
* Model Structure
*
* During normal mitotic cell division, eukaryotic cells will replicate
* their DNA during the S-phase of the cell cycle, and then divide
* during the M-phase. S and M phases are temporally separated
* by gaps, called the G1 and G2 phases respectively. However,
* in early development, when the main aim of embryo is to increase
* cell number by a series of rapid cell divisions, the cell cycle
* has a number of unique features:
*
* interdivision time is short and nearly constant;
*
* S and M phases alternate in time without intervening G1 or G2
* phases;
*
* cell division is nearly synchronous and most cells take part;
*
* and the nucleocytoplasmic ration (NCR) of cells increases dramatically.
*
* It is believed that the NCR controls the cell cycle characteristics
* during the early stages of devlopment. This idea has been incorporated
* into the following mathematical model of early devlopmental
* cell cycle control.
*
* The molecular components involved in mitotic control have been
* studied extensively in the last decade, and a control system,
* common to all eukaryotes, has been elucidated. This has been
* the subject of several mathematical models, including models
* which use budding yeast as the experimental organism:
*
* Modelling the control of DNA replication in fission yeast, Novak
* and Tyson, 1997
*
* Mathematical Model of the Fission Yeast Cell Cycle, Novak et
* al., 1998
*
* Chen et al., Modelling the Budding Yeast Cell Cycle, 2000
*
* Ciliberto et al. Modelling the Morphogenesis Checkpoint in the
* Budding Yeast Cell Cycle, 2003
*
* and those which use the Xenopus oocyte and embryo: Ciliberto
* et al. A Kinetic Model of the Cyclin E/Cdk2 Developmental Timer
* in Xenopus laevis embryos, 2003.
*
* In the Ciliberto and Tyson 2000 publication described here,
* the authors develop a mathematical model based on the molecular
* interactions underlying early embryonic cell cycle control (see
* below). By introducing the NCP ratio into the molecular mechanism,
* through model simulations the authors were able to reproduce
* many of the physiological features of early sea urchin development.
* Since the cell cycle controls appear to be common to all eukaryotes,
* this model can also potentially be applied to other species.
*
* The model has been described here in CellML (the raw CellML
* description of the Ciliberto and Tyson 2000 model can be downloaded
* in various formats as described in ).
*
* The complete original paper reference is cited below:
*
* Mathematical Model for Early Development of the Sae Urchin Embryo,
* Andrea Ciliberto and John J. Tyson, 2000, Bulletin of Mathematical
* Biology , 62, 37-59. (A PDF version of the article is available
* to subscribers on the Bulletin of Mathematical Biology website.)
* PubMed ID: 10824420
*
* reaction diagram
*
* [[Image file: ciliberto_2000.png]]
*
* The M phase control system of the cell cycle. The upper part
* of the figure shows the two positive feedback loops involving
* active MPF (Cdc2-cyclin complex) and inactive MPF (the phosphorylated
* Cdc2-cyclin complex). Cyclin is produced at a constant rate
* from a pool of amino acids (AA) and immediately binds to free
* Cdc2, producing active MPF. All forms of cyclin - free, active
* and inactive MPF - are degraded by the same process. The lower
* part of the figure shows that the degradation of cyclin is the
* result of a negative feedback loop involving a ubiquitin-ligation
* complex (APC) and a putative intermediary enzyme (IE).
*/
import nsrunit;
unit conversion on;
unit minute=60 second^1;
unit first_order_rate_constant=.01666667 second^(-1);
math main {
realDomain time minute;
time.min=0;
extern time.max;
extern time.delta;
real Y(time) dimensionless;
when(time=time.min) Y=0.01577552;
real k1 first_order_rate_constant;
k1=0.024;
real k2(time) first_order_rate_constant;
real k3 first_order_rate_constant;
k3=1.15;
real C(time) dimensionless;
real M(time) dimensionless;
when(time=time.min) M=0.0142077;
real kwee(time) first_order_rate_constant;
real kcdc25(time) first_order_rate_constant;
real preMPF(time) dimensionless;
when(time=time.min) preMPF=0.02541723;
real Cdc25P(time) dimensionless;
when(time=time.min) Cdc25P=0.4844362;
real k25 first_order_rate_constant;
k25=18;
real Km25 dimensionless;
Km25=0.1;
real k25r first_order_rate_constant;
k25r=0.8;
real k25ro first_order_rate_constant;
real Km25r dimensionless;
Km25r=1;
real p dimensionless;
real Cdc25(time) dimensionless;
real Wee1(time) dimensionless;
when(time=time.min) Wee1=0.5155638;
real kw first_order_rate_constant;
kw=18;
real Kmw dimensionless;
Kmw=0.1;
real kwr first_order_rate_constant;
kwr=0.8;
real kwro first_order_rate_constant;
real Kmwr dimensionless;
Kmwr=1;
real Wee1P(time) dimensionless;
real IEP(time) dimensionless;
when(time=time.min) IEP=0.002287817;
real kie first_order_rate_constant;
kie=4.5;
real Kmie dimensionless;
Kmie=0.01;
real kier first_order_rate_constant;
kier=0.34;
real Kmier dimensionless;
Kmier=0.01;
real IE(time) dimensionless;
real APC_(time) dimensionless;
when(time=time.min) APC_=0.5051103;
real kap first_order_rate_constant;
kap=0.3;
real Kmap dimensionless;
Kmap=0.01;
real kapr first_order_rate_constant;
kapr=0.3;
real Kmapr dimensionless;
Kmapr=1;
real APC(time) dimensionless;
real Cdc2tot dimensionless;
Cdc2tot=1;
real Cdc25tot dimensionless;
Cdc25tot=1;
real Wee1tot dimensionless;
Wee1tot=1;
real IEtot dimensionless;
IEtot=1;
real APCtot dimensionless;
APCtot=1;
real R dimensionless;
R=1;
real s dimensionless;
s=0.021;
real q dimensionless;
q=1;
real V2 first_order_rate_constant;
V2=0.01;
real V2_ first_order_rate_constant;
V2_=0.6;
real V25 first_order_rate_constant;
V25=0.04;
real V25_ first_order_rate_constant;
V25_=0.4;
real Vwee first_order_rate_constant;
Vwee=0.025;
real Vwee_ first_order_rate_constant;
Vwee_=2.5;
//
//
Y:time=(k1-(k2*Y+k3*Y*C));
//
M:time=(kcdc25*preMPF+k3*Y*C-(k2*M+kwee*M));
//
preMPF:time=(kwee*M-(k2*preMPF+kcdc25*preMPF));
//
Cdc25P:time=(k25*M*Cdc25/(Km25+Cdc25)-k25r*Cdc25P/(Km25r+Cdc25P));
k25ro=(k25r/p);
//
Wee1:time=((-1)*kw*M*Wee1/(Kmw+Wee1)+kwr*Wee1P/(Kmwr+Wee1P));
kwro=(kwr/p);
//
IEP:time=(kie*M*IE/(Kmie+IE)-kier*IEP/(Kmier+IEP));
//
APC_:time=(kap*IEP*APC/(Kmap+APC)-kapr*APC_/(Kmapr+APC_));
//
C=(Cdc2tot-(M+preMPF));
//
Cdc25=(Cdc25tot-Cdc25P);
//
Wee1P=(Wee1tot-Wee1);
//
IE=(IEtot-IEP);
//
APC=(APCtot-APC_);
//
p=(s*R+q);
//
kcdc25=(V25*Cdc25+V25_*Cdc25P);
k2=(V2*APC+V2_*APC_);
kwee=(Vwee*Wee1P+Vwee_*Wee1);
}