单基因泛癌表达箱线图和配对箱线图展示

单基因泛癌表达箱线图是泛癌分析文章必不可少的一个图,配对箱线图在很多文章中也有出现。本文讲解如何实现单个基因在泛癌表达箱线图和配对箱线图展示。
先上效果图:


image.png

1. 单基因泛癌表达箱线图

本首先是从xena下载泛癌矩阵。下载地址:https://xenabrowser.net/datapages/?cohort=TCGA%20Pan-Cancer%20(PANCAN)&removeHub=https%3A%2F%2Fxena.treehouse.gi.ucsc.edu%3A443 一般下载tpm格式即可。

image

然后是在同页面下载临床信息。

image

通过tidyverse R包进行数据的合并、转置等操作,得到如下数据框,其中每一行为一个样本,每一列为基因或临床信息(这里的tpm竟然有负数)。也可以参考2022新版TCGA数据下载与整理,人肉下载再手动合并(链接中是下载的count矩阵,也可以选择下载tpm那一列)。

image

以CBX3基因为例画图。

library(ggpubr)
# Type为Control和Tumor的分组,Cancer为33种肿瘤的名称。
p <- ggboxplot(pandata, x = "Cancer", y = "CBX3",
               color = "Type", palette = "jco")+
     rotate_x_text(angle = 90) #将x轴肿瘤名称旋转90°展示

p + stat_compare_means(aes(group = Type), label = "p.signif", label.y =11) 
# label = "p.signif"表示星号表示,label="p.format"表示p值展示
# label.y表示设置星号的纵坐标。

图如下:

image

还可以显示散点:

library(ggpubr)
p <- ggboxplot(pandata, x = "Cancer", y = "CBX3",
               color = "Type", palette = "jco",
               add = "jitter")+
     rotate_x_text(angle = 90)

p + stat_compare_means(aes(group = Type),label = "p.signif", label.y =11)
image

2. 单基因配对箱线图

先以BRCA为例

library(tidyverse)

BRCA=drawdata[pandata$Cancer=="BRCA",]

BRCA$ID=stringr::str_sub(BRCA$ID,1,12) # 取样本名字前12位

Normal=filter(BRCA,Type=="Normal")
Tumor=filter(BRCA,Type=="Tumor")
Tumor=Tumor[!duplicated(Tumor$ID),] #去除肿瘤组中的重复样本

index <- intersect(Normal$ID,Tumor$ID) #取正常和肿瘤组中共有患者
T1=filter(Tumor, ID %in% index)
N1=filter(Normal, ID %in% index)
data=rbind(T1,N1)

library(ggpubr)
p <- ggpaired(data, x = "Type", y = "CBX3",
                color = "black", 
                fill = c("#E11E24","#FBB96F"),
                line.color = "gray", line.size = 0.4,
                ylab = "expression of CBX3",
                palette = "npg")

p + stat_compare_means(paired = TRUE,label="p.signif", label.x.npc=0.4,comparisons=list(c("Tumor","Normal")))
image.png

p值显示:

library(tidyverse)
BRCA=drawdata[pandata$Cancer=="BRCA",]
BRCA$ID=stringr::str_sub(BRCA$ID,1,12) # 取样本名字前12位

Normal=filter(BRCA,Type=="Normal")
Tumor=filter(BRCA,Type=="Tumor")
Tumor=Tumor[!duplicated(Tumor$ID),] #去除肿瘤组中的重复样本

index <- intersect(Normal$ID,Tumor$ID) #取正常和肿瘤组中共有患者
T1=filter(Tumor, ID %in% index)
N1=filter(Normal, ID %in% index)
data=rbind(T1,N1)

library(ggpubr)
p <- ggpaired(data, x = "Type", y = "CBX3",
                color = "black", 
                fill = c("#E11E24","#FBB96F"),
                line.color = "gray", line.size = 0.4,
                ylab = "expression of CBX3",
                palette = "npg")

p + stat_compare_means(paired = TRUE,label="p.format", label.x.npc=0.4,comparisons=list(c("Tumor","Normal")))
image.png

至于单基因配对箱线图泛癌展示我还没想好,暂时只能用分面来解决。

library(ggpubr)
data=pandata
data$ID=stringr::str_sub(data$ID,1,12)
Tumor = subset(data,Type=="Tumor")
Tumor=Tumor[!duplicated(Tumor$ID),]
Normal = subset(data,Type=="Normal")

index <- intersect(Normal$ID,Tumor$ID)
T1=filter(Tumor, ID %in% index)
N1=filter(Normal, ID %in% index)
paireddata=rbind(T1,N1)

p <- ggpaired(paireddata,x="Type", y="CBX3",
              color = "Type",palette = "jco",
              line.color = "gray",line.size = 0.4,
              facet.by = "Cancer",short.panel.labs = F)

p + stat_compare_means(label="p.signif",paired=T,label.x.npc=0.4,label.y=9)
image.png

你可能感兴趣的:(单基因泛癌表达箱线图和配对箱线图展示)