Fitting Michaelis-Menten directly to substrate concentration data
Fitting Michaelis-Menten directly to substrate concentration data
Fitting Michaelis-Menten directly to substrate concentration data
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Fitting</strong> <strong>Michaelis</strong>-<strong>Menten</strong> <strong>directly</strong> <strong>to</strong><strong>substrate</strong> <strong>concentration</strong> <strong>data</strong>Murray Hannah & Peter Moate
OutlineEnzyme Kinetics
OutlineEnzyme Kinetics<strong>Michaelis</strong>−<strong>Menten</strong> equation
OutlineEnzyme Kinetics<strong>Michaelis</strong>−<strong>Menten</strong> equationTraditional parameter estimation methods
OutlineEnzyme Kinetics<strong>Michaelis</strong>−<strong>Menten</strong> equationTraditional parameter estimation methodsMore direct estimation strategiesDirect fit <strong>to</strong> rate <strong>data</strong>Numerical solutionsSemi-parametric
OutlineEnzyme Kinetics<strong>Michaelis</strong>−<strong>Menten</strong> equationTraditional parameter estimation methodsMore direct estimation strategiesDirect fit <strong>to</strong> rate <strong>data</strong>Numerical solutionsSemi-parametricA GenStat procedure, MICHAELIS
Enzymes‘Little’ molecular machines that catalize biochemical reactions
An enzyme reactionk 1S + E 0 ⇋ E 1k−→2E0 + Pk −1
An enzyme reactionk 1S + E 0 ⇋ E 1k−→2E0 + Pk −1◮ Substrate S
An enzyme reactionk 1S + E 0 ⇋ E 1k−→2E0 + Pk −1◮ Substrate S◮ Empty Enzyme E 0
An enzyme reactionk 1S + E 0 ⇋ E 1k−→2E0 + Pk −1◮ Substrate S◮ Empty Enzyme E 0◮ Occupied Enzyme E 1
An enzyme reactionk 1S + E 0 ⇋ E 1k−→2E0 + Pk −1◮ Substrate S◮ Empty Enzyme E 0◮ Occupied Enzyme E 1◮ Product P
Enzyme kineticsScientists wish <strong>to</strong>◮ predict reaction rate as a function of <strong>substrate</strong><strong>concentration</strong>
Enzyme kineticsScientists wish <strong>to</strong>◮ predict reaction rate as a function of <strong>substrate</strong><strong>concentration</strong>◮ predict <strong>concentration</strong> as function of time
Enzyme kineticsScientists wish <strong>to</strong>◮ predict reaction rate as a function of <strong>substrate</strong><strong>concentration</strong>◮ predict <strong>concentration</strong> as function of time◮ predict reaction rate as a function of time
k 1S + E 0 ⇋ E 1k−→2E0 + Pk −1
Reaction rates . . .k 1S + E 0 ⇋ E 1k−→2E0 + Pk −1
Reaction rates . . .dSdt= −k 1 SE 0 + k −1 E 1k 1S + E 0 ⇋ E 1k−→2E0 + Pk −1
k 1S + E 0 ⇋ E 1k−→2E0 + Pk −1Reaction rates . . .dSdt= −k 1 SE 0 + k −1 E 1dE 0dt= −k 1 SE 0 + k −1 E 1 + k 2 E 1
k 1S + E 0 ⇋ E 1k−→2E0 + Pk −1Reaction rates . . .dSdt= −k 1 SE 0 + k −1 E 1dE 0dt= −k 1 SE 0 + k −1 E 1 + k 2 E 1dE 1dt= k 1 SE 0 − k −1 E 1 − k 2 E 1
k 1S + E 0 ⇋ E 1k−→2E0 + Pk −1Reaction rates . . .dSdt= −k 1 SE 0 + k −1 E 1dE 0dt= −k 1 SE 0 + k −1 E 1 + k 2 E 1dE 1dt= k 1 SE 0 − k −1 E 1 − k 2 E 1dPdt= k 2 E 1
Reaction rates . . .dSdt= −k 1 SE 0 + k −1 E 1dE 0dt= −k 1 SE 0 + k −1 E 1 + k 2 E 1dE 1dt= k 1 SE 0 − k −1 E 1 − k 2 E 1dPdt= k 2 E 1Constraints . . .E T = E 0 + E 1 ⇒ dE Tdtk 1S + E 0 ⇋ E 1k−→2E0 + Pk −1= 0,
Reaction rates . . .dSdt= −k 1 SE 0 + k −1 E 1dE 0dt= −k 1 SE 0 + k −1 E 1 + k 2 E 1dE 1dt= k 1 SE 0 − k −1 E 1 − k 2 E 1dPdt= k 2 E 1Constraints . . .E T = E 0 + E 1 ⇒ dE TdtdE 1dt≃ 0k 1S + E 0 ⇋ E 1k−→2E0 + Pk −1= 0,
... which give...dSdt= (k 2E T S( )k−1 +k 2k 1+ S= V maxSK m + S
... which give...dSdt= (k 2E T S( )k−1 +k 2k 1+ S= V maxSK m + Sk 1S + E 0 ⇋ E 1k−→2E0 + Pk −1
... which give...dSdt= (k 2E T S( )k−1 +k 2k 1+ S= V maxSK m + SK m = k −1+k 2k 1k 1S + E 0 ⇋ E 1k−→2E0 + Pk −1= <strong>substrate</strong>-enzyme "affinity"
... which give...dSdt= (k 2E T S( )k−1 +k 2k 1+ S= V maxSK m + Sk 1S + E 0 ⇋ E 1k−→2E0 + Pk −1K m = k −1+k 2k 1= <strong>substrate</strong>-enzyme "affinity"V max = k 2 E T = maximal reaction rate
... which give...dSdt= (k 2E T S( )k−1 +k 2k 1+ S= V maxSK m + Sk 1S + E 0 ⇋ E 1k−→2E0 + Pk −1K m = k −1+k 2k 1= <strong>substrate</strong>-enzyme "affinity"V max = k 2 E T = maximal reaction ratedSdt→ V max , S → ∞,S = K m ⇔ dSdt= V max2
The <strong>Michaelis</strong>-<strong>Menten</strong> equation.v = V maxSK m + SMaud <strong>Menten</strong> and Leonor <strong>Michaelis</strong>, 1913
How good is the steady-state approximation?
How good is the steady-state approximation?http://online.redwoods.cc.ca.us/...
How good is the steady-state approximation?MM approx compared <strong>to</strong> actual DE
Traditional estimation of V maxand K mLinearize v = V maxS, Linear regression, or graphicalK m + S
Traditional estimation of V maxand K mLinearize v = V maxS, Linear regression, or graphicalK m + S◮ 1v = 1V max+ KmV max1SLineweaver Burk, 1939
Traditional estimation of V maxand K mLinearize v = V maxS, Linear regression, or graphicalK m + S◮ 1v = 1V max+ KmV max1SLineweaver Burk, 1939◮vS = VmaxK m− 1K mv Scatchard, 1949
Traditional estimation of V maxand K mLinearize v = V maxS, Linear regression, or graphicalK m + S◮ 1v = 1V max+ KmV max1SLineweaver Burk, 1939◮◮vS = VmaxK m− 1K mv Scatchard, 1949Sv = KmV max+ 1V maxS Woolf (Haldane, 1957)
Traditional estimation of V maxand K mLinearize v = V maxS, Linear regression, or graphicalK m + S◮ 1v = 1V max+ KmV max1SLineweaver Burk, 1939◮◮vS = VmaxK m− 1K mv Scatchard, 1949Sv = KmV max+ 1V maxS Woolf (Haldane, 1957)◮ or by non-linear regression. (e.g. FITCURVE [CURVE=ldl])
Traditional estimation of V maxand K mLinearize v = V maxS, Linear regression, or graphicalK m + S◮ 1v = 1V max+ KmV max1SLineweaver Burk, 1939◮◮vS = VmaxK m− 1K mv Scatchard, 1949Sv = KmV max+ 1V maxS Woolf (Haldane, 1957)◮ or by non-linear regression. (e.g. FITCURVE [CURVE=ldl])v i and S i derived from experiment i = 1 . . . k
Fit <strong>directly</strong> <strong>to</strong> <strong>concentration</strong> <strong>data</strong>, S vs t?
Fit <strong>directly</strong> <strong>to</strong> <strong>concentration</strong> <strong>data</strong>, S vs t?Require S(t), the solution <strong>to</strong> dSdt= V maxSK m + S
Fit <strong>directly</strong> <strong>to</strong> <strong>concentration</strong> <strong>data</strong>, S vs t?Require S(t), the solution <strong>to</strong> dSdt= V maxSK m + SBut no closed form solution for S(t) exists!
Solution <strong>to</strong> S(t){ ( )}S0 S0 − V max tS(t) = K m W expK m K m
Solution <strong>to</strong> S(t){ ( )}S0 S0 − V max tS(t) = K m W expK m K mwhere Lambert’s W : y = W (x) such that ye y = x
Solution <strong>to</strong> S(t){ ( )}S0 S0 − V max tS(t) = K m W expK m K mwhere Lambert’s W : y = W (x) such that ye y = x(Fig. from Barry et al., Math Comp Sim, 2000.)
Estimation strategies using (S, t) <strong>data</strong>:◮ Transform (S, t) <strong>to</strong> rate <strong>data</strong>, (v, S)
Estimation strategies using (S, t) <strong>data</strong>:◮ Transform (S, t) <strong>to</strong> rate <strong>data</strong>, (v, S)◮ Purely numeric solution <strong>to</strong> S(t)
Estimation strategies using (S, t) <strong>data</strong>:◮ Transform (S, t) <strong>to</strong> rate <strong>data</strong>, (v, S)◮ Purely numeric solution <strong>to</strong> S(t)◮ Analytic expansion for Lamberts W
Estimation strategies using (S, t) <strong>data</strong>:◮ Transform (S, t) <strong>to</strong> rate <strong>data</strong>, (v, S)◮ Purely numeric solution <strong>to</strong> S(t)◮ Analytic expansion for Lamberts W◮ A semi-parametric method
Transform (S, t) <strong>to</strong> (v, S ∗ )?v i = − S i+1 − S iand Si ∗ = S i + S i+1t i+1 − t i 2
Transform (S, t) <strong>to</strong> (v, S ∗ )?v i = − S i+1 − S iand Si ∗ = S i + S i+1t i+1 − t i 2
Note that{ }Si+1 − S iVar(V i ) = Vart i+1 − t i= 2σ2δi2 , where δ i = t i+1 − t i
Note that{ }Si+1 − S iVar(V i ) = Vart i+1 − t i= 2σ2δi2 , where δ i = t i+1 − t iUnequal time intervals δ i ⇒ unequal variance.
<strong>Fitting</strong> v = V maxS ∗K m +S ∗ , with weights = δ 2 i
Transforming (S, t) <strong>to</strong> (v, S ∗ ) <strong>data</strong>:Allows us <strong>to</strong> fit MM <strong>directly</strong>, but ...◮ Heteroscedasticity, due <strong>to</strong> unequal δ i .
Transforming (S, t) <strong>to</strong> (v, S ∗ ) <strong>data</strong>:Allows us <strong>to</strong> fit MM <strong>directly</strong>, but ...◮ Heteroscedasticity, due <strong>to</strong> unequal δ i .◮ Correlated errors, MA(1), induced by differencing:V i = − S i+1 − S iδ i, ⇒ Cov(V i , V i+1 ) = − σ2δ i δ i+1
Transforming (S, t) <strong>to</strong> (v, S ∗ ) <strong>data</strong>:Allows us <strong>to</strong> fit MM <strong>directly</strong>, but ...◮ Heteroscedasticity, due <strong>to</strong> unequal δ i .◮ Correlated errors, MA(1), induced by differencing:V i = − S i+1 − S iδ i, ⇒ Cov(V i , V i+1 ) = − σ2δ i δ i+1◮ Errors in variables:Var(S ∗ ) = σ22
Direct fit <strong>to</strong> (S, t) <strong>data</strong>: S(t) numeric solution?◮ E.g., S(t) by Euler’s method:
Direct fit <strong>to</strong> (S, t) <strong>data</strong>: S(t) numeric solution?◮ E.g., S(t) by Euler’s method:◮ Note, the slope at t isv(t) = − V maxS(t)K m + S(t)
Direct fit <strong>to</strong> (S, t) <strong>data</strong>: S(t) numeric solution?◮ E.g., S(t) by Euler’s method:◮ Note, the slope at t is◮v(t) = − V maxS(t)K m + S(t)Estimate S(t +h) ≃ S(t) + v(t) × h
Direct fit <strong>to</strong> (S, t) <strong>data</strong>: S(t) numeric solution?◮ E.g., S(t) by Euler’s method:◮ Note, the slope at t is◮◮v(t) = − V maxS(t)K m + S(t)Estimate S(t +h) ≃ S(t) + v(t) × hStart with initial value, S(0)
Direct fit <strong>to</strong> (S, t) <strong>data</strong>: S(t) numeric solution?◮ E.g., S(t) by Euler’s method:◮ Note, the slope at t isv(t) = − V maxS(t)K m + S(t)◮ Estimate S(t +h) ≃ S(t) + v(t) × h◮ Start with initial value, S(0)◮ Iterate, gives ˜S(t) for t = 0, h, 2h, ...
Direct fit <strong>to</strong> (S, t) <strong>data</strong>: S(t) numeric solution?◮ E.g., S(t) by Euler’s method:◮ Note, the slope at t isv(t) = − V maxS(t)K m + S(t)◮ Estimate S(t +h) ≃ S(t) + v(t) × h◮ Start with initial value, S(0)◮ Iterate, gives ˜S(t) for t = 0, h, 2h, ...◮ interpolate ˜S(ti )
Direct fit <strong>to</strong> (S, t) <strong>data</strong>: S(t) numeric solution?◮ E.g., S(t) by Euler’s method:◮ Note, the slope at t isv(t) = − V maxS(t)K m + S(t)◮ Estimate S(t +h) ≃ S(t) + v(t) × h◮ Start with initial value, S(0)◮ Iterate, gives ˜S(t) for t = 0, h, 2h, ...◮ interpolate ˜S(ti )Minimizen∑i=1[S i − ˜S(t i ; V max , K m )] 2w.r.t V max , K m
Euler’s solution <strong>to</strong> S(t)Simple <strong>to</strong> program, fits MM <strong>directly</strong> <strong>to</strong> (S, t), but ...◮ Computationally intensive
Euler’s solution <strong>to</strong> S(t)Simple <strong>to</strong> program, fits MM <strong>directly</strong> <strong>to</strong> (S, t), but ...◮ Computationally intensive◮ Uncertain accuracy
Euler’s solution <strong>to</strong> S(t)Simple <strong>to</strong> program, fits MM <strong>directly</strong> <strong>to</strong> (S, t), but ...◮ Computationally intensive◮ Uncertain accuracy◮ Runge-Kutta methods
Analytic numeric solution for S(t)?◮{ ( )}S0 S0 − V max tS(t) = K m W expK m K mwhere Lambert’s W : y = W (x) such that ye y = x
Analytic numeric solution for S(t)?◮{ ( )}S0 S0 − V max tS(t) = K m W expK m K mwhere Lambert’s W : y = W (x) such that ye y = x◮ Expansion <strong>to</strong> give (approximate) Lambert’s W :
Analytic numeric solution for S(t)?◮{ ( )}S0 S0 − V max tS(t) = K m W expK m K mwhere Lambert’s W : y = W (x) such that ye y = x◮ Expansion <strong>to</strong> give (approximate) Lambert’s W :◮ See Golicnik, Analytic Biochemistry (2010), andreferences therein.maximum error < 0.02% (Barry et al., 2000)
Analytic numeric solution for S(t)?◮{ ( )}S0 S0 − V max tS(t) = K m W expK m K mwhere Lambert’s W : y = W (x) such that ye y = x◮ Expansion <strong>to</strong> give (approximate) Lambert’s W :◮ See Golicnik, Analytic Biochemistry (2010), andreferences therein.maximum error < 0.02% (Barry et al., 2000)Minimizen∑i=1[S i − Š(t i; V max , K m )] 2w.r.t V max , K m
"Fit Michealis-<strong>Menten</strong> (following Golicnik)"SCALAR Vm,Km,K1,W0SCALAR epsilon; VAL=0.4586887CALC d1=12/5EXPRESSION mm[1]; VALUE=!e(x=(W0-K1-Vm*TIME)/Km)& mm[2]; VALUE=!e(x=(W0-K1)*exp(x)/Km)& mm[3]; VALUE=!e(d2=x/log(1+d1*x))& mm[4]; VALUE=!e(d2=5*log(d1*d2))& mm[5]; VALUE=!e(d3=(1+epsilon)*log(6*x/d2))& mm[6]; VALUE=!e(d4=log(1+2*x))& mm[7]; VALUE=!e(d4=epsilon*log(2*x/d4))& mm[8]; VALUE=!e(W=Km*(d3-d4)+K1)
Semi-parametric method?Represent S(t) by f (t) = Φ(t)β,e.g. beta spline
Semi-parametric method?Represent S(t) by f (t) = Φ(t)β,Requiref ′ (t) ≃ V maxf (t)K m + f (t) .e.g. beta spline
Semi-parametric method?Represent S(t) by f (t) = Φ(t)β,RequireMinimizen∑{s i − f (t i )} 2 + λi=1f ′ (t) ≃ V maxf (t)K m + f (t) .n∑i=1e.g. beta spline{f ′ (t i ) − V }maxf (t i ) 2K m + f (t i )
Semi-parametric method?Represent S(t) by f (t) = Φ(t)β,RequireMinimizeorn∑{s i − f (t i )} 2 + λi=1i=1f ′ (t) ≃ V maxf (t)K m + f (t) .n∑i=1e.g. beta spline{f ′ (t i ) − V }maxf (t i ) 2K m + f (t i )n∑∫ {{s i − f (t i )} 2 + λ f ′ (t) − V }maxf (t) 2dtK m + f (t)
Nested minimization[ n∑ ∫ {min min {s i −f (t i )} 2 +λ f ′ (t)− V }maxf (t) 2dt]{V max ,K m} βK m + f (t)i=1where f (t) = Φ(t)β, B-spline(Cao et al., Biometrics, 2011)
Semi-parametric methodFit spline <strong>to</strong> (S, t) <strong>data</strong>, conforming <strong>to</strong> MM, but ...◮ Large number of non-linear parameters.
Semi-parametric methodFit spline <strong>to</strong> (S, t) <strong>data</strong>, conforming <strong>to</strong> MM, but ...◮ Large number of non-linear parameters.◮ Need expressions for gradients (Ramsay et al., JRSS,2007.)
Semi-parametric methodFit spline <strong>to</strong> (S, t) <strong>data</strong>, conforming <strong>to</strong> MM, but ...◮ Large number of non-linear parameters.◮ Need expressions for gradients (Ramsay et al., JRSS,2007.)◮ Arbitrary tuning parameter, λ,
Semi-parametric methodFit spline <strong>to</strong> (S, t) <strong>data</strong>, conforming <strong>to</strong> MM, but ...◮ Large number of non-linear parameters.◮ Need expressions for gradients (Ramsay et al., JRSS,2007.)◮ Arbitrary tuning parameter, λ,◮ Estimate λ by cross-validation
Semi-parametric methodFit spline <strong>to</strong> (S, t) <strong>data</strong>, conforming <strong>to</strong> MM, but ...◮ Large number of non-linear parameters.◮ Need expressions for gradients (Ramsay et al., JRSS,2007.)◮ Arbitrary tuning parameter, λ,◮ Estimate λ by cross-validation◮ Programming
A GenStat procedureProcedure MICHAELISM.C. Hannah (May, 2011)1. PurposeFits <strong>Michaelis</strong>-<strong>Menten</strong> curve <strong>to</strong> <strong>substrate</strong> <strong>concentration</strong> vs time <strong>data</strong>2. DescriptionThe <strong>Michaelis</strong>-<strong>Menten</strong> non-linear curve, for biochemical reaction rate versus <strong>substrate</strong><strong>concentration</strong>,dS(t)VmaxS(t)v( t)= =dt K + ,mS(t)can be fitted in GenStat using FITCURVE [CURVE=ldl]. However, in practice, <strong>data</strong> areavailable only for <strong>substrate</strong> <strong>concentration</strong>, S, at time t, and not for the reaction rate, v. Thefunction S(t), that is the solution <strong>to</strong> this differential equation, has no closed form expression.The procedure MICHAELIS fits the curve S (t)versus t, obtaining parameter estimates forV max , K m and, if required, S 0 (the initial <strong>substrate</strong>) and, also if required, an additive constantK 1 representing the quantity of non-reactive <strong>substrate</strong>. This generalized <strong>Michaelis</strong>-<strong>Menten</strong>curve is thus,dS(t)Vmax[ S(t)− K1]= .dt K + S(t)− Km1
4. OptionsPRINT = stringPLOT = stringWINDOW = scalarTITLE = textXTITLE = textYTITLE = textWEIGHTS = variateI: strings {model, deviance, summary, estimates,correlations, fittedvalues, moni<strong>to</strong>ring;default mode, summ, esti printed output (same as forFITNONLINEAR)I: requests graphs, strings {fitted, rate }; defaultfitted.I: scalarI: Title of S vs t graph; default, ‘Fitted <strong>Michaelis</strong>-<strong>Menten</strong> solution’I: Title for x-axis; default the TIME identifierI: Title for y-axis; default the CONCENTRATION identifierI: weights for use in FITNONLINEAR5. ParametersCONCENTRATION = variate I: Substrate <strong>concentration</strong> <strong>data</strong>TIME = variate I: Times at which <strong>substrate</strong> <strong>concentration</strong> <strong>data</strong> were measuredINITIAL = variate I: optional initial values for parameters !(Vm, Km, K1, W0).Generally not required, but must be in correct order, if supplied.STEP = variate I: optional step lengths for parameters (see GenStat directivesRCYCLE and FITNONLINEAR). If supplied, these must be incorrect order, !(Vm, Km, K1, W0). A zero will hold thecorresponding parameter at its initial value.FINAL = variate O: Final parameter estimates; !(Vm, Km, K1, W0)VCOV = symmetric O: matrix, vcov for estimatesFITTED = variate O: Fitted <strong>concentration</strong>FRATE = variate O: Fitted reaction rate
MICHAELIS CONC=S; TIME=ElapsDays
MICHAELIS CONC=S; TIME=ElapsDays357 MICHAELIS CONC=S; TIME=ElapsDaysInitial parameter valuesVm_i Km_i K1_i S0_i4.511 447.5 34.88 2627Nonlinear regression analysisResponse variate: SWeight variate: WtsNonlinear parameters: Vm, Km, K1, S0Model calculations: mm[1], mm[2], mm[3], mm[4], mm[5], mm[6], mm[7], mm[8]Summary of analysisSource d.f. s.s. m.s. v.r.Regression 4 137399158. 34349789.5 111690.71Residual 48 14762. 307.5Total 52 137413920. 2642575.4Percentage variance accounted for 100.0Standard error of observations is estimated <strong>to</strong> be 17.5.Message: the following units have large standardized residuals.Unit Response Residual1 2589.4 -2.41Estimates of parametersParameter estimate s.e.Vm 5.1627 0.0980Km 293.2 28.3K1 200.7 10.6S0 2635.97 5.48
MICHAELIS CONC=S; TIME=ElapsDays
MICHAELIS CONC=S; TIME=ElapsDaysRGRAPH INDEX=ElapsDays
MICHAELIS CONC=S; TIME=ElapsDaysRGRAPH INDEX=ElapsDaysRCHECK
MICHAELIS CONC=S; TIME=ElapsDaysRGRAPH INDEX=ElapsDaysRCHECKMICHAELIS [PLOT=#,Rate] CONC=SubConc; \TIME=ElapsDays
Fix K 1 = 0 (original <strong>Michaelis</strong>-<strong>Menten</strong>.)MICHAELIS CONC=SubConc; TIME=ElapsDays; \INITIAL=!(*,*,0,*); STEP=!(*,*,0,*)
Fix K 1 = 0 (original <strong>Michaelis</strong>-<strong>Menten</strong>.)MICHAELIS CONC=SubConc; TIME=ElapsDays; \INITIAL=!(*,*,0,*); STEP=!(*,*,0,*)Estimates of parametersParameter estimate s.e.Vm 6.550 0.322Km 850.3 99.7K1 0 *S0 2648.2 12.7
Leonor <strong>Michaelis</strong> Maud <strong>Menten</strong>, 2011