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.