专题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
引用自生信技能树