生信小白--關(guān)于批次效應(yīng)的學(xué)習(xí)及實戰(zhàn)

參考教程:
微信公眾號:生信星球
批次效應(yīng)處理實例:combat和removebatcheffect的對比
特別感謝:
人美心善愛護(hù)小白的花花老師
小潔忘了怎么分身

作為一個非常想搞事情的生信小白,我一直想做不同數(shù)據(jù)集合并分析盼玄,下面我就把我的兩個數(shù)據(jù)集合并的心路歷程給大家還原一下

希望大家提出意見或者問題,一起進(jìn)步~

1. 批次效應(yīng)(Batch Effects)

可以理解為:樣本受到檢測的實驗室條件强岸、試劑批次和人員差異的影響锻弓,對結(jié)果的準(zhǔn)確性造成了影響

2.多組數(shù)據(jù)集合并分析的流程

(1)條件

  • 取材對象應(yīng)為同一組織
  • 本方法適用于同芯片平臺

(2)流程

  • 了解數(shù)據(jù)蝌箍,比如判斷原數(shù)據(jù)集是否為標(biāo)準(zhǔn)化數(shù)據(jù)
    (在進(jìn)行操作之前,總得弄清數(shù)據(jù)是個什么樣子的吧)
  • 提取老三套:表達(dá)矩陣妓盲、臨床表型(也就是你的分組信息)、平臺數(shù)據(jù)
  • 各數(shù)據(jù)集組間校正
    (有時候雖然作者對數(shù)據(jù)進(jìn)行了標(biāo)準(zhǔn)化悯衬,但是不是我們想要的弹沽,還得需要再次normalization一下)
  • 合并矩陣,批次矯正
    兩種方法:
    limma removeBatchEffect
    sva combat
  • 再次查看合并且去除批次差異的數(shù)據(jù)
    (沒有前后對比怎么能確定批次差異矯正有效果呢)

3.我的流程

首先炸渡,了解數(shù)據(jù)

我想合并的兩個數(shù)據(jù)集,取材相同丽已,同一芯片平臺
(GEO網(wǎng)站上都能找得到)

然后,讀入數(shù)據(jù)沛婴,提取數(shù)據(jù)

rm(list = ls())
options(stringsAsFactors = F)
library(GEOquery)
library(stringr)
gse = "GSE79704"
eSet1 <- getGEO("GSE79704", 
                destdir = '.', 
                getGPL = F)
eSet2 <- getGEO("GSE83582", 
                destdir = '.', 
                getGPL = F)
#(1)提取表達(dá)矩陣exp
exp1 <- exprs(eSet1[[1]])
exp1[1:4,1:4]
exp2 <- exprs(eSet2[[1]])
exp2[1:4,1:4]
#將兩個數(shù)據(jù)集行數(shù)調(diào)整一致,不然沒辦法合并
table(rownames(exp1) %in% rownames(exp2))
#TRUE 
#25560
length(intersect(rownames(exp1),rownames(exp2)))
#[1] 25560
exp1 <- exp1[intersect(rownames(exp1),rownames(exp2)),]
exp2 <- exp2[intersect(rownames(exp1),rownames(exp2)),]
#(2)提取臨床信息
pd1 <- pData(eSet1[[1]])
pd2 <- pData(eSet2[[1]])
#(3)提取芯片平臺編號
gpl1 <- eSet1[[1]]@annotation
gpl2 <- eSet2[[1]]@annotation
#兩個gpl均為GPL19983

兩者的boxplot如下:

exp1.png

exp2.png

然后我仔細(xì)思考了要不要先進(jìn)行組間校正再合并

所以如下我進(jìn)行了兩條路線

(1)直接批次矯正

【1】合并數(shù)據(jù)
#開始合并
exp = cbind(exp1,exp2)
#合并group_list
group_list1 = c(rep('NN',20),rep('PP',12),rep('GPP',32))
group_list2 = c(rep('NN',12),rep('PP',12),rep('NN',8),rep('EP',30),rep('IP',40))
group_list = c(group_list1,group_list2)
table(group_list)
#group_list
#EP GPP  IP  NN  PP 
#30  32  40  40  24 

boxplot如下:

#boxplot
boxplot(exp,las=2,main='exp-before')
exp-before.png

cluster如下:

#有沒有批次效應(yīng),看一下聚類的情況
dist_mat <- dist(t(exp))
clustering <- hclust(dist_mat, method = "complete")
plot(clustering,labels = group_list)
cluster-exp-before.png

PCA如下:

#PCA
  dat=as.data.frame(t(exp))
  library(FactoMineR)#畫主成分分析圖需要加載這兩個包
  library(factoextra) 
  # pca的統(tǒng)一操作走起
  dat.pca <- PCA(dat, graph = FALSE)
  fviz_pca_ind(dat.pca,
               geom.ind = "point", # show points only (nbut not "text")
               col.ind = group_list, # color by groups
               #palette = c("#00AFBB", "#E7B800"),
               addEllipses = TRUE, # Concentration ellipses
               legend.title = "Groups"
  )
