Perform differential expression analysis on SCE object

runDEAnalysis(method = c("wilcox", "MAST", "DESeq2", "Limma", "ANOVA"), ...)

runDESeq2(
  inSCE,
  useAssay = "counts",
  useReducedDim = NULL,
  index1 = NULL,
  index2 = NULL,
  class = NULL,
  classGroup1 = NULL,
  classGroup2 = NULL,
  analysisName,
  groupName1,
  groupName2,
  covariates = NULL,
  fullReduced = TRUE,
  onlyPos = FALSE,
  log2fcThreshold = NULL,
  fdrThreshold = NULL,
  minGroup1MeanExp = NULL,
  maxGroup2MeanExp = NULL,
  minGroup1ExprPerc = NULL,
  maxGroup2ExprPerc = NULL,
  overwrite = FALSE
)

runLimmaDE(
  inSCE,
  useAssay = "logcounts",
  useReducedDim = NULL,
  index1 = NULL,
  index2 = NULL,
  class = NULL,
  classGroup1 = NULL,
  classGroup2 = NULL,
  analysisName,
  groupName1,
  groupName2,
  covariates = NULL,
  onlyPos = FALSE,
  log2fcThreshold = NULL,
  fdrThreshold = NULL,
  minGroup1MeanExp = NULL,
  maxGroup2MeanExp = NULL,
  minGroup1ExprPerc = NULL,
  maxGroup2ExprPerc = NULL,
  overwrite = FALSE
)

runANOVA(
  inSCE,
  useAssay = "logcounts",
  useReducedDim = NULL,
  index1 = NULL,
  index2 = NULL,
  class = NULL,
  classGroup1 = NULL,
  classGroup2 = NULL,
  analysisName,
  groupName1,
  groupName2,
  covariates = NULL,
  onlyPos = FALSE,
  log2fcThreshold = NULL,
  fdrThreshold = NULL,
  minGroup1MeanExp = NULL,
  maxGroup2MeanExp = NULL,
  minGroup1ExprPerc = NULL,
  maxGroup2ExprPerc = NULL,
  overwrite = FALSE
)

runMAST(
  inSCE,
  useAssay = "logcounts",
  useReducedDim = NULL,
  index1 = NULL,
  index2 = NULL,
  class = NULL,
  classGroup1 = NULL,
  classGroup2 = NULL,
  analysisName,
  groupName1,
  groupName2,
  covariates = NULL,
  onlyPos = FALSE,
  log2fcThreshold = NULL,
  fdrThreshold = NULL,
  minGroup1MeanExp = NULL,
  maxGroup2MeanExp = NULL,
  minGroup1ExprPerc = NULL,
  maxGroup2ExprPerc = NULL,
  overwrite = FALSE,
  check_sanity = TRUE
)

runWilcox(
  inSCE,
  useAssay = "logcounts",
  useReducedDim = NULL,
  index1 = NULL,
  index2 = NULL,
  class = NULL,
  classGroup1 = NULL,
  classGroup2 = NULL,
  analysisName,
  groupName1,
  groupName2,
  covariates = NULL,
  onlyPos = FALSE,
  log2fcThreshold = NULL,
  fdrThreshold = NULL,
  minGroup1MeanExp = NULL,
  maxGroup2MeanExp = NULL,
  minGroup1ExprPerc = NULL,
  maxGroup2ExprPerc = NULL,
  overwrite = FALSE
)

Arguments

method

Character. Specify which method to use when using runDEAnalysis(). Choose from "wilcox", "MAST", "DESeq2", "Limma", "ANOVA". Default "wilcox".

...

Arguments to pass to specific methods when using the generic runDEAnalysis().

inSCE

SingleCellExperiment inherited object.

useAssay

character. A string specifying which assay to use for the DE regression. Default "counts" for DESeq2, "logcounts" for other methods.

useReducedDim

character. A string specifying which reducedDim to use for DE analysis. Usually a pathway analysis result matrix. Set useAssay to NULL when using. Default NULL.

index1

Any type of indices that can subset a SingleCellExperiment inherited object by cells. Specifies which cells are of interests. Default NULL.

index2

Any type of indices that can subset a SingleCellExperiment inherited object by cells. specifies the control group against those specified by index1. If NULL when using index specification, index1 cells will be compared with all other cells. Default NULL.

class

A vector/factor with ncol(inSCE) elements, or a character scalar that specifies a column name of colData(inSCE). Default NULL.

classGroup1

a vector specifying which "levels" given in class are of interests. Default NULL.

classGroup2

a vector specifying which "levels" given in class is the control group against those specified by classGroup1. If NULL when using annotation specification, classGroup1 cells will be compared with all other cells.

analysisName

A character scalar naming the DEG analysis. Required

groupName1

A character scalar naming the group of interests. Required.

groupName2

A character scalar naming the control group. Required.

covariates

A character vector of additional covariates to use when building the model. All covariates must exist in names(colData(inSCE)). Default NULL.

fullReduced

Logical, DESeq2 only argument. Whether to apply LRT (Likelihood ratio test) with a 'full' model. Default TRUE.

onlyPos

Whether to only output DEG with positive log2_FC value. Default FALSE.

log2fcThreshold

Only out put DEGs with the absolute values of log2FC greater than this value. Default NULL.

fdrThreshold

Only out put DEGs with FDR value less than this value. Default NULL.

minGroup1MeanExp

Only out put DEGs with mean expression in group1 greater then this value. Default NULL.

maxGroup2MeanExp

Only out put DEGs with mean expression in group2 less then this value. Default NULL.

minGroup1ExprPerc

Only out put DEGs expressed in greater then this fraction of cells in group1. Default NULL.

maxGroup2ExprPerc

Only out put DEGs expressed in less then this fraction of cells in group2. Default NULL.

overwrite

A logical scalar. Whether to overwrite result if exists. Default FALSE.

check_sanity

Logical, MAST only argument. Whether to perform MAST's sanity check to see if the counts are logged. Default TRUE.

Value

The input SingleCellExperiment object with metadata(inSCE)$diffExp updated with the results: a list named by analysisName, with $groupNames containing the naming of the two conditions, $useAssay and $useReducedDim storing the matrix name that was used for calculation, $select storing the cell selection indices (logical) for each condition, $result storing a data.frame of the DEGs summary, and $method storing the character method name used.

Details

SCTK provides Limma, MAST, DESeq2, ANOVA and Wilcoxon test for differential expression analysis, where DESeq2 expects non-negtive integer assay input while others expect logcounts.

Condition specification allows two methods: 1. Index level selection. Arguments index1 and index2 will be used. 2. Annotation level selection. Arguments class, classGroup1 and classGroup2 will be used.

See also

See plotDEGHeatmap, plotDEGRegression, plotDEGViolin and plotDEGVolcano for visualization method after running DE analysis.

Examples

data(scExample, package = "singleCellTK")
sce <- subsetSCECols(sce, colData = "type != 'EmptyDroplet'")
sce <- scaterlogNormCounts(sce, assayName = "logcounts")
sce <- runDEAnalysis(method = "Limma", inSCE = sce, groupName1 = "group1",
 groupName2 = "group2", index1 = seq(20), index2 = seq(21,40),
 analysisName = "Limma")