Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

mhtplot.trunc

Truncated Manhattan plot


Description

To generate truncated Manhattan plot, e.g., of genomewide significance (P values) or a random variable that is uniformly distributed. The rationale of this function is to extend mhtplot() to handle extremely small p values as often seen from a protein GWAS; for R will break down when p <= 1e-324.

Usage

mhtplot.trunc(x, chr = "CHR", bp = "BP", p = NULL, log10p = NULL, z = NULL, snp = "SNP",
                    col = c("gray10", "gray60"),
                    chrlabs = NULL, suggestiveline = -log10(1e-05),
                    genomewideline = -log10(5e-08), highlight = NULL,
                    annotatelog10P = NULL, annotateTop = FALSE,
                    cex.mtext=1.5, cex.text=0.7,
                    mtext.line = 2, cex.y = 1, y.ax.space = 5, y.brk1, y.brk2,
                    delta=0.05,
                    ...)

Arguments

x

A data.frame

chr

Chromosome

bp

Position

p

p values, e.g., "1.23e-600"

log10p

log10(p)

z

z statistic, i.e., BETA/SE

snp

SNP. Pending on the setup it could either of variant or gene ID(s)

col

Colours

chrlabs

Chromosome labels, 1,2,...22,23,24,25

suggestiveline

Suggestive line

genomewideline

Genomewide line

highlight

A list of SNPs to be highlighted

annotatelog10P

Threshold of -log10(P) to annotate

annotateTop

Annotate top

cex.mtext

axis label extension factor

cex.text

SNP label extension factor

mtext.line

position of the y lab

cex.y

y axis numbers

y.ax.space

interval of ticks of the y axis

y.brk1

lower -log10(P) break point

y.brk2

upper -log10(P) break point

delta

a value to enable column(s) of red points

...

other options

Value

The plot is shown on or saved to the appropriate device.

Author(s)

James Peters, Jing Hua Zhao

See Also

Examples

## Not run: 
options(width=120)
require(gap.datasets)
mhtdata <- within(mhtdata, {z=qnorm(p/2, lower.tail=FALSE)})
mhtplot.trunc(mhtdata, chr = "chr", bp = "pos", z = "z", snp = "rsn", 
              y.brk1=10, y.brk2=12, mtext.line=2.5)

# https://portals.broadinstitute.org/collaboration/
# giant/images/0/0f/Meta-analysis_Locke_et_al+UKBiobank_2018.txt.gz
gz <- gzfile("work/Meta-analysis_Locke_et_al+UKBiobank_2018_UPDATED.txt.gz")
BMI <- within(read.delim(gz,as.is=TRUE), {Z <- BETA/SE})
print(subset(BMI[c("CHR","POS","SNP","P")],CHR!=16 & P<=1e-150))
library(Rmpfr)
print(within(subset(BMI, P==0, select=c(CHR,POS,SNP,Z)), 
             {P <- format(2*pnorm(mpfr(abs(Z),100),lower.tail=FALSE));
              Pvalue <- pvalue(Z); log10P <- -log10p(Z)}))
png("BMI.png", res=300, units="in", width=9, height=6)
par(oma=c(0,0,0,0), mar=c(5,6.5,1,1))
mhtplot.trunc(BMI, chr="CHR", bp="POS", z="Z", snp="SNP",
              suggestiveline=FALSE, genomewideline=-log10(1e-8),
              cex.mtext=1.2, cex.text=1.2,
              annotatelog10P=156, annotateTop = FALSE,
              highlight=c("rs13021737","rs17817449","rs6567160"),
              mtext.line=3, y.brk1=200, y.brk2=280, cex.axis=1.2, cex.y=1.2, cex=0.5,
              y.ax.space=20,
              col = c("blue4", "skyblue")
)
dev.off()

## End(Not run)

gap

Genetic Analysis Package

v1.2.3-1
GPL (>= 2)
Authors
Jing Hua Zhao and colleagues with inputs from Kurt Hornik and Brian Ripley
Initial release
2021-4-21

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.