BASiCS_TestDE {BASiCS} | R Documentation

## Detection of genes with changes in expression

### Description

Function to assess changes in expression between two groups of cells (mean and over-dispersion)

### Usage

    BASiCS_TestDE(
      Chain1,
      Chain2,
      EpsilonM = log2(1.5),
      EpsilonD = log2(1.5),
      EpsilonR = log2(1.5)/log2(exp(1)),
      ProbThresholdM = 2/3,
      ProbThresholdD = 2/3,
      ProbThresholdR = 2/3,
      OrderVariable = c("GeneIndex", "GeneName", "Mu"),
      GroupLabel1 = "Group1",
      GroupLabel2 = "Group2",
      Plot = TRUE,
      PlotOffset = TRUE,
      PlotOffsetType = c("offset estimate", "before-after", "MA plot"),
      Offset = TRUE,
      EFDR_M = 0.05,
      EFDR_D = 0.05,
      EFDR_R = 0.05,
      GenesSelect = rep(TRUE, ncol(Chain1@parameters[["mu"]])),
      min.mean = 1,
      MinESS = 100,
      ...
    )

### Arguments

`Chain1` | an object of class `BASiCS_Chain` containing parameter estimates for the first group of cells
`Chain2` | an object of class `BASiCS_Chain` containing parameter estimates for the second group of cells
`EpsilonM` | Minimum fold change tolerance threshold for detecting changes in overall expression (must be a positive real number). Default value: `EpsilonM = log2(1.5)` (i.e. 50% increase).
`EpsilonD` | Minimum fold change tolerance threshold for detecting changes in biological over-dispersion (must be a positive real number). Default value: `EpsilonM = log2(1.5)` (i.e. 50% increase).
`EpsilonR` | Minimum distance threshold for detecting changes in residual over-dispersion (must be a positive real number). Default value: `EpsilonR= log2(1.5)/log2(exp(1))` (i.e. 50% increase).
`ProbThresholdM` | Optional parameter. Probability threshold for detecting changes in overall expression (must be a positive value, between 0 and 1). If `EFDR_M = NULL`, the posterior probability threshold for the differential mean expression test will be set to `ProbThresholdM`. If a value for `EFDR_M` is provided, the posterior probability threshold is chosen to achieve an EFDR equal to `EFDR_M` and `ProbThresholdM` defines a minimum probability threshold for this calibration (this avoids low values of `ProbThresholdM` to be chosen by the EFDR calibration. Default value `ProbThresholdM = 2/3`, i.e. the probability of observing a log2-FC above `EpsilonM` must be at least twice the probality of observing the complementary event (log2-FC below `EpsilonM`).
`ProbThresholdD` | Optional parameter. Probability threshold for detecting changes in cell-to-cell biological over-dispersion (must be a positive value, between 0 and 1). Same usage as `ProbThresholdM`, depending on the value provided for `EFDR_D`. Default value `ProbThresholdD = 2/3`.
`ProbThresholdR` | Optional parameter. Probability threshold for detecting changes in residual over-dispersion (must be a positive value, between 0 and 1). Same usage as `ProbThresholdM`, depending on the value provided for `EFDR_R`. Default value `ProbThresholdR = 2/3`.
`OrderVariable` | Ordering variable for output. Possible values: `'GeneIndex'` (default), `'GeneName'` and `'Mu'` (mean expression).
`GroupLabel1` | Label assigned to reference group. Default: `GroupLabel1 = 'Group1'`
`GroupLabel2` | Label assigned to reference group. Default: `GroupLabel2 = 'Group2'`
`Plot` | If `Plot = TRUE`, MA and volcano plots are generated.
`PlotOffset` | If `Plot = TRUE`, the offset effect is visualised.
`PlotOffsetType` | See argument `Type` in `BASiCS_PlotOffset` for more information.
`Offset` | Optional argument to remove a fix offset effect (if not previously removed from the MCMC chains). Default: `Offset = TRUE`.
`EFDR_M` | Target for expected false discovery rate related to the comparison of means. If `EFDR_M = NULL`, EFDR calibration is not performed and the posterior probability threshold is set equal to `ProbThresholdM`. Default `EFDR_M = 0.05`.
`EFDR_D` | Target for expected false discovery rate related to the comparison of dispersions. If `EFDR_D = NULL`, EFDR calibration is not performed and the posterior probability threshold is set equal to `ProbThresholdD`.Default `EFDR_D = 0.05`.
`EFDR_R` | Target for expected false discovery rate related to the comparison of residual over-dispersions. If `EFDR_R = NULL`, EFDR calibration is not performed and the posterior probability threshold is set equal to `ProbThresholdR`.Default `EFDR_D = 0.05`.
`GenesSelect` | Optional argument to provide a user-defined list of genes to be considered for the comparison. Default: `GenesSelect = rep(TRUE, nGene)` When used, this argument must be a vector of `TRUE` (include gene) / `FALSE` (exclude gene) indicator, with the same length as the number of intrinsic genes and following the same order as how genes are displayed in the table of counts. This argument is necessary in order to have a meaningful EFDR calibration when the user decides to exclude some genes from the comparison.
`min.mean` | Minimum mean expression threshold required for inclusion in offset calculation. Similar to 'min.mean' in 'scran::computeSumFactors'. This parameter is only relevant with 'Offset = TRUE'.
`MinESS` | The minimum effective sample size for a gene to be included in the tests for differential expression. This helps to remove genes with poor mixing from differential expression tests. Default is 100. If set to NA, genes are not checked for effective sample size before differential expression tests are performed.
`...` | Optional parameters.

### Value

`BASiCS_TestDE` returns an object of class `BASiCS_ResultsDE`

### Author(s)

Catalina A. Vallejos cnvallej@uc.cl

Nils Eling eling@ebi.ac.uk

### Examples

    # Loading two 'BASiCS_Chain' objects (obtained using 'BASiCS_MCMC')
    data(ChainSC)
    data(ChainRNA)

    Test <- BASiCS_TestDE(
      Chain1 = ChainSC, Chain2 = ChainRNA,
      GroupLabel1 = "SC", GroupLabel2 = "P&S",
      EpsilonM = log2(1.5), EpsilonD = log2(1.5),
      OffSet = TRUE
    )

    # Results for the differential mean test
    head(as.data.frame(Test, Parameter = "Mean"))

    # Results for the differential over-dispersion test
    # This only includes genes marked as 'NoDiff' in Test$TableMean
    head(as.data.frame(Test, Parameter = "Disp"))

    # For testing differences in residual over-dispersion, two chains obtained
    # via 'BASiCS_MCMC(Data, N, Thin, Burn, Regression=TRUE)' need to be provided
    data(ChainSCReg)
    data(ChainRNAReg)

    Test <- BASiCS_TestDE(
      Chain1 = ChainSCReg, Chain2 = ChainRNAReg,
      GroupLabel1 = 'SC', GroupLabel2 = 'P&S',
      EpsilonM = log2(1.5), EpsilonD = log2(1.5),
      EpsilonR = log2(1.5)/log2(exp(1)),
      OffSet = TRUE
    )

    ## Plotting the results of these tests
    BASiCS_PlotDE(Test)

[Package BASiCS version 2.2.4 Index]