精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
轉錄組差異表達分析小實戰(二)
差異基因表達分析

我按照前面的流程轉錄組差異表達分析小實戰(一),將小鼠的4個樣本又重新跑了一遍,從而獲得一個新的count文件:mouse_all_count.txt,有需要的話,可以下載下來進行后續的差異分析。

一般來說,由于普遍認為高通量的read count符合泊松分布,所以一些差異分析的R包都是基于負二項式分布模型的,比如DESeq、DESeq2和edgeR等,所以這3個R包從整體上來說是類似的(但各自標準化算法是不一樣的)。

當然還有一個常用的R包則是Limma包,其中的limma-trend和limma-voom都能用來處理RNA-Seq數據(但對應適用的情況不一樣)

下面準備適用DESeq2和edgeR兩個R包分別對小鼠的count數據進行差異表達分析,然后取兩者的結果的交集的基因作為差異表達基因。

  1. DEseq2

    library(DESeq2)##數據預處理database <- read.table(file = "mouse_all_count.txt", sep = "\t", header = T, row.names = 1)database <- round(as.matrix(database))##設置分組信息并構建dds對象condition <- factor(c(rep("control",2),rep("Akap95",2)), levels = c("control", "Akap95"))coldata <- data.frame(row.names = colnames(database), condition)dds <- DESeqDataSetFromMatrix(countData=database, colData=coldata, design=~condition)dds <- dds[ rowSums(counts(dds)) > 1, ]##使用DESeq函數估計離散度,然后差異分析獲得res對象dds <- DESeq(dds)res <- results(dds)#最后設定閾值,篩選差異基因,導出數據(全部數據。包括標準化后的count數)res <- res[order(res$padj),]diff_gene <- subset(res, padj < 0.05 & (log2FoldChange > 1 | log2FoldChange < -1))diff_gene_DESeq2 <- row.names(diff_gene)resdata <- merge(as.data.frame(res), as.data.frame(counts(dds, normalized=TRUE)),by="row.names",sort=FALSE)write.csv(resdata,file = "control_vs_Akap95.csv",row.names = F)

    最終獲得572個差異基因(篩選標準為padj < 0.05, |log2FoldChange| > 1)

  2. edgeR

    library(edgeR)##跟DESeq2一樣,導入數據,預處理(用了cpm函數)exprSet<- read.table(file = "mouse_all_count.txt", sep = "\t", header = TRUE, row.names = 1, stringsAsFactors = FALSE)group_list <- factor(c(rep("control",2),rep("Akap95",2)))exprSet <- exprSet[rowSums(cpm(exprSet) > 1) >= 2,]##設置分組信息,并做TMM標準化exprSet <- DGEList(counts = exprSet, group = group_list)exprSet <- calcNormFactors(exprSet)##使用qCML(quantile-adjusted conditional maximum likelihood)估計離散度(只針對單因素實驗設計)exprSet <- estimateCommonDisp(exprSet)exprSet <- estimateTagwiseDisp(exprSet)##尋找差異gene(這里的exactTest函數還是基于qCML并且只針對單因素實驗設計),然后按照閾值進行篩選即可et <- exactTest(exprSet)tTag <- topTags(et, n=nrow(exprSet))diff_gene_edgeR <- subset(tTag$table, FDR < 0.05 & (logFC > 1 | logFC < -1))diff_gene_edgeR <- row.names(diff_gene_edgeR)write.csv(tTag$table,file = "control_vs_Akap95_edgeR.csv")

    最終獲得688個差異基因(篩選標準為FDR < 0.05, |log2FC| > 1)

  3. 取DESeq2和edgeR兩者結果的交集

    diff_gene <- diff_gene_DESeq2[diff_gene_DESeq2 %in% diff_gene_edgeR]

    最終的差異基因數目為545個

    head(diff_gene)[1] "ENSMUSG00000003309.14" "ENSMUSG00000046323.8"  "ENSMUSG00000001123.15"[4] "ENSMUSG00000023906.2"  "ENSMUSG00000044279.15" "ENSMUSG00000018569.12"
  4. 其他兩個R包(DESeq和limma)就不在這嘗試了,我之前做過對于這4個R包的簡單使用筆記,可以參考下:
    簡單使用DESeq做差異分析
    簡單使用DESeq2/EdgeR做差異分析
    簡單使用limma做差異分析

