CMplot绘制Manhattan图

###############################LDSC相关性热图
setwd('H:\\Puberty_SEM\\Tables and Figure')
library(ggcorrplot)
content <- read.table(file="LDSC.txt",sep="\t",header=TRUE,
                      row.names=1,check.names=FALSE)
ggcorrplot(content,
           hc.order = TRUE,
           type = "upper",
           show.diag = TRUE,
           lab = TRUE,
           colors = c("#6D9EC1", "white", "#E46726"),
           outline.color = "white",
           ggtheme = ggplot2::theme_gray)
#############################TWAS曼哈顿图
setwd('H:\\Puberty_SEM\\Tables and Figure')
library('CMplot')
library(dplyr)
TWAS = read.table('TWAS.txt',header = T,sep = '\t')
head(TWAS)
TWAS_1 = select(TWAS,c('ID','CHR','P0','TWAS.P'))
TWAS_1 <- TWAS_1 %>% distinct(ID,.keep_all = TRUE)
a<-c("ENSG00000107077.18",
     "ENSG00000116678.19",
     'ENSG00000163104.17',
     'ENSG00000112237.12',
     'ENSG00000143727.15')
CMplot(TWAS_1, plot.type="m", LOG10=TRUE, ylim=c(0,50), threshold=1.48e-6,threshold.lty=c(1,2),
       threshold.lwd=c(1,1), threshold.col=c("black","grey"), amplify=TRUE,bin.size=1e7,
       chr.den.col=c("gray", "yellow", "darkgreen"),signal.col=c("blue","green"),signal.cex=c(1,1),
       signal.pch=c(19,19),file="pdf",file.name="",dpi=500,file.output=TRUE,verbose=TRUE,
       highlight=a,highlight.text=a,highlight.cex =1.5,highlight.text.cex=0.9,highlight.text.font=1.5,
       width=16,height=6,main= "Cancer of TWAS",main.cex=1.2,main.font=2.5)
#############################PWAS曼哈顿图
setwd('H:\\Puberty_SEM\\Tables and Figure')
library('CMplot')
library(dplyr)
PWAS = read.table('PWAS.txt',header = T,sep = '\t')
PWAS_1 <- PWAS %>% distinct(ID,.keep_all = TRUE)
a<-c('ACP1',
     'DLK1', 
      'HPGDS', 
      'PCSK1',
      'RMDN1',
      'TIE1')
CMplot(PWAS_1, plot.type="m", LOG10=TRUE, ylim=c(0,20), threshold=6.01e-5,threshold.lty=c(1,2),
       threshold.lwd=c(1,1), threshold.col=c("black","grey"), amplify=TRUE,bin.size=1e7,
       chr.den.col=c("gray", "yellow", "darkgreen"),signal.col=c("blue","green"),signal.cex=c(1,1),
       signal.pch=c(19,19),file="pdf",file.name="",dpi=500,file.output=TRUE,verbose=TRUE,
       highlight=a,highlight.text=a,highlight.cex =1.5,highlight.text.cex=0.9,highlight.text.font=1.5,
       width=16,height=6,main= "PWAS",main.cex=1.2,main.font=2.5)

 

Pmap : 一个数据帧,至少有四列。第一列是SNP的名称,第二列是SNP的染色体,第三列是SNP的位置,其余列是每个性状的P值(注:每种特征一列)。

col : 一个向量或一个矩阵,如果“col”是一个向量,每个圆使用相同的颜色,这意味着同一条染色体被涂成相同的颜色,颜色是不固定的,可以使用一种、两种、三种或更多的颜色,如果“col”的长度比染色体的长度短,那么颜色就会循环应用。如果“col”是一个矩阵,行是圆的数目(traits),列是用户希望用于不同圆的颜色,每个圆可以用不同的颜色数绘制,缺少的值可以用NA替换。例如:col=矩阵(c(“灰色30”,“灰色60”,NA,“红色”,“蓝色”,“绿色”,“橙色”,NA,NA),3,3,byrow=T)。

bin.size : filename_points_covered_by_landmarks plot的bin大小。

bin.range : 向量c(最小值,最大值)。filename_edges_strength plot图例的最小/最大值,SNP值小于/大于'箱柜范围'将使用相同的颜色。

pch : 多性状曼哈顿图的点或性状的形状与中的“pch”相同。

type : 字符可以是“p”(点)、“l”(线)、“h”(垂直线)等,与中的“type”相同。

band : 一个数字,染色体之间的空间,默认值是1(如果带等于0,那么染色体之间就没有空间)。

H : 一个数字,每个圆的高度,每个圆代表一个特征,默认为1。

ylim : 向量或列表,CMplot只绘制这个区间中的点,ylim可以是向量或列表,如果是列表,不同的性状可以在y轴上分配不同的范围。

cex.axis : 一个数字,控制X/Y轴的记号标签的大小和圆图的染色体标签的大小。

lwd.axis : 一个数字,控制X/Y轴线的厚度。

cex.lab : 一个数字,控制X/Y轴标签的大小。

plot.type : 字符或矢量,只能使用“d”、“c”、“m”、“q”或“b”。如果绘图类型=“d”,将绘制SNP密度;如果绘图类型=“c”,只绘制曼哈顿圆图;如果绘图类型=“m”,只绘制曼哈顿地块;如果绘图类型=“q”,只绘制q-q图;如果绘图类型=“b”,将绘制曼哈顿圈、曼哈顿圈和Q-Q图;如果plot.type=c图(“m”、“q”),将绘制曼哈顿和Q-Q图。

