R语言实践二之数据预处理、探针ID转换、探针去重

目标二:数据预处理,探针ID转换,探针去重
1、数据预处理
自动log2化,解释

ex <- exprSet
qx <- as.numeric(quantile(ex, c(0., 0.25, 0.5, 0.75, 0.99, 1.0), na.rm=T))
LogC <- (qx[5] > 100) ||
  (qx[6]-qx[1] > 50 && qx[2] > 0) ||
  (qx[2] > 0 && qx[2] < 1 && qx[4] > 1 && qx[4] < 2)
## 开始判断
if (LogC) { 
  ex[which(ex <= 0)] <- NaN
  ## 取log2
  exprSet <- log2(ex)
  print("log2 transform finished")
}else{
  print("log2 transform not needed")
}

以上代码在GEO官网可查。

library(limma) 
boxplot(exprSet,outline=FALSE, notch=T, las=2)  ##出箱线图
### 该函数默认使用quntile 矫正差异 
exprSet=normalizeBetweenArrays(exprSet)
boxplot(exprSet,outline=FALSE, notch=T, las=2)
## 这步把矩阵转换为数据框很重要
class(exprSet)   ##注释:此时数据的格式是矩阵(Matrix)
exprSet <- as.data.frame(exprSet)

2、探针基因名转换
platformMap.txt中有常见的平台各R注释包的对应关系,是大佬整理好的。直接读取即可。

platformMap <- data.table::fread("/home/data/vip11t50/ZH/GSE42872(2)/platformMap.txt",data.table = F)

## 平台的名称如何知道?(GEO官网也可以查到)
index <- "GPL6244"
## 数据储存在bioc_package这一列中
paste0(platformMap$bioc_package[grep(index,platformMap$gpl)],".db")

## 安装R包,可以直接安装,这里用了判断
if(!requireNamespace("hugene10sttranscriptcluster.db")){
  options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
  BiocManager::install("hugene10sttranscriptcluster.db",update = F,ask = F)
}
##备用方法:在必应上搜索R包名称(如hugene10sttranscriptcluster)加“.db”,可找到下载方法。

## 加载R包
library(hugene10sttranscriptcluster.db)
## 获取探针和基因的对应关系:这是探针注释的关键步骤
probe2symbol_df <- toTable(get("hugene10sttranscriptclusterSYMBOL"))
## 探针有多少个?
length(unique(probe2symbol_df$probe_id))  #结果:19870个。
## 这么多行中,基因名称有重复的么?
length(unique(probe2symbol_df$symbol))  #结果:18859行。

3、探针转换以及去重,获得最终的表达矩阵
tips:
可以用#拆分体会,学会分步探索排查。
符号%>%,是管道操作,其作用是将前一步的结果直接传参给下一步的函数,从而省略了中间的赋值步骤,可以大量减少内存中的对象,节省内存。

library(dplyr)
library(tibble)
exprSet <- exprSet %>% 
  ## 行名转列名,因为只有变成数据框的列,才可以用inner_join
  rownames_to_column("probe_id") %>% 
  ## 合并探针的信息
  inner_join(probe2symbol_df,by="probe_id") %>% 
  ## 去掉多余信息
  dplyr::select(-probe_id) %>%  #备注:若跑select时报Error则可加dplyr::试试
  ## 重新排列
  dplyr::select(symbol,everything()) %>%  
  ## rowMeans求出行的平均数(这边的.代表上面传入的数据)
  ## .[,-1]表示去掉出入数据的第一列,然后求行的平均值
  mutate(rowMean =rowMeans(.[,-1])) %>%    #备注:.=exprSet
  ## 把表达量的平均值按从大到小排序
  arrange(desc(rowMean)) %>% 
  ## 去重,symbol留下第一个
  distinct(symbol,.keep_all = T) %>% 
  ## 反向选择去除rowMean这一列
  dplyr::select(-rowMean) %>% 
  ## 列名转行名
  column_to_rownames("symbol")

保存数据

save(exprSet,file = "/home/data/vip11t50/ZH/GSE42872(2)/exprSet_rmdup.Rdata")

可以用load("exprSet_rmdup.Rdata")打开,或左上角File-Open File
btw,把R保存为csv文件可用write.csv(exprSet,file="excel1.csv")

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容