对pdata的处理可以在下载后直接完成,供后续分析。但实际过程中无法第一时间明确数据挖掘的目的,所以也会随着数据分析的过程逐步完成。
# 程序功能:
# 1、选择百草枯和对照样本数据,保存文件。
# 2、提取相应分组信息,并提取批次信息。供差异分析
rm(list = ls())
path <- "F:\\myresearch\\paraquatGEO"
setwd(path)
library(stringr)
library(dplyr)
select <- dplyr::select
load(".\\data\\exprset_select.RData")
# 读取总表达矩阵--------------------------------
gse_id <- "GSE51952"
exprSet <- read.csv(paste0(".\\data\\", gse_id, "_annoted.csv"), row.names = 1)
exprSet[1:10, 1:10]
开始处理
# 读入并处理元数据-----------------
pdata <- read.csv(paste0(".\\data\\", gse_id, "_metadata.csv"), row.names = 1)
pdata[1:10, 1:10]
pdata_info <- pdata %>% apply(2, function(x) {
unique(x)
})
pdata_unique_cout <- pdata %>%
lapply(function(x) (unique(x) %>% length())) %>%
data.frame() %>%
t() %>%
data.frame()
colnames(pdata_unique_cout) <- c("n")
str(pdata_unique_cout)
pdata <- pdata %>% select(pdata_unique_cout %>% filter(n > 1) %>% rownames())
str(pdata)
pdata <- pdata %>% mutate(
# 提取批次信息
batch = str_extract(pdata$title, "rep[1-9]$"),
# 提取化合物信息
compond = str_extract(pdata$compound..dose.ch1, "^[A-Za-z0-9]*"),
# 处理title列,删除不需要的字符
title1 = pdata$title %>%
sapply(function(x) {
str_split(x, "_")[[1]][c(-1, -2, -3)] %>%
str_c(collapse = "_") %>%
str_replace("24h_", "")
})
)
# 手动完成,找到可供参考的列
pdata$compond %>% table()
# 查看其他表型信息
pdata %>% apply(2, function(x) table(x))
# 插入分组信息列,非必须,为了代码通用性,建议应用
pdata <- pdata %>% mutate(group = compond)
pdata$group %>% table()
处理结束,以下为其他代码,不重要
# 查看特定化合物行索引
which(pdata[, "compond"] == "PAQ")
# which(pdata[,"compond"] == "LiC")
View(pdata[30:50, ])
# 提取后面紧跟着的做对照组
pdata_1 <- pdata[c(40:48), ]
# 提取相应的表达矩阵
exprSet_1 <- exprSet[, rownames(pdata_1)]
# 保存
save(exprSet_1, pdata_1, file = ".\\data\\paq_and_pbs.RData")
# save(exprSet_1,pdata_1,file = ".\\data\\lic_and_pbs.RData")
save.image(file = ".\\data\\exprset_select.RData")
网友评论