数据可视化,是生物信息分析过程中“殊途同归”之处,也是考验审美能力和绘图功底的时候,没有很好审美能力的小编我,只能求助于各种设计良好的工具,今天就给大家介绍一个新的R包——CMplot,结束大家绘制曼哈顿图,QQ图,环形图和密度图的噩梦。
随着测序技术的发展,全基因组关联分析如火如荼的在各种常见疾病的研究中展开,如精神分裂症和糖尿病均一有了数万人的全基因组关联分析结果。在这类文章中我们最常见到的便是体现SNP在不同染色体上位置的显著水平的散点图——曼哈顿图,当然喜欢完美的圆形的就会做成circos效果。 今天讲到的这些可视化方式不仅局限于全基因组关联分析结果的可视化,你做EWAS-全表观遗传组关联分析也是一样可以用的(有一种说了废话的感觉……),还有你做差异分析也可以用,所有涉及到基因组上位置的,不涉及位置的都可以用,请自行脑补……
总之,学会这个工具,会对你有帮助的!
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作者:夏梦馨
封面来源:夏梦馨,摄于耶路撒冷的老城
文章图片:作者绘制