GO&&KEGG富集分析

以前一直沒有機會用Y叔寫的clusterProfiler包,這次正好看說明用一下。

  1. GO富集,加載clusterProfiler包和org.Mm.eg.db包(小鼠嘛),然后將ENSEMBL ID后面的版本號去掉,不然后面不識別這個ID,然后按照clusterProfiler包的教程說明使用函數即可。

    library(clusterProfiler)library(org.Mm.eg.db)##去除ID的版本號diff_gene_ENSEMBL <- unlist(lapply(diff_gene, function(x){strsplit(x, "\\.")[[1]][1]}))##GOid mapping + GO富集ego <- enrichGO(gene = diff_gene_ENSEMBL, OrgDb = org.Mm.eg.db,         keytype = "ENSEMBL", ont = "BP", pAdjustMethod = "BH",         pvalueCutoff = 0.01, qvalueCutoff = 0.05)##查看富集結果數據enrich_go <- as.data.frame(ego)##作圖barplot(ego, showCategory=10)dotplot(ego)enrichMap(ego)plotGOgraph(ego)
  2. KEGG富集,首先需要將ENSEMBL ID轉化為ENTREZ ID,然后使用ENTREZ ID作為kegg id,從而通過enrichKEGG函數從online KEGG上抓取信息,并做富集

    library(clusterProfiler)library(org.Mm.eg.db)##ID轉化ids <- bitr(diff_gene_ENSEMBL, fromType = "ENSEMBL", toType = "ENTREZID", OrgDb = "org.Mm.eg.db")kk <- enrichKEGG(gene = ids[,2], organism = "mmu", keyType = "kegg",         pvalueCutoff = 0.05, pAdjustMethod = "BH", qvalueCutoff = 0.1)##查看富集結果數據enrich_kegg <- as.data.frame(kk)##作圖dotplot(kk)

到這里為止,轉錄組的差異表達分析算是做完了,簡單的來說,這個過程就是將reads mapping 到reference上,然后計數獲得count數,然后做差異分析,最后來個GO KEGG,over了。。。

對于mapping和計數這兩部還有其實還有好多軟件,具體可見文獻:Gaining comprehensive biological insight into the transcriptome by performing a broad-spectrum RNA-seq analysis,有時間可以都嘗試下。

至于GO && KEGG這兩步,對于人、小鼠等模式物種來說,不考慮方便因素來說,完全可以自己寫腳本來完成,數據可以從gene ontology官網下載,然后就是GO id與gene id相互轉化了。KEGG 也是一樣,也可以用腳本去KEGG網站上自行抓取,先知道URL規則,然后爬數據即可。

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
簡單使用DESeq2/EdgeR做差異分析 – 生信筆記
送你一篇TCGA數據挖掘文章
居然可以把rpkm這樣的歸一化并且帶小數點的轉錄組表達量矩陣直接取整
Bulk RNA-seq | 第4期. 差異分析三巨頭,該了解一下了
轉錄組學習七(差異基因分析)
轉錄組的高級分析前該如何標準化數據?
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 寿光市| 贺州市| 建平县| 广州市| 云梦县| 贵定县| 肥乡县| 格尔木市| 余姚市| 梧州市| 富民县| 云和县| 北川| 宜州市| 苍山县| 海晏县| 新绛县| 丹阳市| 汨罗市| 阿鲁科尔沁旗| 黄山市| 铜川市| 重庆市| 天镇县| 临澧县| 辽中县| 读书| 博客| 深泽县| 手游| 平和县| 巧家县| 江北区| 南郑县| 唐山市| 木兰县| 崇明县| 安顺市| 吉安县| 桃江县| 延安市|