190303 GEO數(shù)據(jù)分析文章熱圖重現(xiàn)

文章Tinagl1 Suppresses Triple-negative Breast Cancer Progression by Simultaneously Targeting Integrin/FAK and EGFR Signaling Pathways悯嗓,根據(jù)文章找到GSE號: GSE99507,
實驗設(shè)計:Tinagl1過表達(dá)三個樣本+正常對照三個樣本。
畫出來的圖如下:

heatmap.png

1. 安裝包尘执,并準(zhǔn)備工作

install.packages("GEOquery")
Installing package into ‘/usr/local/lib/R/3.5/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  package ‘GEOquery’ is not available (for R version 3.5.0)
source("[http://bioconductor.org/biocLite.R](http://bioconductor.org/biocLite.R)")
biocLite("GEOquery")
library(GEOquery)

此步驟耗費我1h,本來滿滿的成就感,直到我看到這篇文章的開頭跛十,http://www.bio-info-trainee.com/bioconductor_China/software/GEOquery.html唐含,平時不看文浅浮,實操兩行淚

2. 下載數(shù)據(jù)

  • 第三種方法下載數(shù)據(jù)
gset <- getGEO('GSE99507', destdir=".")
  • 第二種下載
    a = read.table('文件名', sep = '\t',quote = "", fill = T, comment.char = "!", header = T)
  • jimmy 現(xiàn)成版,將下載GEO數(shù)據(jù)集的表達(dá)矩陣封裝成函數(shù)捷枯。后續(xù)操作過程中滚秩,發(fā)現(xiàn)將過程封裝成函數(shù)后,在后續(xù)還是要將exprSet調(diào)出來淮捆,索性不封裝了郁油。

3. ID轉(zhuǎn)換

GPL中的探針和基因名稱 與 GSE中探針對應(yīng)的表達(dá)關(guān)系 相match。

  • 下載并轉(zhuǎn)換表達(dá)矩陣
rm(list = ls())
options(stringsAsFactors = F) #讀表的時候攀痊,不要把字符讀成factor
library(GEOquery)
eSet <- getGEO('GSE99507', destdir = '.')
exprSet <-  exprs(eSet[[1]]) #exprs用來提取表達(dá)矩陣
pdata <- pData(eSet[[1]]) #pData用來提取樣本信息
View(pdata) #瞅一眼看分組信息

#以下進(jìn)行分組桐腌,分別是Tinagl1過表達(dá)組和正常組
library(stringr)
group_list <- trimws(str_split(pdata$title,' ',simplify = T)[,5])
group_list <- str_replace(group_list,'LM2','Vector')
table(group_list)
group_list
  • 對芯片進(jìn)行注釋
gpl <- getGEO("GPL17077", destdir = ".") #此GPL沒有注釋的R包,只能手動找
colnames(Table(gpl))
head(Table(gpl)[,c(1,7)])
write.csv(Table(gpl)[,c(1,7)],"GPL17077.csv")
ids <- read.csv("GPL17077.csv") #獲得探針對應(yīng)基因的表達(dá)矩陣
ids = ids[,-1]
View(ids)
  • 將表達(dá)矩陣中的探針用對應(yīng)的基因名ID轉(zhuǎn)換
length(unique(ids$GENE_SYMBOL))  
tail(sort(table(ids$GENE_SYMBOL)))
table(sort(table(ids$GENE_SYMBOL)))
table(rownames(exprSet) %in% ids$ID)
dim(exprSet)
exprSet <- exprSet[rownames(exprSet) %in% ids$ID,] 
dim(exprSet)
ids <- ids[match(rownames(exprSet),ids$ID),] #改ID順序
View(ids)
head(ids)
exprSet[1:5,1:5] #瞅一眼表達(dá)矩陣的開始和ids的是否相同

#ids的GENE_SYMBOL對表達(dá)矩陣進(jìn)行分類
tmp <- by(exprSet,
         ids$GENE_SYMBOL,
         function(x)
         rownames(x)[which.max(rowMeans(x))] ) 
#分類苟径,如果有一個基因?qū)?yīng)多個探針,只保留在所有樣本里面平均表達(dá)量最大的那個探針
probes <- as.character(tmp)
dim(exprSet)
exprSet=exprSet[rownames(exprSet) %in% probes ,] #過濾出有多個探針的基因
dim(exprSet)
save(exprSet,group_list,file = "step1.Rdata")

rownames(exprSet)=ids[match(rownames(exprSet),ids$ID),2]
exprSet[1:5,1:5]
View(exprSet)
library(reshape2)
exprSet_L<- melt(exprSet) 
colnames(exprSet_L) <- c('probe','sample','value')
exprSet_L$group <- rep(group_list,each=nrow(exprSet)) 
head(exprSet_L)
View(exprSet_L)
save(exprSet_L,group_list,file = "step2.Rdata")

#看表達(dá)矩陣樣本分組信息是否合理
exprSet["ACTB",] #關(guān)鍵蛋白常見蛋白β-actin表達(dá)量是否合理
library("ggplot2")
p <- ggplot(exprSet_L,aes(x=sample,y=value,fill=group))+geom_boxplot()
print(p)

