/* * A Detailed Computational Model for the Mammalian Circadian Clock * * Model Status * * This CellML model runs in OpenCell to recreate the published * results (figure 2A from the published paper, where KAC = 0.6nM). * 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. Please note * that the model presented here is the extended version of the * model which includes equations to define the role of REV-ERB-alpha * in inhibiting the transcription of Bmal1. There are 19 equations * and the parameters are listed as part of the Supplementary data * set under Figure 8. * * Model Structure * * ABSTRACT: We present a computational model for the mammalian * circadian clock based on the intertwined positive and negative * regulatory loops involving the Per, Cry, Bmal1, Clock, and Rev-Erb * alpha genes. In agreement with experimental observations, the * model can give rise to sustained circadian oscillations in continuous * darkness, characterized by an antiphase relationship between * Per/Cry/Rev-Erbalpha and Bmal1 mRNAs. Sustained oscillations * correspond to the rhythms autonomously generated by suprachiasmatic * nuclei. For other parameter values, damped oscillations can * also be obtained in the model. These oscillations, which transform * into sustained oscillations when coupled to a periodic signal, * correspond to rhythms produced by peripheral tissues. When incorporating * the light-induced expression of the Per gene, the model accounts * for entrainment of the oscillations by light-dark cycles. Simulations * show that the phase of the oscillations can then vary by several * hours with relatively minor changes in parameter values. Such * a lability of the phase could account for physiological disorders * related to circadian rhythms in humans, such as advanced or * delayed sleep phase syndrome, whereas the lack of entrainment * by light-dark cycles can be related to the non-24h sleep-wake * syndrome. The model uncovers the possible existence of multiple * sources of oscillatory behavior. Thus, in conditions where the * indirect negative autoregulation of Per and Cry expression is * inoperative, the model indicates the possibility that sustained * oscillations might still arise from the negative autoregulation * of Bmal1 expression. * * The original paper reference is cited below: * * Toward a detailed computational model for the mammalian circadian * clock, Jean-Christophe Leloup and Albert Goldbeter, 2003,PNAS, * 100, 7051-7056. PubMed ID: 12775757 * * reaction diagram * * [[Image file: leloup_2003.png]] * * Model for circadian oscillations in mammals involving interlocked * negative and positive regulations of Per, Cry, Bmal1, and Rev-Erb * genes by their protein products. */ 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.1; real vsP flux; vsP=2.4; real vmP flux; vmP=2.2; real kdmp first_order_rate_constant; kdmp=0.02; real KAP nanomolar; KAP=0.6; real KmP nanomolar; KmP=0.3; // Var below replaced by constant in model eqns to satisfy unit correction // real n dimensionless; // n=2.0; real BN(time) nanomolar; when(time=time.min) BN=0.1; real MC(time) nanomolar; when(time=time.min) MC=1.2; real vsC flux; vsC=2.2; real vmC flux; vmC=2.0; real kdmc first_order_rate_constant; kdmc=0.02; real KAC nanomolar; KAC=0.6; real KmC nanomolar; KmC=0.4; real MB(time) nanomolar; when(time=time.min) MB=9; real vsB flux; vsB=1.8; real vmB flux; vmB=1.3; real kdmb first_order_rate_constant; kdmb=0.02; real KIB nanomolar; KIB=2.2; real KmB nanomolar; KmB=0.4; // Var below replaced by constant in model eqns to satisfy unit correction // real m dimensionless; // m=2.0; real RN(time) nanomolar; when(time=time.min) RN=0.1; real MR(time) nanomolar; when(time=time.min) MR=1.5; real vsR flux; vsR=1.6; real vmR flux; vmR=1.6; real kdmr first_order_rate_constant; kdmr=0.02; real KAR nanomolar; KAR=0.6; real KmR nanomolar; KmR=0.4; // Var below replaced by constant in model eqns to satisfy unit correction // real h dimensionless; // h=2.0; real PC(time) nanomolar; when(time=time.min) PC=0.1; real ksP first_order_rate_constant; ksP=1.2; real Kp nanomolar; Kp=1.006; real Kdp nanomolar; Kdp=0.1; real k3 second_order_rate_constant; k3=0.8; real k4 first_order_rate_constant; k4=0.4; real kdn first_order_rate_constant; kdn=0.02; real V1P flux; V1P=9.6; real V2P flux; V2P=0.6; 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; ksC=3.2; real kdnc first_order_rate_constant; kdnc=0.02; real V1C flux; V1C=1.2; real V2C flux; V2C=0.2; real CCP(time) nanomolar; when(time=time.min) CCP=0.1; real RC(time) nanomolar; when(time=time.min) RC=0.1; real ksR first_order_rate_constant; ksR=1.7; real Kd nanomolar; Kd=0.3; real k9 first_order_rate_constant; k9=0.8; real k10 first_order_rate_constant; k10=0.4; real vdRC flux; vdRC=4.4; real vdPC flux; vdPC=3.4; real vdCC flux; vdCC=1.4; real k1 first_order_rate_constant; k1=0.8; real k2 first_order_rate_constant; k2=0.4; real V1PC flux; V1PC=2.4; real V2PC flux; V2PC=0.2; 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=1.0; real k8 first_order_rate_constant; k8=0.2; real V3PC flux; V3PC=2.4; real V4PC flux; V4PC=0.2; real PCNP(time) nanomolar; when(time=time.min) PCNP=0.1; real IN(time) nanomolar; when(time=time.min) IN=0.1; real vdRN flux; vdRN=0.8; real vdPCC flux; vdPCC=1.4; real vdPCN flux; vdPCN=1.4; real BC(time) nanomolar; when(time=time.min) BC=0.1; real ksB first_order_rate_constant; ksB=0.32; real k5 first_order_rate_constant; k5=0.8; real k6 first_order_rate_constant; k6=0.4; real V1B flux; V1B=1.4; real V2B flux; V2B=0.2; real BCP(time) nanomolar; when(time=time.min) BCP=0.1; real vdBC flux; vdBC=3.0; real V3B flux; V3B=1.4; real V4B flux; V4B=0.4; real BNP(time) nanomolar; when(time=time.min) BNP=0.1; real vdBN flux; vdBN=3.0; real vdIN flux; vdIN=1.6; // // MP:time=(vsP*(BN^2/(KAP^2+BN^2))-(vmP*(MP/(KmP+MP))+kdmp*MP)); // MC:time=(vsC*(BN^2/(KAC^2+BN^2))-(vmC*(MC/(KmC+MC))+kdmc*MC)); // MB:time=(vsB*(KIB^2/(KIB^2+RN^2))-(vmB*(MB/(KmB+MB))+kdmb*MB)); // MR:time=(vsR*(BN^2/(KAR^2+BN^2))-(vmR*(MR/(KmR+MR))+kdmr*MR)); // 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)); // RC:time=(ksR*MR+k10*RN-(k9*RC+vdRC*(RC/(Kd+RC))+kdn*RC)); // 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)); // RN:time=(k9*RC-(k10*RN+vdRN*(RN/(Kd+RN))+kdn*RN)); // 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)); // }