edgeR之配對檢驗分析差異基因的使用教程

edgeR的介紹

背景

RNA-seq表達譜與生物複製的差異表達分析。 實現一系列基於負二項分佈的統計方法,包括經驗貝葉斯估計,精確檢驗,廣義線性模型和準似然檢驗。 與RNA-seq一樣,它可用於產生計數的其他類型基因組數據的差異信號分析,包括ChIP-seq,Bisulfite-seq,SAGE和CAGE。

簡介

edgeR包是進行RNA-seq數據分析非常常用的一個R包。該包需要輸入每個基因關於每個樣本的reads數的數據,每行對應一個基因,每一列對應一個樣本。edgeR作用的是真實的比對統計,因此不建議用預測的轉錄本。

 

歸一化原因:

 

技術原因影響差異表達分析:

 

1)Sequencing depth:統計測序深度(即代表的是library size);

 

2)RNA composition:個別異常高表達基因導致其它基因採樣不足

 

3)GC content: sample-specific effects for GC-content can be detected

 

4)sample-specific effects for gene length have been detected

 

注意:edgeR必須是原始表達量,而不能是rpkm等矯正過的

 

1.讀取表達矩陣文件

>SFTSV_24vscontrol_circ<-read.table("edgeR_TPM_SFTSV_24vscontrol_circ.txt",header= T,stringsAsFactors = F)[,1:8] #讀取基因表達量數據矩陣,包含6列樣本(可分爲C1和D1兩組,每組各3個樣本)共計1031行基因。

 

 

2.構建分組變量

分爲control組和SFTSV_24組,每組都爲三個重複

>group<-c(rep("control",3),rep("SFTSV_24",3))

 

3.構建DGElist對象

這裏因爲已經有rawdata的count文件,因此直接用DGEList()函數就行了,否則要用readDGE()函數

DGEList對象主要有三部分:

1、counts矩陣:包含的是整數counts;

2、samples數據框:包含的是文庫(sample)信息。一共有4列,第一列爲每個組的組名,第二列爲group列,是上面構建的分組變量,第三列是lib.size列,如果不自定義lib.size,lib.size爲每組記錄的count之和,第四列爲norm.factors列。

3、一個可選的數據框genes:gene的註釋信息

###由於這裏記錄的是circRNA的back-spliced junction reads,這裏的數據是取所有樣本的circRNA的交集,所以這裏的lib.size需要重新設定,設置爲最開始的每個樣本中所有circRNA的count之和###     

>y<-DGEList(count=SFTSV_24vscontrol_circ[,3:8],group=group,genes=SFTSV_24vscontrol_circ[,1:2],lib.size = c(48843,35329,48667,31309,35582,40933)) #這裏重新設置了lib.size

 

 

 4.過濾和標準化

過濾:因爲這裏記錄的是circRNA的count數,已經在分析的過程中過濾過,所以這裏不進行數據的過濾。

如果是mRNA或者lncRNA的count數,需要對其的表達量進行過濾。對於在大多數樣本中表達數量都很少的基因,需要進行過濾,這一步可以根據自己定義的標準過濾,edgeR推薦使用該包的CPM( count-per-million )值進行過濾,命令:

>keep <- rowSums(cpm(y)>1) >= 2#至少在兩個樣本里cpm大於1
>y <- y[keep, , keep.lib.sizes=FALSE]

 

標準化:edgeR的標準化思想主要針對的是不同樣本在建庫時效應。這一點與RPKM不同,因爲edgeR認爲不同的基因對於所有樣本的影響是相同的,所以不必考慮。因此爲了消除這種建庫時的效應,edgeR會更推薦你使用他的calcNormFactors函數,算出來的值叫做trimmed mean of M-values (TMM) ,命令爲:

>y <- calcNormFactors(y)
>y$samples
>plotMDS(y) #這裏主要是通過圖形的方式來展示實驗組與對照組樣本是否分得開,以及同一組內樣本是否能聚的比較近,即重複樣本是否具有一致性

 

 5.估計離散度

> y <- estimateCommonDisp(y, verbose=TRUE)
> y  <-estimateTagwiseDisp(y)
> plotBCV(y)

 

 

 6.通過檢驗差異來鑑別差異表達基因

>et <- exactTest(y)

 

 

>top <- topTags(et) #這裏可以設置topTags函數的參數,輸入?topTags可以查看topTags的詳細用法,可以設置參數n來調整顯示的條目,默認是n=10,可以通過設置sort.by="logFC"來按照|logFC|的降序排序,設置p.value=0.05來篩選p-adjusted value<0.05的基因

 

 

 

 

7.篩選差異基因與基本統計

>summary(de <- decideTestsDGE(et,adjust.method = "BH", p.value = 0.05,lfc=1)) #默認的參數是adjust.method="BH",也可以設置爲adjust.method="fdr",BH和fdr是等價的,p.value=0.05也是默認的參數,指的是篩選FDR小於0.05的基因,這裏也可以設置lfc參數,默認的lfc爲lfc=0,也可以根據自己需要設置,更多的函數參數可以輸入?decideTestsDGE查看

 

 

 

 

 

 

                                                                                           

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章