Skip to main content

renz: An R package for the analysis of enzyme kinetic data



Complex enzymatic models are required for analyzing kinetic data derived under conditions that may not satisfy the assumptions associated with Michaelis–Menten kinetics. To analyze these data, several software packages have been developed. However, the complexity introduced by these programs is often dispensable when analyzing data conforming to the canonical Michaelis–Menten model. In these cases, the sophisticated routines of these packages become inefficient and unnecessarily intricated for the intended purpose, reason for which most users resort to general-purpose graphing programs. However, this approach, in addition of being time-consuming, is prone to human error, and can lead to misleading estimates of kinetic parameters, particularly when unweighted regression analyses of transformed kinetic data are performed.


To fill the existing gap between highly specialized and general-purpose software, we have developed an easy-to-use R package, renz, designed for accurate and efficient estimation of enzyme kinetic parameters. The package provides different methods that can be clustered into four categories, depending on whether they are based on data fitting to a single progress curve (evolution of substrate concentration over time) or, alternatively, based on the dependency of initial rates on substrate concentration (differential rate equation). A second criterion to be considered is whether the experimental data need to be manipulated to obtain linear functions or, alternatively, data are directly fitted using non-linear regression analysis. The current program is a cross-platform, free and open-source software that can be obtained from the CRAN repository. The package is accompanied by five vignettes, which are intended to guide users to choose the appropriate method in each case, as well as providing the basic theoretical foundations of each method. These vignettes use real experimental data to illustrate the use of the package utilities.


renz is a rigorous and yet easy-to-use software devoted to the analysis of kinetic data. This application has been designed to meet the needs of users who are not practicing enzymologists, but who need to accurately estimate the kinetic parameters of enzymes. The current software saves time and minimizes the risk of making mistakes or introducing biases due to uncorrected error propagation effects.


Enzymes not only make metabolic reactions kinetically possible, but they also modulate the rates of these reactions in a coordinated way, thus responding duly to the changing needs of the cell, reason for which enzymes have been described as “agents of life” [1]. Knowledge of enzyme kinetics is critical for understanding biological systems, as illustrated in recent publications [2,3,4], but also has an industrial interest [5]. A canonical approach to enzyme kinetics makes use of the Michaelis–Menten equation [6, 7], which describes the dependence of enzyme-catalyzed reaction rates on the concentration of substrate. An enzyme is said to follow a Michaelis–Menten reaction mechanism if the initial rate of the catalyzed reaction obeys the equation:

$$v = V_{\max } \frac{\left[ S \right]}{{K_{M} + \left[ S \right]}}$$

More complex enzymatic models are required for analyzing kinetic data derived under conditions that may not satisfy the assumptions associated with Michaelis–Menten kinetics [8]. To analyze these data and assist in the selection of the best enzymatic model, a number of software packages, such as DynaFit [9], KinTek [10], and ENZO [11], have been developed. However, the additional complexity introduced by these programs is often dispensable when analyzing data conforming to the canonical model summarized by the Michaelis–Menten equation. In these cases, the sophisticated routines of these packages become inefficient and unnecessarily intricate for the intended purpose. For these reasons, most users often resort to general-purpose graphing programs such as GraphPad Prism or Microsoft Excel. However, this approach, in addition of being time-consuming and prone to human error, can lead to misleading estimates of kinetic parameters, particularly when unweighted regression analyses of transformed kinetic data are performed [12]. A recently developed tool designed to overcome part of the above pointed drawbacks is ICEKAT [13], a browser-based tool for semi-automated initial rate calculations. The user can upload series of kinetic traces and download the resulting table of initial rates. Although this resource represents a valuable tool, the offered menu of methods for estimating the kinetic parameters (KM and Vmax) is limited. Although, in general, the performance regarding availability and speed of web-based tools is beyond the control of the user, in the case of ICEKAT the source code is freely available, which opens the possibility to run the software locally if wished.

Herein, we present renz, an R package specifically designed for the analysis of Michaelis–Menten kinetic data. We have taken advantage of the fact that R is a free, popular and powerful environment for statistical computing and graphics. Furthermore, renz package compiles and runs on a wide variety of UNIX platforms, Windows and MacOS as a stand-alone program (Table 1), which allows fast and efficient performance of the utilities implemented in this package. Finally, the package is accompanied, in addition to the standard documentation, by diverse vignettes that illustrate the use of the software and guide the user on the most suitable method, discussing the pros and cons of the different alternative analyses available.

