R語言GEO數(shù)據(jù)挖掘01-數(shù)據(jù)下載及提取表達矩陣

作者:白介素2

  • 這一節(jié)的內容包括應用 GEOquery包下載芯片數(shù)據(jù)挪哄,提取表達矩陣,提取metadata信息蟆盐。
  • 解決一個探針對應多個基因的問題

GEO數(shù)據(jù)下載-GEOquery

安裝GEOquery包

options(stringsAsFactors = F)##避免將character轉換為因子
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
if(!require("GEOquery")) BiocManager::install("GEOquery")
library(GEOquery)
library(dplyr)
browseVignettes("GEOquery")##獲取幫助

選擇一個數(shù)據(jù)集GSE7765演示分析

數(shù)據(jù)集基本情況
芯片平臺GPL96,GPL97; sample數(shù)12個

下載表達矩陣

gse <- getGEO("GSE7765", GSEMatrix = TRUE) 
show(gse)

GSE7765中包括兩個平臺捐川,兩個數(shù)據(jù)集

提取表達矩陣及metadata

class(gse)
str(gse)
a<-gse[[1]]
b<-gse[[2]]
class(gse[[1]])##ExpressionSet

##提取第一個數(shù)據(jù)集的phenodata
dim(pData(gse[[1]]))
metdata<-pData(gse[[1]])
metdata[1:5,1:5]
colnames(metdata)##phenodata信息很多酗昼,但用得上的很少

##提取第一個表達矩陣
expma<-exprs(a)
dim(expma)
expma[1:5,1:5]
save(metdata,expma,file = "expma.Rdata")
          GSM188013 GSM188014 GSM188016 GSM188018 GSM188020
1007_s_at 15630.200 17048.800 13667.500 15138.800 10766.600
1053_at    3614.400  3563.220  2604.650  1945.710  3371.290
117_at     1032.670  1164.150   510.692  5061.200   452.166
121_at     5917.800  6826.670  4562.440  5870.130  3869.480
1255_g_at   224.525   395.025   207.087   164.835   111.609

平臺注釋信息處理

芯片數(shù)據(jù)分析中很重要的內容即平臺信息處理,獲取相應的平臺

這里我們選擇GPL96

if(F){load(file="expma.Rdata")}
GPL="GPL96"##下載平臺注釋
gpl <- getGEO(GPL,destdir = getwd()) %>% 
  Table() %>% ##轉換為data.frame格式
  save(file = "GPL96_annot.Rdata")
if(F){load(file = "GPL96_annot.Rdata")}
head(gpl)
colnames(gpl)

##取出注釋信息
probe<-gpl %>% 
  select("ID","Gene Symbol","ENTREZ_GENE_ID")
head(probe)  
dim(probe)##22283個
         ID      Gene Symbol     ENTREZ_GENE_ID
1 1007_s_at DDR1 /// MIR4640  780 /// 100616237
2   1053_at             RFC2               5982
3    117_at            HSPA6               3310
4    121_at             PAX8               7849
5 1255_g_at           GUCA1A               2978
6   1294_at MIR5193 /// UBA7 7318 /// 100847079
[1] 22283     3
Modify Chunk OptionsRun All Chunks AboveRun Current ChunkModify Chunk OptionsRun All Chunks AboveRun Current ChunkModify Chunk OptionsRun All Chunks AboveRun Current ChunkModify Chunk OptionsRun All Chunks AboveRun Current Chunk
Show in New WindowClear OutputExpand/Collapse Output
[1] 20878     3

到這里我們發(fā)現(xiàn)一個情況:1個探針存在對應多個基因的情況闺骚,///

我們的解決思路是有幾種彩扔,第一種是直接將存在///的信息去掉
第二種是將///的數(shù)據(jù)拆開來,然后再把有重復的刪去

先按第一種解決僻爽,這種解決比較簡單虫碉,我的需要是只要找出///

probe<-probe[!grepl(" /// ",probe$`Gene Symbol`),]
dim(probe)##數(shù)量減少到20878

第二種方法是,先拆解再刪除

拆解時需要將///分割開胸梆,再與ID相連
值得注意的是這種方法其實與第一種是有區(qū)別的敦捧,這種方法仍然保留了探針對應多個基因中的
一種情況,所有得出的probe注釋要多碰镜,這里不糾結這個內容

if(F){
library(tidyverse)
probe2<-apply(probe,1,function(x){
  paste(x[1],
  str_split(x[2]," /// ",simplify = T),##分割
  sep = "|")##連接符號
 }  
) %>% 
  unlist()##得到的是個list

###
head(probe2)
length(probe2)##展開后得到24807個探針及對應關系
probe2<-as_tibble(probe2)

##注意這里的\\是用于轉義 匹配分割 "|"兢卵,達到分割目的
probe2<-probe2 %>% separate(value,c("ID","GeneName"),sep = "\\|")
dim(probe2)##增加到24807行

## 找出重復ID,兩個table的妙用
table(table(probe2$ID))##探針找出對應一個基因的有20878個绪颖,與grepl法得出的結果相同

## 下一步的目的即篩選出對應一個基因的探針
test2<-probe2 %>% count(ID) %>% filter(n==1) %>% ## count計數(shù)有點類似于table
  inner_join(probe2,by="ID") %>% ## 內連接只保留x,y中觀測相同的變量
  select(-n)##remove "n" column
dim(test2)
head(test2)
probe2<-test2##將最終得到的結果賦值給probe2
}

本節(jié)的內容就到這里秽荤,我是白介素2,下期再見
轉載請注明出處

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末柠横,一起剝皮案震驚了整個濱河市窃款,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌牍氛,老刑警劉巖晨继,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搬俊,居然都是意外死亡紊扬,警方通過查閱死者的電腦和手機蜒茄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來珠月,“玉大人扩淀,你說我怎么就攤上這事∑】妫” “怎么了驻谆?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長庆聘。 經(jīng)常有香客問我胜臊,道長,這世上最難降的妖魔是什么伙判? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任象对,我火速辦了婚禮,結果婚禮上宴抚,老公的妹妹穿的比我還像新娘勒魔。我一直安慰自己,他們只是感情好菇曲,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布冠绢。 她就那樣靜靜地躺著,像睡著了一般常潮。 火紅的嫁衣襯著肌膚如雪弟胀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天喊式,我揣著相機與錄音孵户,去河邊找鬼。 笑死岔留,一個胖子當著我的面吹牛夏哭,可吹牛的內容都是我干的。 我是一名探鬼主播贸诚,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼方庭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了酱固?” 一聲冷哼從身側響起械念,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎运悲,沒想到半個月后龄减,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡班眯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年希停,在試婚紗的時候發(fā)現(xiàn)自己被綠了烁巫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡宠能,死狀恐怖亚隙,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情违崇,我是刑警寧澤阿弃,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站羞延,受9級特大地震影響渣淳,放射性物質發(fā)生泄漏。R本人自食惡果不足惜伴箩,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一入愧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嗤谚,春花似錦棺蛛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至渗钉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钞钙,已是汗流浹背鳄橘。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芒炼,地道東北人瘫怜。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像本刽,于是被迫代替她去往敵國和親鲸湃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354