Learn R Programming

ifit (version 1.0.0)

enzyme-model: Michaelis-Menten enzyme kinetics

Description

Function enzymeSim (written in C++) simulates a realization from the stochastic Michaelis-Menten kinetics model; function enzymeStat computes a possible summary statistics.

Usage

enzymeSim(theta, n = 50L, E0 = 100L, S0 = 100L)

enzymeStat(y, degree = 2, knots = 0.2)

Value

enzymeSim returns a `n x 4' integer matrix; the ith row contains the simulated values for E, S, C and P at time t=(i-1)/(n-1).

enzymeStat returns a numeric vector of length 2*(degree+1+length(knots)) containing the coefficents of the B-splines curves (with degree and knots given by the second and third arguments) fitted by least squares to the complex and product trajectories (i.e., to the last two components of the process's state).

Arguments

theta

a vector of length 3 containing the model parameters

n

the process is sampled on n equispaced points on the unit interval (default 50)

E0, S0

initial state of the process (default E0=100, S0=100)

y

a n x 4 matrix containing the observed data

degree

the degree of the B-splines basis (default 2)

knots

the knots of the B-splines basis (default: only one knot equal to 0.2)

Details

The model describes a simple case of enzyme kinetics. It involves an enzyme E binding to a substrate S to form a complex C. This complex C then releases a product P while simultaneously regenerating the original enzyme E. The possible reactions are E + S -> C, C -> E + S, and C -> P + E, with rates that constitute the three model parameters.

In probabilistic terms, the integer-valued vector \((E_t, S_t, C_t, P_t)'\) is generated by a continuous-time Markov process such that: $$ \begin{aligned} &Pr\{E_{t+\delta}=E_t-1, S_{t+\delta}=S_t-1, C_{t+\delta}=C_t+1, P_{t+\delta}=P_t |E_t, S_t, C_t, P_t\} \\&\;\;\;\;\;\;\;\;= \theta_1 E_tS_t\delta+o(\delta), \\ &Pr\{E_{t+\delta}=E_t+1, S_{t+\delta}=S_t+1, C_{t+\delta}=C_t-1, P_{t+\delta}=P_t |E_t, S_t, C_t, P_t\} \\&\;\;\;\;\;\;\;\;= \theta_2 C_t\delta+o(\delta), \\ &Pr\{E_{t+\delta}=E_t+1, S_{t+\delta}=S_t, C_{t+\delta}=C_t-1, P_{t+\delta}=P_t+1 |E_t, S_t, C_t, P_t\} \\&\;\;\;\;\;\;\;\;= \theta_3 C_t\delta+o(\delta). \end{aligned} $$ The initial state is \((E_0, S_0, C_0, P_0)'=(E0, S0, 0, 0)'\). Process is simulated using Gillespie exact algorithm.

References

Darren J. Wilkinson (2019) Stochastic Modelling for Systems Biology, Third edition, CRC Press

Examples

Run this code
set.seed(1)
theta <- c(0.5, 2.5, 1)
y <- enzymeSim(theta)
plot(ts(y, start = 0, frequency = 50), main = "")
print(tobs <- enzymeStat(y))
# \donttest{
# It takes some time to run
tsim <- function(theta) enzymeStat(enzymeSim(theta))
m <- ifit(tobs, tsim, l = rep(0, 3), u = rep(50, 3), trace = 1000)
m
confint(m)
diagIFIT(m)
numsimIFIT(m)
# }

Run the code above in your browser using DataLab