使用CMplot包进行可视化GWAS分析

1. CMplot包的安装及加载过程

通常使用Rstudio运行R更为便捷,每次使用前都需要加载R包


# CMplot在CRAN上可用,因此可以使用以下R代码安装它install.packages("CMplot")#如果已经安装,此行可忽略。library(CMplot)#加载包CMplot包

# if you want to use the latestversion on GitHub:source("https://raw.githubusercontent.com/YinLiLin/CMplot/master/R/CMplot.r")

在CMplot包里有两个例数据集合,可以通过一下R代码到处和查看详细信息:


data(pig60K) #calculated p-values by MLM

head(pig60K)

data(cattle50K) #calculated SNP effects by rrblup

head(cattle50K)

1.jpg

前三列分别为SNPs的名称、染色体、位置,后几列为GWAS中traits的p-value,traits的数量是无限的。

注意:****如果绘制SNP_Density,只需要前三列。

.查看常用参数:


?CMplot#需要在加载此包输入

在Rstudio的右下角会出现每个参数相应的解释,因此就不做过多赘述。

2.SNP密度图


#默认作图,包括SNP密度、环形曼哈顿图(无阈值线)、QQ图等

CMplot(pig60K)

#.绘制SNP density

CMplot(pig60K,

       type="p",#绘制图形的类型,p——点(point),l-线(line),h——柱状图(vertical line)

       plot.type="d",#d——绘制SNP密度图,d——SNP密度  c——环状(circle) m——曼哈顿图 q——QQ图 b——以上全部类型(both)

       bin.size=1e6,#进行绘图的SNP总数

       col=c("darkgreen", "yellow", "red"),#设置不同染色体中点的颜色, 要注意加引号。

       file="jpg",# file设置输出图片的格式,可以设定为"jpg", "pdf", "tiff"

       memo="",#memo   设置输出图片文件的名字

       dpi=300, #dpi设置输出图片的分辨度

       file.output=TRUE, #file.output设置是否输出图片

       main="illumilla_60K",#备注图注标题

       width=9,#宽度设置

       heigh=6,#高度设置

       verbose=TRUE) #verbose是否打印日志信息

image.png

3.曼哈顿图

3.1单性状曼哈顿图

第一类.绘制带阈值线并放大显著性 SNP位点的曼哈顿图


CMplot(pig60K,

       plot.type = "m",

       threshold =c(0.01,0.05)/nrow(pig60K),#阈值设定,Bonfferoni法校正=0.01/nrow(Pmap),通常以1/SNP总数为阈值。

      threshold.col=c('grey','black'),#控制阈值线的颜色,注意要对应

       threshold.lty = c(1,2),#阈值线的类型(7为实线,5为虚线)

       threshold.lwd = c(1,1),#阈值线的宽度,也可以调整对角线的宽度,2最合适)

       amplify = T,#放大显示~显著性的SNP点

       signal.cex = c(1,1),#设置有效SNP位点的大小,建议选用2/3号为宜

       signal.pch = c(20,20),#设置有效SNP位点的形状,16和19为圆形。

       signal.col =c("red","orange"))#有效SNP位点的颜色

       chr.den.col=c("darkgreen","yellow","red"))#【添加SNP密度】!!!,若不想添加只需要到前一步就可结束

具体图形参数如下图,可以根据自己需要选择相应的signal.pch。


image.png

附上单性状曼哈顿图绘图结果,是否添加SNP密度图可以自己选择。


image.png

image.png

第二类绘制曼哈顿图(无阈值线)


CMplot(pig60K,

       plot.type="m",

       LOG10=TRUE,

       threshold=NULL,

       chr.den.col=NULL,#chr.den.col=c("darkgreen","yellow","red")则会绘制SNP密度图

       file="jpg",

       memo="",dpi=300,

       file.output=TRUE,

       verbose=TRUE)

image.png

第三类绘制曼哈顿图(非显著性SNP位点为灰色)


