R包-CMplot绘制环形曼哈顿图
今天小编给大家分享的是R语言绘制环形曼哈顿图的方法,主要用到的是CMplot包,它是绘制SNP密度、曼哈顿图和QQ图的一个很实用的R包。大家感兴趣的话可以瞅瞅。[图片上传失败...(image-a78df0-1653376282283)]
绘图示例
1、安装并加载R包;
# 下载安装"CMplot"包
install.packages("CMplot")
library(CMplot)
# 设置工作路径
setwd("D:\\Rdemo\\CMplot")
2、数据集准备;
# pig60K是CMplot包自带的数据集
data(pig60K)
# 查看数据
head(pig60K)
data = pig60K
image.png
第一列是SNP的名称,第二列是SNP所在染色体名字,第三列是SNP的位置,后面几列为不同特征的P值。
CMplot不仅可以处理全基因组的关联研究结果,还可以处理SNP效应、Fst、tajima’s 等。
参数功能如下:
Pmap:输入数据文件,数据框
col:设置染色体中点的颜色
pch:设置点的形状
band:设置染色体之间的间隔
H:设置每个圈的高度
bin.size:设置SNP密度图中的窗口大小
cex.axis:设置坐标轴字体和标签字体的大小
plot.type:设置不同的绘图类型,可以设定为 "d", "c", "m", "q" , "b"
"d" 表示 SNP density plot
"c" 表示 circle-Manhattan plot
"m" 表示 Manhattan plot
"q" 表示 Q-Q plot
"b" 表示 circle-Manhattan, Manhattan and Q-Q plots一起绘制
multracks:设置是否需要绘制多个track
r:设置圈的半径大小
threshold:设置阈值并添加阈值线
amplify:设置是否放大显著的点
signal.cex:设置显著点的大小
chr.labels:设置染色体的标签
cir.legend:设置是否显示图例
file:设置输出图片的格式,可以设定为"jpg", "pdf", "tiff"
dpi:设置输出图片的分辨度
memo:设置输出图片文件的名字
3、绘制SNP密度图;
CMplot(data,plot.type="d",bin.size=1e6,col=c("darkgreen", "yellow", "red"),
file="pdf",memo="SNP",dpi=300,
file.output=TRUE, verbose=TRUE)
image.png
4、绘制环状图;
CMplot(data,plot.type="c",chr.labels=paste("Chr",c(1:19,"X"),sep=""),
r=0.4,cir.legend=TRUE,outward=FALSE,
cir.legend.col="black",cir.chr.h=1.3,
chr.den.col="black",file="pdf",memo="huan",
dpi=300,file.output=TRUE,verbose=TRUE)
image.png
5、绘制多层圈图;
CMplot(data,plot.type="c",
r=0.4,col=c("grey30","grey60"),
chr.labels=paste("Chr",c(1:19,"X"),sep=""),
threshold=c(1e-6,1e-4),cir.chr.h=1.5,
amplify=TRUE,threshold.lty=c(1,2),
threshold.col=c("red","blue"),signal.line=1,
signal.col=c("red","green"),
chr.den.col=c("darkgreen","yellow","red"),
bin.size=1e6,outward=FALSE,file="pdf",
memo="quan",dpi=300,file.output=TRUE,verbose=TRUE)
image.png
6、绘制曼哈顿图;
CMplot(data,plot.type="m",LOG10=TRUE,threshold=NULL,
chr.den.col=NULL,file="pdf",memo="manha",
dpi=300,file.output=TRUE,verbose=TRUE)
CMplot(data,plot.type="m",LOG10=TRUE,ylim=NULL,
threshold=c(1e-6,1e-4),threshold.lt=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,1),
signal.pch=c(19,19),file="pdf",memo="manhattan",
dpi=300,file.output=TRUE,verbose=TRUE)
image.png
image.png
7、绘制QQ图。
CMplot(data,plot.type="q",conf.int.col=NULL,box=TRUE,
file="pdf",memo="QQ",dpi=300,file.output=TRUE,verbose=TRUE)
CMplot(data,plot.type="q",col=c("dodgerblue1","olivedrab3","darkgoldenrod1"),
threshold=1e6,signal.pch=19,signal.cex=1.5,
signal.col="red",conf.int.col="grey",
box=FALSE,multracks=TRUE,file="pdf",
memo="QQ",dpi=300,file.output=TRUE,verbose=TRUE)
image.png
END
网友评论