How to CLR-transform longitudinal microbiome data for LMM/GLM analysis?

I’m analyzing longitudinal microbiome data (3 timepoints) from a diet intervention study with three arms. My goals are:

  1. Use linear mixed models (LMMs) to test species changes over time.
  2. Use GLMs to associate Δspecies (T3-T0) with Δphenotype (T3-T0).

I am wondering about that if I CLR-transform each timepoint separately, zeros at the same timepoint get different post-transformation values due to per-timepoint geometric means (e.g., a species absent at both T0 and T3 in one sample gets two different zero values post-CLR). However, if I CLR-transform all timepoints jointly, zeros are handled consistently, but I worry this might obscure timepoint-specific compositional effects.

What is more logical to do here?

Thank you!

Hi @mariamsm,

Great question, although a bit outside the mixOmics forum scope :smiley: .

I asked our research fellow Saritha Kodikara in our team since she is a specialist (and author of LUPINE). Here is her answer:

I don’t think there’s a single “right” answer. I recommend computing one CLR over all timepoints. That way, ΔCLR = CLRₜ₃ – CLRₜ₀ reflects true log-fold changes against a fixed baseline rather than picking up shifts in each timepoint’s geometric mean. Alternatively, you could try the TimeNorm normalisation approach (Luo Q et al. 2024).

  1. Luo, Qianwen, et al. “TimeNorm: a novel normalization method for time course microbiome data.” Frontiers in Genetics 15 (2024)

We hope that helps,

Kim-AAnh

1 Like