Bimolecular ping-pong equation for fitting



When typing your formula for the function you wish to fit, the first parameter (e.g. Vmax) will be "a", the 2nd "b", (e.g. Km) and so on. If there is one independent variable, define it as "x1". Any additonal independent variables should be defined as "x2", "x3" and so on. The formula field is pre-populated with the Michaelis-Menten equation for a ping-pong bisubstrate reaction.
michaelis menten equationThe proper translation of the M-M equation is
Y = a*x1*x2/(b*x2+c*x1+x1*x2) using the proper syntax.
a = Vmax
b = Kma
c = Kmb
x1 = [substrate1] (independent variable 1)
x2 = [substrate2] (independent variable 2)
Y = velocity
The remaining fields have been pre-populated properly for experimental data (25 data points) returning a Vmax value of 19.9, Kma of 4.99, and Kmb of 1.99


Instructions:

  1. Enter the number of data points:
  2. Enter the number of independent variables: (1 for single substrate M-M equation; 2 for bisubstrate, 2 for C, UC, and mixed inhibition)
  3. Enter the number of parameters: (deduce from form of M-M equation used; will be 2 for single substrate M-M)
  4. Enter the formula for the function to be fitted:
    Y =
    Use "*" for multiplication and "/" for division when entering formulas. Define parameters (a, b, c) and variables (x1, x2, x3) as described above. Be sure to use parentheses approriately to get the correct hierarchy
  5. Type (or paste) the [[A],[B],v] data:

    Data can be typed in directly, or pasted from a text file or spreadsheet. The first column(s) contain the independent variable(s) (x1, x2..) while the final column contains the dependent variable y (velocity for enzyme data)
  6. Enter initial guesses for the parameters from evaluation of the data (e.g. Lineweaver-Burke plots and appropriate slope and intercept replots). If the data fails to converge, provide better initial guesses. :
    a (or p1)= ± , p=
    b (or p2)=
    ± , p=
    c (or p3)=
    ± , p=
    d (or p4)= ±
    , p=
    e (or p5)= ±
    , p=
    f (or p6)= ±
    , p=
    g (or p7)= ±
    , p=
    h (or p8)= ±
    , p=
    Place the value "0" (zero) in all parameter boxes for which a value is not defined in the equation to be fit. Leave the fields to the right of the parameters blank; these will be populated with the standard errors upon iteration.
  7. Click the button once for each iteration cycle. Watch how the initial guesses change in response to the iteration. Continue to click the "iterate" button until the values converge to unchanging values. If the parameters do not converge on reasonable numbers, provide better initial guesses and try again.
    If you encounter problems getting the parameters to converge, you can specify a fractional adjustment factor here: Values less than 1.0 will apply only that fraction of the calculated adjustment to the parameters, making the convergence slower but more stable. Change this value back to 1.0 once the iterations seem to be converging.

    RMS Err = Weighted Standard Error of Estimate: the average scatter of the points from the fitted curve. This is relative to the estimated error of the points themselves. Values much above 1 indicate the curve is not fitting the points to within their intrinsic errors.

    Note that after each iteration step the calculated yc values, differences, correlation coefficient and RMS Error are all based on the parameter values at the end of the previous iteration step. Always click the Iterate button an extra time after convergence has been attained.
  8. To print out results, copy and paste the contents of the Output window above into a word processor or text editor, then Print. For best appearance, use a fixed-width font like Courier.
  9. You can also transfer your results to a spreadsheet like Excel for graphing. Select the lines in the output window that have x, yo, yc, etc. (including the line with the column headers), Copy to the clipboard, paste into Excel, then use Excel's "Text to Columns" feature to split the data into separate columns. You can then have Excel prepare a graph that shows the observed points, calculated curve, and even confidence bands around the fitted curve!
    It may be easier to first check the Tab-delimited output box (below) and then click the Iterate button one more time. The output in the box above will look a lot uglier, but will paste into Excel much more nicely, and you won't have to go through Excel's Text -to-Columns process.

(Optional) click here for Tab-delimited output (more convenient for pasting the results into spreadsheets).

(Optional) Specify the Standard Error associated with the Y variable:
Equal: all points are equally precise;
Relative: Std Err of each Y value is proportional to Y variable itself;
Counts: Std Err = square root of Y; this is appropriate if Y represents the # of occurrences of something (such as radioactive decay events);
Data: Std Err is specified in the data window as a separate column of numbers, immediately to the right of the Y values;
Replicates: Specify this if you have entered several Y values.
(When in doubt, choose Equal.)

(Optional) Specify any transformations to applied to the dependent and/or independent variables:

A nonlinear curve fitter generally doesn't require that you transform the data. But transformations might make the function more nearly linear, making the curve-fitting process more stable and faster to converge. The program will automatically adjust the weighting to compensate for y-variable transformations.

(Optional) click here for Centered Approximation to Partial Derivatives (more accurate, but slower).

(Optional Feature -- Use at your own risk!) Click here for Least-Absolute -Value curve fitting. This option attempts to minimize the sum of the absolute values of the (yo-yc) differences, rather than the sum of the squares of the differences. Least-Abs fitting bears the same relationship to Least Squares fitting that the median of a set of numbers bears to the mean. The Least-Abs curve is much less affected by outliers than the Least Squares curve. It will also have the property that about 50% of the points will fall above the curve and 50% below. Alternatively, you can specify the percentage of points you want to fall below the curve here: (as a number greater than 0 and less than 100). This allows you to fit percentile curves to your data!
Convergence may be very slow and/or erratic (parameters bouncing around aimlessly).
Setting the Adjustment Factor to 0.2 or 0.5 may (or may not) improve convergence.
An N-parameter curve will usually pass almost exactly through N of the points.

Expression Syntax:

Operators: + - * / and parentheses (note that there is no ^ for raising to a power; instead use the Power function, described below)
Constants: Pi [=3.14...], Deg [=180/Pi = 57.2...]
Conditional Expressions: (Condition) ? ValueIfTrue : ValueIfFalse
Built-in Functions... [Unless otherwise indicated, all functions take a single numeric argument, enclosed in parentheses after the name of the function.]
Algebraic: Abs, Sqrt, Power(x,y) [= x raised to power of y)], Fact [factorial], Min(x,y) [= the lesser of x or y], Max(x,y) [= the greater of x or y]
Transcendental: Exp, Ln [natural], Log10, Log2
Trigonometric: Sin, Cos, Tan, Cot, Sec, Csc
Inverse Trig: ASin, ACos, ATan, ACot, ASec, ACsc
Hyperbolic: SinH, CosH, TanH, CotH, SecH, CscH
Inverse Hyp: ASinH, ACosH, ATanH, ACotH, ASecH, ACscH
Statistical: Norm, Gauss, Erf, ChiSq(csq,df), StudT(t,df), FishF(F,df1,df2)
Inverse Stat: ANorm, AGauss, AErf, AChiSq(p,df), AStudT(p,df), AFishF(p,df1,df2)