Minimum Inhibitory Concentration (MIC*) Estimation and groupwise comparisons from proportional-odds ordinal regression models.
Package website: https://clstacy.github.io/ordinalMIC/
Companion Website: https://LewisLabUARK.github.io/MICalculator/
Microbiological assays often record growth on an ordered score scale (e.g., 0–4) across concentrations. Treating these scores as binary or continuous can lead to inaccurate conclusions. ordinalMIC turns cumulative-link models (ordinal::clm) into interpretable concentration-scale summaries:
It also provides compact output tables, a ggplot2::autoplot() for quick figures generation.
install.packages("ordinalMIC", repos = c("https://clstacy.r-universe.dev"))
install.packages("ordinalMIC_1.0.0.tar.gz", repos = NULL, type = "source")
ggplot2, stats, utils, cli, tibble, R (>= 4.1)ordinal for modelingFit a proportional-odds ordinal regression to your scored outcomes across concentration. Then use mic_solve() to:
Default transform is log1p for concentration; override if your model uses a different link-side transform.
library(ordinalMIC)
# Example data included with the package
data(yeast_df)
# Fit a proportional-odds model (requires 'ordinal' package)
fit <- ordinal::clm(score ~ strain * treatment + log1p(conc), data = yeast_df)
# Estimate MIC* and compare groups
res <- mic_solve(
clm_fit = fit,
conc_name = "conc",
transform_fun = log1p,
inv_transform_fun = expm1,
alpha = 0.05,
compare_pairs = "all"
)
# Tables
head(tidy.mic_solve(res, table = "mic"))
head(tidy.mic_solve(res, table = "ratio"))
# Plots
ggplot2::autoplot(res, type = "mic")
mic_solve()
ordinal::clm, newdata, conc_name, transform/inverse functionsggplot2::autoplot.mic_solve()
tidy.mic_solve()
Example dataset yeast_df included with the package:
| Column | Type | Description |
|---|---|---|
strain |
factor | Yeast strain (WT, Mut) |
treatment |
factor | Treatment type (None, Salt) |
conc |
numeric | Concentration (e.g., drug concentration) |
score |
ordered | Growth score (0 = no growth, 4 = full growth) |
rep |
factor | Replicate identifier |
log1p); supply both transform and inversenewdata gives groups to estimate MIC*, automatically generated if not given.MIC is the concentration where the predicted probability of “no growth” equals 0.5, computed from the fitted clm.
MIC ratios: differences in predicted log-MIC
DoD ratios: ratio-of-ratios (interaction on log scale)
ordered()
compare_pairs = "share_any"
If you use ordinalMIC in published research, please cite:
Stacy C (2025). ordinalMIC: Minimum Inhibitory Concentration Estimation from Ordinal Regression Models. R package version 1.0.0, https://clstacy.github.io/ordinalMIC/.
sessionInfo() and minimal example for bug reportsMIT License. See LICENSE file for details.