您好,登錄后才能下訂單哦!
這篇文章主要講解了“DESeq2有什么用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“DESeq2有什么用”吧!
對于RNA_Seq而言,得到基因/轉錄本的定量結果僅僅是第一步, 只是對測序數據的匯總, 相同的工作也可以通過芯片直接得到。
無論是芯片也好,測序也罷,定量只不過是量化生物體內轉錄本的表達豐度,僅僅一個定量的結果并不能得到有效的生物學結論。為了回答生物學問題,還需要進行后續的差異分析。
由于定量的方式有很多種,比如raw count, TPM, RPKM/FPKM 等,不同的定量方式其表達量的分布是不同的,所以差異分析時采用的軟件與算法也會不同。本文介紹DESeq2這個R包,主要是針對raw count的定量結果,進行差異分析。
DESeq2要求輸入的定量結果為raw count形式,raw count其實是根據reads數計算得到,所以要求必須全部是整數。
由于不同樣本的測序量不完全相同,所以raw count無法在樣本間直接比較,就是說同一個基因在樣本A中的raw count大于樣本B中的raw count , 并不意味這在A中的表達量就高,數值大可能是由于樣本A測序的reads 總數大造成的。
為了在樣本間進行差異分析,首先就需要對原始的raw count 表達量數據進行歸一化。在DESeq2中,通過estimateSizeFactors
函數為每個樣本計算一個系數,稱之為sizefactor, 示意如下
> dds <- makeExampleDESeqDataSet(n=1000, m=4) > dds <- estimateSizeFactors(dds) > sizeFactors(dds) sample1 sample2 sample3 sample4 1.010543 1.033960 1.023026 1.001038
具體的計算過程如下:
原始的表達量矩陣每一行代表一個基因,每一列代表一個樣本,用counts
表示,先進行log轉換,轉換之后,計算每個基因在所有樣本中的均值,代碼如下
loggeomeans <- rowMeans(log(counts))
計算單個樣本的sizafactor時,將該樣本中每個基因的表達量減去對應的所有樣本中的均值,然后取中位數。由于開始進行了log轉換,最后在轉換回來。 假定一個樣本中所有基因的表達量為cnts
, 代碼如下
exp(median((log(cnts) - loggeomeans)[is.finite(loggeomeans) & cnts > 0]))
需要注意的時,在計算中位數時,對基因進行了過濾,需要滿足以下兩個條件
1.在該樣本中該基因的表達量大于0
2.在所有樣本中該基因的表達量都大于0,而且取log之后的和不為0
實際上第二個條件已經包含第一個條件了,在原始的表達量矩陣中,肯定會有基因在部分樣本表達量為0的情況,所以最終計算中位數時,只會用到部分基因。
計算出每個樣本的sizefactor之后,將該樣本原始的表達量除以該樣本的sizefactor, 就得到了歸一化之后的表達量。
對于raw count 的歸一化,本質是消除不同樣本測序總量不同的影響,反應到表達量矩陣上,就是每列的總和不同。DESeq2計算得到的sizefactor和每列的總和之間是一個線性關系,示意如下
所以sizefactors 能夠用來進行歸一化。
感謝各位的閱讀,以上就是“DESeq2有什么用”的內容了,經過本文的學習后,相信大家對DESeq2有什么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。