edgeR 包的使用


 
edgeR包是進行RNA-seq數據分析非常常用的一個R包。該包需要輸入每個基因關於每個樣本的reads數的數據,每行對應一個基因,每一列對應一個樣本。建議使用htseq-count進行統計,輸出文件即可直接使用。如果需要算RPKM,需要自己統計基因長度信息。
第一步:構建 DGEList類變量
edgeR的大多數操作都是對 DGEList類型變量進行,所以第一步必須構建該類型變量,使用函數:DGEList
命令為:

y <- DGEList(counts=x)

這里的x就是每個行一個基因每列一個樣本的reads數表達矩陣。
當然還需要一個分組信息的數據,需要自己建立,例如:

group <- c(1,1,2,2) y <- DGEList(counts=x, group=group)

第二步:基因篩選
對於在大多數樣本中表達數量都很少的基因,需要進行過濾,這一步可以根據自己定義的標准過濾,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 group lib.size norm.factors Sample1 1 10880519 1.17 Sample2 1 9314747 0.86 Sample3 1 11959792 1.32 Sample4 2 7460595 0.91 Sample5 2 6714958 0.83

第四步:聚類與熱圖
在表達量分析中經常會遇到根據基因表達量來對基因進行聚類分析的過程,edgeR建議使用logcpm這個指標來進行聚類和畫熱圖,命令是:

logcpm <- cpm(y, prior.count=2, log=TRUE)

 

第五步:差異表達分析
edgeR的差異表達分析有兩種方式,簡單的一種是直接進行配對檢驗,命令是:

et <- exactTest(y, pair=c("A","B"))#檢驗A、B樣本的差異表達基因 topTags(et)

另一種算法比較復雜,其思想是:首先表達值需要服從某個分布,然后與這個分布不相符的基因才是差異表達基因。具體做法如下:

design <- model.matrix(~Subject+Treat)#設計一個實驗設計矩陣 fit <- glmFit(y, design)#構建一個基因表達值得廣義線性模型 lrt <- glmLRT(fit)#通過似然比檢驗得到最后的結果


文章出處:

hzau_yang的博客:https://blog.csdn.net/hzau_yang/article/details/78118257


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM