Circadian Rhythm: Clock Gene Networks — Modelling the Cellular Oscillator
Isolate a single fibroblast in a dish, with no light cues and no hormones from the rest of the body, and it will still tick through gene expression cycles close to 24 hours for weeks. This article treats the circadian clock not as physiology but as a gene regulatory network: a negative transcriptional feedback loop with delay, modelled as a small system of nonlinear (delay) differential equations that produces a self-sustaining limit cycle — the same mathematics used for the whole-body clock described in our companion article on the suprachiasmatic nucleus, but here applied at the level of a single cell's genome.
1. The Core Transcription-Translation Feedback Loop
The mammalian molecular clock is built from a transcription-translation feedback loop (TTFL). The transcription factors CLOCK and BMAL1 heterodimerise and drive expression of the Per (Period) and Cry (Cryptochrome) genes. PER and CRY proteins accumulate in the cytoplasm, dimerise, translocate back into the nucleus, and directly inhibit the CLOCK:BMAL1 complex that made them — a textbook negative-feedback loop, but one built entirely from gene expression rather than fast enzyme kinetics.
PER, CRY (protein) accumulate → dimerise → re-enter nucleus
PER:CRY → represses CLOCK:BMAL1 activity → transcription falls
PER, CRY degrade (via CK1δ/ε-mediated phosphorylation → proteasome)
repression lifts → cycle restarts // full cycle period ≈ 24 h in mammals
A second, interlocked loop (ROR/REV-ERB acting on Bmal1 itself) adds robustness, but the PER/CRY-CLOCK/BMAL1 loop is the minimal core that a mathematical model needs to reproduce a 24-hour oscillation.
2. The Goodwin Oscillator: Minimal Feedback Model
Brian Goodwin's 1965 model reduces any such loop to three variables: mRNA (X), an intermediate protein (Y), and the final repressor protein (Z), with Z inhibiting X's own transcription:
dY/dt = v₂X − d₂Y // cytoplasmic protein
dZ/dt = v₃Y − d₃Z // nuclear repressor (PER:CRY complex)
The repression term is a Hill function with cooperativity exponent n. Goodwin showed that sustained oscillation in this three-variable ODE system requires n > 8 — an unrealistically high degree of molecular cooperativity, since real PER/CRY dimerisation and repression involve far gentler nonlinearity. This is the central puzzle that motivates the next section.
3. Why Delay Matters: DDEs vs. ODEs
The real molecular clock achieves robust 24-hour oscillation with much lower cooperativity than Goodwin's ODE requires, because the biology introduces an explicit time delay: transcription, nuclear export, translation, protein folding, dimerisation and re-import of PER:CRY together take several hours — not instantaneous, as an ODE implicitly assumes.
Replacing the ODE's instantaneous feedback with a delay differential equation (DDE) captures this directly:
With a delay τ of a few hours, sustained oscillations appear even at n = 1 (simple, non-cooperative Michaelis-Menten repression) — matching the modest cooperativity actually observed for CLOCK:BMAL1 repression by PER:CRY. Delay, not ultra-sensitivity, is the feature that makes the biological clock robust. This is the single most important qualitative lesson of circadian systems biology: explicit transcriptional and translational delay substitutes for cooperativity in generating a limit cycle.
4. Limit Cycles and the Hopf Bifurcation
As the delay τ (or, equivalently, the Hill coefficient n) increases past a critical value, the system's single stable fixed point loses stability in a Hopf bifurcation, and a stable limit cycle is born — a closed, self-sustaining orbit in (X, Y, Z) phase space that the system settles into regardless of small perturbations to its initial state.
① Below threshold
Stable fixed point; mRNA/protein settle to constant levels, no rhythm.
② Hopf bifurcation
Fixed point loses stability as delay/cooperativity crosses a critical value.
③ Limit cycle
Self-sustained ~24 h oscillation, amplitude set by nonlinearity, not by initial conditions.
④ Entrainment
Daily light input phase-shifts the limit cycle to align with the 24 h solar day.
The limit cycle's period-independence from initial conditions is the mathematical signature of a robust biological clock: a cell coming from any starting state of PER/CRY levels converges onto the same rhythmic orbit, which is why isolated fibroblasts (§ intro) all settle into comparable ~24 h cycles despite starting from different transcriptional states.
5. Coupled Cells: From Single Oscillator to Tissue Rhythm
A single cell's clock, on its own, is a noisy oscillator — its period drifts by roughly ±1-2 hours from cell to cell due to gene expression noise. In the suprachiasmatic nucleus, roughly 20,000 such noisy single-cell oscillators are coupled through neuropeptide signalling (chiefly VIP acting on VPAC2 receptors), which synchronises their phases into a single, precise tissue-level rhythm — an application of the same coupled-oscillator synchronisation mathematics used for coupled pendulums or the Kuramoto model.
6. JavaScript: A Delay-Differential Clock Simulation
Integrating a DDE numerically requires keeping a history buffer of past states, since the derivative at time t depends on the state at t − τ, not just the current state.
class ClockGeneDDE {
constructor({ tau = 4, n = 2, K = 1, dt = 0.05 } = {}) {
this.tau = tau; this.n = n; this.K = K; this.dt = dt;
this.X = 0.1; this.Y = 0.1; this.Z = 0.1;
this.history = []; // stores {t, Z} for the delayed feedback term
this.t = 0;
}
_delayedZ() {
const target = this.t - this.tau;
if (target <= 0 || this.history.length === 0) return 0.1; // pre-history baseline
let best = this.history[0];
for (const h of this.history) if (h.t <= target) best = h; else break;
return best.Z;
}
step(v1 = 1.0, v2 = 1.0, v3 = 1.0, d1 = 0.3, d2 = 0.3, d3 = 0.3) {
const Zdelayed = this._delayedZ();
const repression = 1 / (1 + Math.pow(Zdelayed / this.K, this.n));
const dX = v1 * repression - d1 * this.X;
const dY = v2 * this.X - d2 * this.Y;
const dZ = v3 * this.Y - d3 * this.Z;
this.X += dX * this.dt;
this.Y += dY * this.dt;
this.Z += dZ * this.dt;
this.t += this.dt;
this.history.push({ t: this.t, Z: this.Z });
return { t: this.t, X: this.X, Y: this.Y, Z: this.Z };
}
}
// With tau = 4 (hours) and n as low as 2, this settles into a stable
// ~24-hour-scaled limit cycle in X, Y, Z — no need for n > 8 as in Goodwin's ODE
const clock = new ClockGeneDDE({ tau: 4, n: 2 });
const trace = [];
for (let i = 0; i < 4000; i++) trace.push(clock.step());
Tuning τ and n against this integrator reproduces the central result of §3 directly: increase τ, and the same repression exponent n that gave a damped, non-oscillating system now produces a robust self-sustaining limit cycle. For how such a single-cell rhythm is synchronised into the whole-body clock, light-entrained and disrupted by jet lag, see our companion article on Circadian Rhythms — The Body's Internal Clock.