轉錄組(八):差異基因注釋


引入clusterProfiler與注釋數據

library(clusterProfiler)
library(DOSE)
library(DO.db)
library(org.Mm.eg.db)

GO(gene ontology)分析

GO,Gene Ontology,是基因功能國際標准分類體系。它旨在建立一個適用於各種物種的,對基因和蛋白質功能進行限定和描述的,並能隨着研究不斷深入而更新的語言詞匯標准。GO分為分子功能(Molecular Function)、生物過程(Biological Process)、和細胞組成(Cellular Component)三個部分。

ID轉換

org.Mm.eg.db數據對象里面包含着各大主流數據庫的數據,一般人都比較熟悉的entrez ID 和ensembl 數據庫的ID。
ID類型

#查看ID類型
keytypes(org.Mm.eg.db)
gene <- row.names(diff_gene_deseq2)

#使用select函數進行表格拼接,這是來自數據庫的函數
#keys是原始的ID,columns是轉換之后的ID,keytype是要指定的原始ID類型
tansid <- select(org.Mm.eg.db,keys = gene,columns = c("SYMBOL","ENTREZID","GENENAME"),keytype = "ENSEMBL")

tansid文件

可視化

#GO分析及畫圖
ego <- enrichGO(gene = tansid$ENSEMBL,
                keyType = "ENSEMBL",
                OrgDb = "org.Mm.eg.db",
                ont = "BP"
)
# 氣泡圖
dotplot(ego, font.size=10)

#網絡圖,但是找不到函數
enrichMap(ego, vertex.label.cex=1.2, layout=igraph::layout.kamada.kawai)

#GO圖
plotGOgraph(ego)

橫軸為GeneRatio, 代表該GO term下的差異基因個數占差異基因總數的比例,縱軸為富集到的GO Terms的描述信息氣泡圖

有向無環。矩形代表富集到的top10個GO terms, 顏色從黃色過濾到紅色,對應p值從大到小。橢圓形代表未富集到前十的GOterms。
GO圖

##GSEA
# 按照log2FC從大到小排序基因列表
genelist <- diff_gene_deseq2$log2FoldChange
names(genelist) <- rownames(diff_gene_deseq2)
genelist <- sort(genelist, decreasing = TRUE)

#gsea
gsemf <- gseGO(genelist,
               OrgDb = org.Mm.eg.db,
               keyType = "ENSEMBL",
               ont="MF"
)
head(gsemf)

# 畫出GSEA圖
gseaplot(gsemf, geneSetID="GO:0000977")

在GO:0000977基因集中的gsea


GSEA的輸入是一個基因表達量矩陣,其中的樣本分成了A和B兩組,首先對所有基因進行排序,在之前的文章中也有提到排序的標准,這里簡單理解就是foldchange, 用來表示基因在兩組間表達量的變化趨勢。排序之后的基因列表其頂部可以看做是上調的差異基因,其底部是下調的差異基因。
GSEA分析的是一個基因集下的所有基因是否在這個排序列表的頂部或者底部富集,如果在頂部富集,我們可以說,從總體上看,該基因集是上調趨勢,反之,如果在底部富集,則是下調趨勢。

KEGG

# id轉換
x=bitr(rownames(diff_gene_deseq2),fromType = "ENSEMBL",toType = "ENTREZID", OrgDb = "org.Mm.eg.db")

# 獲取keggID
kegg <- x[,2]

# KEGG分析,小鼠mmu,http://www.genome.jp/kegg/catalog/org_list.html
ekk <- enrichKEGG(kegg, keyType = "kegg",organism = "mmu", pvalueCutoff = 0.05, pAdjustMethod = "BH", qvalueCutoff = 0.1)
head(summary(ekk))

# 氣泡圖
barplot(ekk)
cnetplot(ekk, showCategory = 5)
browseKEGG(ekk, "mmu04742")
# 將GO/KEGG結果轉換成CSV格式輸出
write.csv(as.data.frame(ekk),"KEGG-enrich.csv",row.names =F)
write.csv(as.data.frame(ego),"GO-enrich.csv",row.names =F)

barplot

  • 橫軸為該pathway的差異基因個數,縱軸為富集到的pathway的描述信息

cnetplot

  • 灰色的點代表基因,黃色的點代表富集到的pathways, pathways節點的大小對應富集到的基因個數。

通路

參考
http://www.biotrainee.com/thread-1749-1-1.html

https://www.jianshu.com/p/4910d7cec5c8


免責聲明!

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



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