multracks : 逻辑上,如果multracks=FALSE,所有曼哈顿绘图将绘制在单独的文件中,如果为TRUE,所有曼哈顿绘图将绘制在一个文件中。

cex : 一个数字或一个向量,即点的大小,与中的“size”相同,如果是向量,则第一个数字控制圆图中点的大小(默认值为0.5),第二个数字控制曼哈顿图中点的大小(默认值为1),第三个数字控制Q-Q图中点的大小(默认值为1)

r : 一个数字,为圆的半径(内半径),默认为1。

outward : 逻辑上,如果outside=TRUE,则所有点都将从内到外绘制为圆形曼哈顿图。

ylab : 一个字符,y轴的标签。

ylab.pos : ylab和y轴之间的距离。

xticks.pos : x记号标签和x轴之间的距离。

mar : 图周围白色间隙的大小,应提供4个值,指示底部、左侧、上和右侧的方向。

threshold : 一个数字或向量,有效阈值。例如,Bonfferoni调整方法:threshold=0.01/nrow(Pmap)。可以在绘图上添加多条有效线,如果阈值=0或NULL,则不会添加阈值线。

threshold.col : 一种字符或矢量,颜色为线的阈值电平,它还可以控制QQplot对角线的颜色。

threshold.lwd : 一个数字或矢量,宽度为线的阈值水平,它还可以控制QQplot对角线的厚度。

threshold.lty : 一个数字或矢量,该类型为线的阈值电平,它还可以控制QQplot的对角线类型。

amplify : 逻辑上,CMplot可以放大有效点,如果放大=T,则大于最小有效水平的点将被放大,默认值:放大=TRUE。

signal.cex : 一个数字,如果放大=真,用户可以设置有效点的大小。

signal.pch : 一个数字,如果放大=真,用户可以设置有效点的形状。

signal.col : 一个字符,如果放大=真,用户可以设置有效点的颜色,如果signal.col=空,则有效点的颜色不会改变。

signal.line : 一个数字,有意义的snp横穿圆圈的线条的厚度。

highlight : 向量或列表,需要突出显示的snp的名称。单个性状的向量和多个性状的列表。

highlight.cex : 向量或列表,需要突出显示的snp的点的大小。

highlight.pch : 向量或列表,需要突出显示的SNP点的pch。

highlight.type : 向量或列表,需要突出显示的SNP点的类型。

highlight.col : 向量或列表,需要突出显示的SNP的点列。

highlight.text : 一个向量或列表,将在突出显示的snp周围添加的文本。

highlight.text.col : 矢量或列表,添加文本的颜色。

highlight.text.cex : 一个值,即添加文本的大小。

highlight.text.xadj : 单个性状的值或向量或多个性状的列表,-1,0,1限制,控制突出显示的SNP周围文本的位置,-1(左),0(中),1(右)。

highlight.text.yadj : 单个性状的值或向量或多个性状的列表,-1,0,1限制,控制突出显示的SNP周围文本的位置,-1(向下),0(中间),1(向上)。

highlight.text.font : 突出显示的SNP的文本字体。

chr.labels : 一个向量,标签为染色体的密度图和圆曼哈顿图。

chr.border : 逻辑上,是否绘制染色体间的点线。

chr.labels.angle : 一个值,调整曼哈顿图的x轴刻度标签的角度(-90

chr.den.col : 一个字符或矢量或空,表示SNP密度的颜色。如果参数的长度颜色den.col'大于1,即计算给定大小内SNP数量的SNP密度('箱子尺寸)将围绕圆绘制。如果chr.den.col=空,密度条不会附着在曼哈顿地块的底部。

cir.band : 一个数字,圆圈之间的间距,默认为1。

cir.chr : 逻辑上,表示染色体的边界将绘制在圆的外围,默认为TRUE。

cir.chr.h : 一个数字,边界的宽度,如果cir.chr=错误,则此参数将无效。

cir.legend : 逻辑上,是否要添加每个圆的图例。

cir.legend.cex : 一个数字,一个数字大小的图例。

cir.legend.col : 一个人物,传说中轴心的颜色。

LOG10 : 逻辑上,是否将p值改为log10(p值)。

box : 逻辑上,此函数围绕当前曼哈顿绘图绘制一个框。

conf.int : 逻辑上,是否在QQ图上绘制置信区间。

conf.int.col : 字符或向量,QQplot的置信区间的颜色。

file.output : 逻辑上,用户可以选择是否输出绘图结果。

file : 一个字符,用户可以选择不同的打印输出格式,所以对于“jpg”、“pdf”、“tiff”等可以由用户选择。

dpi : 一个数字,.jpg和.tiff文件的图片分辨率。默认值为300。

height : 输出文件的高度。

width : 输出文件的宽度。

memo : 在输出文件名中添加一个字符。

main : 向量的特征,曼哈顿图和qqplot图的标题。

main.cex : 标题大小。

main.font : 标题字体。

trait.legend.ncol : 多个图形图例的列数。

verbose : 是否打印日志信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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绘制曼哈顿。根据您的数据和个性化设置,可能需要调整和修改代码以满足您的需求。希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值