Quantcast

美国将亡于中国自媒体!首个确诊超20万的国家!单日新增死亡创造恐怖纪录

蔡英文公开蒋介石临终遗言!

深度解读 | 姜文《让子弹飞》

人民日报这次“翻车”了

经济最困难的时候远未到来

Facebook Twitter

分享到微信朋友圈

点击图标下载本文截图到手机
即可分享到朋友圈。如何使用?

为了鼓励更多的人参与到自由互联网的开发,我们最新推出了GreatFire悬赏计划,请参赛者在下列任务中任选其中一个或多个,完成其中的任务目标,即可获得对应金额的奖励。
查看原文

福利:一行代码将曼哈顿图,QQ图,环形图和密度图一网打尽

2017-06-14 夏梦馨 ActionFree ActionFree

数据可视化,是生物信息分析过程中“殊途同归”之处,也是考验审美能力和绘图功底的时候,没有很好审美能力的小编我,只能求助于各种设计良好的工具,今天就给大家介绍一个新的R包——CMplot,结束大家绘制曼哈顿图,QQ图,环形图和密度图的噩梦。

背景

随着测序技术的发展,全基因组关联分析如火如荼的在各种常见疾病的研究中展开,如精神分裂症和糖尿病均一有了数万人的全基因组关联分析结果。在这类文章中我们最常见到的便是体现SNP在不同染色体上位置的显著水平的散点图——曼哈顿图,当然喜欢完美的圆形的就会做成circos效果。 今天讲到的这些可视化方式不仅局限于全基因组关联分析结果的可视化,你做EWAS-全表观遗传组关联分析也是一样可以用的(有一种说了废话的感觉……),还有你做差异分析也可以用,所有涉及到基因组上位置的,不涉及位置的都可以用,请自行脑补……

总之,学会这个工具,会对你有帮助的!

实操
第一步

安装CMplot包,要求Rv2.10及以后的版本,用最新版本最好啦,代码如下:

install.packages("CMplot") 

命令后会弹出页面选择镜像,选一个离你近的就好

第二步

加载CMplot包,代码如下:

library(CMplot)

第三步

读入数据,代码和数据示例如下:

a<-read.csv (“cmplot.csv”,header=T)

读进去的数据长这样子↓

数据要求为至少四列的矩阵:

第1列为标记名(如SNP号,探针名等),

第2列为染色体编号,最好用纯数字表示,允许X,Y

第三列为标记在染色体上的坐标/位置

第四列及以后各列为显著性水平,p值

第四步

激动人心的时刻,绘图,输入代码:

CMplot(a)

结果如下:

图1.曼哈顿图

图2 QQ图

图3 环形图

图4 密度图

你可能还想要进行个性化的修改,附上详细参数解读↓













参数详解

CMplot(Pmap, #输入的数据

   col= c("dodgerblue1", "olivedrab3", "darkgoldenrod1"), 

   #颜色显示,可以放上你自己喜欢的配色

   pch = 19, #点的样式

           band = 1, #染色体之间的间隔  

           cir.band = 0.5, #圆圈之间的间隔

           H = 1.5, #每个圆圈的高度(用于调整环形图)

           ylim = NULL, #Y轴的范围

           cex.axis = 1, #X轴或环形图中标签的字体大小

           plot.type = "b",#绘图类型,"d"为密度图,"c"为环形图,

           #"m"为曼哈顿图,"q"为QQ图,"b"是所有的类型都画

           multracks = FALSE, #是否同时绘制多个结果

          cex = c(0.5,1,1),#点的大小

          #分别是环形图,曼哈顿图,及QQ图中的点的大小

          r = 0.3, #环形图的半径

         xlab = "Chromosome",#X轴标签

         ylab = expression(-log[10](italic(p))),#Y轴标签

         xaxs = "i",#X轴间距的计算方法

         yaxs = "r",#Y轴间距的计算方法

         outward = FALSE,

         threshold = NULL, #阈值

         threshold.col="red", #阈值划线的颜色

         threshold.lwd = 1, #阈值线的宽度

         threshold.lty = 2,#阈值线的类型

         amplify = TRUE,#是否放大超过阈值的点

         chr.labels = NULL,#环形图上是否放线粒体的标签

         signal.cex = 1.5, #当amplify=T时,用于调整点的大小

         signal.pch = 19,#当amplify=T时,用于调整点的类型

         signal.col="red", #当amplify=T时,用于调整点的颜色

         signal.line = 1, #穿过环形的线的宽度

         cir.chr = TRUE,#染色体是否有边界

         cir.chr.h = 0.6,#边界的宽度

         cir.chr.col = "black", #边界的颜色

         cir.legend = TRUE, #每个圈上面是否加标注

         cir.legend.cex = 0.8,#标注的大小

         cir.legend.col = "grey45", #标注的颜色

         LOG10 = TRUE, #是否对p值做log10转换

         box=FALSE, #是否在现有的曼哈顿图上画box

         conf.int = TRUE,#是否绘制QQ图的95%置信区间

         conf.int.col = "grey", #置信区间的颜色

         file.output = TRUE, #是否输出为文件

         file = "jpg", #输出文件的格式

         dpi = 300) #图片的元素数

更多信息参见

https://github.com/YinLiLin/R-CMplot/blob/master/CMplot.r

作者:夏梦馨

封面来源:夏梦馨,摄于耶路撒冷的老城

文章图片:作者绘制


点击标题下「ActionFree」可快速关注            


文章有问题?点此查看未经处理的缓存