DESeq2分析轉錄組數據(二):預測并矯正批次效應

首先聲明,文章中的很多代碼和方法參考了微信公眾號:生信寶典。
在此表示感謝,書寫此文章的目的是為了進行筆記以便后續研究備用,也希望能和大家一起分享學習,里面如有錯誤敬請指出

批次效應是測量結果中的一部分,它們因為實驗條件的不同而具有不同的表現形式,并且與我們研究的變量沒有關系。一般批次效應可能在下述情形中出現:
1.一個實驗的不同部分在不同時間完成;
2.一個實驗的不同部分由不同的人完成;
3.試劑用量不同、芯片不同、實驗儀器不同;
4.將自己測的數據與從網上下載的數據混合使用;
其中,不同的時間,不同的人,以及試劑、儀器等等構成了批次效應。
R包sva可以預測并矯正批次效應,該包通過添加兩個代理變量(surrogate variables)幫助DESeq在后續分析中矯正批次效應,并不會對數據本身進行修改。
在本研究數據中,batch列是在不同時間完成的生物學重復,而condition列則相當與處理條件。


image.png

利用上一篇建立的dds數據集,進行sva分析,代碼來源于參考文獻(RNA-seq workflow: gene-level exploratory analysis and differential expression),其中比較關鍵的是mod的建立,里面選擇condition進行建模,根據參考文獻的意思就是假設我們不知道有不同批次的處理,而僅以condition設計的4個處理進行建模,并設置mod0為對照,具體的算法說明可以查閱文獻(svaseq: removing batch effects and other unwanted noise from sequencing data):

dds <- estimateSizeFactors(dds) 
dat <- counts(dds, normalized = TRUE)
idx <- rowMeans(dat) > 1
dat <- dat[idx, ]
mod <- model.matrix(~ condition, colData(dds))
mod0 <- model.matrix(~ 1, colData(dds))
svseq <- svaseq(dat, mod, mod0, n.sv = 2)

但實際上我們是知道存在不同的處理批次batch,通過可視化batch參數來查看差別:

par(mfrow = c(2, 1), mar = c(3,5,3,1))
for (i in 1:2) {
stripchart(svseq$sv[, i] ~ dds$batch, vertical = TRUE, main = paste0("SV", i))
abline(h = 0)
}
image.png

看上去在兩個代理參數中r1的批次差別并不明顯,r2僅僅是略有差別。但是每張圖上的四個點代表不同的處理,實際的分布情況究竟如何呢。也可以通過直接查看sv1和sv2的數值來判斷:

> svseq$sv
            [,1]       [,2]
[1,] -0.19582386  0.2958170
[2,] -0.24163478  0.5719400
[3,] -0.34376511 -0.3164447
[4,]  0.53655461 -0.1749394
[5,]  0.33288941 -0.2062186
[6,] -0.50402035 -0.4996413
[7,]  0.05640151  0.3973242
[8,]  0.35939858 -0.0678371

每一行代表一個樣品,列的數值是SV1和SV2的結果,我們知道行1和2對應R0_1和R0_2,行3和4對應R16_1和R16_2,以此類推。那么這兩兩之間分別SV1和SV2對應的數值差異越小越好。為了更方便的展示差異,將SV1和SV2參數傳入dds,并進行可視化:

#將SV1和SV2參數傳入dds,并重新命名,便于后續比較:
ddssva <- dds
ddssva$SV1 <- svseq$sv[,1]
ddssva$SV2 <- svseq$sv[,2]
design(ddssva) <- ~ SV1 + SV2 + condition
#使用ggplot進行可視化:
plot_data <- as.data.frame(colData(ddssva))
plot_data$Sample <- rownames(plot_data)
library(ggplot2)
ggplot(plot_data, aes(x=SV1, y=SV2, color=condition, shape=batch)) + geom_point()+ geom_text_repel(aes(label=Sample))
image.png

這下就可以看出明顯差別了,按照正常情況,應該是R0,R16,R24和R32的兩個批次應該分別聚集在一起,但是從圖中可以看出R16和R24的平行性并不好。本研究的四個處理是細菌在同一培養條件下,不同生長時期獲取的樣品,進行了兩次單獨的生物學重復,而R16和R24正是細菌生長的對數期,這可能是造成兩批重復在這兩個樣品中存在較大差異的原因。也提醒我們在后續進行RNA-seq實驗設計是,生物學重復實驗還是盡量需要在同一批培養中實施。

當將SV1和SV2修正參數傳入ddssva后,后續我們會分別分析沒有修正參數dds和帶有修正參數的ddssva兩個數據集在最終獲取表達差異基因方面的差別。

后面我會分別對這兩組數據集進行分析并比較他們之間的差別。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容