使用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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容