good code R plotR优质资源

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

2021-07-06  本文已影响0人  欧阳松

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

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
mRNA的相对定量
一步出图,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')
image.png
简单的优化一下,用上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')
image.png

最后截断一下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))
image.png

其实还有一个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')
image.png

其实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)
image.png

也可以截断,还是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()
image.png
上一篇 下一篇

猜你喜欢

热点阅读