inst/doc/pca-vignette.R

### R code from vignette source 'pca-vignette.Rnw'

###################################################
### code chunk number 1: get-data
###################################################
require(snpStats)
data(for.exercise)
controls <- rownames(subject.support)[subject.support$cc==0]
use <- seq(1, ncol(snps.10), 10)
ctl.10 <- snps.10[controls,use]


###################################################
### code chunk number 2: xxt-matrix
###################################################
xxmat <- xxt(ctl.10, correct.for.missing=FALSE)


###################################################
### code chunk number 3: eigen
###################################################
evv <- eigen(xxmat, symmetric=TRUE)
pcs <- evv$vectors[,1:5]
evals <- evv$values[1:5]
evals


###################################################
### code chunk number 4: pc-one
###################################################
pop <- subject.support[controls,"stratum"]
par(mfrow=c(1,2))
boxplot(pcs[,1]~pop)
boxplot(pcs[,2]~pop)


###################################################
### code chunk number 5: pre-multiply
###################################################
btr <- snp.pre.multiply(ctl.10, diag(1/sqrt(evals)) %*% t(pcs))


###################################################
### code chunk number 6: post-multiply
###################################################
pcs <- snp.post.multiply(snps.10[,use], t(btr))


###################################################
### code chunk number 7: testing
###################################################
cc <- subject.support$cc
uncorrected <- single.snp.tests(cc, snp.data=snps.10)
corrected <- snp.rhs.tests(cc~pcs[,1], snp.data=snps.10)
par(mfrow=c(1,2),cex.sub=0.85)
qq.chisq(chi.squared(uncorrected,1), df=1)
qq.chisq(chi.squared(corrected), df=1)

Try the snpStats package in your browser

Any scripts or data that you put into this service are public.

snpStats documentation built on Nov. 8, 2020, 10:59 p.m.