CMplot 可视化曼哈顿,qqplot

library(CMplot)

 setwd("~/literature/recurring/manhat_qplot")

df<-read.table("GCST90014052_buildGRCh38.tsv.gz",header=T,sep="\t")

 

 

df_column<-df %>%select(variant_id,chromosome,base_pair_location,p_value). #GWAS后续的显著性信号可视化只需要这几列

CMplot(df_column,plot.type = "m",threshold = c(0.01,0.05)/nrow(df),threshold.col = c('grey','black'),threshold.lty = c(1,2),threshold.lwd = c(1,1),amplify = T,signal.cex = c(1,1),signal.pch = c(20,20),signal.col = c("red","orange")) #CMplot命令默认把图输出在当前目录,这里制定曼哈顿图

CMplot(df_column,plot.type = "q",threshold = 0.05)

 

 

 

 

如果默认> CMplot(df_column) 则默认参数输出如下类型图。

 SNP-Density Plotting.

 

 

 Circular-Manhattan Plotting p_value.

 

 

 Rectangular-Manhattan Plotting p_value.

 

 

 QQ Plotting p_value.

 

 

 Plots are stored in: ~/literature/recurring/manhat_qplot_locuszoom

 

 

>Locuszoom 在线版, 可视化染色体某区域内的GWAS 结果

http://locuszoom.org/   传入summary statistics 指定文件列,指定染色体区间

 

 

 最后点击Plot Data后等会就会输出来一张指定染色体区域的显著信号图的pdf

 

 

 

复现参考:https://zhuanlan.zhihu.com/p/454027965

软件包: https://github.com/YinLiLin/CMplot

软件包母文章: rMVP: A Memory-efficient, Visualization-enhanced, and Parallel-accelerated Tool for Genome-wide Association Study 

 

 

附:CMplot 概述:

曼哈顿图是散点图的一种,广泛用于显示关联结果。然而,对于非专业用户来说,编写脚本和调整复杂情节的参数通常既费时又费力。此外,测量的不断增长的性状要求整合不同全基因组关联研究的结果。Circle-Manhattan图是第一个在QQ图中展示全基因组关联研究P值结果的开放R包,既有传统的矩形图,也有新颖的圆形图。在同一个靶心式的情节中,多个性状的联想结果可以交互地进行比较,从而揭示两者之间的异同信号。附加功能包括:突出显示信号、一组SNPs、染色体可视化和SNPs周围的候选基因。

语法\用法:

CMplot(Pmap, col=c("#4197d8", "#f8c120", "#413496", "#495226",
"#d60b6f", "#e66519", "#d581b7", "#83d3ad", "#7c162c", "#26755d"),
bin.size=1e6, bin.range=NULL, pch=19, type="p", band=1, H=1.5,
ylim=NULL, cex.axis=1, lwd.axis=1.5, cex.lab=1.5, plot.type="b",
multracks=FALSE, cex=c(0.5,1,1), r=0.3, outward=FALSE,
ylab=expression(-log[10](italic(p))), ylab.pos=3, xticks.pos=1,
mar = c(3,6,3,3), 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.xadj=NULL, highlight.text.yadj=NULL,
highlight.text.font=3, chr.labels=NULL, chr.border=FALSE,
chr.labels.angle=0, chr.den.col="black", cir.band=1, cir.chr=TRUE,
cir.chr.h=1.5, cir.legend=TRUE, cir.legend.cex=0.6,
cir.legend.col="black", LOG10=TRUE, box=FALSE, conf.int=TRUE,
conf.int.col=NULL, file.output=TRUE, file=c("jpg","pdf","tiff"),
dpi=300, height=NULL, width=NULL, memo="", main="", main.cex=1.5,
main.font=2, trait.legend.ncol=NULL, verbose=TRUE)


参数说明:

Pmap : 一个数据帧,至少有四列。第一列是SNP的名称,第二列是SNP的染色体,第三列是SNP的位置,其余列是每个性状的P值(注:每种特征一列)。

col : 一个向量或一个矩阵,如果“col”是一个向量,每个圆使用相同的颜色,这意味着同一条染色体被涂成相同的颜色,颜色是不固定的,可以使用一种、两种、三种或更多的颜色,如果“col”的长度比染色体的长度短,那么颜色就会循环应用。如果“col”是一个矩阵,行是圆的数目(traits),列是用户希望用于不同圆的颜色,每个圆可以用不同的颜色数绘制,缺少的值可以用NA替换。例如:col=矩阵(c(“灰色30”,“灰色60”,NA,“红色”,“蓝色”,“绿色”,“橙色”,NA,NA),3,3,byrow=T)。

bin.size : filename_points_covered_by_landmarks plot的bin大小。

bin.range : 向量c(最小值,最大值)。filename_edges_strength plot图例的最小/最大值,SNP值小于/大于'箱柜范围'将使用相同的颜色。

