/* * Modeling the mammalian circadian clock: sensitivity analysis * and multiplicity of oscillatory mechanisms * * Model Status * * This CellML model runs in OpenCell to recreate the published * results (figure 2C from the published paper). The model needs * to be run for 160 hours with a step size of 0.1 hours, and MP, * MB and MC are plotted. Ignore the first couple of oscillations * as the model needs to stabilise. Also please note that in the * version of the model presented here, parameter set 4 from the * original paper has been used. The units have been checked and * they are consistent. * * Model Structure * * ABSTRACT: We extend the study of a computational model recently * proposed for the mammalian circadian clock (Proc. Natl Acad. * Sci. USA 100 (2003) 7051). The model, based on the intertwined * positive and negative regulatory loops involving the Per, Cry, * Bmal1, and Clock genes, can give rise to sustained circadian * oscillations in conditions of continuous darkness. These limit * cycle oscillations correspond to circadian rhythms autonomously * generated by suprachiasmatic nuclei and by some peripheral tissues. * By using different sets of parameter values producing circadian * oscillations, we compare the effect of the various parameters * and show that both the occurrence and the period of the oscillations * are generally most sensitive to parameters related to synthesis * or degradation of Bmal1 mRNA and BMAL1 protein. The mechanism * of circadian oscillations relies on the formation of an inactive * complex between PER and CRY and the activators CLOCK and BMAL1 * that enhance Per and Cry expression. Bifurcation diagrams and * computer simulations nevertheless indicate the possible existence * of a second source of oscillatory behavior. Thus, sustained * oscillations might arise from the sole negative autoregulation * of Bmal1 expression. This second oscillatory mechanism may not * be functional in physiological conditions, and its period need * not necessarily be circadian. When incorporating the light-induced * expression of the Per gene, the model accounts for entrainment * of the oscillations by light-dark (LD) cycles. Long-term suppression * of circadian oscillations by a single light pulse can occur * in the model when a stable steady state coexists with a stable * limit cycle. The phase of the oscillations upon entrainment * in LD critically depends on the parameters that govern the level * of CRY protein. Small changes in the parameters governing CRY * levels can shift the peak in Per mRNA from the L to the D phase, * or can prevent entrainment. The results are discussed in relation * to physiological disorders of the sleep-wake cycle linked to * perturbations of the human circadian clock, such as the familial * advanced sleep phase syndrome or the non-24h sleep-wake syndrome. * * model diagram * * [[Image file: leloup_2004.png]] * * Schematic diagram of the model for circadian oscillations in * mammals including positive and negative feedback on the transcription * of the Per, Cry and Bmal1 genes by their protein products. Per, * Cry and Bmal1 are transcribed in the nucleus and are then transferred * to the cytosol where their proteins are translated and the mRNAs * are degraded. Light increases the rate of Per transcription. * * The original paper reference is cited below: * * Modeling the mammalian circadian clock: sensitivity analysis * and multiplicity of oscillatory mechanisms, Jean-Christophe * Leloup and Albert Goldbeter, 2004, Journal of Theoretical Biology, * 230, 541-562. PubMed ID: 15363675 */ import nsrunit; unit conversion on; unit hour=3600 second^1; // unit nanomolar predefined unit flux=2.7777778E-10 meter^(-3)*second^(-1)*mole^1; unit first_order_rate_constant=2.7777778E-4 second^(-1); unit second_order_rate_constant=2.7777778E2 meter^3*second^(-1)*mole^(-1); math main { realDomain time hour; time.min=0; extern time.max; extern time.delta; real MP(time) nanomolar; when(time=time.min) MP=0.5; real vsP flux; real vmP flux; vmP=1.1; real kdmp first_order_rate_constant; kdmp=0.01; real KAP nanomolar; KAP=0.7; real KmP nanomolar; KmP=0.3; real vstot flux; vstot=1.0; // Var below replaced by constant in model eqns to satisfy unit correction // real n dimensionless; // n=4.0; real BN(time) nanomolar; when(time=time.min) BN=0.1; real MC(time) nanomolar; when(time=time.min) MC=0.3; real vsC flux; real vmC flux; vmC=1.0; real kdmc first_order_rate_constant; kdmc=0.01; real KAC nanomolar; KAC=1.0; real KmC nanomolar; KmC=0.4; real MB(time) nanomolar; when(time=time.min) MB=3.1; real vsB flux; real vmB flux; vmB=0.2; real kdmb first_order_rate_constant; kdmb=0.01; real KIB nanomolar; KIB=0.8; real KmB nanomolar; KmB=0.4; // Var below replaced by constant in model eqns to satisfy unit correction // real m dimensionless; // m=4.0; real PC(time) nanomolar; when(time=time.min) PC=0.1; real ksP first_order_rate_constant; real Kp nanomolar; Kp=0.1; real Kdp nanomolar; Kdp=0.3; real k3 second_order_rate_constant; k3=0.8; real k4 first_order_rate_constant; k4=0.2; real kdn first_order_rate_constant; kdn=0.01; real V1P flux; real V2P flux; V2P=0.3; real PCP(time) nanomolar; when(time=time.min) PCP=0.1; real PCC(time) nanomolar; when(time=time.min) PCC=0.1; real CC(time) nanomolar; when(time=time.min) CC=0.1; real ksC first_order_rate_constant; real kdnc first_order_rate_constant; kdnc=0.01; real V1C flux; V1C=0.6; real V2C flux; V2C=0.1; real CCP(time) nanomolar; when(time=time.min) CCP=0.1; real vdPC flux; vdPC=0.7; real Kd nanomolar; Kd=0.3; real vdCC flux; vdCC=0.7; real k1 first_order_rate_constant; k1=0.8; real k2 first_order_rate_constant; k2=0.2; real V1PC flux; real V2PC flux; V2PC=0.1; real PCCP(time) nanomolar; when(time=time.min) PCCP=0.1; real PCN(time) nanomolar; when(time=time.min) PCN=0.1; real k7 second_order_rate_constant; k7=0.5; real k8 first_order_rate_constant; k8=0.1; real V3PC flux; real V4PC flux; V4PC=0.1; real PCNP(time) nanomolar; when(time=time.min) PCNP=0.1; real IN(time) nanomolar; when(time=time.min) IN=0.1; real vdPCC flux; vdPCC=1.0; real vdPCN flux; vdPCN=1.0; real BC(time) nanomolar; when(time=time.min) BC=0.1; real ksB first_order_rate_constant; real k5 first_order_rate_constant; k5=0.4; real k6 first_order_rate_constant; k6=0.2; real V1B flux; V1B=1.0; real V2B flux; V2B=0.1; real BCP(time) nanomolar; when(time=time.min) BCP=0.1; real vdBC flux; vdBC=1.0; real V3B flux; V3B=1.0; real V4B flux; V4B=0.2; real BNP(time) nanomolar; when(time=time.min) BNP=0.1; real vdBN flux; vdBN=0.5; real vdIN flux; vdIN=0.8; real kstot first_order_rate_constant; kstot=1.0; real Vphos flux; Vphos=0.6; // // MP:time=(vsP*(BN^4/(KAP^4+BN^4))-(vmP*(MP/(KmP+MP))+kdmp*MP)); vsP=vstot; // MC:time=(vsC*(BN^4/(KAC^4+BN^4))-(vmC*(MC/(KmC+MC))+kdmc*MC)); vsC=(.8*vstot); // MB:time=(vsB*(KIB^4/(KIB^4+BN^4))-(vmB*(MB/(KmB+MB))+kdmb*MB)); vsB=(.7*vstot); // PC:time=(ksP*MP+V2P*(PCP/(Kdp+PCP))+k4*PCC-(V1P*(PC/(Kp+PC))+k3*PC*CC+kdn*PC)); // CC:time=(ksC*MC+V2C*(CCP/(Kdp+CCP))+k4*PCC-(V1C*(CC/(Kp+CC))+k3*PC*CC+kdnc*CC)); // PCP:time=(V1P*(PC/(Kp+PC))-(V2P*(PCP/(Kdp+PCP))+vdPC*(PCP/(Kd+PCP))+kdn*PCP)); // CCP:time=(V1C*(CC/(Kp+CC))-(V2C*(CCP/(Kdp+CCP))+vdCC*(CCP/(Kd+CCP))+kdn*CCP)); // PCC:time=(V2PC*(PCCP/(Kdp+PCCP))+k3*PC*CC+k2*PCN-(V1PC*(PCC/(Kp+PCC))+k4*PCC+k1*PCC+kdn*PCC)); // PCN:time=(V4PC*(PCNP/(Kdp+PCNP))+k1*PCC+k8*IN-(V3PC*(PCN/(Kp+PCN))+k2*PCN+k7*BN*PCN+kdn*PCN)); // PCCP:time=(V1PC*(PCC/(Kp+PCC))-(V2PC*(PCCP/(Kdp+PCCP))+vdPCC*(PCCP/(Kd+PCCP))+kdn*PCCP)); // PCNP:time=(V3PC*(PCN/(Kp+PCN))-(V4PC*(PCNP/(Kdp+PCNP))+vdPCN*(PCNP/(Kd+PCNP))+kdn*PCNP)); // BC:time=(V2B*(BCP/(Kdp+BCP))+k6*BN+ksB*MB-(V1B*(BC/(Kp+BC))+k5*BC+kdn*BC)); // BCP:time=(V1B*(BC/(Kp+BC))-(V2B*(BCP/(Kdp+BCP))+vdBC*(BCP/(Kd+BCP))+kdn*BCP)); // BN:time=(V4B*(BNP/(Kdp+BNP))+k5*BC+k8*IN-(V3B*(BN/(Kp+BN))+k6*BN+k7*BN*PCN+kdn*BN)); // BNP:time=(V3B*(BN/(Kp+BN))-(V4B*(BNP/(Kdp+BNP))+vdBN*(BNP/(Kd+BNP))+kdn*BNP)); // IN:time=(k7*BN*PCN-(k8*IN+vdIN*(IN/(Kd+IN))+kdn*IN)); // ksB=kstot; ksC=kstot; ksP=(.5*kstot); V1P=Vphos; V1PC=Vphos; V3PC=Vphos; }