snpgdsPCASampLoading | R Documentation |
To calculate the sample eigenvectors using the specified SNP loadings
snpgdsPCASampLoading(loadobj, gdsobj, sample.id=NULL, num.thread=1L,
verbose=TRUE)
loadobj |
a |
gdsobj |
an object of class |
sample.id |
a vector of sample id specifying selected samples; if NULL, all samples are used |
num.thread |
the number of CPU cores used |
verbose |
if TRUE, show information |
The sample.id
are usually different from the samples used in the
calculation of SNP loadings.
Returns a snpgdsPCAClass
object, and it is a list:
sample.id |
the sample ids used in the analysis |
snp.id |
the SNP ids used in the analysis |
eigenval |
eigenvalues |
eigenvect |
eigenvactors, “# of samples” x “eigen.cnt” |
TraceXTX |
the trace of the genetic covariance matrix |
Bayesian |
whether use bayerisan normalization |
Or returns a snpgdsEigMixClass
object, and it is a list:
sample.id |
the sample ids used in the analysis |
snp.id |
the SNP ids used in the analysis |
eigenval |
eigenvalues |
eigenvect |
eigenvactors, “# of samples” x “eigen.cnt” |
afreq |
allele frequencies |
Xiuwen Zheng
Patterson N, Price AL, Reich D (2006) Population structure and eigenanalysis. PLoS Genetics 2:e190.
Zhu, X., Li, S., Cooper, R. S., and Elston, R. C. (2008). A unified association analysis approach for family and unrelated samples correcting for stratification. Am J Hum Genet, 82(2), 352-365.
snpgdsPCA
, snpgdsPCACorr
,
snpgdsPCASNPLoading
# open an example dataset (HapMap)
genofile <- snpgdsOpen(snpgdsExampleFileName())
sample.id <- read.gdsn(index.gdsn(genofile, "sample.id"))
# first PCA
pca <- snpgdsPCA(genofile, eigen.cnt=8)
snp_load <- snpgdsPCASNPLoading(pca, genofile)
# calculate sample eigenvectors from SNP loadings
samp_load <- snpgdsPCASampLoading(snp_load, genofile, sample.id=sample.id[1:100])
diff <- pca$eigenvect[1:100,] - samp_load$eigenvect
summary(c(diff))
# ~ ZERO
# combine eigenvectors
allpca <- list(
sample.id = c(pca$sample.id, samp_load$sample.id),
snp.id = pca$snp.id,
eigenval = c(pca$eigenval, samp_load$eigenval),
eigenvect = rbind(pca$eigenvect, samp_load$eigenvect),
varprop = c(pca$varprop, samp_load$varprop),
TraceXTX = pca$TraceXTX
)
class(allpca) <- "snpgdsPCAClass"
allpca
# close the genotype file
snpgdsClose(genofile)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.