Skip to contents

Manhattan 图是一种广泛用于展示关联研究结果的散点图。然而,对于非专业用户而言,编写脚本和调整复杂图形的参数通常耗时且繁琐。此外,随着测量特征的不断增加,需要整合来自不同全基因组关联研究的结果。Visualizing_Manhattan函数可以将全基因组关联研究的 P 值结果以 QQ 图的形式展示,既包括传统的矩形模式,也包括新颖的圆形模式。在一个唯一的靶心样式图中,可以交互式地比较来自多个特征的关联结果,从而揭示信号之间的相似性和差异性。附加功能包括:突出显示信号、一组 SNP、染色体可视化和 SNP 周围的候选基因。

Usage

Visualizing_Manhattan(
  Pmap,
  col = c("#4197d8", "#f8c120", "#413496", "#495226", "#d60b6f", "#e66519", "#d581b7",
    "#83d3ad", "#7c162c", "#26755d"),
  bin.size = 1e+06,
  bin.breaks = NULL,
  LOG10 = TRUE,
  pch = 19,
  type = "p",
  band = 1,
  H = 1.5,
  ylim = NULL,
  axis.cex = 1,
  axis.lwd = 1.5,
  lab.cex = 1.5,
  lab.font = 2,
  plot.type = c("m", "c", "q", "d"),
  multracks = FALSE,
  multracks.xaxis = FALSE,
  multraits = FALSE,
  points.alpha = 100L,
  r = 0.3,
  cex = c(0.5, 1, 1),
  outward = FALSE,
  ylab = expression(-log[10](italic(p))),
  ylab.pos = 3,
  xticks.pos = 1,
  mar = c(3, 6, 3, 3),
  mar.between = 0,
  threshold = NULL,
  threshold.col = "red",
  threshold.lwd = 1,
  threshold.lty = 2,
  amplify = TRUE,
  signal.cex = 1.5,
  signal.pch = 19,
  signal.col = NULL,
  signal.line = 2,
  highlight = NULL,
  highlight.cex = 1,
  highlight.pch = 19,
  highlight.type = "p",
  highlight.col = "red",
  highlight.text = NULL,
  highlight.text.col = "black",
  highlight.text.cex = 1,
  highlight.text.font = 3,
  chr.labels = NULL,
  chr.border = FALSE,
  chr.labels.angle = 0,
  chr.den.col = "black",
  chr.pos.max = FALSE,
  cir.band = 1,
  cir.chr = TRUE,
  cir.chr.h = 1.5,
  cir.axis = TRUE,
  cir.axis.col = "black",
  cir.axis.grid = TRUE,
  conf.int = TRUE,
  conf.int.col = NULL,
  file.output = TRUE,
  file.name = "",
  file = c("jpg", "pdf", "tiff", "png"),
  dpi = 300,
  height = NULL,
  width = NULL,
  main = NULL,
  main.cex = 1.5,
  main.font = 2,
  legend.ncol = NULL,
  legend.cex = 1,
  legend.pos = c("left", "middle", "right"),
  box = FALSE,
  verbose = TRUE
)

Arguments

Pmap

数据框,第一列为基因组标记的名称(如SNP),第二列为染色体(CHR),第三列为坐标位置(pos),其余列为各特征的 P 值。

col

一个向量或矩阵,用于指定染色体的颜色。若为向量,则所有特征使用相同颜色;若为矩阵,则每行代表不同特征的颜色,缺失值可用 NA 替代。

bin.size

整数,标记密度图中每个 bin 的大小,以 bp 为单位。

bin.breaks

向量,用于设置密度图图例的断点,例如 seq(min, max, step),范围外的标记数量将用最小值或最大值的颜色绘制。

LOG10

逻辑值,是否将 P 值转换为 log10(P 值) 规模。

pch

整数,点的形状,与 中的 "pch" 相同。

type

字符串,点的类型,可选 "p"(点)、"l"(交叉线)、"h"(垂直线)等,与 中的 "type" 相同。

band

数值,染色体之间的间距,默认值为 1,若为 0,则没有间距。

H

数值,每个圆的高度,代表一个特征,默认值为 1。

ylim

向量 (c(min, max)) 或列表,指定 y 轴的显示范围,可以对不同特征指定不同的 y 轴范围。

axis.cex

数值,控制 X/Y 轴刻度标签的大小。

axis.lwd

数值,控制 X/Y 轴线条的粗细。

lab.cex

数值,控制 X/Y 轴和染色体标签的大小。

lab.font

数值,控制所有轴标签的字体。

plot.type

字符串或向量,可选 "d"(SNP 密度图)、"c"(圆形 Manhattan 图)、"m"(传统 Manhattan 图)、"q"(Q-Q 图),指定要绘制的图类型。

multracks

逻辑值,是否将所有 Manhattan 图绘制在一个文件中,默认为 FALSE。

multracks.xaxis

逻辑值,是否将所有特征的 x 轴添加到图中,默认为 FALSE。

multraits

逻辑值,是否将所有特征绘制在同一轴上,并输出一个文件,默认为 FALSE。

points.alpha

数值,多个特征图中点的透明度,从 0(完全透明)到 255(不透明)。

r

数值,圆的半径(内部半径),默认值为 1。

