manhattan_plot | R Documentation |
A generic function for manhattan plot.
manhattan_plot(x, ...)
manhattan_plot.default(x, ...)
## S3 method for class 'data.frame'
manhattan_plot(
x,
chromosome = NULL,
outfn = NULL,
signif = c(5e-08, 1e-05),
pval.colname = "pval",
chr.colname = "chr",
pos.colname = "pos",
label.colname = NULL,
highlight.colname = NULL,
chr.order = NULL,
signif.col = NULL,
chr.col = NULL,
highlight.col = NULL,
rescale = TRUE,
rescale.ratio.threshold = 5,
signif.rel.pos = 0.2,
chr.gap.scaling = 1,
color.by.highlight = FALSE,
preserve.position = FALSE,
thin = NULL,
thin.n = 1000,
thin.bins = 200,
pval.log.transform = TRUE,
plot.title = ggplot2::waiver(),
plot.subtitle = ggplot2::waiver(),
plot.width = 10,
plot.height = 5,
plot.scale = 1,
point.size = 0.75,
label.font.size = 2,
max.overlaps = 20,
x.label = "Chromosome",
y.label = expression(-log[10](p)),
...
)
## S3 method for class 'MPdata'
manhattan_plot(
x,
chromosome = NULL,
outfn = NULL,
signif = NULL,
signif.col = NULL,
rescale = TRUE,
rescale.ratio.threshold = 5,
signif.rel.pos = 0.2,
chr.gap.scaling = NULL,
color.by.highlight = FALSE,
label.colname = NULL,
x.label = "Chromosome",
y.label = expression(-log[10](p)),
point.size = 0.75,
label.font.size = 2,
max.overlaps = 20,
plot.title = ggplot2::waiver(),
plot.subtitle = ggplot2::waiver(),
plot.width = 10,
plot.height = 5,
plot.scale = 1,
...
)
## S4 method for signature 'GRanges'
manhattan_plot(
x,
chromosome = NULL,
outfn = NULL,
signif = c(5e-08, 1e-05),
pval.colname = "pval",
label.colname = NULL,
highlight.colname = NULL,
chr.order = NULL,
signif.col = NULL,
chr.col = NULL,
highlight.col = NULL,
rescale = TRUE,
rescale.ratio.threshold = 5,
signif.rel.pos = 0.2,
chr.gap.scaling = 1,
color.by.highlight = FALSE,
preserve.position = FALSE,
thin = NULL,
thin.n = 1000,
thin.bins = 200,
pval.log.transform = TRUE,
plot.title = ggplot2::waiver(),
plot.subtitle = ggplot2::waiver(),
plot.width = 10,
plot.height = 5,
plot.scale = 1,
point.size = 0.75,
label.font.size = 2,
max.overlaps = 20,
x.label = "Chromosome",
y.label = expression(-log[10](p)),
...
)
x |
a |
... |
additional arguments to be passed onto |
chromosome |
a character. This is supplied if a manhattan plot of a single chromosome is
desired. If |
outfn |
a character. File name to save the Manhattan Plot. If |
signif |
a numeric vector. Significant p-value thresholds to be drawn for manhattan plot.
At least one value should be provided. Default value is c(5e-08, 1e-5).
If |
pval.colname |
a character. Column name of |
chr.colname |
a character. Column name of |
pos.colname |
a character. Column name of |
label.colname |
a character. Name of the column in |
highlight.colname |
a character. If you desire to color certain points
(e.g. significant variants) rather than color by chromosome, you can specify the
category in this column, and provide the color mapping in |
chr.order |
a character vector. Order of chromosomes presented in manhattan plot. |
signif.col |
a character vector of equal length as |
chr.col |
a character vector of equal length as chr.order. It contains colors
for the chromosomes. Name of the vector should match |
highlight.col |
a character vector. It contains color mapping for the values from
|
rescale |
a logical. If |
rescale.ratio.threshold |
a numeric. Threshold of that triggers the rescale. |
signif.rel.pos |
a numeric between 0.1 and 0.9. If the plot is rescaled, where should the significance threshold be positioned? |
chr.gap.scaling |
a numeric. scaling factor for gap between chromosome if you desire to change it
if x is an |
color.by.highlight |
a logical. Should the points be colored based on a highlight column? |
preserve.position |
a logical. If |
thin |
a logical. If |
thin.n |
an integer. Number of max points per horizontal partitions of the plot. Defaults to 1000. |
thin.bins |
an integer. Number of bins to partition the data. Defaults to 200. |
pval.log.transform |
a logical. If |
plot.title |
a character. Plot title |
plot.subtitle |
a character. Plot subtitle |
plot.width |
a numeric. Plot width in inches. Corresponds to |
plot.height |
a numeric. Plot height in inches. Corresponds to |
plot.scale |
a numeric. Plot scale. Corresponds to |
point.size |
a numeric. Size of the points. |
label.font.size |
a numeric. Size of the labels. |
max.overlaps |
an integer. Exclude text labels that overlaps too many things. |
x.label |
a character. x-axis label |
y.label |
a character. y-axis label |
This generic function accepts a result of a GWAS in the form of data.frame
or a MPdata
object produced by manhattan_data_preprocess
. The
function will throw an error if another type of object is passed.
Having rescale = TRUE
is useful when there are points with very
high -log10(p.value). In this case, the function attempts to split
the plot into two different scales, with the split happening near the strictest
significance threshold. More precisely, the plot is rescaled when
-log10(pvalue) / (strictest significance threshold) \ge rescale.ratio.threshold
If you wish to add annotation to the points, provide the name of the column to
label.colname
. The labels are added with ggrepel
.
Be careful though: if the annotation column contains
a large number of variants, then the plotting could take a long time, and the
labels will clutter up the plot. For those points with no annotation, you have the
choice to set them as NA
or ""
.
gg
object if is.null(outfn)
, NULL
if !is.null(outf)
gwasdat <- data.frame(
"chromosome" = rep(1:5, each = 30),
"position" = c(replicate(5, sample(1:300, 30))),
"pvalue" = rbeta(150, 1, 1)^5
)
manhattan_plot(
gwasdat, pval.colname = "pvalue", chr.colname = "chromosome", pos.colname = "position",
chr.order = as.character(1:5)
)
mpdata <- manhattan_data_preprocess(
gwasdat, pval.colname = "pvalue", chr.colname = "chromosome", pos.colname = "position",
chr.order = as.character(1:5)
)
manhattan_plot(mpdata)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.