This function carries out principal components analysis (PCA), taking into
account not only the expression levels of genes, but also the variability
in these expression levels.
The various other pumaPCA... functions are called during the execution of pumaPCA
Usage
pumaPCA(
eset
, latentDim = if(dim(exprs(eset))[2] <= 3)
dim(exprs(eset))[[2]]-1
else
3
, sampleSize = if(dim(exprs(eset))[1] <= 1000)
dim(exprs(eset))[[1]]
else
1000 ## Set to integer or FALSE for all
, initPCA = TRUE ## Initialise parameters with PCA
, randomOrder = FALSE ## Update parameters in random order
, optimMethod = "BFGS" ## ?optim for details of methods
, stoppingCriterion = "deltaW"## can also be "deltaL"
, tol = 1e-3 ## Stop when delta update < this
, stepChecks = FALSE ## Check likelihood after each update?
, iterationNumbers = TRUE ## Show iteration numbers?
, showUpdates = FALSE ## Show values after each update?
, showTimings = FALSE ## Show timings after each update?
, showPlot = FALSE ## Show projection plot after each update?
, maxIters = 500 ## Number of EM iterations.
, transposeData = FALSE ## Transpose eset matrices?
, returnExpectations = FALSE
, returnData = FALSE
, returnFeedback = FALSE
, pumaNormalize = TRUE
)
Arguments
eset
An object of class ExpressionSet.
latentDim
An integer specifying the number of latent dimensions (kind of like the number of principal components).
sampleSize
An integer specifying the number of probesets to sample (default is 1000), or FALSE, meaning use all the data.
initPCA
A boolean indicating whether to initialise using standard PCA (the default, and generally quicker and recommended).
randomOrder
A boolean indicating whether the parameters should be updated in a random order (this is generally not recommended, and the default is FALSE).
optimMethod
See ?optim for details of methods.
stoppingCriterion
If set to "deltaW" will stop when W changes by less than tol. If "deltaL" will stop when L (lambda) changes by less than tol.
tol
Tolerance value for stoppingCriterion.
stepChecks
Boolean. Check likelihood after each update?
iterationNumbers
Boolean. Show iteration numbers?
showUpdates
Boolean. Show values after each update?
showTimings
Boolean. Show timings after each update?
showPlot
Boolean. Show projection plot after each update?
maxIters
Integer. Maximum number of EM iterations.
transposeData
Boolean. Transpose eset matrices?
returnExpectations
Boolean. Return expectation values?
returnData
Boolean. Return expectation data?
returnFeedback
Boolean. Return feedback on progress of optimisation?
pumaNormalize
Boolean. Normalise data prior to running algorithm (recommended)?
Value
An object of class pumaPCARes
Author(s)
Richard D. Pearson
See Also
Related methods pumaDE, createDesignMatrix and createContrastMatrix
Examples
# Next 4 lines commented out to save time in package checks, and saved version used
# if (require(affydata)) {
# data(Dilution)
# eset_mmgmos <- mmgmos(Dilution)
# }
data(eset_mmgmos)
pumapca_mmgmos <- pumaPCA(eset_mmgmos)
plot(pumapca_mmgmos)
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(puma)
Loading required package: oligo
Loading required package: BiocGenerics
Loading required package: parallel
Attaching package: 'BiocGenerics'
The following objects are masked from 'package:parallel':
clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
clusterExport, clusterMap, parApply, parCapply, parLapply,
parLapplyLB, parRapply, parSapply, parSapplyLB
The following objects are masked from 'package:stats':
IQR, mad, xtabs
The following objects are masked from 'package:base':
Filter, Find, Map, Position, Reduce, anyDuplicated, append,
as.data.frame, cbind, colnames, do.call, duplicated, eval, evalq,
get, grep, grepl, intersect, is.unsorted, lapply, lengths, mapply,
match, mget, order, paste, pmax, pmax.int, pmin, pmin.int, rank,
rbind, rownames, sapply, setdiff, sort, table, tapply, union,
unique, unsplit
Loading required package: oligoClasses
Welcome to oligoClasses version 1.34.0
Loading required package: Biobase
Welcome to Bioconductor
Vignettes contain introductory material; view with
'browseVignettes()'. To cite Bioconductor, see
'citation("Biobase")', and for packages 'citation("pkgname")'.
Loading required package: Biostrings
Loading required package: S4Vectors
Loading required package: stats4
Attaching package: 'S4Vectors'
The following objects are masked from 'package:base':
colMeans, colSums, expand.grid, rowMeans, rowSums
Loading required package: IRanges
Loading required package: XVector
================================================================================
Welcome to oligo version 1.36.1
================================================================================
Loading required package: mclust
Package 'mclust' version 5.2
Type 'citation("mclust")' for citing this R package in publications.
> png(filename="/home/ddbj/snapshot/RGM3/R_BC/result/puma/pumaPCA.Rd_%03d_medium.png", width=480, height=480)
> ### Name: pumaPCA
> ### Title: PUMA Principal Components Analysis
> ### Aliases: pumaPCA pumaPCAEstep pumaPCALikelihoodBound
> ### pumaPCALikelihoodCheck pumaPCANewtonUpdateLogSigma newtonStep
> ### pumaPCARemoveRedundancy pumaPCASigmaGradient pumaPCASigmaObjective
> ### pumaPCAUpdateCinv pumaPCAUpdateM pumaPCAUpdateMu pumaPCAUpdateW
> ### Keywords: multivariate
>
> ### ** Examples
>
> # Next 4 lines commented out to save time in package checks, and saved version used
> # if (require(affydata)) {
> # data(Dilution)
> # eset_mmgmos <- mmgmos(Dilution)
> # }
> data(eset_mmgmos)
>
> pumapca_mmgmos <- pumaPCA(eset_mmgmos)
Iteration number: 1
Iteration number: 2
Iteration number: 3
Iteration number: 4
> plot(pumapca_mmgmos)
>
>
>
>
>
> dev.off()
null device
1
>