CMplot与曼哈顿图

CMplot是一个专门绘制曼哈顿图的R包

rm(list=ls())
options(stringsAsFactors = F)
#下载安装
install.packages("CMplot")
library(CMplot)
#包里面带的演示数据
data(pig60K)
head(pig60K)

在这里插入图片描述
可以看到输入文件的必要信息有snp名,染色体名,位置,以及P值

pig60K=pig60K[pig60K$Chromosome!='Y',]
#snp密度图
CMplot(pig60K,plot.type="d",bin.size=1e6,chr.den.col=c("skyblue", "grey", "red"),file="pdf",memo="",dpi=300,
       file.output=TRUE)
       #"d"代表密度图,不同字母代表绘制不同的图
#bin.size=1e6,每1MB检测一次
#bin.range设置密度大小的范围
#更多的参数我放在文章末尾

在这里插入图片描述

#环形曼哈顿图
CMplot(pig60K,plot.type="c",chr.labels=paste0("Chr",c(1:18,"X")),
       r=0.4,cir.legend=TRUE,outward=FALSE,cir.legend.col="black",
       cir.chr.h=1.3,chr.den.col=c("darkgreen","yellow","red"),file="pdf",memo="",dpi=300,
       file.output=TRUE,verbose=TRUE)

在这里插入图片描述

CMplot(pig60K[,1:4], plot.type="m", LOG10=TRUE, ylim=NULL, threshold=c(1e-6,1e-4),
       threshold.lty=c(1,2),threshold.lwd=c(1,1), 
       threshold.col=c("black","grey"), amplify=F,
       bin.size=1e6,chr.den.col=c("darkgreen", "yellow","red"),
       signal.col=c("red","green"),signal.cex=c(1,1),
       signal.pch=c(19,19),
       highlight = c('MARC0066784','MARC0040492'),highlight.col = 'black',
       highlight.cex = 1,highlight.text=c('MARC0066784','MARC0040492'),
       file="jpg",memo="",dpi=300,
       file.output=TRUE,verbose=TRUE)
       #threshold设置阈值,如4和6(log以后的)
       #signal设置超过阈值的点,如绿色和红色的点
       #highlight个性化某些点,如图中的两个黑色的点
       #highlight.text为某些点添加标签

在这里插入图片描述
需要注意的是在绘制曼哈顿图时不一定非要P值,也可以使用其他数值,如fst,pi等,这时候我们需要把LOG10=F,设置合理的y轴范围就好。SNP的名称如果未知我们可以通过简单的paste0(‘SNP’,1:nrow(data))按照顺序设置,SNP的名称主要是用在highlight中,指定SNP名称定义我们想要个性化显示的点。

一些基本参数

Pmap             输入数据文件
 col             设置不同染色体中点的颜色
 cex             设置点的大小
 pch             设置点的形状
 band            设置不同染色体之间的间隔
 ylim            设置y轴的范围
 
 bin.size        设置SNP密度图中的窗口大小
 bin.range       设置SNP密度图中图例的范围min,max
 chr.den.col     设置SNP密度的颜色
 
 cex.axis        设置坐标轴字体的大小
 cex.axis        设置坐标轴label字体大小
 lwd.axis        设置坐标轴线的宽度
 plot.type       设置不同的绘图类型,可以设定为 "d", "c", "m", "q" or "b"
 d是snp密度图,c是环形曼哈顿图,m是普通曼哈顿图
 
 
 multracks       设置是否需要绘制多个track
 mar             设置图周围白色间隙的大小,应提供4个值,表示底部,左侧,上,右的方向。
 box             是否在曼哈顿图周围加框
 xlab            设置x轴标签
 xticks.pos      设置x刻度标签和x轴之间的距离。
 ylab            设置y轴标签
 ylab.pos        设置y轴label距离轴的距离
 outward         设置点的朝向是否向外
 threshold       设置阈值并添加阈值线,可以为多个,如threshold=c(1,2)
 threshold.col   设置阈值线的颜色,可以设置多个,如threshold.col=c('red','black')
 threshold.lwd   设置阈值线的宽度,如 threshold.lwd=c(1,2)
 threshold.lty   设置阈值线的类型,如 threshold.lty=c(1,2)
 amplify         设置是否放大显著的点
 signal.cex      设置显著点的大小
 signal.pch      设置显著点的形状,可以设置多个,如signal.pch=c(19,19)
 signal.col      设置显著点的颜色
 highlight       设置高光点,如highlight='snp123'
 highlight.cex   设置高光点的大小
 highlight.pch   设置高光点的形状
 highlight.type  设置高光点的类型
 highlight.col   设置高光点的颜色
 highlight.text  设置高光点的文本
 highlight.text.col 设置高光点的文本的颜色
 highlight.text.cex 设置高光点的文本的大小
 highlight.text.xadj设置高光点的文本的水平位置,-1(左)、0(中心)、1(右)
 highlight.text.yadj设置高光点的文本的垂直位置,-1(下)、0(中心)、1(上)
 highlight.text.font设置高光点的文本的字体
 
 
 
 环状曼哈顿
 r               设置圈的半径大小
 chr.labels      设置染色体的标签(密度图和圆曼哈顿图)
 chr.labels.angle设置染色体的标签的角度(密度图和圆曼哈顿图)
 chr.den.col     设置SNP密度图的颜色
 cir.band        设置环状曼哈度图中不同染色体之间的间隔
 cir.chr         设置是否显示染色体的边界
 cir.chr.h       设置染色体边界的高度
 cir.legend      设置是否显示图例
 cir.legend.cex  设置图例字体的大小
 cir.legend.col  设置图例的颜色
 H               设置每个圈的高度
 
 
 
 LOG10           设置是否对p-value取log10对数
 conf.int.col    设置QQ图中置信区间的颜色
 file.output     设置是否输出图片
 file            设置输出图片的格式,可以设定为"jpg", "pdf", "tiff"
 dpi             设置输出图片的分辨度
 memo            设置输出图片文件的名字
 height          高
 width           宽
 file            输出文件类型
 file.output     是否输出文件
 main	         标题
 main.cex	     标题大小
 main.font	     标题字体
 

参考:https://cloud.tencent.com/developer/article/1481862
https://www.jianshu.com/p/1edc44fe922f

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值