今天小编给大家分享的是R语言绘制环形曼哈顿图的方法,主要用到的是CMplot包,它是绘制SNP密度、曼哈顿图和QQ图的一个很实用的R包。大家感兴趣的话可以瞅瞅。
1、安装并加载R包;
# 下载安装"CMplot"包install.packages("CMplot")library(CMplot)# 设置工作路径setwd("D:\\Rdemo\\CMplot")
2、数据集准备;
data(pig60K)head(pig60K)data = pig60K

第一列是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:设置是否需要绘制多个trackr:设置圈的半径大小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)

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)

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)

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)

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)


END