/* * Model Status * * This CellML model runs in both OpenCell and COR to recreate * the published results. The units have been checked and they * are consistent. This particular version of the model uncouples * the Notch, Wnt and FGF signalling pathways and uses equations * A4 and A10 in the appendix rather than A17 and A18. * * Model Structure * * ABSTRACT: The formation of somites in the course of vertebrate * segmentation is governed by an oscillator known as the segmentation * clock, which is characterized by a period ranging from 30 min * to a few hours depending on the organism. This oscillator permits * the synchronized activation of segmentation genes in successive * cohorts of cells in the presomitic mesoderm in response to a * periodic signal emitted by the segmentation clock, thereby defining * the future segments. Recent microarray experiments [Dequeant, * M.L., Glynn, E., Gaudenz, K., Wahl, M., Chen, J., Mushegian, * A., Pourquie, O., 2006. A complex oscillating network of signaling * genes underlies the mouse segmentation clock. Science 314, 1595-1598] * indicate that the Notch, Wnt and Fibroblast Growth Factor (FGF) * signaling pathways are involved in the mechanism of the segmentation * clock. By means of computational modeling, we investigate the * conditions in which sustained oscillations occur in these three * signaling pathways. First we show that negative feedback mediated * by the Lunatic Fringe protein on intracellular Notch activation * can give rise to periodic behavior in the Notch pathway. We * then show that negative feedback exerted by Axin2 on the degradation * of beta-catenin through formation of the Axin2 destruction complex * can produce oscillations in the Wnt pathway. Likewise, negative * feedback on FGF signaling mediated by the phosphatase product * of the gene MKP3/Dusp6 can produce oscillatory gene expression * in the FGF pathway. Coupling the Wnt, Notch and FGF oscillators * through common intermediates can lead to synchronized oscillations * in the three signaling pathways or to complex periodic behavior, * depending on the relative periods of oscillations in the three * pathways. The phase relationships between cycling genes in the * three pathways depend on the nature of the coupling between * the pathways and on their relative autonomous periods. The model * provides a framework for analyzing the dynamics of the segmentation * clock in terms of a network of oscillating modules involving * the Wnt, Notch and FGF signaling pathways. * * The complete original paper reference is cited below: * * Modeling the segmentation clock as a network of coupled oscillations * in the Notch, Wnt and FGF signaling pathways, Albert Goldbeter * and Olivier Pourquie, 2008, Journal of Theoretical Biology, * 252, 574-585. (Full text and PDF versions of the article are * available to subscribers on the journal website.) PubMed ID: * 18308339 * * cell diagram * * [[Image file: goldbeter_2008.png]] * * Schematic diagram representing the model for the segmentation * clock based on negative feedback loops in the coupled FGF, Wnt * and Notch signalling pathways. */ import nsrunit; unit conversion on; unit minute=60 second^1; unit first_order_rate_constant=.01666667 second^(-1); unit second_order_rate_constant=1.6666667E4 meter^3*second^(-1)*mole^(-1); unit flux=1.6666667E-8 meter^(-3)*second^(-1)*mole^1; // unit nanomolar predefined math main { realDomain time minute; time.min=0; extern time.max; extern time.delta; real N(time) nanomolar; when(time=time.min) N=0.5; real KdN nanomolar; KdN=1.4; real vsN flux; vsN=0.23; real vdN flux; vdN=2.82; real kc first_order_rate_constant; kc=3.45; real KIF nanomolar; KIF=0.5; real F(time) nanomolar; when(time=time.min) F=0.001; real epsilon dimensionless; epsilon=0.3; // Var below replaced by constant in model eqns to satisfy unit correction // real j dimensionless; // j=2.0; real Na(time) nanomolar; when(time=time.min) Na=0.2; real Vtr(time) flux; real KdNa nanomolar; KdNa=0.001; real VdNa flux; VdNa=0.01; real kt1 first_order_rate_constant; kt1=0.1; real kt2 first_order_rate_constant; kt2=0.1; real Nan(time) nanomolar; when(time=time.min) Nan=0.0; real KdNan nanomolar; KdNan=0.001; real VdNan flux; VdNan=0.1; real MF(time) nanomolar; when(time=time.min) MF=0.1; real KdMF nanomolar; KdMF=0.768; real vsF flux; vsF=3.0; real vmF flux; vmF=1.92; real KA nanomolar; KA=0.05; // Var below replaced by constant in model eqns to satisfy unit correction // real p dimensionless; // p=2.0; real KdF nanomolar; KdF=0.37; real vdF flux; vdF=0.39; real ksF first_order_rate_constant; ksF=0.3; real K(time) nanomolar; when(time=time.min) K=3.0; real V1(time) flux; real theta dimensionless; theta=1.5; real B(time) nanomolar; when(time=time.min) B=0.1; real kd1 first_order_rate_constant; kd1=0.0; real vsB flux; vsB=0.087; real VK(time) flux; real VP(time) flux; real V2(time) flux; real Kt nanomolar; Kt=3.0; real AK(time) nanomolar; real Bp(time) nanomolar; when(time=time.min) Bp=0.1; real kd2 first_order_rate_constant; kd2=7.062; real BN(time) nanomolar; when(time=time.min) BN=0.001; real MAx(time) nanomolar; when(time=time.min) MAx=0.1; real v0 flux; v0=0.06; real vMB flux; vMB=1.64; real vmd flux; vmd=0.8; real KaB nanomolar; KaB=0.7; real Kmd nanomolar; Kmd=0.48; // Var below replaced by constant in model eqns to satisfy unit correction // real n dimensionless; // n=2.0; real A(time) nanomolar; when(time=time.min) A=0.1; real ksAx first_order_rate_constant; ksAx=0.02; real vdAx flux; vdAx=0.6; real KdAx nanomolar; KdAx=0.63; real d1 first_order_rate_constant; d1=0.1; real a1 second_order_rate_constant; a1=1.8; real K1 nanomolar; K1=0.28; real K2 nanomolar; K2=0.03; real D nanomolar; D=2.0; real KID nanomolar; KID=0.5; real kt3 first_order_rate_constant; kt3=0.7; real kt4 first_order_rate_constant; kt4=1.5; real VMK flux; VMK=5.08; real VMP flux; VMP=1.0; real Rasa(time) nanomolar; when(time=time.min) Rasa=0.5; real VaRas(time) flux; real VdRas(time) flux; real eta dimensionless; eta=0.3; real ERKa(time) nanomolar; when(time=time.min) ERKa=0.2; real VaErk(time) flux; real VdErk(time) flux; real Xa(time) nanomolar; when(time=time.min) Xa=0.1; real VaX(time) flux; real VdX(time) flux; real MDusp(time) nanomolar; when(time=time.min) MDusp=0.1; real VsMDusp(time) flux; real VdMDusp(time) flux; real Dusp(time) nanomolar; when(time=time.min) Dusp=0.1; real ksDusp first_order_rate_constant; ksDusp=0.5; real vdDusp flux; vdDusp=2.0; real KdDusp nanomolar; KdDusp=0.5; real Rasi(time) nanomolar; real ERKi(time) nanomolar; real Xi(time) nanomolar; real Rast nanomolar; Rast=2.0; real ERKt nanomolar; ERKt=2.0; real Xt nanomolar; Xt=2.0; real kcDusp first_order_rate_constant; kcDusp=1.35; real VMaRas flux; VMaRas=4.968; real VMdRas flux; VMdRas=0.41; real VMaErk flux; VMaErk=3.30; real VMaX flux; VMaX=1.6; real VMdX flux; VMdX=0.5; real VMsMDusp flux; VMsMDusp=0.9; real VMdMDusp flux; VMdMDusp=0.5; real Fgf nanomolar; Fgf=1.0; real KaFgf nanomolar; KaFgf=0.5; real KaRas nanomolar; KaRas=0.103; real KdRas nanomolar; KdRas=0.1; real KdErk nanomolar; KdErk=0.05; real KaErk nanomolar; KaErk=0.05; real KaX nanomolar; KaX=0.05; real KdX nanomolar; KdX=0.05; real KaMDusp nanomolar; KaMDusp=0.5; real KdMDusp nanomolar; KdMDusp=0.5; // Var below replaced by constant in model eqns to satisfy unit correction // real q dimensionless; // q=2.0; // Var below replaced by constant in model eqns to satisfy unit correction // real r dimensionless; // r=2.0; // // N:time=(epsilon*(vsN-(vdN*(N/(KdN+N))+kc*N*(KIF^2/(KIF^2+F^2))))); // Na:time=(epsilon*(kc*N*(KIF^2/(KIF^2+F^2))-(VdNa*(Na/(KdNa+Na))+Vtr))); Vtr=(kt1*Na-kt2*Nan); // Nan:time=(epsilon*(Vtr-VdNan*(Nan/(KdNan+Nan)))); // MF:time=(epsilon*(vsF*(Nan^2/(KA^2+Nan^2))-vmF*(MF/(KdMF+MF)))); // F:time=(epsilon*(ksF*MF-vdF*(F/(KdF+F)))); // K:time=(theta*V1); // B:time=(theta*(vsB+VP+V2-(VK*(AK/Kt)+kd1*B))); // Bp:time=(theta*(VK*(AK/Kt)-(VP+kd2*Bp))); // BN:time=((-1)*(theta*V2)); // MAx:time=(theta*(v0+vMB*(BN^2/(KaB^2+BN^2))-vmd*(MAx/(Kmd+MAx)))); // A:time=(theta*(ksAx*MAx+V1-vdAx*(A/(KdAx+A)))); // AK=(Kt-K); V1=(d1*AK-a1*A*K); V2=(kt4*BN-kt3*B); VK=(VMK*(KID/(KID+D))*(B/(K1+B))); VP=(VMP*(Bp/(K2+Bp))); // Rasa:time=(eta*(VaRas-VdRas)); // ERKa:time=(eta*(VaErk-VdErk)); // Xa:time=(eta*(VaX-VdX)); // MDusp:time=(eta*(VsMDusp-VdMDusp)); // Dusp:time=(eta*(ksDusp*MDusp-vdDusp*(Dusp/(KdDusp+Dusp)))); // Rasi=(Rast-Rasa); VaRas=(VMaRas*(Fgf^2/(KaFgf^2+Fgf^2))*(Rasi/(KaRas+Rasi))); VdRas=(VMdRas*(Rasa/(KdRas+Rasa))); ERKi=(ERKt-ERKa); VaErk=(VMaErk*(Rasa/Rast)*(ERKi/(KaErk+ERKi))); VdErk=(kcDusp*Dusp*(ERKa/(KdErk+ERKa))); Xi=(Xt-Xa); VaX=(VMaX*(ERKa/ERKt)*(Xi/(KaX+Xi))); VdX=(VMdX*(Xa/(KdX+Xa))); VsMDusp=(VMsMDusp*(Xa^2/(KaMDusp^2+Xa^2))); VdMDusp=(VMdMDusp*(MDusp/(KdMDusp+MDusp))); // }