R语言专题6-表达矩阵画箱线图

2023-09-23 10:12:05 浏览数 (1)

专题6-表达矩阵画箱线图

GEO的芯片数据处理可能要用到这些这边放到第六个专题详细写一下

先生成一个随机的矩阵

代码语言:text复制
set.seed(10086) # 为了我的结果能在你的电脑重复,设置了种子
exp = matrix(rnorm(18),ncol = 6) ;exp # 通过18个随机数,生成3行6列的矩阵
代码语言:txt复制
##            [,1]       [,2]      [,3]       [,4]       [,5]       [,6]
## [1,]  0.5497892  0.4854790 0.8048611 -0.3689388 -1.8219731 -1.6187002
## [2,] -2.7449592 -0.6263183 1.0810640  2.1055543 -0.2182194  1.4216431
## [3,]  0.5664575  0.2547939 0.3234522  2.4910328  0.5845722 -0.8081741
代码语言:text复制
rownames(exp) = paste0('gene',1:3) # 改下行名
colnames(exp) = paste0('test',1:6) # 改下列名
exp = round(exp,2) # 保留x位小数
exp
代码语言:txt复制
##       test1 test2 test3 test4 test5 test6
## gene1  0.55  0.49  0.80 -0.37 -1.82 -1.62
## gene2 -2.74 -0.63  1.08  2.11 -0.22  1.42
## gene3  0.57  0.25  0.32  2.49  0.58 -0.81
代码语言:text复制
# 因为是随机生成的,所以改一下也没问题,真实数据不能动哈
exp[,1:3] = exp[,1:3]   1 
exp
代码语言:txt复制
##       test1 test2 test3 test4 test5 test6
## gene1  1.55  1.49  1.80 -0.37 -1.82 -1.62
## gene2 -1.74  0.37  2.08  2.11 -0.22  1.42
## gene3  1.57  1.25  1.32  2.49  0.58 -0.81

运行几个R包

代码语言:text复制
library(tidyr)
library(tibble)
library(dplyr)

现在开始处理数据,将其转化为一个R语言看得懂的数据框

顺便复习下之前讲过的管道符号

代码语言:text复制
dat = t(exp) %>% # 转置
  as.data.frame() %>% # 转换为数据框
  rownames_to_column() %>% # 行名转换为列名
  mutate(group = rep(c("control","treat"),each = 3)) #新增一列group
pdat = dat %>%
  pivot_longer(cols = 2:4, # 提取关键信息所在列(这边是‘gene’)
               names_to = 'gene', # 起名为gene
               values_to = 'count') # 原来gene 1、2、3的值新建一列
 pdat
代码语言:txt复制
## # A tibble: 18 × 4
##    rowname group   gene  count
##    <chr>   <chr>   <chr> <dbl>
##  1 test1   control gene1  1.55
##  2 test1   control gene2 -1.74
##  3 test1   control gene3  1.57
##  4 test2   control gene1  1.49
##  5 test2   control gene2  0.37
##  6 test2   control gene3  1.25
##  7 test3   control gene1  1.8 
##  8 test3   control gene2  2.08
##  9 test3   control gene3  1.32
## 10 test4   treat   gene1 -0.37
## 11 test4   treat   gene2  2.11
## 12 test4   treat   gene3  2.49
## 13 test5   treat   gene1 -1.82
## 14 test5   treat   gene2 -0.22
## 15 test5   treat   gene3  0.58
## 16 test6   treat   gene1 -1.62
## 17 test6   treat   gene2  1.42
## 18 test6   treat   gene3 -0.81

处理完数据就可以开始画图了

R语言作图ggplot2的应用中详细介绍过这个R包,这边就不过多描述了

代码语言:text复制
library(ggplot2)
p = ggplot(data = pdat,mapping = aes(x = gene,y = count)) 
  geom_boxplot(mapping = aes(fill = group)) 
  theme_bw() 
  facet_wrap(~gene,scales = "free")
p

引用自生信技能树

0 人点赞