norm_edgeR {benchdamic} | R Documentation

## norm_edgeR

### Description

Calculate scaling factors from a phyloseq object to scale the raw library sizes. Inherited from edgeR `calcNormFactors` function.

### Usage

    norm_edgeR(
      object,
      method = c("TMM", "TMMwsp", "RLE", "upperquartile", "posupperquartile", "none"),
      refColumn = NULL,
      logratioTrim = 0.3,
      sumTrim = 0.05,
      doWeighting = TRUE,
      Acutoff = -1e+10,
      p = 0.75,
      verbose = TRUE,
      ...
    )

### Arguments

`object` | a phyloseq object containing the counts to be normalized.
`method` | normalization method to be used. Choose between `TMM`, `TMMwsp`, `RLE`, `upperquartile`, `posupperquartile` or `none`.
`refColumn` | column to use as reference for `method="TMM"`. Can be a column number or a numeric vector of length `nrow(object)`.
`logratioTrim` | the fraction (0 to 0.5) of observations to be trimmed from each tail of the distribution of log-ratios (M-values) before computing the mean. Used by `method="TMM"` for each pair of samples.
`sumTrim` | the fraction (0 to 0.5) of observations to be trimmed from each tail of the distribution of A-values before computing the mean. Used by `method="TMM"` for each pair of samples.
`doWeighting` | logical, whether to use (asymptotic binomial precision) weights when computing the mean M-values. Used by `method="TMM"` for each pair of samples.
`Acutoff` | minimum cutoff applied to A-values. Count pairs with lower A-values are ignored. Used by `method="TMM"` for each pair of samples.
`p` | numeric value between 0 and 1 specifying which quantile of the counts should be used by `method="upperquartile"`.
`verbose` | an optional logical value. If `TRUE`, information about the steps of the algorithm is printed. Default `verbose = TRUE`.
`...` | other arguments are not currently used.

### Value

A new column containing the chosen edgeR-based scaling factors is added to the phyloseq `sample_data` slot. The effective library sizes to use in downstream analysis must be multiplied by the normalization factors.

### See Also

`calcNormFactors` for details.

`setNormalizations` and `runNormalizations` to fastly set and run normalizations.

### Examples

    set.seed(1)
    # Create a very simple phyloseq object
    counts <- matrix(rnbinom(n = 60, size = 3, prob = 0.5), nrow = 10, ncol = 6)
    metadata <- data.frame("Sample" = c("S1", "S2", "S3", "S4", "S5", "S6"),
                           "group" = as.factor(c("A", "A", "A", "B", "B", "B")))
    ps <- phyloseq::phyloseq(phyloseq::otu_table(counts, taxa_are_rows = TRUE),
                             phyloseq::sample_data(metadata))

    # Calculate the scaling factors
    ps_NF <- norm_edgeR(object = ps, method = "TMM")

    # The phyloseq object now contains the scaling factors:
    scaleFacts <- phyloseq::sample_data(ps_NF)[, "NF.TMM"]
    head(scaleFacts)

    # VERY IMPORTANT: to convert scaling factors to normalization factors
    # multiply them by the library sizes and renormalize.
    normFacts = scaleFacts * phyloseq::sample_sums(ps_stool_16S)
    # Renormalize: multiply to 1
    normFacts = normFacts/exp(colMeans(log(normFacts)))

[Package benchdamic version 1.0.0 Index]