作业要求:
我们统一选择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)