pca_by_var: pca_by_var

View source: R/pca_by_var.R

pca_by_varR Documentation

pca_by_var

Description

Overlay numeric metadata variables onto a PCA score plot. Useful during exploratory analysis

Usage

pca_by_var(
  ddata,
  mdata,
  PC = c(1, 2),
  biplot = TRUE,
  score_colour = FALSE,
  score_label = FALSE
)

Arguments

ddata

dataframe. samples in rows. sample ids in rownames. rows should match mdata

mdata

dataframe. samples in rows. sample ids in rownames. rows should match ddata. Variables can be numeric, characters, or factors

PC

numeric vector of length 2. specifies the PCs to plot. default is c(1,2)

biplot

logical. show PCA as score plot or biplot

score_colour

string. colour data points on score/biplot. should be column name in mdata. When set to FALSE, data points are black. Default FALSE

score_label

string. label data ponts on score/biplot. should be column name in mdata. When set to FALSE, data ponts are not labelled. Default FALSE

Value

named list of plots. First plot in list is main_pca. Subsequent plots in list correspond to metadata variables (columns in metadata)

Examples


set.seed(1)
data(dss_example)
ddata <- dss_example$merged_abundance_id[,2:26]
rownames(ddata) <- dss_example$merged_abundance_id[,1]
ddata <- as.data.frame(t(ddata))

mdata <- dss_example$metadata
mdata <- mdata[match(rownames(ddata), mdata$sampleID),]

# creating some dummy metadata variable
mdata$var1 <- rep(rnorm(5, 25, 3), each=5)
mdata$var2 <- rep(rnorm(5, 3, 0.5), 5)
mdata$var3 <- as.factor(rep(letters[1:5], each=5))
mdata <- mdata[,c('Phenotype','var1','var2','var3')]
p_list <- pca_by_var(ddata, mdata)

# biplot
p_list$main_pca
# pca with metadata variables overlayed
p_list$Phenotype
p_list$var1
p_list$var2
p_list$var3

# can use cowplot::plot_grid to put all plots into one
cowplot::plot_grid(plotlist=list(p_list$Phenotype, p_list$var1, p_list$var2, p_list$var3))

OxfordCMS/OCMSutility documentation built on Feb. 27, 2025, 8:19 p.m.