Learn R Programming

GWASTools (version 1.18.0)

manhattanPlot: Manhattan plot for genome wide association tests

Description

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

Usage

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.

See Also

snpCorrelationPlot

Examples

Run this code
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)

Run the code above in your browser using DataLab