pch : 多性状曼哈顿图的点或性状的形状与中的“pch”相同。

type : 字符可以是“p”(点)、“l”(线)、“h”(垂直线)等,与中的“type”相同。

band : 一个数字,染色体之间的空间,默认值是1(如果带等于0,那么染色体之间就没有空间)。

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

ylim : 向量或列表,CMplot只绘制这个区间中的点,ylim可以是向量或列表,如果是列表,不同的性状可以在y轴上分配不同的范围。

cex.axis : 一个数字,控制X/Y轴的记号标签的大小和圆图的染色体标签的大小。

lwd.axis : 一个数字,控制X/Y轴线的厚度。

cex.lab : 一个数字,控制X/Y轴标签的大小。

plot.type : 字符或矢量,只能使用“d”、“c”、“m”、“q”或“b”。如果绘图类型=“d”,将绘制SNP密度;如果绘图类型=“c”,只绘制曼哈顿圆图;如果绘图类型=“m”,只绘制曼哈顿地块;如果绘图类型=“q”,只绘制q-q图;如果绘图类型=“b”,将绘制曼哈顿圈、曼哈顿圈和Q-Q图;如果plot.type=c图(“m”、“q”),将绘制曼哈顿和Q-Q图。

multracks : 逻辑上,如果multracks=FALSE,所有曼哈顿绘图将绘制在单独的文件中,如果为TRUE,所有曼哈顿绘图将绘制在一个文件中。

cex : 一个数字或一个向量,即点的大小,与中的“size”相同,如果是向量,则第一个数字控制圆图中点的大小(默认值为0.5),第二个数字控制曼哈顿图中点的大小(默认值为1),第三个数字控制Q-Q图中点的大小(默认值为1)

r : 一个数字,为圆的半径(内半径),默认为1。

outward : 逻辑上,如果outside=TRUE,则所有点都将从内到外绘制为圆形曼哈顿图。

ylab : 一个字符,y轴的标签。

ylab.pos : ylab和y轴之间的距离。

xticks.pos : x记号标签和x轴之间的距离。

mar : 图周围白色间隙的大小,应提供4个值,指示底部、左侧、上和右侧的方向。

threshold : 一个数字或向量,有效阈值。例如,Bonfferoni调整方法:threshold=0.01/nrow(Pmap)。可以在绘图上添加多条有效线,如果阈值=0或NULL,则不会添加阈值线。

threshold.col : 一种字符或矢量,颜色为线的阈值电平,它还可以控制QQplot对角线的颜色。

threshold.lwd : 一个数字或矢量,宽度为线的阈值水平,它还可以控制QQplot对角线的厚度。

threshold.lty : 一个数字或矢量,该类型为线的阈值电平,它还可以控制QQplot的对角线类型。

amplify : 逻辑上,CMplot可以放大有效点,如果放大=T,则大于最小有效水平的点将被放大,默认值:放大=TRUE。

signal.cex : 一个数字,如果放大=真,用户可以设置有效点的大小。

signal.pch : 一个数字,如果放大=真,用户可以设置有效点的形状。

signal.col : 一个字符,如果放大=真,用户可以设置有效点的颜色,如果signal.col=空,则有效点的颜色不会改变。

signal.line : 一个数字,有意义的snp横穿圆圈的线条的厚度。

highlight : 向量或列表,需要突出显示的snp的名称。单个性状的向量和多个性状的列表。

highlight.cex : 向量或列表,需要突出显示的snp的点的大小。

highlight.pch : 向量或列表,需要突出显示的SNP点的pch。

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

highlight.col : 向量或列表,需要突出显示的SNP的点列。

highlight.text : 一个向量或列表,将在突出显示的snp周围添加的文本。

highlight.text.col : 矢量或列表,添加文本的颜色。

highlight.text.cex : 一个值,即添加文本的大小。

highlight.text.xadj : 单个性状的值或向量或多个性状的列表,-1,0,1限制,控制突出显示的SNP周围文本的位置,-1(左),0(中),1(右)。

highlight.text.yadj : 单个性状的值或向量或多个性状的列表,-1,0,1限制,控制突出显示的SNP周围文本的位置,-1(向下),0(中间),1(向上)。

highlight.text.font : 突出显示的SNP的文本字体。

chr.labels : 一个向量,标签为染色体的密度图和圆曼哈顿图。

chr.border : 逻辑上,是否绘制染色体间的点线。

chr.labels.angle : 一个值,调整曼哈顿图的x轴刻度标签的角度(-90

chr.den.col : 一个字符或矢量或空,表示SNP密度的颜色。如果参数的长度颜色den.col'大于1,即计算给定大小内SNP数量的SNP密度('箱子尺寸)将围绕圆绘制。如果chr.den.col=空,密度条不会附着在曼哈顿地块的底部。

