使用DESeq2進行兩組間的差異分析

2020-10-18 生信修煉手冊

DESeq2 接受raw count的定量表格,然後根據樣本分組進行差異分析,具體步驟如下

1. 讀取數據

讀取基因的表達量表格和樣本的分組信息兩個文件,其中表達量的文件示例如下

gene_id ctrl-1 ctrl-2 ctrl-3 case-1 case-2 case-3geneA 14  0  11  4  0  12geneB 125 401 442 175 59 200

每一行為一個基因,每一列代表一個樣本。

分組信息的文件示例如下

sample  conditionctrl-1    controlctrl-2    controlctrl-3    controlcase-1  casecase-2  casecase-3  case

第一列為樣本名,第二列為樣本的分組信息。

讀取文件的代碼如下

# 讀取表達量的表格count <- read.table( "gene.counts.tsv", header=T, sep="\t", row.names=1, comment.char="", check.names=F)# 預處理,過濾低豐度的數據countData <- count[apply(count, 1, sum) > 0 , ]# 讀取樣本分組信息colData <- read.table( "sample.group.tsv", header=T, sep="\t", row.names=1, comment.char="", check.names=F)# 構建DESeq2中的對象dds <- DESeqDataSetFromMatrix(  countData = countData,  colData = colData,  design = ~ condition)# 指定哪一組作為controldds$condition <- relevel(dds$condition, ref = "control")

在讀取數據的過程中,有兩點需要注意,第一個就是根據表達量對基因進行過濾,通常是過濾低表達量的基因,這一步是可選的,閾值可以自己定義;另外一個就是指定哪一組作為control組,在計算log2FD時 ,需要明確control組,默認會字符串順序對分組的名字進行排序,排在前面的作為control組,這種默認行為選出的control可能與我們的實驗設計不同,所以必須明確指定control組。

2. 歸一化

計算每個樣本的歸一化係數,代碼如下

dds <- estimateSizeFactors(dds)


將原始的表達量除以每個樣本的歸一化係數,就得到了歸一化之後的表達量。

3. 估計基因的離散程度

DESeq2假定基因的表達量符合負二項分布,有兩個關鍵參數,總體均值和離散程度α值, 如下圖所示

這個α值衡量的是均值和方差之間的關係,表達式如下

通過下列代碼估算每個基因的α值

dds <- estimateDispersions(dds)

4. 差異分析

代碼如下

dds <- nbinomWaldTest(dds)res <- results(dds)

為了簡化調用,將第二部到第四部封裝到了DESeq這個函數中,代碼如下

dds <- DESeq(dds)res <- results(dds)write.table( res, "DESeq2.diff.tsv", sep="\t", quote=F, col.names = NA)

在DESeq2差異分析的過程中,已經考慮到了樣本之間已有的差異,所以可以發現,最終結果裡的log2FD值和我們拿歸一化之後的表達量計算出來的不同,  示意如下

> head(results(dds)[, 1:2])log2 fold change (MLE): condition B vs ADataFrame with 6 rows and 2 columns       baseMean log2FoldChange      <numeric>      <numeric>gene1   7.471250     -0.8961954gene2  18.145279      0.4222174gene3   2.329461     -2.3216915gene4 165.634256     -0.1974001gene5  38.300621      1.3573162gene6   7.904819      1.8384322

提取歸一化之後的表達量,自己計算baseMean和logFoldChange, 示例數據包含了12個樣本,其中前6個樣本為control, 後6個樣本為case , 代碼如下

> nor_count <- counts(dds, nor = T)> res <- data.frame(  baseMean = apply(nor_count, 1, mean),  log2FoldChange = apply(nor_count, 1, function(t){ mean(t[7:12]) / mean(t[1:6])}) )> head(res)       baseMean log2FoldChangegene1   7.471250      0.5380191gene2  18.145279      1.3404422gene3   2.329461      0.1991979gene4 165.634256      0.8719078gene5  38.300621      2.5621035gene6   7.904819      3.5365201

對比DESeq2和自己計算的結果,可以發現,baseMeans是一致的,而log2Foldchange 差異很大,甚至連數值的正負都發生了變化。

log2FD 反映的是不同分組間表達量的差異,這個差異由兩部分構成,一種是樣本間本身的差異,比如生物學重複樣本間基因的表達量就有一定程度的差異,另外一部分就是我們真正感興趣的,由於分組不同或者實驗條件不同造成的差異。

