Manhattan plot for genome wide association tests

Share:

Description

Generates a manhattan plot of the results of a genome wide association test.

Usage

1
2
3
manhattanPlot(p, chromosome, 
              ylim = NULL, trunc.lines = TRUE,
              signif = 5e-8, thinThreshold=NULL, pointsPerBin=10000, col=NULL, ...)

Arguments

p

A vector of p-values.

chromosome

A vector containing the chromosome for each SNP.

ylim

The limits of the y axis. If NULL, the y axis is (0, log10(length(p)) + 4).

trunc.lines

Logical value indicating whether to show truncation lines.

signif

Genome-wide significance level for plotting horizontal line. If signif=NULL, no line will be drawn.

thinThreshold

if not NULL, -log10(pval) threshold for thinning points.

pointsPerBin

number of points to plot in each bin if thinThreshold is given. Ignored otherwise.

col

vector containing colors of points; defaults to coloring by chromosome using the colorbrewer Dark2 palette with 8 colors

...

Other parameters to be passed directly to plot.

Details

Plots -log10(p) versus chromosome. Point size is scaled so that smaller p values have larger points.

p must have the same length as chromosome and is assumed to be in order of position on each chromosome. Values within each chromosome are evenly spaced along the X axis.

Plot limits are determined as follows: if ylim is provided, any points with -log10(p) > ylim[2] are plotted as triangles at the maximum y value of the plot. A line will be drawn to indicate trunctation (if trunc.lines == TRUE, the default). If ylim == NULL, the maximum y value is defined as log10(length(p)) + 4).

If requested with thinThreshold, points with -log10(pval) < thinThreshold are thinned before plotting. All points with -log10(pval) >= thinThreshold are displayed. P-values with -log10(pval) < thinThreshold are sampled such that pointsPerBin points are randomly selected from 10 bins with uniform spacing in -log10(pval) space.

Author(s)

Cathy Laurie, Adrienne Stilp

See Also

snpCorrelationPlot

Examples

1
2
3
4
5
n <- 1000
pvals <- sample(-log10((1:n)/n), n, replace=TRUE)
chromosome <- c(rep(1,400), rep(2,350), rep("X",200), rep("Y",50))
manhattanPlot(pvals, chromosome, signif=1e-7)
manhattanPlot(pvals, chromosome, thinThreshold=2)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.