Variance-aware Michaelis-Menten estimation, model screening,
grouped enzyme-kinetic analyses, and clustered repeated-measurement
workflows. The package implements profile-score estimators under
working variance functions, together with a lightweight cluster-aware
working-covariance extension, Wald and bootstrap confidence intervals,
prediction utilities, and simulation helpers. Related methodology is
discussed by Kim and Ma (2012)
inferMM provides variance-aware Michaelis-Menten estimation and inference for
enzyme-kinetic data with concentration-dependent heteroscedasticity.
The package is designed around a compact workflow:
fit_mm()screen_mm()group_mm()cluster_mm()report_mm()# install.packages("remotes")
remotes::install_github("mijeong-kim/inferMM")
The package ships with two demo datasets.
sdl_demo: self-driving laboratory Michaelis-Menten panelalves_demo: filtered soil exoenzyme kinetics panel from Alves et al. (2021)library(inferMM)
data(sdl_demo)
data(alves_demo)
library(inferMM)
one_curve <- subset(sdl_demo, enzyme == "1111")
fit <- fit_mm(
x = one_curve$s_uM,
y = one_curve$v_uM_per_min,
variance = "sqrt"
)
summary(fit)
confint(fit)
screen <- screen_mm(
x = one_curve$s_uM,
y = one_curve$v_uM_per_min,
quiet = TRUE
)
screen$table[, c("model", "selected_model", "quasi_aic", "quasi_bic", "rmse")]
grouped <- group_mm(
data = sdl_demo,
s = "s_uM",
v = "v_uM_per_min",
groups = "enzyme",
variance_models = c("constant", "log", "sqrt", "cuberoot"),
quiet = TRUE
)
grouped$comparison$best_by_group[
, c("group_label", "model", "selected_model", "quasi_aic", "quasi_bic", "rmse")
]
cluster_fit <- cluster_mm(
data = subset(alves_demo, enzyme == "BG"),
s = "substrate_conc",
v = "activity",
cluster = "core",
variance = "sqrt"
)
summary(cluster_fit)
confint(cluster_fit)
For sparse clustered fits, default interval reporting is intentionally cautious: printed summaries may suppress intervals, and bootstrap intervals should be read as sensitivity analyses rather than routine default inference.
report_mm(fit, interval_type = "confidence")
plot(grouped, interval_type = "confidence")
predict(fit, newdata = seq(0, 80, length.out = 6), interval = "prediction")
R/: package source codeman/: function documentationdata/: bundled .rda demo datainst/extdata/: raw CSV mirrors of the demo datavignettes/: end-to-end workflow vignettetests/: unit testsFor manuscript-oriented simulation code and saved paper outputs, see the
separate repository inferMM-cils-repro.