CMplot(pig60K,

       plot.type="m",

      col=c("grey30","grey60"), #非显著性SNP位点为灰色状态

       LOG10=TRUE,

       ylim=c(2,12),#y轴范围在2~12之间

       #向量或列表,CMplot只绘制这个区间内的点,

       #ylim可以是向量或列表

       #如果是列表,可以在y轴上用不同的范围分配不同的特征。

       threshold=c(1e-6,1e-4),

       threshold.lty=c(1,2),

       threshold.lwd=c(1,1),

      threshold.col=c("black","grey"),

       amplify=TRUE,

       chr.den.col=NULL,

       signal.col=c("red","green"),

       signal.cex=c(1,1),

       signal.pch=c(19,19),

       file="jpg",

       memo="",

       dpi=300,

       file.output=TRUE,

       verbose=TRUE)

image.png

3.2多性状曼哈顿图


CMplot(pig60K,

       plot.type = "m",

       threshold =c(0.01,0.05)/nrow(pig60K),

      threshold.col=c('grey','black'),

       threshold.lty = c(1,2),

       threshold.lwd = c(2,2),

       amplify = T,

       multracks = T,#逻辑判断,为T时绘制多性状图,否则绘制单性状图

       signal.cex = c(2,2),

       signal.pch = c(16,19),

       signal.col =c("red","orange"))

image.png

image.png

CMplot(pig60K,

       plot.type="m",

       multracks=TRUE,

       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"), #添加SNPs密度

      signal.col=c("red","green"),

       signal.cex=c(1,1),

       file="jpg",

       memo="",

       dpi=300,

       file.output=TRUE,

       verbose=TRUE)

image.png

3.3环形曼哈顿图

绘制环形曼哈顿图

Type1.无染色体定义


CMplot(pig60K,

      plot.type="c",#绘制环形图

       r=0.5,#圆内半径,默认值为1

      threshold=c(0.01,0.05)/nrow(pig60K),

       cex =0.5, #环形曼哈顿图中点的大小,默认值为0.5

      threshold.col = c("red","orange"),

      threshold.lty = c(1,2),

       amplify= T,

      cir.chr.h = 2,#分界线的宽度

      signal.cex = c(2,2),

      signal.pch = c(19,20),

      signal.col=c("red","green"),

      outward=TRUE) #TRUE为从内向外绘制环形曼哈顿图,FLASE则是反之。

image.png

Type2. 对染色体进行定义


CMplot(pig60K,

      plot.type="c",

      chr.labels=[paste("Chr",c(1:19,"X"),sep=""), #染色体标记名称,paste()函数组合其中字符或向量,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

Type3 加上SNP密度图。


CMplot(pig60K,

       plot.type="c",

        r=0.4,

       col=c("grey30","grey60"),

       chr.labels=paste("Chr",c(1:18,"X","Y"),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 ,#显著性SNPs跨过圆的线条大小,

       signal.col=c("red","green"),#SNP密度的颜色,

       bin.size=1e6,#SNP密度图的大小

       outward=FALSE,

       file="jpg",

       memo="",

       dpi=300,

       file.output=TRUE,

       verbose=TRUE)

image.png

4. QQ图

4. 1 单性状QQ图

最简便的QQ图绘制。


CMplot(pig60K,

       plot.type = "q",

       threshold = 0.05)


CMplot(pig60K,

       plot.type="q",

       conf.int.col=NULL,#绘制QQ图中置信区间的颜色,可以用字符或向量

       box=TRUE,#是否添加边框

       file="jpg",

       memo="",

       dpi=300,

       file.output=TRUE,

       verbose=TRUE)

image.png

4. 2 多性状QQ图

1.置信区间有边框(建议选用)


CMplot(pig60K,

       plot.type = "q",

       multracks = T,

       threshold = 0.05,

       threshold.col ="orange",

       amplify = T,

       signal.cex = 1.5,

       signal.pch = 20,

       signal.col = "red")

       threshold = 0.05,

       threshold.col = "orange",

       amplify = T,

       signal.cex = 1.5,

       signal.pch = 20,

       signal.col = "red")

image.png

2 置信区间无边框


CMplot(pig60K,

       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="jpg",

       memo="",

       dpi=300,

       file.output=TRUE,

       verbose=TRUE)

image.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容