R语言:GO和KEGG分析

> library("clusterProfiler")
> library("org.Hs.eg.db")
> library("enrichplot")
> library("ggplot2")
> library("org.Hs.eg.db")
#install.packages("GOplot")
> library(GOplot)


> rt=read.table("input.txt",sep="\t",check.names=F,header=T)
> genes=as.vector(rt[,1])
> entrezIDs <- mget(genes, org.Hs.egSYMBOL2EG, ifnotfound=NA)    
> entrezIDs <- as.character(entrezIDs)
> out=cbind(rt,entrezID=entrezIDs)
> write.table(out,file="GO-id.txt",sep="\t",quote=F,row.names=F)    


> rt=read.table("GO-id.txt",sep="\t",header=T,check.names=F)           
> rt=rt[is.na(rt[,"entrezID"])==F,]                                
> gene=rt$entrezID

> kk <- enrichGO(gene = gene,OrgDb = org.Hs.eg.db, pvalueCutoff =0.05, qvalueCutoff = 0.05,ont="all",readable =T)
> write.table(kk,file="GO.txt",sep="\t",quote=F,row.names = F) 

> pdf(file="GO-barplot.pdf",width = 10,height = 15)
> barplot(kk, drop = TRUE, showCategory =10,label_format=100,split="ONTOLOGY") + facet_grid(ONTOLOGY~., scale='free')
> dev.off()

> pdf(file="GO-bubble.pdf",width = 10,height = 15)
> dotplot(kk,showCategory = 10,label_format=100,split="ONTOLOGY") + facet_grid(ONTOLOGY~., scale='free')
> dev.off()

ego<-read.table("GO.txt",sep="\t",check.names=F,header=T)
go=data.frame(Category ="ALL",ID = ego$ID,Term = ego$Description, Genes = gsub("/", ", ", ego$geneID), adj_pval = ego$pvalue)
id.fc=rt
genelist <- data.frame(ID = id.fc$gene, logFC = id.fc$logFC)
row.names(genelist)=genelist[,1]

circ <- circle_dat(go, genelist)
termNum = 5                                   
geneNum = nrow(genelist)                        

chord <- chord_dat(circ, genelist[1:geneNum,], go$Term[1:termNum])
pdf(file="GO_circ.pdf",width = 12,height = 11)
GOChord(chord, 
        space = 0.001,          
        gene.order = 'logFC',    
        gene.space = 0.25,       
        gene.size = 5,           
        border.size = 0.1,      
        process.label = 9)       
dev.off()

> rt=read.table("input.txt",sep="\t",check.names=F,header=T)    
> genes=as.vector(rt[,1])
> entrezIDs <- mget(genes, org.Hs.egSYMBOL2EG, ifnotfound=NA)    
> entrezIDs <- as.character(entrezIDs)
> out=cbind(rt,entrezID=entrezIDs)
> write.table(out,file="KEGG-id.txt",sep="\t",quote=F,row.names=F)    


> rt=read.table("KEGG-id.txt",sep="\t",header=T,check.names=F)       
> rt=rt[is.na(rt[,"entrezID"])==F,]                             
> gene=rt$entrezID

> kk <- enrichKEGG(gene = gene,keyType = "kegg",organism = "hsa", pvalueCutoff =0.05, qvalueCutoff =0.05, pAdjustMethod = "fdr")   
> write.table(kk,file="KEGG.txt",sep="\t",quote=F,row.names = F)                         


> pdf(file="KEGG-barplot.pdf",width = 10,height = 13)
> barplot(kk, drop = TRUE, showCategory = 15,label_format=100)
> dev.off()

> pdf(file="KEGG-bubble.pdf",width = 10,height = 13)
> dotplot(kk, showCategory = 15,label_format=100)
> dev.off()

> ego<-read.table("KEGG.txt",sep="\t",check.names=F,header=T)
> go=data.frame(Category ="ALL",ID = ego$ID,Term = ego$Description, Genes = gsub("/", ", ", ego$geneID), adj_pval = ego$p.adjust)
> id.fc=rt
> genelist <- data.frame(ID = id.fc$entrezID, logFC = id.fc$logFC)
> row.names(genelist)=genelist[,1]
> row.names(rt)=rt[,3]

> circ <- circle_dat(go, genelist)
> termNum = 5                                    
> geneNum = nrow(genelist)                        

> chord <- chord_dat(circ, genelist[1:geneNum,], go$Term[1:termNum])
> sameSample=intersect(row.names(chord), row.names(rt))
> rt=rt[sameSample,,drop=F]
> geneIDs=rt$gene
> row.names(chord)=geneIDs
> pdf(file="KEGG_circ.pdf",width = 12,height = 11)
> GOChord(chord, 
        space = 0.001,           
        gene.order = 'logFC',    
        gene.space = 0.25,      
        gene.size = 5,           
        border.size = 0.1,      
        process.label = 9)       
> dev.off()

学习交流一下

  • 37
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值