绘制曼哈顿图
Visualizing_Manhattan.Rd
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。
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