Compute PCA of gene expression for an assay, and plot samples coloring by outlier score
Usage
# S4 method for list
plotPCA(
  object,
  assays = names(object),
  nPC = 2,
  robust = FALSE,
  ...,
  maxOutlierZ = 20,
  nrow = 2,
  size = 2,
  fdr.cutoff = 0.05
)Arguments
- object
- dreamletProcessedDatafrom- processAssays()or a- listfrom- residuals()
- assays
- assays / cell types to analyze 
- nPC
- number of PCs to uses for outlier score with - outlier()
- robust
- use robust covariance method, defaults to - FALSE
- ...
- arguments passed to - MASS::cov.rob()
- maxOutlierZ
- cap outlier z-scores at this value for plotting to maintain consistent color scale 
- nrow
- number of rows in plot 
- size
- size passed to - geom_point()
- fdr.cutoff
- FDR cutoff to determine outlier 
Examples
library(muscat)
library(SingleCellExperiment)
data(example_sce)
# create pseudobulk for each sample and cell cluster
pb <- aggregateToPseudoBulk(example_sce,
  assay = "counts",
  cluster_id = "cluster_id",
  sample_id = "sample_id",
  verbose = FALSE
)
# voom-style normalization
res.proc <- processAssays(pb, ~group_id)
#>   B cells...
#> 0.12 secs
#>   CD14+ Monocytes...
#> 0.22 secs
#>   CD4 T cells...
#> 0.15 secs
#>   CD8 T cells...
#> 0.087 secs
#>   FCGR3A+ Monocytes...
#> 0.18 secs
# PCA to identify outliers
# from normalized expression
plotPCA( res.proc, c("B cells", "CD14+ Monocytes"))
 # Run on regression residuals
#-----------------------------
# Regression analysis
fit = dreamlet(res.proc, ~ group_id)
#>   B cells...
#> 0.087 secs
#>   CD14+ Monocytes...
#> 0.12 secs
#>   CD4 T cells...
#> 0.1 secs
#>   CD8 T cells...
#> 0.062 secs
#>   FCGR3A+ Monocytes...
#> 0.15 secs
# Extract regression residuals
residsObj = residuals(fit)
# PCA on residuals
plotPCA( residsObj, c("B cells", "CD14+ Monocytes"))
# Run on regression residuals
#-----------------------------
# Regression analysis
fit = dreamlet(res.proc, ~ group_id)
#>   B cells...
#> 0.087 secs
#>   CD14+ Monocytes...
#> 0.12 secs
#>   CD4 T cells...
#> 0.1 secs
#>   CD8 T cells...
#> 0.062 secs
#>   FCGR3A+ Monocytes...
#> 0.15 secs
# Extract regression residuals
residsObj = residuals(fit)
# PCA on residuals
plotPCA( residsObj, c("B cells", "CD14+ Monocytes"))
