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

  • 7
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
### 回答1: `cmplot` 是一个 Python 数据可视化库,可以使用它来绘制曼哈顿曼哈顿也称为曼哈顿距离,是一种用于可视化二维数据的表,其中 x 轴和 y 轴分别表示两个特征,点的位置表示两个特征的值,颜色或大小表示第三个特征的值。 下面是一个使用 `cmplot` 绘制曼哈顿的示例代码: ```python import seaborn as sns import pandas as pd # 加载数据集 tips = sns.load_dataset('tips') # 绘制曼哈顿 sns.set(style='white', font_scale=1.2) g = sns.relplot(x='total_bill', y='tip', col='sex', hue='smoker', size='size', data=tips, sizes=(15, 200), palette='viridis', alpha=0.8, height=6, aspect=0.8, facet_kws=dict(sharex=False, sharey=False)) g.fig.suptitle('Manhattan Plot of Tips Dataset', y=1.05) g.set_xlabels('Total Bill') g.set_ylabels('Tip') ``` 这段代码用 `sns.relplot` 函数绘制曼哈顿,其中 `x` 和 `y` 参数分别指定 x 轴和 y 轴的特征名称,`col` 参数指定分组变量,`hue` 参数指定颜色变量,`size` 参数指定大小变量。`sizes` 参数指定点的最小和最大大小,`palette` 参数指定颜色映射,`alpha` 参数指定透明度,`height` 和 `aspect` 参数指定形的大小和长宽比。`facet_kws` 参数指定是否共享 x 轴和 y 轴。 最后,使用 `g.fig.suptitle`、`g.set_xlabels` 和 `g.set_ylabels` 函数添加形标题和轴标签。 ### 回答2: cmplot是一个用于绘制条件均值的Python库。它可以用来比较不同组别的均值,并显示其置信区间。要绘制曼哈顿,首先需要安装cmplot库。 使用cmplot绘制曼哈顿的步骤如下: 1. 导入所需的库和数据。 ```python import pandas as pd import seaborn as sns import cmplot # 导入数据 data = pd.read_csv('data.csv') ``` 2. 创建一个cmplot对象并设置绘参数。 ```python cp = cmplot.CMPlot(data=data, x='Group', y='Value', hue='Condition', legend_title='Condition', ci='sd') ``` 在这里,data参数是数据集,x参数是组别的列名,y参数是要比较的数值变量的列名,hue参数是根据哪个条件进行分组的列名,legend_title参数是条件标签的标题,ci参数是置信区间的类型,可以使用'sd'表示标准差。 3. 使用cmplot对象绘制曼哈顿。 ```python cp.cmplot() ``` 这个命令将绘制曼哈顿,并显示不同组别的均值及其置信区间。 4. 调整形的其他属性。 可以使用其他seaborn和matplotlib的函数来调整形的各种属性,比如调整坐标轴标签、标题、颜色、例等。 ```python cp.set_labels(xlabel='Group', ylabel='Value') cp.set_title('Manhattan Plot') cp.set_palette('Set1') cp.add_legend() ``` 5. 显示形。 最后使用`plt.show()`命令来显示绘制好的曼哈顿。 ```python plt.show() ``` 以上是使用cmplot库绘制曼哈顿的基本步骤。根据具体的数据和需求,你可以根据需要进一步调整形的显示样式。 ### 回答3: cmplot是一个用于绘制曼哈顿的Python包。曼哈顿是一种用于可视化基因组关联的形方法,它展示了基因组上的关联区域和SNP(单核苷酸多态性)位点之间的联系。 要使用cmplot绘制曼哈顿,可以按照以下步骤进行: 1. 首先,导入所需的包和数据。使用import语句导入cmplot包,并准备好包含SNP位点和关联统计量的数据。通常,这些数据可以是一个包含染色体、位点位置和p值等信息的数据框。 2. 创建一个曼哈顿对象。使用cmplot中的ManhattanPlot函数创建一个曼哈顿对象,并指定x轴和y轴上的数据。x轴通常是SNP的位置,而y轴是关联统计量的负对数p值。 3. 可选地,对曼哈顿进行个性化设置。根据需要,可以对曼哈顿进行个性化的设置。例如,可以指定曼哈顿的标题、轴标签、颜色等。 4. 显示曼哈顿。使用Matplotlib中的plt.show()函数显示生成的曼哈顿。 以下是一个示例代码: ```python import cmplot import pandas as pd import matplotlib.pyplot as plt # 导入数据 data = pd.read_csv('data.csv') # 创建曼哈顿对象 manhattan_plot = cmplot.ManhattanPlot(data['chromosome'], data['position'], -1 * pd.np.log10(data['p_value'])) # 设置曼哈顿个性化设置(可选) manhattan_plot.set_title('Manhattan Plot') manhattan_plot.set_x_label('Chromosome') manhattan_plot.set_y_label('-log10(p-value)') # 显示曼哈顿 plt.show() ``` 以上代码演示了如何使用cmplot绘制曼哈顿。根据您的数据和个性化设置,可能需要调整和修改代码以满足您的需求。希望对您有所帮助!
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值