QQ plot is an essential tool in GWAS. Here I would like to organize some basic ideas of QQ plot and its application in GWAS.

### What is QQ plot?

QQ plot is a graphic tool for testing if a set of data came from some theoretical distribution.

### Examples in R

• qqnorm

Test if a set of data comes from normal distribution. In R,

qqnorm(trees$Height) • qqplot Create a QQ plot for any distribution. In R, y <- qunif(ppoints(length(randu$x)))
qqplot(randu$x,y) qqplot(qnorm(ppoints(30)), qchisq(ppoints(30),df=3)) qqplot(qnorm(ppoints(30)), qcauchy(ppoints(30))) ### QQ plot in GWAS Plot quantile distribution of observed p-values (on the y-axis) versus the quantile distribution of expected p-values(uniform distribution) • null GWAS: straight line • strong association: a line with a tail library(data.table) pvals <- fread('https://broadinstitute.org/files/shared/diabetes/scandinavs/DGI_chr3_pvals.txt') observed <- sort(pvals$PVAL)
lobs <- -(log10(observed))
expected <- c(1:length(observed))
lexp <- -(log10(expected / (length(expected)+1)))
plot(c(0, 7), c(0, 7), col = 'red', lwd = 3, type = 'l', xlab = 'Expected (-logP)', ylab = 'Observed (-logP)', xlim = c(0, 7), ylim = c(0, 7), las = 1, xaxs = 'i', yaxs = 'i', bty = 'l')
points(lexp, lobs, pch = 23, cex = .4, bg = 'black') 