Table 1 Comparison of different software programs for fitting enzyme kinetic data


What renz is and how to start using it

renz is an R package containing utilities for the analysis of enzyme kinetic data. It is currently distributed as a platform independent source code under the GPL version 3 license. The user, before attempting to install renz, must have a relatively recent version of R (≥ 4.0.0) installed and running on their system. Detailed instructions for obtaining and installing R on various platforms (Mac, Linux, and PC) can be found on the R home page ( We also encourage to install RStudio (, a useful integrated development environment for R. Afterwards, open R and type into the console: install.packages(“renz”). At this point the user is ready to start exploring the utilities provided by renz. It should be noted that, if the user has not previously installed the knitr and rmarkdown packages, some warnings may be thrown by the console during the installation of renz. In that case, the user can either ignore them (the performance of renz will not be affected) or, alternatively, opt to install knitr and rmarkdown, required for properly formatting the documentation related to the accompanying vignettes. To guide the exploration of renz, we have made five vignettes, through which we can navigate with our browser. For instance, when you type into the R console browseVignettes(“renz”), your browser should show an appearance like the one shown in Fig. 1. The first of these vignettes, entitled “Enzyme Kinetic Parameters” presents an overview of the different methods implemented into the current package to estimate KM and Vmax of a Michaelis–Menten enzyme. The remaining vignettes present, in a brief way, the theoretical principles of the different methods available to determine the kinetic parameters and illustrate with examples the use of the package functions that carry out the corresponding analyses.

Fig. 1
figure 1

The accompanying vignettes can be visualized and navigated through the user browser. When typing into the R console: browseVignettes(“renz”), the user’s browser opens a new tab offering a menu like the one shown in this figure

Results and discussion

An overview of methods to estimate the kinetic parameters

The methods for estimating KM and Vmax can be grouped into four categories (Fig. 2), according to two criteria: (i) which is the considered dependent variable, and (ii) whether it is necessary to transform the original variables.

Fig. 2
figure 2

Classification of available methods to estimate the kinetic parameters of a Michaelis–Menten enzyme. The clustering of methods attends to two binary criteria: (i) whether or not it is necessary to transform the original variable, and (ii) what the dependent variable determined experimentally is, substrate concentration or initial rate. MM stands for Michaelis–Menten

Regarding the first of these criteria, when the method uses data where the substrate concentration is the dependent variable that evolves over time (independent variable), then a single progress curve is enough to determine the kinetic parameters. That is, the data consist of a set of (t, [S]) points. Those researchers interested in designing an experiment to collect and analyze this type of data, could benefit from the advice provided in [14]. Alternatively, when the method uses the initial velocity (dependent variable) as a function of the substrate concentration (independent variable now), several progress curves will be required. In this case, attention should be paid to the experimental design [15], as well as to the procedure to compute the initial rate from the progress curve [16]. In any event, since each initial rate is estimated from the early linear portion of each progress curve, we will need as many progress curves as ([S], v) points we want to use in order to determine KM and Vmax. Therefore, in absence of any other consideration, the first group of methods, where the entire progress curve is fitted to an integrated rate equation is preferable because they imply less work on the bench, and data are used more efficiently than in the initial rate assay [17, 18]. Furthermore, they can be more accurate because they avoid underestimation of initial rates, particularly under conditions where [S]/KM is low [19].

With respect to the second criteria, those methods that do not transform the original variables are preferable. The reason is that we are dealing with experimental data, that is, the dependent variable is always affected by an indeterminate amount of error. When this variable is transformed, errors will propagate in a non-homogeneous way. In other words, error propagation strongly depends on the algebraic manipulations introduced to transform the original variables. This error distortion, when ignored, can lead to severe bias in the estimation of KM and Vmax. In the vignette “Linearized Michaelis–Menten Equations” we illustrate, using real experimental data, how easily one can be misled by this bias related to uncorrected error propagation.

The package renz offers functions that allow to estimate the enzyme kinetic parameters using any of the four approaches we have introduced above (Fig. 3). To check the format of the required input data and the format of the returned output, the user can type into the R console the name of the function preceded by a question mark, for instance: ?dir.MM. A more detailed documentation for each function, including examples, can be found in the provided vignettes (Fig. 1).

Fig. 3
figure 3

Summary of functions from renz available to determine the kinetic parameters of a Michaelis–Menten enzyme. The functions are clustered following the same criteria used in Fig. 2. Help (standard documentation) for the use of each function can be found within the package, typing into the R console the question mark followed, without spaces, by the name of the function. For instance: ?lb. More detailed documentation and examples can be found in the specific vignettes, as shown in Fig. 1

Case-study: use of initial rates to estimate the kinetic parameters of the β-galatosidase enzyme

In this section we want to emphasize the need to rigorously analyze experimental data to avoid misleading estimates of kinetic parameters. Given the specific aim of this section, many relevant information that must be reported when publishing an enzyme function article has been omitted herein. In this regard, a complete and useful guide can be found at [20, 21]. We used β-galatosidase (EC. as an enzyme model, which catalyzes the hydrolysis of o-nitrophenyl-β-d-galactopyranoside (ONPG) to galactose and o-nitrophenol. The influence of the substrate concentration on the initial rate of this reaction was determined by octuplicate at 10 different ONPG concentrations. Full data are included in renz package and can be obtained typing into the R console: ONPG. However, in this section we will focus our attention on a single dataset (Table 2) that illustrates well how easily wrong conclusions can be drawn when the analysis is not adequate.

Table 2 Initial rate versus substrate concentration

If we take double-reciprocal from data shown in Table 2 and fit them to a line equation, as many general-purpose software users would do, the estimated parameters are: KM = 5.6 mM and Vmax = 0.34 mM min−1. However, if we implement weighted linear regression when performing our double-reciprocal analysis (i.e., lb(data, weighting = TRUE)), the obtained parameters are now: KM = 2.5 mM and Vmax = 0.19 mM min−1 (Fig. 4a), which represent values more in line with those obtained when data are directly fitted to the Michaelis–Menten equation using non-linear least square techniques (i.e., dir.MM(data)): KM = 2.5 mM and Vmax = 0.18 mM min−1 (Fig. 4b).

Fig. 4
figure 4

Weighted linear regression and non-linear regression avoid the risk of obtaining biased kinetic parameters. a Using the data given in Table 2, the double-reciprocal plots obtained without weights (red line) and with weights (blue line) are shown. The inset focus on the points with higher weights in the weighted regression analysis. b The function dir.MM() from the renz package also allows for direct non-linear regression analysis. The curve and parameters obtained using this function are shown in this plot

Case-study: predicting the evolution of substrate concentration over time

For most enzyme-catalyzed hydrolysis reactions, the kinetic parameters can be estimated using the integrated Michaelis–Menten equation.

$$\frac{1}{t}\ln \frac{{S_{o} }}{\left[ S \right]} = - \frac{1}{{K_{M} }}\frac{{\left( {S_{o} - \left[ S \right]} \right)}}{t} + \frac{{V_{\max} }}{{K_{M} }}$$

With So representing the initial substrate concentration, while [S] is the substrate concentration at time t. KM and Vmax can be obtained after transforming the (\(t, \left[ S \right]\)) data into \(\left( {\frac{{\left( {S_{o} - \left[ S \right]} \right)}}{t},\frac{1}{t}\ln \frac{{S_{o} }}{\left[ S \right]}} \right)\) and fitting them to Eq. (2). Of course, this task can be conveniently performed all in one go, using a single command from the renz package: int.MM(data). Although the use of this function saves time and minimizes the risk of introducing human error, users can still turn to a general-purpose program to perform linear fit. In either case, as we have discussed above, the algebraic manipulations that accompany the linearization of equations, in which the original variables (affected by experimental error) are not linearly related, entail some bias. Therefore, to obtain robust estimate of the kinetic parameters, it is much more convenient to fit (\(t, \left[ S \right]\)) data to an explicit solution for the integrated Michaelis–Menten equation known as the Schnell-Mendoza equation [22].

Unfortunately, Eq. (2) is a so-called implicit equation, which cannot be solved analytically for [S] = f(t) with elementary mathematics [23]. However, implicit equations where the variable appears accompanied by the natural logarithm of itself, can be solved resorting to the mathematical concept of the Lambert’s W function, which in the case of the integrated Michaelis–Menten equation will lead to the so-called Schnell-Mendoza equation (see the vignette “Michaelis–Menten and the Lambert W function” for details) [22, 24]. Despite the advantages of this approach, the reluctance of many biologists to use non-elementary mathematics and the lack of free and easy-to-use software that implements such an approach, have made it to go unnoticed outside of the specialist community. To help reverse this situation, the package renz includes two functions based on the above exposed approach. On one hand, the function fE.progress() takes as input the experimental (\(t, \left[ S \right]\)) data and fit them to an explicit solution of the integrated Michaelis–Menten equation, providing, in this way, an unbiased estimation of KM and Vmax. On the other hand, the function sE.progress() takes as input the KM and Vmax values for a Michaelis–Menten enzyme and simulate the substrate progression curve (the user is given the option to choose the type and magnitude, including null, of the experimental error). This second function may be useful in the context of enzymology teaching (Fig. 5).

Fig. 5
figure 5

Progress curves for the β-galatosidase catalyzed hydrolysis of ONPG. Each curve has been generated by the command sE.progress (So, time = 30, Km = 2.5, Vm = 0.18) where So represents the initial concentration of ONPG (2 mM: blue curve; 1.5 mM: purple curve; 1 mM: red curve; 0.5 mM: orange curve and 0.1 mM: cyan curve)


While several sophisticated programs that provide support to practicing enzymologists exist, most researchers outside the enzymology field resort to general purpose regression and graphing software to analyze enzyme kinetic data. However, this practice, which often requires prior manipulation (transformation) of the original data to be analyzed, is time-consuming and prone to human error. Even worse, the estimated kinetic parameters can be highly biased when experimental error is not properly accounted for, which is often the situation when nonspecialized software is used. Thus, to facilitate a rigorous but still easy-to-implement analysis of enzyme kinetic data, while avoiding common pitfalls, we have developed a cross-platform software package, renz, that is distributed as free and open-source code. Besides to automate the classical linearization methods (Lineweaver–Burk, Eadie-Hofstee, Hanes-Woolf and Eisenthal-Cornish-Bowden), features include the ability to carry out weighted regression analyses that, in most cases, substantially improves the estimation of kinetic parameters. To avoid data transformations and the potential biases introduced by them, the package also offers functions that directly fit data to the Michaelis–Menten equation, either using ([S], v) or (t, [S]) data (differential and integrated forms of the Michaelis–Menten equation, respectively). Utilities to simulate the substrate concentration evolution over time, making use of the Lambert W function, are also provided. The package is accompanied by five vignettes, which are intended to guide the user in choosing the appropriate method in each case, as well as providing basic theoretical notions to allow a critical interpretation of the obtained results and their robustness. Overall, the current software, in addition to serving as a convenient program for a broad spectrum of researchers in the life sciences field, is also a useful resource for teaching enzymology.

Availability and requirements

Project name: R package for the analysis of kinetic data from enzyme-catalyzed reactions (renz).

Project home page:

Operating system(s): Platform independent.

Programming language: R.

Other requirements: N/A.

License: GPL-2, GPL-3.

Any restriction to use by non-academics: N/A.

Availability of data and materials

The program described herein is freely available at In addition, all source code is present in the associated Bitbucket repository, located at The kinetic data use for the case-study are included in the package and can be obtained as a data frame typing ‘ONPG’ into the R console.





  1. Sols A. Los enzimas, agentes de la vida. Ensayo Ed Fund Juan March. 1977;3021.

  2. Antolin AA, Cascante M. AI delivers Michaelis constants as fuel for genome-scale metabolic models. PLOS Biol. 2021;19:4–7.

    Article  CAS  Google Scholar 

  3. Kroll A, Engqvist MKM, Heckmann D, Lercher MJ. Deep learning allows genome-scale prediction of Michaelis constants from structural features. PLOS Biol. 2021;19:1–21.

    Article  CAS  Google Scholar 

  4. Dourado H, Mori M, Hwa T, Lercher MJ. On the optimality of the enzyme–substrate relationship in bacteria. PLOS Biol. 2021;19:e3001416.

    Article  CAS  PubMed  PubMed Central  Google Scholar 

  5. May O. Industrial enzymes: overview of industrial enzyme applications. In: Andreas Vogel OM, editor. Industrial enzyme applications. Wiley: Hoboken; 2019. p. 3–24.

    Google Scholar 

  6. Michaelis L, Menten ML. Die Kinetik der Invertinwirkung. Biochem Z. 1913;13:333–69.

    Google Scholar 

  7. Briggs GE, Haldane JBS. A note on the kinetics of enzyme action. Biochem J. 1925;19:338–9.

    Article  CAS  Google Scholar 

  8. Johnson K, Goody R. The original Michaelis constant. Biochemistry. 2012;50:8264–9.

    Article  Google Scholar 

  9. Kuzmič P. DynaFit-A software package for enzymology. Methods Enzymol. 2009;467C:247–80.

    Article  Google Scholar 

  10. Johnson KA. Fitting enzyme kinetic data with KinTek global kinetic explorer. 1st ed. Amsterdam: Elsevier; 2009.

    Book  Google Scholar 

  11. Bevc S, Konc J, Stojan J, Hodošček M, Penca M, Praprotnik M, et al. ENZO: A web tool for derivation and evaluation of kinetic models of enzyme catalyzed reactions. PLOS ONE. 2011;6:e22265.

    Article  CAS  Google Scholar 

  12. Aledo JC. Enzyme kinetic parameters estimation: A tricky task? Biochem Mol Biol Educ. 2021;49:633–8.

    Article  CAS  Google Scholar 

  13. Olp MD, Kalous KS, Smith BC. ICEKAT: an interactive online tool for calculating initial rates from continuous enzyme kinetic traces. BMC Bioinform. 2020;21:1–12.

    Article  Google Scholar 

  14. Stroberg W, Schnell S. On the estimation errors of KM and V from time-course experiments using the Michaelis–Menten equation. Biophys Chem. 2016;219:17–27.

    Article  CAS  PubMed  Google Scholar 

  15. Ritchie RJ, Prvan T. A simulation study on designing experiments to measure the Km of Michaelis-Menten kinetics curves. J Theor Biol. 1996;178:239–54.

    Article  CAS  Google Scholar 

  16. Halling PJ. Estimation of initial rate from discontinuous progress data. Biocatal Biotransformation. 2020;38:325–42.

    Article  CAS  Google Scholar 

  17. Varón R, Garcia-Moreno M, Masiá-Pérez J, García-Molina F, García-Cánovas F, Arias E, et al. An alternative analysis of enzyme systems based on the whole reaction time: evaluation of the kinetic parameters and initial enzyme concentration. J Math Chem. 2007;42:789–813.

    Article  Google Scholar 

  18. Duggleby RG. Analysis of enzyme progress curves by nonlinear regression. Methods Enzymol. 1995;249C:61–90.

    Article  Google Scholar 

  19. Moreno J. The use of the integrated Michaelis–Menten equation in the determination of kinetic parameters. Biochem Educ. 1985;13:64–6.

    Article  CAS  Google Scholar 

  20. Gardossi L, Poulsen PB, Ballesteros A, Hult K, Švedas VK, Vasić-Rački D, et al. Guidelines for reporting of biocatalytic reactions. Trends Biotechnol. 2010;28:171–80.

    Article  CAS  Google Scholar 

  21. Tipton KF, Armstrong RN, Bakker BM, Bairoch A, Cornish-Bowden A, Halling PJ, et al. Standards for reporting enzyme data: the STRENDA consortium: what it aims to do and why it should be helpful. Perspect Sci. 2014;1:131–7.

    Article  Google Scholar 

  22. Schnell S, Mendoza C. Closed form solution for time-dependent enzyme kinetics. J Theor Biol. 1997;187:207–12.

    Article  CAS  Google Scholar 

  23. Paar M, Schrabmair W, Mairold M, Oettl K, Reibnegger G. Global regression using the explicit solution of Michaelis–Menten kinetics employing Lambert’s W function: high robustness of parameter estimates. ChemistrySelect. 2019;4:1903–8.

    Article  CAS  Google Scholar 

  24. Goličnik M. On the Lambert W function and its utility in biochemical kinetics. Biochem Eng J. 2012;63:116–23.

    Article  Google Scholar 

Download references


The author is in debt to Alicia Esteban and Elena Aledo for helpful discussion and suggestions during the preparation of this work.


This work has not received any type of funding.

Author information

Authors and Affiliations



JCA designed and wrote the code for renz package. Automated unit tests were written by JCA, who also wrote the manuscript and the accompanying vignettes. The authors read and approved the final manuscript.

Corresponding author

Correspondence to Juan Carlos Aledo.

Ethics declarations

Ethics approval and consent to participate

Not applicable.

Consent for publication

Not applicable.

Competing interests

The authors declare that they have no competing interests.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit The Creative Commons Public Domain Dedication waiver ( applies to the data made available in this article, unless otherwise stated in a credit line to the data.

Reprints and Permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Aledo, J.C. renz: An R package for the analysis of enzyme kinetic data. BMC Bioinformatics 23, 182 (2022).

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI:


  • Computer program
  • Progress curve
  • Integrated rate equation
  • Michaelis–Menten
  • KM
  • Vmax