Description
Dimension Reduction of Non-Normally Distributed Data.
Description
Implements a generalized version of principal components analysis (GLM-PCA) for dimension reduction of non-normally distributed data such as counts or binary matrices. Townes FW, Hicks SC, Aryee MJ, Irizarry RA (2019) <doi:10.1186/s13059-019-1861-6>. Townes FW (2019) <arXiv:1907.02647>.
README.md
R package: glmpca
Generalized PCA for non-normally distributed data. If you find this useful please cite Feature Selection and Dimension Reduction based on a Multinomial Model. (doi:10.1186/s13059-019-1861-6)
A python implementation is also available.
Installation
The glmpca package is available from CRAN. To install the stable release (recommended):
install.packages("glmpca")
To install the development version:
remotes::install_github("willtownes/glmpca")
Usage
library(glmpca)
#create a simple dataset with two clusters
mu<-rep(c(.5,3),each=10)
mu<-matrix(exp(rnorm(100*20)),nrow=100)
mu[,1:10]<-mu[,1:10]*exp(rnorm(100))
clust<-rep(c("red","black"),each=10)
Y<-matrix(rpois(prod(dim(mu)),mu),nrow=nrow(mu))
#visualize the latent structure
res<-glmpca(Y, 2)
factors<-res$factors
plot(factors[,1],factors[,2],col=clust,pch=19)
For more details see the vignettes. For compatibility with Bioconductor, see scry. For compatibility with Seurat objects, see Seurat-wrappers.
Issues and bug reports
Please use https://github.com/willtownes/glmpca/issues to submit issues, bug reports, and comments.