用歸一化之後的數值直接計算出的log2FD包含了以上兩種差異,而我們真正感興趣的只有分組不同造成的差異,DESeq2在差異分析的過程中已經考慮到了樣本本身的差異,其最終提供的log2FD只包含了分組間的差異,所以會與手動計算的不同。

·end·

相關焦點

  • 要分析組間的差異,該如何選擇正確的統計方法?
    差異分析主要用於:(1)判斷因變量在兩組或多組之間的統計學差異,各組之間可以是獨立的,也可以是非獨立的;(2)如果多組之間存在差異,進一步開展兩兩比較,分析差異來源。 比如,分析不同醫療機構醫生收入水平的差異。
  • 微生物組間差異分析之LEfSe分析
    LEfSe分析,可以分析組間菌群差異,找出各組間差異的微生物種類,有助於開發biomaker等研究,因此LEfSe分析在微生物相關文章中經常出現
  • 原創乾貨丨採用LefSe解析組間微生物構成差異
    具體來說,首先使用non-parametric factorial Kruskal-Wallis (KW) sum-rank test(非參數因子克魯斯卡爾—沃利斯和秩驗檢)檢測具有顯著豐度差異特徵,並找到與豐度有顯著性差異的類群。最後,LEfSe採用線性判別分析(LDA)來估算每個組分(物種)豐度對差異效果影響的大小。
  • Alpha多樣性指數的計算和差異分析(差異檢驗結果可視化)
    ,關於alpha多樣性指數的介紹和計算在網上有茫茫多的資料,本文將不會花費大量篇幅介紹這些基礎知識,而是重點帶來對alpha多樣性進行統計學分析並直接生成圖像的方法。Alpha多樣性差異檢驗在微生物群落的alpha多樣性指數分析中,最常用的就是利用統計學分析檢驗不同組樣本間微生物群落alpha多樣性指數的差異顯著性。兩組樣本分析當研究的樣本只有兩組時,一般使用t-test檢驗組間差異。
  • 微生物群落差異分析方法大揭秘
    β 多樣性差異分析。最多,也就是基於PICRUSt,BUGBASE這類型的軟體預測完功能後,再做一些功能差異分析。常見的差異檢驗方法,可以分為兩大類,一類是最基本的差異檢驗方法,只輸出p值,例如t檢驗,秩和檢驗等。另外一類是可以輸出p值的同時,也可以輸出R值(R值是什麼?往下看吧),如Anosim,Adonis等。下面來簡單介紹一下這些方法。
  • GSVA + limma進行差異通路分析
    一般我們做GSEA都是先進行差異基因分析,然後取差異倍數排序結果進行GSEA
  • OmicShare差異分析工具上線了!
    要對這三組樣本進行兩兩差異分析。找到「差異分析」工具,點擊進入。組間比較文件:列出要進行差異分析的比較組的文件。有兩列,在進行差異分析時是第二列比上第一列。如第一列是A組,第二列是B組,則為B組比上A組。
  • sleuth:基於TPM值的差異分析
    基於這種類型的結果進行差異分析時,有兩種策略可以選擇。第一種是採用tximportR包,將結果導入到DESeq2種進行分析;第二種是直接採用sleuthR包進行差異分析。本章主要介紹sleuth的使用。
  • 品頭論足-distcomp:組間分布差異檢驗
    0.04, ..., 0.98,// 後20次觀測為第二組樣本1/21, 2/21, ..., 20/21. gen y = (_n<=49)*(_n/50) + (_n>49)*(_n-49)/21 . replace y = 1000000+_n if _n>63 . gen grp = (_n>49)// 對這兩組樣本分布進行
  • 何為「組間同質,組內異質」
    一般情況下,合作學習進行分組時要按照「組間異質,組內同質」的原則進行。所謂組內異質,就是小組成員在性格、成績、動手能力和表達能力、家庭等方面有一定的差異性和互補性。而組間必須同質,即小組間儘量減少差異,使其各方面情況相當,儘量使各小組之間的競爭公平、合理。合作式教學中的學生分組要注意科學合理。
  • 兩組樣本之間的比較 - CSDN
    樣本分了實驗組和對照組,而又同時進行了一種幹預手段,在幹預前和幹預後進行了分別測量數據。這時候既要考慮實驗組和對照組之間的比較,又要考慮幹預前和幹預後的對照比較。今天我們就來詳細講解如何用SPSS處理這類數據。實驗設計與假設幹預實驗的設計,將一批樣本分成實驗和對照兩組,幹預前對兩組分別進行測量一次,然後對實驗組進行幹預,幹預後經過一段時間,再分別對兩組進行一次測量。
  • peak差異分析的工具那麼多,如何選擇?
    peak 差異分析與peak caling的結果緊密相依,在上述文獻中,將peak差異分析總結為了兩大類,示意如下第一類,類似轉錄組差異分析的策略,首先基於peak calling的結果,統計peak區域在各個樣本中的表達量,然後進行歸一化,差異分析;第二類,採用了隱馬可夫模型,將基因組的區域分為了非差異,上調,下調3種不同狀態,構建3
  • 方差分析(ANOVA)原理
    按因素劃分,可分為單因素方差分析、二因素方差分析和多因素方差分析。方差分析的步驟為:總平方和分解→總自由度分解→F檢驗。若F檢驗顯著,則可以進行多重比較,從而發現哪些處理具有兩兩間的差異。方差分析的基本原理在一次實驗中,可以得到一系列不同的觀測值。
  • DESeq2分析基因表達矩陣
    上一節對基因表達數據使用edgeR進行差異表達分析:edgeR分析基因表達矩陣,那麼接下來,我們就繼續使用DESeq2對expressMatrix
  • 論文中對數據進行統計學處理時需要注意的問題
    進行科研論文寫作,通常需要對取得的數據進行統計學處理。達晉編譯提醒大家,對此需要注意以下的問題。一、對基線資料進行統計學分析。搜集資料應嚴密遵守隨機抽樣設計,保證樣本從同質的總體中隨機抽取,除了對比因素外,其他可能影響結果的因素應儘可能齊同或基本接近,以保證組間的齊同可比性。因此,應對樣本的基線資料進行統計學分析,以證明組間的齊同可比性。二、選擇正確的統計檢驗方法。研究目的不同、設計方法不同、資料類型不同,選用的統計檢驗方法則不同。
  • 一文帶你輕鬆掌握,重複測量方差分析
    在某些實驗研究中,常常需要考慮時間因素對實驗的影響,當需要對同一觀察單位在不同時間重複進行多次測量,每個樣本的測量數據之間存在相關性,因而不能簡單的使用方差分析進行研究,而需要使用重複測量方差分析。案例:當前有這樣一項關於抑鬱症的研究,共有12名患者,分為兩組,每組6名患者分別使用新藥或者舊藥;並且分別測量12名患者用藥後分別第1周,第4周和第8周時的抑鬱程度。研究問題:①舊藥、新藥對患者抑鬱情況的影響是否有差異?②時間是否會影響抑鬱情況?③時間和用藥類型兩者是否存在交互作用?1.
  • 使用非參數統計檢驗進行分析的指南
    問題是沒有人告訴你如何進行像假設檢驗這樣的分析。統計檢驗用於制定決策。為了使用中位數進行分析,我們需要使用非參數檢驗。非參數測試是分布獨立的檢驗,而參數檢驗假設數據是正態分布的。說參數檢驗比非參數檢驗更加的臭名昭著是沒有錯的,但是前者沒有考慮中位數,而後者則使用中位數來進行分析。接下來我們就進入非參數檢驗的內容。
  • 除了火山圖,差異表達基因還可以這樣展示
    ,計算了兩組間差異表達的基因後,通常怎樣表示?您可能第一時間想到可以使用火山圖。的確,火山圖是使用頻率最多的,在火山圖中可以很輕鬆地根據基因在兩組間的Fold Change值以及顯著性p值,識別和判斷差異表達基因概況。火山圖實質上就是一種散點圖,通常橫縱坐標分別代表了log2轉化後的Fold Change以及-log10轉化後的p值或p調整值信息(下圖左)。
  • SPSS——單因素方差分析
    F值越大於1,說明各組數據之間的變異越大,組內變異越小,各組數據之間的差異也就越大。進行單因素方差分析的數據一般表現為此種形式若是對各組數據進行更直觀的觀察,可進行繪圖描述【單因素方差分析】:三組進行的方差分析結果,組間方差平方和為711.62,組內方差平方和為50165.76,總的方差平方和為50877.39,檢驗統計量F=0.617,P=0.542,表明三組之間,差異無統計學意義(P>
  • 質量資格輔導資料:方差分析的基本思想
    方差分析的基本思想  1.方差分析的概念  方差分析(ANOVA)又稱變異數分析或F檢驗,其目的是推斷兩組或多組資料的總體均數是否相同,檢驗兩個或多個樣本均數的差異是否有統計學意義。我們要學習的主要內容包括單因素方差分析即完全隨機設計或成組設計的方差分析和兩因素方差分析即配伍組設計的方差分析。