pcaMethods
Dependencies & Environment
Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.
- Version: 2.4.0 · Bioconductor: 3.23 · R: ≥ 4.6
- Depends: Biobase
- Imports: BiocGenerics, Rcpp, MASS
- System requirements: Rcpp
- Install:
BiocManager::install("pcaMethods")
When to Use
- Handling Outliers: When performing PCA on metabolite or microarray data corrupted with extreme values using a robust singular value decomposition (
method="robustPca"). - Missing Value Imputation: When estimating missing values (
NA) in incomplete datasets using Probabilistic PCA (method="ppca") or Nipals (method="nipals"). - Algorithm Comparison: When comparing multiple PCA formulations (e.g., "svd", "ppca", "bpca", "svdImpute", "nipals", "nlpca") on the same
ExpressionSetor matrix using a unifiedpca()interface.
When NOT to Use
- Sparse Single-Cell Data: For single-cell RNA-seq data with high dropout rates, use
scryorGLM-PCAinstead because they model the count distribution directly. - Complete Datasets: For standard, complete matrices without missing values or outliers, use base R's
prcomporirlbabecause they are faster and computationally lighter.
Data Requirements
- Input Format: A numeric matrix,
data.frame, or anExpressionSet(from theBiobasepackage). - Missing Values: Missing data should be represented as
NA. - Normalization: Data is typically mean-centered and scaled (e.g., using the
prep()function withscale="none"andcenter=TRUE) prior to running PCA.
Key Parameters
- method ("svd"): The PCA algorithm to use (e.g., "svd", "robustPca", "ppca", "bpca", "svdImpute", "nipals", "nlpca").
- nPcs (2): Number of principal components to calculate.
- center (TRUE): Logical indicating whether to mean-center the variables.
- scale ("none"): Scaling method to apply in the
prep()function. - maxSteps (1000): Maximum number of iterations for iterative algorithms like NLPCA.
- fold (10): Number of folds for cross-validation when using the
Q2()function. - evalPcs (1:5): The principal components to evaluate when estimating error with
kEstimate(). - em ("nrmsep"): The error metric to use during cross-validation in
kEstimate().
Best Practices
- Pre-processing: Always pre-process data using the
prep()function to handle centering and scaling before runningpca(). - Determine Components: Use cross-validation via the
Q2()function to evaluate the optimal number of principal components to retain. - Outlier Management: When dealing with extreme outliers, set them to
NAand usemethod="ppca", or usemethod="robustPca"directly on the complete data. - Error Estimation: Estimate imputation error using
kEstimate()with cross-validation to ensure the chosen method and number of PCs are appropriate.
Common Pitfalls
- Failing to Center Before Outlier Injection: Creating artificial outliers for testing on un-centered data, which shifts original means and prevents objective comparison. Fix: Use
scale(..., center=TRUE, scale=FALSE)before injecting outliers. - PPCA Instability: PPCA failing to converge or misestimating values in rare cases. Fix: Use a
whileloop checking ifsum(abs(Q2)) > 1to re-run theQ2()function if PPCA becomes unstable. - Non-Numeric Input: Passing a matrix containing character columns or factors to
pca(), causing the algorithms to fail. Fix: Ensure the input matrix orExpressionSetcontains only numeric values.
Alternatives
- missMDA: For PCA and imputation on incomplete datasets using regularized iterative PCA.
- impute: For K-Nearest Neighbors imputation (
impute.knn) of missing microarray data. - FactoMineR: For advanced exploratory multivariate data analysis on complete datasets.
- irlba: For fast, truncated SVD and PCA on extremely large, sparse matrices.
Citations
- Liu, L., Hawkins, D.M., Ghosh, S. and Young, S.S. Robust singular value decomposition analysis of microarray data. PNAS, 2003;100:13167–13172.
- Hawkins, D.M., Liu, L. and Young, S.S. Robust Singular Value Decomposition. National Institute of Statistical Sciences, 2001, Tech Report 122.
References
- Homepage: https://bioconductor.org/packages/pcaMethods
- Vignette: https://bioconductor.org/packages/release/bioc/vignettes/pcaMethods/inst/doc/pcaMethods.pdf
Run this on BioMate
This skill is the knowledge layer — when, why, and how to use pcamethods. To run this analysis on your own data with managed compute, automated QC, and reproducible outputs, use BioMate — free to start.