basic_circadian_clock_models.nb
Author
Tim Breitenbach, Charlotte Helfrich-Förster, Thomas Dandekar
Title
basic_circadian_clock_models.nb
Description
Supplemental notebook to "An effective model of endogenous clocks and external stimuli determining circadian rhythms"
Category
Academic Articles & Supplements
Keywords
circadian endogenous clocks, circadian rhythms, eukaryotic organism
URL
http://www.notebookarchive.org/2022-01-1vufp3h/
DOI
https://notebookarchive.org/2022-01-1vufp3h
Date Added
2022-01-04
Date Last Modified
2022-01-04
File Size
290.09 kilobytes
Supplements
Rights
Redistribution rights reserved

This file contains supplementary data for Tim Breitenbach, Charlotte Helfrich-Förster and Thomas Dandekar , “An effective model of endogenous clocks and external stimuli determining circadian rhythms,” Scientific Reports, 11(1), 2021 161655. https://www.nature.com/articles/s41598-021-95391-y.
Basic Circadian Clock Models
Basic Circadian Clock Models
Tim Breitenbach, Charlotte Helfrich-Förster and Thomas Dandekar
In[]:=
(*GeneratetimecurvesoftheagentsoftheoriginalGoldbetermodel*)d=120;(*timeHorizonforthesimulation*)s=NDSolve[{MD'[t]0.76*(1^4)/(1^4+(PN[t])^4)-0.65*MD[t]/(0.5+MD[t]),P0'[t]0.38*MD[t]-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],MD[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{MD[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];Plot[Evaluate[{MD[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,d},PlotRangeAll,PlotLegends{M,,,,}]
P
0
P
1
P
2
P
N
Out[]=
|
In[]:=
(*Generateunperturbedtimecurvesoftheagentsofthemodel*)d=120;(*timeHorizonforthesimulation*)s=NDSolve[{MD'[t]0.76*(1^4)/(1^4+(PN[t])^4)-0.65*MD[t]/(0.5+MD[t]),P0'[t]0.38*MD[t]-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],MD[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{MD[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot[Evaluate[{MD[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,d},PlotRangeAll,PlotLegends{M,,,,}]
P
0
P
1
P
2
P
N
Out[]=
|
In[]:=
ZwM=Evaluate[MD[t]/.s];ZwP0=Evaluate[P0[t]/.s];ZwP1=Evaluate[P1[t]/.s];ZwP2=Evaluate[P2[t]/.s];ZwPN=Evaluate[PN[t]/.s];
In[]:=
(*Entrainment*)phi=1*Pi;(*PhaseshiftbetweenthephaseoftheZeitgeberandthemolecularclock*)u[t_]:=(Cos[2*Pi*t/24+phi]+1)s=NDSolve[{M'[t]0.76*(1^4)/(1^4+(PN[t])^4)-0.65*M[t]/(0.5+M[t])-0.05u[t]*M[t],P0'[t]0.38*M[t]-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],M[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{M[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot[Evaluate[{M[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,d},PlotRangeAll,PlotLegends{,,,,}]
u
M
u
P
0
u
P
1
u
P
2
u
P
N
Out[]=
|
In[]:=
Plot[{Evaluate[{u[t],M[t]}/.s],ZwM},{t,0,d},PlotRangeAll,PlotLegends{u,,M}]
u
M
Out[]=
|
In[]:=
Plot[{Evaluate[{u[t],P0[t]}/.s],ZwP0},{t,0,d},PlotRangeAll,PlotLegends{u,,}]
u
P
0
P
0
Out[]=
|
In[]:=
Plot[{Evaluate[{u[t],P1[t]}/.s],ZwP1},{t,0,d},PlotRangeAll,PlotLegends{u,,}]
u
P
1
P
1
Out[]=
|
In[]:=
Plot[{Evaluate[{u[t],P2[t]}/.s],ZwP2},{t,0,d},PlotRangeAll,PlotLegends{u,,}]
u
P
2
P
2
Out[]=
|
In[]:=
Plot[{Evaluate[{u[t],PN[t]}/.s],ZwPN},{t,0,d},PlotRangeAll,PlotLegends{u,,}]
u
P
N
P
N
Out[]=
|
In[]:=
(*Generateunperturbedtimecurvesoftheagentsofthemodel*)d=120;(*timeHorizonforthesimulation*)s=NDSolve[{MD'[t]0.76*(1^4)/(1^4+(PN[t])^4)-0.65*MD[t]/(0.5+MD[t]),P0'[t]0.38*MD[t]-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],MD[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{MD[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot[Evaluate[{MD[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,d},PlotRangeAll,PlotLegends{M,,,,}]
P
0
P
1
P
2
P
N
Out[]=
|
In[]:=
ZwM=Evaluate[MD[t]/.s];ZwP0=Evaluate[P0[t]/.s];ZwP1=Evaluate[P1[t]/.s];ZwP2=Evaluate[P2[t]/.s];ZwPN=Evaluate[PN[t]/.s];(*FlymodelEntrainment*)phi=1*Pi;(*PhaseshiftbetweenthephaseoftheZeitgeberandthemolecularclock*)u[t_]:=(Cos[2*Pi*t/24+phi]+1)*0.25s=NDSolve[{M'[t]0.76*((1^4)/(1^4+(PN[t])^4))-0.65*M[t]/(0.5+M[t]),P0'[t]0.38*M[t]*(1-u[t])-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],M[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{M[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot[Evaluate[{M[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,d},PlotRangeAll,PlotLegends{,,,,}]
u
M
u
P
0
u
P
1
u
P
2
u
P
N
Out[]=
|
In[]:=
Plot[{Evaluate[{u[t]}/.s],Evaluate[{M[t]}/.s],Evaluate[{P0[t]}/.s],ZwM,ZwP0},{t,0,d},PlotRangeAll,PlotLegends{u,,,M,}]
u
M
u
P
0
P
0
Out[]=
|
In[]:=
(*Generateunperturbedtimecurvesoftheagentsofthemodel*)d=120;(*timeHorizonforthesimulation*)s=NDSolve[{MD'[t]0.76*(1^4)/(1^4+(PN[t])^4)-0.65*MD[t]/(0.5+MD[t]),P0'[t]0.38*MD[t]-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],MD[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{MD[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot[Evaluate[{MD[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,d},PlotRangeAll,PlotLegends{M,,,,}]
P
0
P
1
P
2
P
N
Out[]=
|
In[]:=
ZwM=Evaluate[MD[t]/.s];ZwP0=Evaluate[P0[t]/.s];ZwP1=Evaluate[P1[t]/.s];ZwP2=Evaluate[P2[t]/.s];ZwPN=Evaluate[PN[t]/.s];
In[]:=
(*mRNAknockdown*)ts=20;(*Durationoftheinhibition*)u[t_]:=Piecewise[{{5,0≤t≤ts},{0,ts<t≤d}}];s=NDSolve[{M'[t]0.76*(1^4)/(1^4+(PN[t])^4)-0.65*M[t]/(0.5+M[t])-0.05u[t]*M[t],P0'[t]0.38*M[t]-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],M[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{M[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot[Evaluate[{M[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,d},PlotRangeAll,PlotLegends{,,,,}]
u
ts
M
u
ts
P
0
u
ts
P
1
u
ts
P
2
u
ts
P
N
Out[]=
|
In[]:=
Plot[{Evaluate[{M[t]}/.s],ZwM},{t,0,d},PlotRangeAll,PlotLegends{,M}]
u
ts
M
Out[]=
|
In[]:=
(*Generateunperturbedtimecurvesoftheagentsofthemodel*)d=120;(*timeHorizonforthesimulation*)s=NDSolve[{MD'[t]0.76*(1^4)/(1^4+(PN[t])^4)-0.65*MD[t]/(0.5+MD[t]),P0'[t]0.38*MD[t]-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],MD[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{MD[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot[Evaluate[{MD[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,d},PlotRangeAll,PlotLegends{M,,,,}]
P
0
P
1
P
2
P
N
Out[]=
|
In[]:=
ZwM=Evaluate[MD[t]/.s];ZwP0=Evaluate[P0[t]/.s];ZwP1=Evaluate[P1[t]/.s];ZwP2=Evaluate[P2[t]/.s];ZwPN=Evaluate[PN[t]/.s];
In[]:=
(*InhibitionperTranscription*)ts=20;(*Durationoftheinhibition*)u[t_]:=Piecewise[{{1,0≤t≤ts},{0,ts<t≤d}}];s=NDSolve[{M'[t]0.76*((1^4)/(1^4+(PN[t])^4))*(1-u[t])-0.65*M[t]/(0.5+M[t]),P0'[t]0.38*M[t]-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],M[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{M[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot[Evaluate[{M[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,120},PlotRangeAll,PlotLegends{,,,,}]
u
ts
M
u
ts
P
0
u
ts
P
1
u
ts
P
2
u
ts
P
N
Out[]=
|
In[]:=
Plot[{Evaluate[{M[t]}/.s],ZwM},{t,0,d},PlotRangeAll,PlotLegends{,M}]
u
ts
M
Out[]=
|
In[]:=
(*Generateunperturbedtimecurvesoftheagentsofthemodel*)d=120;(*timeHorizonforthesimulation*)s=NDSolve[{MD'[t]0.76*(1^4)/(1^4+(PN[t])^4)-0.65*MD[t]/(0.5+MD[t]),P0'[t]0.38*MD[t]-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],MD[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{MD[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot[Evaluate[{MD[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,d},PlotRangeAll,PlotLegends{M,,,,}]
P
0
P
1
P
2
P
N
Out[]=
|
In[]:=
ZwM=Evaluate[MD[t]/.s];ZwP0=Evaluate[P0[t]/.s];ZwP1=Evaluate[P1[t]/.s];ZwP2=Evaluate[P2[t]/.s];ZwPN=Evaluate[PN[t]/.s];
In[]:=
(*InhibitionperTranslationEntrainment*)phi=1*Pi;(*PhaseshiftbetweenthephaseoftheZeitgeberandthemolecularclock*)u[t_]:=(Cos[2*Pi*t/24+phi]+1)*0.25s=NDSolve[{M'[t]0.76*((1^4)/(1^4+(PN[t])^4))-0.65*M[t]/(0.5+M[t]),P0'[t]0.38*M[t]*(1-u[t])-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],M[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{M[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot[Evaluate[{M[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,d},PlotRangeAll,PlotLegends{,,,,}]
u
M
u
P
0
u
P
1
u
P
2
u
P
N
Out[]=
|
In[]:=
Plot[{Evaluate[{u[t]}/.s],Evaluate[{M[t]}/.s],Evaluate[{P0[t]}/.s],ZwM,ZwP0},{t,0,d},PlotRangeAll,PlotLegends{u,,,M,}]
u
M
u
P
0
P
0
Out[]=
|
In[]:=
(*Generateunperturbedtimecurvesoftheagentsofthemodel*)d=120;(*timeHorizonforthesimulation*)s=NDSolve[{MD'[t]0.76*(1^4)/(1^4+(PN[t])^4)-0.65*MD[t]/(0.5+MD[t]),P0'[t]0.38*MD[t]-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],MD[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{MD[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot[Evaluate[{MD[t],P0[t],P1[t],P2[t],PN[t]}/.s],{t,0,d},PlotRangeAll,PlotLegends{M,,,,}]
P
0
P
1
P
2
P
N
Out[]=
|
In[]:=
ZwM=Evaluate[MD[t]/.s];ZwP0=Evaluate[P0[t]/.s];ZwP1=Evaluate[P1[t]/.s];ZwP2=Evaluate[P2[t]/.s];ZwPN=Evaluate[PN[t]/.s];
In[]:=
(*InhibitionperTranslation*)ts=20;(*Durationoftheinhibition*)u[t_]:=Piecewise[{{1,0≤t≤ts},{0,ts<t≤d}}];s=NDSolve[{M'[t]0.76*((1^4)/(1^4+(PN[t])^4))-0.65*M[t]/(0.5+M[t]),P0'[t]0.38*M[t]*(1-u[t])-3.2*P0[t]/(2+P0[t])+1.58*P1[t]/(2+P1[t]),P1'[t]3.2*P0[t]/(2+P0[t])-1.58*P1[t]/(2+P1[t])-5P1[t]/(2+P1[t])+2.5*P2[t]/(2+P2[t]),P2'[t]5*P1[t]/(2+P1[t])-2.5*P2[t]/(2+P2[t])-1.9*P2[t]+1.3*PN[t]-0.95*P2[t]/(0.2+P2[t]),PN'[t]1.9*P2[t]-1.3PN[t],M[0]0.5,P0[0]0.5,P1[0]0.5,P2[0]0.6,PN[0]1.5},{M[t],P0[t],P1[t],P2[t],PN[t]},{t,0,d}];
In[]:=
Plot