引言
本系列)將開展全新的轉(zhuǎn)錄組分析專欄,主要針對使用DESeq2
時可能出現(xiàn)的問題和方法進行展開。
為何使用未經(jīng)標準化的計數(shù)數(shù)據(jù)累魔?
DESeq2
工具包在接收輸入時薛耻,期望得到的是未經(jīng)處理的原始計數(shù)數(shù)據(jù)辑舷,比如從 RNA-seq 或其他高通量測序?qū)嶒炛蝎@得的准浴,這些數(shù)據(jù)以整數(shù)值矩陣的形式呈現(xiàn)壁公。在這個矩陣中腔寡,第 i 行第 j 列的數(shù)值表示在樣本 j 中可以歸屬于基因 i 的讀段數(shù)洪添。同樣地垦页,對于其他類型的實驗,矩陣的行可能代表結(jié)合區(qū)域(例如 ChIP-Seq 實驗)或肽序列(例如定量質(zhì)譜實驗)干奢。
矩陣中的數(shù)值應當是未經(jīng)標準化的讀段計數(shù)(對于單端 RNA-seq)或片段計數(shù)(對于雙端 RNA-seq)痊焊。RNA-seq 的工作流程中描述了多種制備此類計數(shù)矩陣的技術(shù)。為 DESeq2
的統(tǒng)計模型提供計數(shù)矩陣作為輸入非常關(guān)鍵忿峻,因為只有原始的計數(shù)數(shù)據(jù)才能準確評估測量的精確度薄啥。DESeq2
模型在內(nèi)部會校正文庫大小的影響,因此不應該使用經(jīng)過轉(zhuǎn)換或標準化的數(shù)值逛尚,比如按文庫大小調(diào)整后的計數(shù)垄惧,作為輸入數(shù)據(jù)。
DESeqDataSet 對象
在 DESeq2
工具包中绰寞,用于存儲讀取計數(shù)和統(tǒng)計分析過程中的中間估計量的類對象是 DESeqDataSet
到逊,通常在代碼中以 dds 表示。
技術(shù)細節(jié)上滤钱,DESeqDataSet 類擴展了 SummarizedExperiment 包中的 RangedSummarizedExperiment 類觉壶。“Ranged” 指的是測定數(shù)據(jù)的行(即計數(shù))可以與基因組的特定區(qū)域(如基因的外顯子)相關(guān)聯(lián)件缸。
DESeqDataSet 對象必須關(guān)聯(lián)一個設(shè)計公式铜靶。這個公式描述了將在模型中使用的變量,通常以波浪號 (~) 開始他炊,后跟用加號 (+) 分隔的變量(如果不是公式形式旷坦,系統(tǒng)會自動轉(zhuǎn)換)。設(shè)計公式可以在后續(xù)更改佑稠,但需要重新執(zhí)行所有差異分析步驟,因為設(shè)計公式用于估計離散度和模型的 log2 倍數(shù)變化旗芬。
注意:為了利用包的默認設(shè)置舌胶,應將感興趣的變量放在公式的末尾,并確保對照組水平是第一水平疮丛。
接下來幔嫂,將展示根據(jù)在 DESeq2 之前使用的管道不同,構(gòu)建 DESeqDataSet 的四種方法:
- 從轉(zhuǎn)錄豐度文件和 tximport 生成
- 從計數(shù)矩陣生成
- 從 htseq-count 文件生成
- 從 SummarizedExperiment 對象生成
轉(zhuǎn)錄本豐度數(shù)據(jù)
建議在使用 DESeq2 之前誊薄,先采用快速的轉(zhuǎn)錄本豐度定量工具履恩,然后通過 tximport導入這些定量數(shù)據(jù)來創(chuàng)建 DESeq2 所需的基因水平計數(shù)矩陣。這種方法允許用戶從多種外部軟件中導入轉(zhuǎn)錄本豐度估計值呢蔫,包括以下方法:Salmon; Sailfish; kallisto ;RSEM
采用上述方法進行轉(zhuǎn)錄本豐度估計的好處包括:(i)這種方法能夠校正樣本間可能的基因長度變化(例如切心,由于異構(gòu)體的不同使用)飒筑,(ii)其中一些方法(Salmon, Sailfish, kallisto)相比需要創(chuàng)建和存儲 BAM 文件的基于比對的方法,速度顯著更快绽昏,且對內(nèi)存和磁盤空間的需求更少协屡,以及(iii)可以避免丟棄那些能夠與多個具有同源序列的基因?qū)R的片段,從而提高檢測的靈敏度全谤。
請注意肤晓,tximport-to-DESeq2 方法使用的是轉(zhuǎn)錄本豐度定量器估計的基因計數(shù),而不是標準化計數(shù)认然。
在這里补憾,將展示如何從存儲在 tximportData 包中的 Salmon quant.sf 文件導入轉(zhuǎn)錄本豐度,并構(gòu)建一個基因水平的 DESeqDataSet 對象卷员。
library("tximport")
library("readr")
library("tximportData")
dir <- system.file("extdata", package="tximportData")
samples <- read.table(file.path(dir,"samples.txt"), header=TRUE)
samples$condition <- factor(rep(c("A","B"),each=3))
rownames(samples) <- samples$run
samples[,c("pop","center","run","condition")]
## pop center run condition
## ERR188297 TSI UNIGE ERR188297 A
## ERR188088 TSI UNIGE ERR188088 A
## ERR188329 TSI UNIGE ERR188329 A
## ERR188288 TSI UNIGE ERR188288 B
## ERR188021 TSI UNIGE ERR188021 B
## ERR188356 TSI UNIGE ERR188356 B
接下來盈匾,使用適當?shù)臉颖玖兄付ㄎ募穆窂剑⒆x取一個將轉(zhuǎn)錄本與該數(shù)據(jù)集的基因鏈接起來的表子刮。
files <- file.path(dir,"salmon", samples$run, "quant.sf.gz")
names(files) <- samples$run
tx2gene <- read_csv(file.path(dir, "tx2gene.gencode.v27.csv"))
使用 tximport 函數(shù)導入 DESeq2 所需的量化數(shù)據(jù)威酒。
txi <- tximport(files, type="salmon", tx2gene=tx2gene)
最后,可以根據(jù)樣本中的 txi 對象和樣本信息構(gòu)造一個 DESeqDataSet挺峡。
library("DESeq2")
ddsTxi <- DESeqDataSetFromTximport(txi,
colData = samples,
design = ~ condition)
這里的ddsTxi對象就可以在下面的分析步驟中用作dds葵孤。
本文由mdnice多平臺發(fā)布