Skip to contents

Generate principal component analysis data that can be used in downstream analyses.

Usage

generatePCs(mat, vars, nFeatures)

Arguments

mat

A data matrix where rows are features and columns are samples

vars

A vector of gene variances (can calculate using RGenEDA::plotVariance) or gene names

nFeatures

Number of top features to generate principal components on.

Value

A list consisting of 3 slots: Loadings, Eigenvectors, and percent_var

Examples

data(Snail1KO)
counts <- as.matrix(Snail1KO$rawCounts)
counts <- counts[rowSums(counts >= 10) >= 3, ]
meta <- Snail1KO$metadata
rownames(meta) <- meta$Sample
norm <- log2(t(t(counts) / colSums(counts)) * 1e6 + 1)
obj <- GenEDA(normalized = norm, metadata = meta, counts = counts)
vars <- apply(norm, 1, var)
pcs <- generatePCs(norm, vars, nFeatures = 1000)
#> Percent variations:
#> PC1: 88.56 %
#> PC2: 5.9 %
#> PC3: 2.91 %
#> PC4: 1.55 %
#> PC5: 1.08 %
#> PC6: 0 %
pcs$percent_var
#>       PC1       PC2       PC3       PC4       PC5       PC6 
#> "88.56 %"   "5.9 %"  "2.91 %"  "1.55 %"  "1.08 %"     "0 %"