Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(randPedPCA)
## -----------------------------------------------------------------------------
# generate a pedigree object from the example dataset provided
ped <- pedigree(pedMeta2$fid,
pedMeta2$mid,
pedMeta2$id)
pc01 <- rppca(ped, center=TRUE)
plot(pc01, col = factor(pedMeta2$population))
## -----------------------------------------------------------------------------
li <- sparse2spam(getLInv(ped))
pc02 <- rppca(li, center = TRUE)
plot(pc02, col = factor(pedMeta2$population))
## -----------------------------------------------------------------------------
pc03 <- rppca(pedLInv2, center = TRUE)
plot(pc03, col = factor(pedMeta2$population))
## ----echo=F, message=F, fig.dim = c(6, 3)-------------------------------------
set.seed(123345) # set random seed as Hutch++ uses random numbers
ttv <- hutchpp(pedLInv2,num_queries = 100, center = TRUE) # estimate
opar <- par(mfrow=c(1,2))
plot(rppca(ped), main="Un-centred", col=factor(pedMeta2$population))
plot(rppca(ped, center=TRUE, totVar = ttv), main="Centred", col=factor(pedMeta2$population))
par(opar)
## -----------------------------------------------------------------------------
# True total variance computed via the pedigree's inbreeding values
sum(inbreeding(ped) + 1) # "ped" was defined at the top
# Now estimate the total variance (the trace of A) from the corresponding
# L inverse matrix using Hutch++
li <- sparse2spam(getLInv(ped)) # generate L inverse and convert to spam format
set.seed(123345) # set random seed as Hutch++ uses random numbers
hutchpp(li) # Hutch++ with default settings
# for higher accuracy increase num_queries (increases running time)
hutchpp(li,num_queries = 100)
## -----------------------------------------------------------------------------
# Get L, the "data matrix" of a pedigree
ll <- getL(ped)
# centre L (because L is upper triangular, we centre the rows)
llc <- apply(ll, 1, function(x) x - mean(x))
# compute additive relationship matrix of the centred data
ac <- llc %*% t(llc)
sum(diag(ac)) # exact value (would be too expensive to compute for a large pedigree)
# Obtain centred estimate from L inverse using Hutch++
li <- sparse2spam(getLInv(ped)) # generate L inverse and convert to spam format
set.seed(123345) # set random seed as Hutch++ uses random numbers
hutchpp(li,num_queries = 100, center = TRUE) # estimate
## -----------------------------------------------------------------------------
summary(pc02)
## -----------------------------------------------------------------------------
pc04 <- rppca(ped, center=FALSE)
summary(pc04)
## -----------------------------------------------------------------------------
pc05 <- rppca(pedLInv2, center=FALSE, totVar=3521.534)
summary(pc05)
## -----------------------------------------------------------------------------
pc07 <- rppca(ped, center=FALSE, totVar=123)
summary(pc07)
## -----------------------------------------------------------------------------
pc06 <- rppca(ped, center=TRUE)
summary(pc06)
## -----------------------------------------------------------------------------
# No proportions shown by default
pc08 <- rppca(pedLInv2, center=TRUE)
summary(pc08)
## -----------------------------------------------------------------------------
# Only when estimate is supplied
pc09 <- rppca(pedLInv2, center=TRUE, totVar=2673.6)
summary(pc09)
## -----------------------------------------------------------------------------
# PC1 and PC2 are plotted by default
plot(pc06, col=factor(pedMeta2$population), main="My pedigree PCA")
# plot PC1 and PC3 instead
plot(pc06, dims=c(1,3), col=factor(pedMeta2$population), main="My pedigree PCA,\ncustom PCs shown")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.