skbio.diversity.alpha.michaelis_menten_fit(counts, num_repeats=1, params_guess=None)[source]

Calculate Michaelis-Menten fit to rarefaction curve of observed OTUs.

State: Experimental as of 0.4.0.

The Michaelis-Menten equation is defined as:


where \(n\) is the number of individuals and \(S\) is the number of OTUs. This function estimates the \(S_{max}\) parameter.

The fit is made to datapoints for \(n=1,2,...,N\), where \(N\) is the total number of individuals (sum of abundances for all OTUs). \(S\) is the number of OTUs represented in a random sample of \(n\) individuals.

  • counts (1-D array_like, int) – Vector of counts.

  • num_repeats (int, optional) – The number of times to perform rarefaction (subsampling without replacement) at each value of \(n\).

  • params_guess (tuple, optional) – Initial guess of \(S_{max}\) and \(B\). If None, default guess for \(S_{max}\) is \(S\) (as \(S_{max}\) should be >= \(S\)) and default guess for \(B\) is round(N / 2).


S_max – Estimate of the \(S_{max}\) parameter in the Michaelis-Menten equation.

Return type



There is some controversy about how to do the fitting. The ML model given in 1 is based on the assumption that error is roughly proportional to magnitude of observation, reasonable for enzyme kinetics but not reasonable for rarefaction data. Here we just do a nonlinear curve fit for the parameters using least-squares.



Raaijmakers, J. G. W. 1987 Statistical analysis of the Michaelis-Menten equation. Biometrics 43, 793-803.