cex

数值或向量,点的大小,与 中的 "size" 相同,向量的第一个数值控制圆形图中的点大小,第二个控制 Manhattan 图中的点大小,第三个控制 Q-Q 图中的点大小。

outward

逻辑值,是否将圆形 Manhattan 图中的所有点从内部向外部绘制,默认为 FALSE。

ylab

字符串,y 轴的标签。

ylab.pos

数值,y 轴标签与 y 轴的距离。

xticks.pos

数值,x 轴刻度标签与 x 轴的距离。

mar

向量,图形周围的白色空白区域,4 个值分别表示底部、左侧、顶部和右侧的空白。

mar.between

数值,多轨道 Manhattan 图中多个图形之间的距离。

threshold

数值、向量或列表,显著性阈值。例如,Bonferroni 调整方法:threshold=0.01/nrow(Pmap),可以在图上添加多条显著性线;如果为列表,则每个特征可以设置不同的阈值,若为 0 或 NULL,则不添加阈值线。

threshold.col

字符串或向量,阈值线的颜色,也控制 Q-Q 图对角线的颜色。

threshold.lwd

数值或向量,阈值线的宽度,也控制 Q-Q 图对角线的粗细。

threshold.lty

数值或向量,阈值线的类型,也控制 Q-Q 图对角线的线型。

amplify

逻辑值,是否放大显著点,默认为 TRUE。若为 TRUE,则超出最小显著水平的点将被放大。

signal.cex

数值,若 amplify=TRUE,则设置显著点的大小。

signal.pch

数值,若 amplify=TRUE,则设置显著点的形状。

signal.col

字符串,若 amplify=TRUE,则设置显著点的颜色,若为 NULL,则不更改显著点的颜色。

signal.line

数值,显著 SNP 穿过圆形的线的粗细。

highlight

向量或列表,需要突出显示的 SNP 名称,单特征用向量,多特征用列表。

highlight.cex

向量或列表,需要突出显示的 SNP 点的大小。

highlight.pch

向量或列表,需要突出显示的 SNP 点的形状。

highlight.type

向量或列表,需要突出显示的 SNP 点的类型。

highlight.col

向量或列表,需要突出显示的 SNP 点的颜色。

highlight.text

向量或列表,添加到突出显示的 SNP 周围的文本。

highlight.text.col

向量或列表,添加文本的颜色。

highlight.text.cex

数值,添加文本的大小。

highlight.text.font

文本字体,应用于突出显示的 SNP。

chr.labels

向量,密度图和 Manhattan 图中染色体的标签。

chr.border

逻辑值,是否在染色体之间绘制虚线。

chr.labels.angle

数值,旋转 Manhattan 图中 x 轴刻度标签的角度(-90 < chr.labels.angle < 90)。

chr.den.col

字符串、向量或 NULL,SNP 密度的颜色。如果长度大于 1,表示在圆形上绘制的 SNP 密度条颜色;若为 NULL,则密度条不会附加到 Manhattan 图的底部。

chr.pos.max

逻辑值,染色体的物理位置是否包含染色体的最大长度。

cir.band

数值,圆形之间的间距,默认值为 1。

cir.chr

逻辑值,是否在圆形外缘绘制表示染色体的边界,默认值为 TRUE。

cir.chr.h

数值,边界的宽度,如果 cir.chr=FALSE,则此参数无效。

cir.axis

逻辑值,是否为每个圆形添加轴线。

cir.axis.col

字符串,圆形轴线的颜色。

cir.axis.grid

逻辑值,是否在圆形上添加轴网格线。

conf.int

逻辑值,是否在 Q-Q 图上绘制置信区间。

conf.int.col

字符串或向量,Q-Q 图置信区间的颜色。

file.output

逻辑值,是否输出图形结果。

file.name

字符串或向量,输出文件的名称。

file

字符串,选择不同的图形输出格式,支持 "jpg"、"pdf"、"tiff" 和 "png"。 "png" 格式具有透明背景。

dpi

数值,'.jpg'、'.pdf' 和 '.tiff' 文件的分辨率,默认值为 300。

Details

具体细节,详见:https://github.com/YinLiLin/CMplot。

Examples

load(system.file("data/pig60K.Rdata", package="MRsoft"))

Visualizing_Manhattan(pig60K, 
                      plot.type="m", 
                      LOG10=TRUE, 
                     ylim=NULL, 
                      threshold=c(1e-6,1e-4),
                      threshold.lty=c(1,2),
                      threshold.lwd=c(1,1), 
                      threshold.col=c("black","grey"), 
                      amplify=TRUE,
                      bin.size=1e6,
                      chr.den.col=c("darkgreen", "yellow", "red"),
                      signal.col=c("red","green"),
                      signal.cex=c(1.5,1.5),
                      signal.pch=c(19,19),
                      file="jpg",
                      file.name="",
                      dpi=300,
                      file.output=TRUE,
                      verbose=TRUE,
                      width=14,
                      height=6)
#>  Rectangular Manhattan plotting trait1.
#>  Rectangular Manhattan plotting trait2.
#>  Rectangular Manhattan plotting trait3.
#>  Plots are stored in: C:/Users/19662/Desktop/QTLMR/docs/reference