lambda_to_iqlr: Transform Lambda into IQLR (Inter-Quantile Log-Ratio)
Description
Takes idea from Wu et al. (citation below) and calculates IQLR for
Lambda, potentially useful if you believe there is an invariant group of
categories (e.g., taxa / genes) that are not changing (in absolute abundance)
between samples. IQLR is defined as
$$IQLR_x = log(x_i/g(IQVF))$$
for i in 1,...,D.
IQVF are the CLR coordinates whose variance is within the inter-quantile range
(defined by probs argument to this function).
A different IQVF is fit for each posteior sample as the IQVFs are calculted
based on posterior estimates for Lambda. The variance of a CLR coordinate
is defined as the norm of each row of Lambda[,focus.cov] (i.e.,
the covariation in Eta, explained by those covariates). This definition of
variance allows uses to exclude variation from technical / trivial sources
in calculation of IQVF/IQLR.
array of dimension (D, Q, iter) where D is number of taxa, Q is number
of covariates, and iter is number of posterior samples.
Arguments
m
object of class pibblefit (e.g., output of pibble)
focus.cov
vector of integers or characters specifying columns (covariates)
of Lambda to include in calculating IQLR (if NULL, default, then uses all covariates)
probs
bounds for categories (i.e., features / genes / taxa) to include in
calculation of iqlr (smaller bounds means more stringent inclusion criteria)
Details
Primarily intended for doing differential expression analysis under
assumption that only small group of categories (e.g., taxa / genes) are changing
References
Jia R. Wu, Jean M. Macklaim, Briana L. Genge, Gregory B. Gloor (2017)
Finding the center: corrections for asymmetry in high-throughput sequencing
datasets. arxiv:1704.01841v1