作業要求:
我們統一選擇p<0.05而且abs(logFC)大於一個與眾的基因為顯著差異表達基因集,對這個基因集用R包做KEGG/GO超幾何分布檢驗分析。
然后把表達矩陣和分組信息分別作出cls和gct文件,導入到GSEA軟件分析。
基本任務是完成這個分析。
【1】環境准備
1 >source(“https://bioconductor.org/biocLite.R”) # 載入安裝工具 2 >biocLite(“clusterProfiler”) # 安裝包 3 >biocLite(“org.Hs.eg.db”) # 物種是人,用Hs;根據物種選擇包 4 >library(clusterProfiler) # 加載包 5 >library(org.Hs.eg.db) 6 7 # 初次安裝和加載這兩個包,會需要額外加載幾個別的包 8 # 分別install.packages("xxx") 或 library("xxx")即可
【2】gene_id 轉換
GO富集分析必須要用ENTREZID
最常見的是ENSEMBL,ENTREZID兩大類。
ENTREZID=keg=ncbi-geneid,它們三者id相同
1 # 查看數據庫的id類型 2 > keytypes(org.Hs.eg.db) 3 # select()函數和bitr()函數都可以進行id轉換 4 > gene_id <- diff_gene$row.names # gene_id是character 5 6 > gene <- select(org.Hs.eg.db,keys=gene_id,columns="ENTREZID",keytype="ENSEMBL") 8 # org.Hs.eg.db: 是數據庫類型。 Keys:輸入的gene_id文件。 9 # Columns:是轉換后的id類型。 Keytype:是轉換前的id類型 10 11 > gene <- bitr(gene_id, OrgDb=org.Hs.eg.db, fromType="ENSEMBL",toType="ENTREZID") 13 # gene_id:是輸入的gene_id文件。 OrgDb:是數據庫類型。 14 # fromType:是轉換前的id類型。 toType:轉換后的id類型。
# 上面的“gene_id”也可以通過下面的方式輸入:
> gene_id <- c("ENSG00000153707")
【3】GO富集分析及畫圖
GO富集要使用ENTREZID
1 # GO富集分析 2 > ego <- enrichGO(gene,OrgDb,keytype=”ENTREZID”,ont=”MF”,pvalueCutoff=0.01,pAdjustMethod=”BH”,qvalueCutoff=0.05, 3 minGSSize=1,readable=FALSE) 4 # gene:是差異基因的id。 Orgdb:物種注釋數據庫類型 5 # Ont:有三種,生物過程(BP),細胞組分(CC),分子功能(MF) 6 # Keytype:geneid類型。 pAdjustMethod:P值校正方法。 7 8 # 實際代碼 9 > ego <- enrichGO(gene=ENTREZID_id2$ENTREZID,OrgDb=org.Hs.eg.db,ont="MF",readable=TRUE) 10 # 將GO結果寫入csv文件 11 > write.csv(as.data.frame(ego),”enrich-GO.csv”,row.names=F) 12 13 14 # 畫圖 15 # 氣泡圖 16 > dotplot(ego,font.size=10) 17 # 網絡圖 18 > enrichMap(ego,vertex.label.cex=1.2, 19 layout=igraph::layout.kamada.kawai)
【4】KEGG(pathway)分析
1 # KEGG富集分析 2 > ekk <- enrichKEGG(gene,organism=”human”,pavlueCutoff=0.01,qvalueCutoff=0.05,minGSSize=1) 4 # 物種是人,使用organism=”human”,其他所有物種縮寫看官網 5 KEGG Organisms: Complete Genomes 6 https://www.genome.jp/kegg/catalog/org_list.html 7 8 # 將KEGG結果寫入csv文件 9 > write.csv(as.data.frame(ekk),”enrich-KEGG.csv”,row.names=F) 10 11 # 畫圖 12 > dotplot(ekk,font.size=5)