Skip to content

guokai8/richR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

richR Project Status: DOI

Description

richR provide functions richGO, richKEGG,and enrich to do functional enrichment analysis.

Installation

library(devtools)
install_github("guokai8/richR")

Quick tour

set.seed(123)   
library(richR)   
# To check the available species !!!
showData()   
# Make the GO and KEGG Pathway data for your analysis
# find suitable species name by using showensemble()    
hsago <- buildAnnot(species="human",keytype="SYMBOL",anntype = "GO")
hsako <- buildAnnot(species = "human",keytype="SYMBOL", anntype = "KEGG")

Support KEGG Module and MSIGDB anntation

hsamgi <- buildMSIGDB(species="human",keytype="SYMBOL",anntype="GO")
hsakom <- buildAnnot(species = "human",keytype="SYMBOL", anntype = "KEGGM")

You can make annotation data for all species from bioAnno package

  • If had bioAnno installed, you can build annotation package with it
# library(bioAnno)
# fromKEGG(species="ath")
# athgo<-buildOwn(dbname="org.ath.eg.db",anntype="GO")  
# athko<-buildOwn(dbname="org.ath.eg.db",anntype="KEGG") 
# Please go over the bioAnno package webpage ("https://github.com/guokai8/bioAnno") to learn more

Simple example for enrichment analysis

gene <- sample(unique(hsago$GeneID),1000)
resgo <- richGO(gene,godata = hsago,ontology ="BP")
head(resgo)
ggbar(resgo,top = 20,usePadj = F)
###extract gene and related term
head(detail(resgo))

cluster GO enrichment result

resc<-richCluster(resgo)
ggdot(resc)
resko<-richKEGG(gene,hsako,pvalue=0.05)
head(resko)
ggdot(resko,top=10,usePadj = F)
##GSEA
set.seed(123)
hsako <- buildAnnot(species="human",keytype="SYMBOL",anntype = "KEGG")
name <- sample(unique(hsako$GeneID),1000)
gene<-rnorm(1000)
names(gene) <- name
res <- richGSEA(gene,object = hsako)

Support DAVID analysis (Online)

gene <- sample(unique(hsako$GeneID),1000)
res <- richDAVID(gene,keytype="ENTREZID",species="human")

You can also get network graphic for any type of enrichment analysis result and also combine different enrichment result

ggnetplot(resko,top=20)
ggnetwork(resgo,top=20,weightcut = 0.01)

Directly support dplyr filter, select, mutate,group_by ... functions

library(dplyr)
filter(resko,Padj<0.05)%>%head()
select(resko,Term)

Generate figures with mutiple enrichment results for groups

gene1 <- sample(unique(hsako$GeneID),1000)
gene2 <- sample(unique(hsako$GeneID),1000)
resko1 <- richKEGG(gene1,kodata = hsako)
resko2 <- richKEGG(gene2,kodata = hsako)
res <- compareResult(list(S1=resko1,S2=resko2))
comparedot(res)

Generate figures with different enrichment results

ggnetmap(list(resgo,resko),top=50,visNet=TRUE,smooth=FALSE)

Contact information

For any questions please contact guokai8@gmail.com