// Created by libAntimony v2.8.0
model *Tyson2003_Negative_Feedback_Oscillator()
// Compartments and Species:
compartment env;
species Rp in env, X in env, Yp in env, $S in env, $Y in env, $R in env;
// Assignment Rules:
Y := Yt - Yp;
R := Rt - Rp;
// Reactions:
r1: => X; env*(k0 + k1*S);
r2: X => ; env*(k2 + k2_prime*Rp)*X;
r3: $Y => Yp; (env*k3*X*(Yt - Yp))/(Km3 + (Yt - Yp));
r4: Yp => $Y; (env*k4*Yp)/(Km4 + Yp);
r5: $R => Rp; (env*k5*Yp*(Rt - Rp))/(Km5 + (Rt - Rp));
r6: Rp => $R; (env*k6*Rp)/(Km6 + Rp);
// Species initializations:
Rp = 0;
X = 0;
Yp = 0;
S = 0;
// Compartment initializations:
env = 1;
// Variable initializations:
Yt = 1;
Yt has M;
Rt = 1;
Rt has M;
k0 = 0;
k0 has M_per_s;
k1 = 1;
k1 has per_s;
k2 = 0.01;
k2 has per_s;
k2_prime = 10;
k2_prime has per_M_per_s;
k3 = 0.1;
k3 has per_s;
Km3 = 0.01;
Km3 has M;
k4 = 0.2;
k4 has M_per_s;
Km4 = 0.01;
Km4 has M;
k5 = 0.1;
k5 has per_s;
Km5 = 0.01;
Km5 has M;
k6 = 0.05;
k6 has M_per_s;
Km6 = 0.01;
Km6 has M;
// Other declarations:
const env, Yt, Rt, k0, k1, k2, k2_prime, k3, Km3, k4, Km4, k5, Km5, k6;
const Km6;
// Unit definitions:
unit time_unit = second;
unit substance = mole;
unit per_s = 1 / second;
unit M_per_s = mole / (second * litre);
unit M = mole / litre;
unit per_M_per_s = litre / (mole * second);
// Display Names:
time_unit is "s";
substance is "mole";
end