cir.band : 一个数字,圆圈之间的间距,默认为1。

cir.chr : 逻辑上,表示染色体的边界将绘制在圆的外围,默认为TRUE。

cir.chr.h : 一个数字,边界的宽度,如果cir.chr=错误,则此参数将无效。

cir.legend : 逻辑上,是否要添加每个圆的图例。

cir.legend.cex : 一个数字,一个数字大小的图例。

cir.legend.col : 一个人物,传说中轴心的颜色。

LOG10 : 逻辑上,是否将p值改为log10(p值)。

box : 逻辑上,此函数围绕当前曼哈顿绘图绘制一个框。

conf.int : 逻辑上,是否在QQ图上绘制置信区间。

conf.int.col : 字符或向量,QQplot的置信区间的颜色。

file.output : 逻辑上,用户可以选择是否输出绘图结果。

file : 一个字符,用户可以选择不同的打印输出格式,所以对于“jpg”、“pdf”、“tiff”等可以由用户选择。

dpi : 一个数字,.jpg和.tiff文件的图片分辨率。默认值为300。

height : 输出文件的高度。

width : 输出文件的宽度。

memo : 在输出文件名中添加一个字符。

main : 向量的特征,曼哈顿图和qqplot图的标题。

main.cex : 标题大小。

main.font : 标题字体。

trait.legend.ncol : 多个图形图例的列数。

verbose : 是否打印日志信息。

 

 

--

Pmap 输入数据文件
col 设置不同染色体中点的颜色
cex 设置点的大小
pch 设置点的形状
band 设置不同染色体之间的间隔
ylim 设置y轴的范围

bin.size 设置SNP密度图中的窗口大小
bin.range 设置SNP密度图中图例的范围min,max
chr.den.col 设置SNP密度的颜色

cex.axis 设置坐标轴字体的大小
cex.axis 设置坐标轴label字体大小
lwd.axis 设置坐标轴线的宽度
plot.type 设置不同的绘图类型,可以设定为 "d", "c", "m", "q" or "b"
d是snp密度图,c是环形曼哈顿图,m是普通曼哈顿图


multracks 设置是否需要绘制多个track
mar 设置图周围白色间隙的大小,应提供4个值,表示底部,左侧,上,右的方向。
box 是否在曼哈顿图周围加框
xlab 设置x轴标签
xticks.pos 设置x刻度标签和x轴之间的距离。
ylab 设置y轴标签
ylab.pos 设置y轴label距离轴的距离
outward 设置点的朝向是否向外
threshold 设置阈值并添加阈值线,可以为多个,如threshold=c(1,2)
threshold.col 设置阈值线的颜色,可以设置多个,如threshold.col=c('red','black')
threshold.lwd 设置阈值线的宽度,如 threshold.lwd=c(1,2)
threshold.lty 设置阈值线的类型,如 threshold.lty=c(1,2)
amplify 设置是否放大显著的点
signal.cex 设置显著点的大小
signal.pch 设置显著点的形状,可以设置多个,如signal.pch=c(19,19)
signal.col 设置显著点的颜色
highlight 设置高光点,如highlight='snp123'
highlight.cex 设置高光点的大小
highlight.pch 设置高光点的形状
highlight.type 设置高光点的类型
highlight.col 设置高光点的颜色
highlight.text 设置高光点的文本
highlight.text.col 设置高光点的文本的颜色
highlight.text.cex 设置高光点的文本的大小
highlight.text.xadj设置高光点的文本的水平位置,-1(左)、0(中心)、1(右)
highlight.text.yadj设置高光点的文本的垂直位置,-1(下)、0(中心)、1(上)
highlight.text.font设置高光点的文本的字体



环状曼哈顿
r 设置圈的半径大小
chr.labels 设置染色体的标签(密度图和圆曼哈顿图)
chr.labels.angle设置染色体的标签的角度(密度图和圆曼哈顿图)
chr.den.col 设置SNP密度图的颜色
cir.band 设置环状曼哈度图中不同染色体之间的间隔
cir.chr 设置是否显示染色体的边界
cir.chr.h 设置染色体边界的高度
cir.legend 设置是否显示图例
cir.legend.cex 设置图例字体的大小
cir.legend.col 设置图例的颜色
H 设置每个圈的高度



LOG10 设置是否对p-value取log10对数
conf.int.col 设置QQ图中置信区间的颜色
file.output 设置是否输出图片
file 设置输出图片的格式,可以设定为"jpg", "pdf", "tiff"
dpi 设置输出图片的分辨度
memo 设置输出图片文件的名字
height 高
width 宽
file 输出文件类型
file.output 是否输出文件
main 标题
main.cex 标题大小
main.font 标题字体

 

posted on 2022-04-29 11:06  BioinformaticsMaster  阅读(4015)  评论(0编辑  收藏  举报

导航