在之前GWAS分析中,我们已经学会了如何使用R包qqman对单个性状绘制manhattan图,有时会需要将多个性状的manhattan图组合到一张图中分析,今天就带小伙伴学习一个R包(CMplot)的用法。
Step1:下载,加载R包
#安装R包CMplot
BiocManager::install("CMplot")
# 或则在GitHub获取最新版本:
source("https://raw.githubusercontent.com/YinLiLin/CMplot/master/R/CMplot.r")
#加载
library(CMplot)
Step2: 加载,查看示例文件
#加载示例文件pig60K
data(pig60K) #通过MLM计算p-values
#可以看看文件格式
head(pig60K)
SNP Chromosome Position trait1 trait2 trait3
1 ALGA0000009 1 52297 0.7738187 0.51194318 0.51194318
2 ALGA0000014 1 79763 0.7738187 0.51194318 0.51194318
3 ALGA0000021 1 209568 0.7583016 0.98405289 0.98405289
4 ALGA0000022 1 292758 0.7200305 0.48887140 0.48887140
5 ALGA0000046 1 747831 0.9736840 0.22096836 0.22096836
6 ALGA0000047 1 761957 0.9174565 0.05753712 0.05753712
说明:
第一列:标记
第二列:染色体
第三列:位置
第四列往后:不同性状
Step3: 画manhanttan图组合图
#同时画出单个性状和3个性状组合图:
CMplot(pig60K[sample(1:nrow(pig60K), 10000),c(1:6)],plot.type="m", mar = c(3,6,3,3),
threshold=c(0.01,0.05)/nrow(pig60K),threshold.col=c('red','orange'),
multracks=TRUE, chr.den.col=NULL, file.output=TRUE)
#使用所有标记画3个性状曼哈顿图的circle图:
#加载数据
data(pig60K)
#做circle图
CMplot(pig60K,type="p",plot.type="c",chr.labels=paste("Chr",c(1:18,"X","Y"),sep=""),r=0.4,cir.legend=TRUE, outward=FALSE,cir.legend.col="black",cir.chr.h=1.3,chr.den.col="black",file="jpg", memo="",dpi=300,file.output=TRUE,verbose=TRUE,width=10,height=10)
最后,我们看一下CMplot的所有参数及用法。
CMplot(Pmap, col=c("#4197d8", "#f8c120", "#413496", "#495226",
"#d60b6f", "#e66519", "#d581b7", "#83d3ad", "#7c162c", "#26755d"),
bin.size=1e6, bin.range=NULL, pch=19, type="p", band=1, H=1.5,
ylim=NULL, cex.axis=1, lwd.axis=1.5, cex.lab=1.5, plot.type="b",
multracks=FALSE, cex=c(0.5,1,1), r=0.3, outward=FALSE,
ylab=expression(-log[10](italic(p))), ylab.pos=3, xticks.pos=1,
mar = c(3,6,3,3), threshold = NULL, threshold.col="red", threshold.lwd=1,
threshold.lty=2, amplify= TRUE, signal.cex = 1.5, signal.pch = 19,
signal.col=NULL, signal.line=2, highlight=NULL, highlight.cex=1,
highlight.pch=19, highlight.type="p", highlight.col="red",
highlight.text=NULL, highlight.text.col="black", highlight.text.cex=1,
highlight.text.xadj=NULL, highlight.text.yadj=NULL,
highlight.text.font=3, chr.labels=NULL, chr.border=FALSE,
chr.labels.angle=0, chr.den.col="black", cir.band=1, cir.chr=TRUE,
cir.chr.h=1.5, cir.legend=TRUE, cir.legend.cex=0.6,
cir.legend.col="black", LOG10=TRUE, box=FALSE, conf.int=TRUE,
conf.int.col=NULL, file.output=TRUE, file=c("jpg","pdf","tiff"),
dpi=300, height=NULL, width=NULL, memo="", main="", main.cex=1.5,
main.font=2, trait.legend.ncol=NULL, verbose=TRUE)
其中:
Pmap: 输入的数据文件
col:不同染色体中点的颜色或者不同性状中点的颜色
pch: 点的形状
type: 可以是"p"(点), "l"(线), "h"(垂线) 等
band: 染色体之间的距离
H: 每个性状(圆圈)的高度
ylim: y轴范围
cex.axis:设置X/Y轴刻度标签和圆形图的染色体标签的大小
lwd.axis:X/Y轴刻度线的粗细
cex.lab:控制X/Y轴标签的大小
plot.type:设置绘图类型,可以设置为"d", "c", "m", "q" or "b"
multracks:是否绘制多个track,选项TRUE/FALSE
cex:点的大小
r:圆圈的半径
outward:点的分布朝向,由内而外或者由外向内
ylab:y轴标签
ylab.pos:y轴标签位置
mar: 绘图周围白色空间大小
threshold:设置阈值
threshold.col:阈值线颜色
threshold.lwd:阈值线宽度
threshold.lty:阈值线类型
amplify:是否放大显著的点
…
LOG10: P value是否进行log10处理
file.output:是否输出结果
file:输出格式,可以是"jpg","pdf","tiff"
dpi:输出图片的分辨率
今天的分享就到这里了,有兴趣的小伙伴可以自己尝试画一下。
往期回顾:
GWAS分析 (一)
https://www.jianshu.com/p/67e1878845e3
GWAS分析-曼哈顿图 (二)
https://www.jianshu.com/p/fa261b6045c2
GWAS分析-常用文件格式 (三)
https://www.jianshu.com/p/ad47f575e83b
GWAS分析-R包GAPIT (四)
https://www.jianshu.com/p/9944bcbfe3c7
参考:
https://github.com/YinLiLin/CMplot