日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RNA-seq 详细教程:搞定count归一化(5)

發布時間:2023/12/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RNA-seq 详细教程:搞定count归一化(5) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習目標

  • 了解如何在歸一化過程中列出不同的 uninteresting factors(無關因素)
  • 了解常用的歸一化方法,已經如何使用
  • 了解如何創建 DESeqDataSet 對象及其結構
  • 了解如何使用 DESeq2 進行歸一化
  • 1. 歸一化

    差異表達分析工作流程的第一步是計數歸一化,這是對樣本之間的基因表達進行準確比較所必需的。

    Normalization

    每個基因的映射讀數計數是 RNA 表達以及許多其他因素的結果。歸一化是調整原始計數值以解決“無關”因素的過程。以這種方式,表達水平在樣本之間或樣本內更具可比性。

    在歸一化過程中經??紤]的“無關”因素:

    1.1. 測序深度

    考慮測序深度對于比較樣本之間的基因表達是必要的。在下面的示例中,每個基因在樣本 A 中的表達似乎是樣本 B 的兩倍。然而,這是樣本 A 的測序深度加倍的結果。

    sequencing depth

    1.2. 基因長度

    計算基因長度對于比較同一樣本中不同基因之間的表達是必要的。在下面的示例中,基因 X 和基因 Y 具有相似的表達水平,但映射到基因 X 的讀數數量將比映射到基因 Y 的讀數多得多,因為基因 X 更長。

    Gene length

    1.3. RNA組成

    樣本之間一些高度差異表達的基因、樣本之間表達的基因數量的差異或污染的存在可能會扭曲某些類型的歸一化方法。建議考慮 RNA 組成以準確比較樣本之間的表達,這在進行差異表達分析時尤為重要。

    在下面的示例中,假設樣本 A 和樣本 B 之間的測序深度相似,并且除了基因差異表達之外的每個基因在樣本之間呈現相似的表達水平。樣本 B 中的計數會受到 差異表達基因的極大影響,它占據了大部分計數。因此,樣本 B 的其他基因的表達似乎低于樣本 A 中的相同基因。

    RNA composition

    歸一化不僅對于差異表達分析必不可少,對于探索數據分析、數據可視化以及探索或比較樣本之間或樣本內的計數也是必要的。

    2. 歸一化方法

    幾種常見的歸一化方法:

    方法描述考慮因素使用場景
    CPM (counts per million)按照reads總數縮放計數測序深度同一樣本組重復之間的基因計數比較;不適用于樣本內比較或差異表達分析
    TPM (transcripts per kilobase million)每百萬讀取reads比對的轉錄本長度 (kb) 計數測序深度與基因長度樣本內或同一樣本組樣本之間的基因計數比較;不適用于差異表達分析
    RPKM/FPKM (reads/fragments per kilobase of exon per million reads/fragments mapped)類似于TPM測序深度與基因長度樣本中基因之間的基因計數比較;不適用于樣本比較或差異表達分析
    DESeq2’s median of ratios計數除以特定于樣本的大小因子,該因子由基因計數相對于每個基因的幾何平均值的中位數比率確定測序深度和RNA組成樣品之間的基因計數比較和差異表達分析;不適用于樣本內比較
    EdgeR’s trimmed mean of M values (TMM)使用樣本之間對數表達比率的加權修剪平均值測序深度和RNA組成樣品之間的基因計數比較和差異表達分析;不適用于樣本內比較
    • RPKM/FPKM:不推薦用于樣本間比較

    雖然 TPM 和 RPKM/FPKM 歸一化方法都考慮了測序深度和基因長度,但不推薦使用 RPKM/FPKM。原因是RPKM/FPKM方法輸出的歸一化計數值在樣本之間沒有可比性。

    使用 RPKM/FPKM 歸一化,每個樣本的 RPKM/FPKM 歸一化計數總數會有所不同。因此,您不能在樣本之間平均比較每個基因的歸一化計數。

    RPKM-歸一化計數表:

    genesampleAsampleB
    XCR15.55.5
    WASHC173.421.8
    Total RPKM-normalized counts1,000,0001,500,000

    例如,在上表中,樣本 A 的 XCR1 (5.5/1,000,000) 計數比例高于樣本 B (5.5/1,500,000),即使 RPKM 計數值相同。因此,我們不能直接比較樣本 A 和樣本 B 之間 XCR1(或任何其他基因)的計數,因為樣本之間的歸一化計數總數不同。

    • DESeq2-歸一化計數:比率方法的中值(Median of ratios method)

    由于用于差異表達分析的工具正在比較樣本組之間相同基因的計數,因此該工具不需要考慮基因長度。然而,確實需要考慮測序深度和 RNA 組成。為了標準化測序深度和 RNA 組成,DESeq2 使用比率中值方法。在用戶端只有一個步驟,但在后端涉及多個步驟,如下所述。

  • 創建一個偽參考樣本(逐行幾何平均值)
  • 對于每個基因,都會創建一個偽參考樣本,該樣本等于所有樣本的幾何平均值。

    genesampleAsampleBpseudo-reference sample
    EF2A1489906sqrt(1489 * 906) = 1161.5
    ABCD12213sqrt(22 * 13) = 17.7
  • 計算每個樣本與參考的比率
  • 對于每個樣本中的每個基因,計算比率(樣本/參考)(如下所示)。由于大多數基因沒有差異表達,因此每個樣本中的大多數基因在樣本中的比例應該相似。

    genesampleAsampleBpseudo-reference sampleratio of sampleA/refratio of sampleB/ref
    EF2A14899061161.51489/1161.5 = 1.28906/1161.5 = 0.78
    ABCD1221316.922/16.9 = 1.3013/16.9 = 0.77
    MEFV793410570.2793/570.2 = 1.39410/570.2 = 0.72
    BAG1764256.576/56.5 = 1.3542/56.5 = 0.74
    MOV105211196883.7521/883.7 = 0.5901196/883.7 = 1.35
  • 計算每個樣本的歸一化因子(大小因子)
  • 給定樣本的所有比率的中值(上表中的列)被視為該樣本的歸一化因子(大小因子),計算如下。請注意,差異表達的基因不應影響中值:

    normalization_factor_sampleA <- median(c(1.28, 1.3, 1.39, 1.35, 0.59))

    normalization_factor_sampleB <- median(c(0.78, 0.77, 0.72, 0.74, 1.35))

    下圖說明了單個樣本的所有基因比率分布的中值(y 軸是頻率)。

    figure

    比率中位數法假設并非所有基因都差異表達;因此,歸一化因子應考慮樣本的測序深度和 RNA 組成(大的離群基因不會影響中值比率值)。該方法對上調/下調和大量差異表達基因的不平衡具有魯棒性。

  • 使用歸一化因子計算歸一化計數值
  • 這是通過將給定樣本中的每個原始計數值除以該樣本的歸一化因子來執行的,生成歸一化計數值。這是針對所有計數值(每個樣本中的每個基因)執行的。例如,如果樣本 A 的中值比率為 1.3,樣本 B 的中值比率為 0.77,則可以按如下方式計算歸一化計數:

    • Raw Counts
    genesampleAsampleB
    EF2A1489906
    ABCD12213
    • Normalized Counts
    genesampleAsampleB
    EF2A1489 / 1.3 = 1145.39906 / 0.77 = 1176.62
    ABCD122 / 1.3 = 16.9213 / 0.77 = 16.88

    請注意,歸一化計數值不是整數。


    以上步驟僅作為演示,在實際使用DESeq2過程中,只需要一步命令,即可完成計算。

    3. Mov10 歸一化

    現在我們知道了計數歸一化的理論,我們將使用 DESeq2 對 Mov10 數據集的計數進行歸一化。這需要幾個步驟:

  • 確保 metadata 數據框的行名存在,并且與 counts 數據框的列名順序相同。
  • 創建一個 DESeqDataSet 對象
  • 生成歸一化 counts
  • 3.1. 數據匹配

    我們應該始終確保樣本名稱在兩個文件之間匹配,并且樣本的順序相同。如果不是這種情況,DESeq2 將輸出錯誤。

    #?檢查兩個文件中的樣本名稱是否匹配
    all(colnames(txi$counts)?%in%?rownames(meta))
    all(colnames(txi$counts)?==?rownames(meta))

    如果數據不匹配,可以使用 match() 函數重新排列它們。

    3.2. 創建對象

    讓我們從創建 DESeqDataSet 對象開始,然后可以更多地討論其中存儲的內容。要創建對象,我們需要將計數矩陣和元數據表作為輸入。我們還需要指定一個設計公式。設計公式指定元數據表中的列以及它們在分析中的使用方式。對于我們的數據集,我們只有一列感興趣,即 ~sampletype。此列具有三個因子水平,它告訴 DESeq2 對于每個基因,我們要評估相對于這些不同水平的基因表達變化。

    我們的計數矩陣輸入存儲在 txi 列表對象中。所以我們需要指定使用 DESeqDataSetFromTximport() 函數,這將提取計數組件并將值四舍五入到最接近的整數。

    #?對象創建
    dds?<-?DESeqDataSetFromTximport(txi,?colData?=?meta,?design?=?~?sampletype)

    3.3. 生成歸一化counts

    下一步是對計數數據進行歸一化,以便在樣本之間進行正確的基因比較。

    normalize

    為了執行歸一化比率方法的中位數,DESeq2 有一個 estimateSizeFactors() 函數可以生成大小因子。我們將在下面的示例中演示此功能,但在典型的 RNA-seq 分析中,此步驟由 DESeq() 函數自動執行,我們將在后面討論。

    dds?<-?estimateSizeFactors(dds)

    通過將結果分配回 dds 對象,我們用適當的信息填充了 DESeqDataSet 對象。我們可以使用以下方法查看每個樣本的歸一化因子:

    sizeFactors(dds)

    現在,要從 dds 中檢索歸一化計數矩陣,我們使用 counts() 函數并添加參數 normalized=TRUE。

    normalized_counts?<-?counts(dds,?normalized=TRUE)

    我們可以將這個歸一化的數據矩陣保存到文件中以備后用:

    write.table(normalized_counts,?file="data/normalized_counts.txt",?sep="\t",?quote=F,?col.names=NA)

    注意:DESeq2 實際上并不使用歸一化計數,而是使用原始計數并對廣義線性模型 (GLM) 中的歸一化進行建模。這些歸一化計數對于結果的下游可視化很有用,但不能用作 DESeq2 或任何其他使用負二項式模型執行差異表達分析的工具的輸入。


    歡迎Star -> 學習目錄

    更多教程 -> 學習目錄


    本文由 mdnice 多平臺發布

    總結

    以上是生活随笔為你收集整理的RNA-seq 详细教程:搞定count归一化(5)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。