PCA-exp-before.png
【2-1】limma方法
#處理批次效應(yīng):limma
library(limma)
#?removeBatchEffect()

batch <- c(rep("A",64),rep("B",102))
y2 <- removeBatchEffect(exp, batch)

boxplot如下:


exp-limma.png

cluster如下:


cluster-exp-limma.png

PCA如下:


pca-exp-limma.png
【2-2】combat方法
#處理批次效應(yīng)(combat)
library(sva)
?ComBat

batch <- c(rep("A",64),rep("B",102))
mod = model.matrix(~as.factor(group_list))

y = ComBat(dat=exp, batch=batch, mod=mod)
#Found2batches
#Adjusting for4covariate(s) or covariate level(s)
#Standardizing Data across genes
#Fitting L/S model and finding priors
#Finding parametric adjustments
#Adjusting the Data

boxplot如下:

exp-combat.png

cluster如下:


cluster-exp-combat.png

PCA如下:


pca-exp-combat.png

(2)先組間校正再批次校正

【1】組間校正
#歸一化
exp1 = limma::normalizeBetweenArrays(exp1)
exp2 = limma::normalizeBetweenArrays(exp2)
boxplot(exp1,las=2,main='exp1-normalization')
boxplot(exp2,las=2,main='exp2-normalization')

boxplot如下:


exp1-normalization.png
exp2-normalization.png
【2】合并數(shù)據(jù)

boxplot如下:


exp-n-before.png

cluster如下:


cluster-exp-n-before.png

PCA如下:


PCA-exp-n-before.png
【3-1】limma方法

boxplot如下:


exp-n-limma.png

cluster如下:


cluster-exp-n-limma.png

PCA如下:


pca-exp-n-limma.png
【3-2】combat方法

boxplot如下:

exp-n-combat.png

cluster如下:


cluster-exp-n-combat.png

PCA如下:


pca-exp-n-combat.png

4.我把我提前組間校正的數(shù)據(jù)拿去咨詢了花花老師性雄,還是可以看出前后差異的,有時候聚類不成功也是正常的

我對比了一下發(fā)現(xiàn)兩種方法效果是差不多的

所以總結(jié)一下

(1)先組間校正枯冈,再批次校正

(2)到底要不要組間校正

我之前看過很多人的分析,眾說紛紜……

我個人的理解是尘奏,還得是具體實例具體分析滩褥。這個問題沒有對錯炫加。

如果有異常樣本(經(jīng)花花老師校正這個不叫離群值!K仔ⅰ>频椤)赋铝,可以選擇去掉異常的樣本或者直接組間校正

如果看著蠻規(guī)整的,均值相近革骨,做不做歸一化都是可以的

所以我是如何處理的呢农尖,我沒有處理組間校正良哲,直接批次校正了

最后盛卡,再次感謝生信星球的教程跟花花老師超級耐心的指導(dǎo)(我都不知道煩了老師多少次……超級羞愧)~

歡迎大家提出問題或者自己的見解筑凫,我們一起探討

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末并村,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哩牍,更是在濱河造成了極大的恐慌,老刑警劉巖殖属,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓦盛,死亡現(xiàn)場離奇詭異洗显,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)挠唆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘱吗,“玉大人,你說我怎么就攤上這事谒麦《矶铮” “怎么了绕德?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長耻蛇。 經(jīng)常有香客問我踪蹬,道長臣咖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任夺蛇,我火速辦了婚禮疚漆,結(jié)果婚禮上刁赦,老公的妹妹穿的比我還像新娘。我一直安慰自己截型,他們只是感情好趴荸,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布宦焦。 她就那樣靜靜地躺著顿涣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪酝豪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天孵淘,我揣著相機(jī)與錄音蒲障,去河邊找鬼瘫证。 笑死揉阎,一個胖子當(dāng)著我的面吹牛背捌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播毡庆,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼坑赡,長吁一口氣:“原來是場噩夢啊……” “哼么抗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蝇刀,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤螟加,失蹤者是張志新(化名)和其女友劉穎熊泵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體顽分,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡徐许,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年卒蘸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缸沃。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡恰起,死狀恐怖趾牧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情翘单,我是刑警寧澤吨枉,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站貌亭,受9級特大地震影響柬唯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锄奢,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望剧腻。 院中可真熱鬧,春花似錦恕酸、人聲如沸堪滨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽遏乔。三九已至,卻和暖如春盟萨,著一層夾襖步出監(jiān)牢的瞬間凉翻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工制轰, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胞谭。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像丈屹,于是被迫代替她去往敵國和親调俘。 傳聞我的和親對象是個殘疾皇子旺垒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

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