检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例
目录
上节我们下载了基因芯片平台文件并注释,我们发现存在一个芯片探针ID匹配到多个基因的情况,本节来介绍处理方案。

处理一个探针对应多个基因
我们通过简单检索发现两种方法:1.删除操作 2.保留////分割符号前面的第一个基因
1.删除该行
#处理一个探针对应多个基因
#方案一:【删除该行】
explan_final <- data.frame(explan_final[-grep("///",explan_final$"Gene.Symbol"),])
#去一对多,grep是包含的意思,-就是不包含
2.保留////分割符号前面的第一个基因
#方案二:【保留第一个基因名】
ids = platform_file_set #探针列名和基因名两列
library(tidyverse)
test_function <- apply(ids,
1,
function(x){
paste(x[1],
str_split(x[2],'///',simplify=T),
sep = "...")
})
x = tibble(unlist(test_function))
colnames(x) <- "ttt"
ids <- separate(x,ttt,c("ID","Gene.Symbol"),sep = "\\...")
dim(ids) #探针列名和基因名两列
显然,第一个发现非常简单,在使用merge函数匹配时,会剔除更多的基因。第二个方法,会保留更多基因。
处理多个探针对应一个基因
表达矩阵中还有一个问题,如下图所示,很多探针指向同一个基因。

#把重复的Symbol 取每个基因所有探针的平均值或最大值作为基因的表达量
matrix <- aggregate(.~Gene.Symbol, matrix, mean) ##把重复的Symbol取平均值
matrix <- aggregate(.~Gene.Symbol, matrix, max) ##把重复的Symbol取最大值
详细代码案例一删除法
# 安装并加载GEOquery包 library(GEOquery) # 指定GEO数据集的ID gse_id <- "GSE1297" # 使用getGEO函数获取数据集的基础信息 gse_info <- getGEO(gse_id, destdir = ".", AnnotGPL =
3190


芯片探针ID与基因名映射处理&spm=1001.2101.3001.11974&articleId=133303270&d=1&t=3&u=43c5e18e9f4947c9a1d1adb089fcb552)

被折叠的 条评论
为什么被折叠?