4. 畫圖

  • PCA圖
install.packages("ggfortify")
library("ggfortify")
df <- as.data.frame(t(exprSet))
df$group <- group_list
autoplot(prcomp(df[,1:(ncol(df)-1)]),data = df, colour = "group")
  • 差異分析
library( "limma" )
dim(exprSet)
group_list
design <- model.matrix( ~0 + factor( group_list ) ) #根據(jù)分組變成矩陣
colnames( design ) <-  levels( factor( group_list ) )
rownames( design ) <-  colnames( exprSet )
design

#下面做比較矩陣
contrast.matrix <- makeContrasts(paste0(unique(group_list),
                                        collapse = "-"), levels = design )
contrast.matrix
fit <- lmFit(exprSet, design )
fit2 <- contrasts.fit( fit, contrast.matrix )
fit2 <- eBayes( fit2 )
nrDEG <-  topTable( fit2, coef = 1, n = Inf )
write.table( nrDEG, file = "nrDEG.out")
head(nrDEG)
View(nrDEG)
  • 畫熱圖
install.packages("pheatmap")
library( "pheatmap" )
choose_gene <- head( rownames( nrDEG ), 20 ) #取了前20個差異最大的基因案站,這數(shù)可以自己定
choose_matrix <-  exprSet[ choose_gene, ]
annotation_col = data.frame( CellType = factor( group_list ) )
rownames( annotation_col ) = colnames( exprSet )
pheatmap( fontsize = 5, choose_matrix, annotation_col = annotation_col, show_rownames = T,annotation_legend = T, filename = "heatmap_1.png")

跌跌撞撞,終于花了8h作了一張圖出來棘街,使用的都是別人寫的代碼蟆盐,主要參考的代碼有:
http://www.bio-info-trainee.com/3409.html
http://www.reibang.com/p/0dcc6030343e
https://mp.weixin.qq.com/s/nVnL_uc6GEkD_cLpMHCYXg
目前還有部分代碼不是很理解,還要繼續(xù)努力啊蹬碧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舱禽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子恩沽,更是在濱河造成了極大的恐慌誊稚,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罗心,死亡現(xiàn)場離奇詭異里伯,居然都是意外死亡,警方通過查閱死者的電腦和手機渤闷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門疾瓮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人飒箭,你說我怎么就攤上這事狼电⊙鸦遥” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵肩碟,是天一觀的道長强窖。 經(jīng)常有香客問我,道長削祈,這世上最難降的妖魔是什么翅溺? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮髓抑,結(jié)果婚禮上咙崎,老公的妹妹穿的比我還像新娘。我一直安慰自己吨拍,他們只是感情好褪猛,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著密末,像睡著了一般握爷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上严里,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天新啼,我揣著相機與錄音,去河邊找鬼刹碾。 笑死燥撞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的迷帜。 我是一名探鬼主播物舒,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼戏锹!你這毒婦竟也來了冠胯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤锦针,失蹤者是張志新(化名)和其女友劉穎荠察,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奈搜,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡悉盆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了馋吗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焕盟。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宏粤,靈堂內(nèi)的尸體忽然破棺而出脚翘,到底是詐尸還是另有隱情灼卢,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布堰怨,位于F島的核電站芥玉,受9級特大地震影響蛇摸,放射性物質(zhì)發(fā)生泄漏备图。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一赶袄、第九天 我趴在偏房一處隱蔽的房頂上張望揽涮。 院中可真熱鬧,春花似錦饿肺、人聲如沸蒋困。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雪标。三九已至,卻和暖如春溉跃,著一層夾襖步出監(jiān)牢的瞬間村刨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工撰茎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嵌牺,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓龄糊,卻偏偏與公主長得像逆粹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子炫惩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 項目總覽 第一個視頻主要是項目總覽僻弹,介紹了整個課程的結(jié)構(gòu),每一講主要要講得東西他嚷,介紹了jimmy的github形式...
    力達(dá)兄弟閱讀 3,179評論 0 11
  • GEO數(shù)據(jù)挖掘看老大嗶哩嗶哩 看了三遍了蹋绽,隨著理解,后續(xù)還要更新這篇記錄爸舒,現(xiàn)在還太不全蟋字,有些還沒跟上,代碼隨著理解...
    小夢游仙境閱讀 2,168評論 1 7
  • 健明大神說過若是想學(xué)會使用R包扭勉,就去看那個包的說明書鹊奖,因此去學(xué)習(xí)了GEOquery包說明書。翻譯不當(dāng)之處請去看原文...
    土豆學(xué)生信閱讀 41,292評論 1 80
  • “一個人知道自己為什么而活,就可以忍受任何一種生活涂炎≈揖郏”浮云易老设哗,陌路滄桑。轉(zhuǎn)眼又過一年两蟀,卻還是沒有找到人生的意義网梢。...
    Ann安墨染閱讀 716評論 0 11
  • Top 10 Cancer Causing Foods to Cut Your Cancer Risk in Ha...
    Annie大講堂閱讀 248評論 0 0