scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值

scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值,第1张

(1)指定统计检验方式(2)指定比较组并添加P值(3)任意比较(4)分组比较 (5)使用星号代替P值 等


一 载入R包 数据

使用本文开始的基因集评分的结果 和 ggpubr 包进行统计检验以及可视化的展示。

library(tidyverse)library(ggpubr)load( "sce.anno.RData")df <- sce2@meta.datahead(df)

scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值,第2张


二 ggpubr可视化

先绘制基本的箱线图

p1 <- ggboxplot(df, x="celltype", y="AUCell", width = 0.6,                 color = "black",#轮廓颜色                fill="celltype",#填充                palette = "npg",                xlab = F, #不显示x轴的标签                bxp.errorbar=T,#显示误差条                bxp.errorbar.width=0.5, #误差条大小                size=1, #箱型图边线的粗细                outlier.shape=NA, #不显示outlier                legend = "right") #图例放右边 + p1

scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值,第3张

展示为6种细胞类型的基因集评分的箱线图。

1,指定比较的组

ggpubr 中使用stat_compare_means函数进行统计学检验,需要是list形式。

假设感兴趣的是Epi,T 和 Myeloid 与 un之间 ,是否有统计学差异?

###指定组比较my_comparisons <- list(c("Epi", "un"), c("T", "un"),c("Myeloid", "un"))p1+stat_compare_means(comparisons = my_comparisons,                     method = "wilcox.test")

scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值,第4张

根据method函数选择统计方法,多组时候可选anova ,两组时候可根据情况选择t.test 或者 wilcox.test .

2, 指定ref组

比如想把所有的细胞类型都和un进行比较 , 可以通过ref.group 进行设置

p1 +  stat_compare_means(method = "wilcox.test",ref.group = "un")

scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值,第5张

3, 任意两两之间比较

有没有参数可以两两之间分别比较呢? 小编暂时没有发现,希望知道的不吝赐教 。

可以手动输入,但是当类别特别多的情况下耗时且易错。可以先通过combn函数生成两两之间的list ,然后套用stat_compare_means 函数即可。

#生成两两之间的listgroup=levels(factor(df$celltype))comp=combn(group,2)comp#     [,1]      [,2]         [,3]  [,4]   [,5]  [,6]         [,7]      [,8]      [,9]      [,10]        [,11]       #[1,] "Epi"     "Epi"        "Epi" "Epi"  "Epi" "Myeloid"    "Myeloid" "Myeloid" "Myeloid" "Fibroblast" "Fibroblast"#[2,] "Myeloid" "Fibroblast" "T"   "Endo" "un"  "Fibroblast" "T"       "Endo"    "un"      "T"          "Endo"#     [,12]        [,13]  [,14] [,15] #[1,] "Fibroblast" "T"    "T"   "Endo"#[2,] "un"         "Endo" "un"  "un"
my_comparisons=list()for(i in 1:ncol(comp)){ my_comparisons[[i]]<-comp[,i] }
p1+stat_compare_means(comparisons = my_comparisons)

scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值,第6张

那如果想要 非un的细胞类型 两两之间比较呢?可以先去掉un再比较 df2 <- df %>% filter(celltype != "un")

4,多组之间比较

多组的话method使用anova

p1 +stat_compare_means(method = "anova")

scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值,第7张

5,按照group分组然后比较

按照group进行分组,比较原发和转移组之间在不同细胞类型之间是否有差异

p2 <- ggboxplot(df,x="celltype", y="AUCell",color = "group",              palette = "npg",              xlab = F, #不显示x轴的标签              bxp.errorbar=T,#显示误差条              bxp.errorbar.width=0.5, #误差条大小              size=1, #箱型图边线的粗细              #outlier.shape=NA, #不显示outlier              legend = "right")p2 + stat_compare_means(aes(group = group))

scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值,第8张

三 可视化调整

除上述之外还有一些常见的小调整,比如去掉p值前面的统计方法, 将P值改为星号,调整坐标轴和标签等等。如果想画小提琴的话只需要把ggboxplot 改为 ggviolin 即可。

1,去掉p值前面的Wilcoxon

p1+stat_compare_means(comparisons = my_comparisons,                      aes(label = paste0("p =", ..p.format..)) )

scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值,第9张

2,将p值改为星号

p1+stat_compare_means(comparisons = my_comparisons,                     label = "p.signif")

scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值,第10张

3,设置字体大小,位置,颜色等

p1 + stat_compare_means( comparisons = my_comparisons,                         aes(label = paste0("p =", ..p.format..)), # 只显示p值大小,不呈现计算方法                         color="grey50", # 字体的颜色                         method = "wilcox.test", #                          size=5, # p值的文字的大小                         #label.y = 0.7 # p值展示在什么地方) +   labs(x="", y="AUCell_score") + #更改坐标轴  theme_classic() #更改主题

scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值,第11张

这里就可以使用一些ggplot2的参数进行自定义优化了。有需要的可以看一下ggplot2的基础知识。

ggplot2|详解八大基本绘图要素

ggplot2 | 关于标题,坐标轴和图例的细节修改,你可能想了解

ggplot2|theme主题设置,详解绘图优化-“精雕细琢”

◆ ◆ ◆  ◆ 

精心整理(含图PLUS版)|R语言生信分析,可视化(R统计,ggplot2绘图,生信图形可视化汇总)

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » scRNA分析|自定义你的箱线图-统计检验,添加p值,分组比较p值

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情