R语言处理PCR数据,一步画柱状图、添加显著性标志并实现截断

PCR数据要有三列,一列是组名,一列是内参基因的CT值,一列是目的基因的CT值,计算方法是-2∆∆Ct 法,实现一步出图用的是ggpubr,实现截断则是Y叔出手的ggbreak

  • 列如下面这个表,定义为PCR.csv,放桌面上:
group GAPDH XXX
control 12.53 23.14
control 12.54 22.92
control 12.25 22.65
treat 12.74 18.86
treat 12.78 18.87
treat 12.76 18.89
读取表格,并计算相对mRNA定量

PCR <- read_csv("~/Desktop/PCR.csv") #读表
PCR$dct=PCR$XXX-PCR$GAPDH  ##目的基因Ct-内存基因Ct,即∆Ct
PCR$ddct=PCR$dct-mean(PCR$dct[1:3])  ##∆Ct-对照组Ct均值,即∆∆Ct
PCR$mrna=2^-PCR$ddct  ##取-∆∆Ct的2次放,即-2^∆∆Ct

R语言处理PCR数据,一步画柱状图、添加显著性标志并实现截断

一步出图,ggpubr自带计算,均值、标准差、标准误,CI、P值都不在话下

library(ggpubr)
ggbarplot(PCR,
         group ,
         mrna ,
        fill =  group , # 按组填充颜色,当然如果喜爱单色,就用‘black’
        palette = "jco",  ## "npg", "aaas", "lancet"等主题任意选
        add = "mean_sd",,xlab = F,ylab =  Relative mRNA expression ,legend= none ,
        ggtheme = theme_bw()#选一个自己喜爱的背景
)+stat_compare_means(method =  t.test )

R语言处理PCR数据,一步画柱状图、添加显著性标志并实现截断

简单的优化一下,用上ggprism这个包,用上prism主题,冒充一下上用graphpad做的图

install.packages("ggprism")
library(ggprism)
ggbarplot(PCR,
           group ,
           mrna ,
          fill = "black",
          add = "mean_sd",
          xlab = F,ylab =  Relative mRNA expression ,legend= none ,
          ggtheme = theme_prism()
)+stat_compare_means(aes(label = ..p.signif..),  ## 改成星星
                    comparisons = list(c( control , treat )),  ## 添加一下列表
                    method =  t.test )

R语言处理PCR数据,一步画柱状图、添加显著性标志并实现截断

最后截断一下Y值

以前很少有包可以完美实现这个功能,我以前写过R做截断柱状图并加显著性统计可以实现,但Y叔出手写了个ggbreak包,完美的就解决了

install.packages("ggbreak")
library(ggbreak)
p<-ggbarplot(PCR,
           group ,
           mrna ,
          fill = "black",
          add = "mean_sd",
          xlab = F,ylab =  Relative mRNA expression ,legend= none ,
          ggtheme = theme_prism()
)+stat_compare_means(aes(label = ..p.signif..),  
                     comparisons = list(c( control , treat )),  
                     method =  t.test )
 ## 只要一句话就解决了,1.5是下轴,15是上轴,当然也可以三截断,定义宽度和高度,具体的自己可以研究
p+scale_y_break(c(1.5, 15) ,scales = c(1,10))

R语言处理PCR数据,一步画柱状图、添加显著性标志并实现截断


实则还有一个pcr的包也能简单实现,而且自动计算mRNA相对表达定量,而且对照组定量是1,更加科学,但是表格只是两列CT值,还要重新定义组,所以要先提取一下表格,处理一下数据。

install.packages("pcr")
library(pcr)
ct1<-PCR[,-c(1,4:6)]
group_var <- rep(c( control ,  treat ), each = 3)
result<-pcr_analyze(ct1,
            group_var = group_var,
            reference_gene =  GAPDH ,
            reference_group =  control ,
            method =  delta_delta_ct )

R语言处理PCR数据,一步画柱状图、添加显著性标志并实现截断

实则pcr这个包也是可以直接出图的,还可以计算多基因,缺点是P值要另算,不能直接添加,所以要后期AI,出图直接加一句plot=T

library(pcr)
pcr_analyze(ct1,
            group_var = group_var,
            reference_gene =  GAPDH ,
            reference_group =  control ,
            method =  delta_delta_ct ,plot=T)

R语言处理PCR数据,一步画柱状图、添加显著性标志并实现截断

也可以截断,还是ggbreak

pcr_analyze(ct1,
            group_var = group_var,
            reference_gene =  GAPDH ,
            reference_group =  control ,
            method =  delta_delta_ct ,plot=T)+scale_y_break(c(1.5, 15) ,scales = c(1,10))+theme_prism()

R语言处理PCR数据,一步画柱状图、添加显著性标志并实现截断

© 版权声明

相关文章

1 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    牛油果舒芙蕾_ 投稿者

    这个计算方式,如果不是两组,也就是不是“control”和“treat”,而是“group1”, “group2”, “group3”, “group4”,是不是不能这样计算了?因为我看这一步“PCR$ddct=PCR$dct-mean(PCR$dct[1:3]) ##∆Ct-对照组Ct均值,即∆∆Ct”中mean(PCR$dct[1:3])是一个定值

    无记录