Skip to content

Commit

Permalink
Added GO enrichment for WP,Reactome,KEGG,MKEGG
Browse files Browse the repository at this point in the history
Lacrosse Suspicious substance Computer infrastructure FDA afsatcom Ron
Brown Project Monarch S Box TRW Alica Chobetsu Hostage PLF r00t
bluebird
  • Loading branch information
benjamin-james committed Jun 14, 2024
1 parent 506408e commit a443051
Show file tree
Hide file tree
Showing 2 changed files with 102 additions and 0 deletions.
4 changes: 4 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ export(diag.mat3)
export(download_arc)
export(dump.excel)
export(enrichGO)
export(enrichKEGG)
export(enrichMKEGG)
export(enrichReactome)
export(enrichWP)
export(enrich_overlap_custom)
export(enrich_se)
export(extractMarkerPeaks)
Expand Down
98 changes: 98 additions & 0 deletions R/go.R
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,94 @@ enrichGO <- function(gene, OrgDb, keyType="SYMBOL", ont="ALL", minGSSize=10, max
return(.proc.go.result(ego))
}

#' @export
enrichKEGG <- function(gene, OrgDb, keyType="SYMBOL", minGSSize=10, maxGSSize=100, universe=NULL, ...) {
if (keyType != "kegg") {
gene = AnnotationDbi::mapIds(OrgDb, keys=gene, keytype=keyType, column="ENTREZID")
if (!is.null(universe)) {
universe = Reduce(c, AnnotationDbi::mapIds(OrgDb, keys=universe, keytype=keyType, column="ENTREZID", multiVals=list))
}
keyType = "ncbi-geneid"
}
if (is.null(universe)) {
res = clusterProfiler::enrichKEGG(gene, keyType=keyType, minGSSize=minGSSize, maxGSSize=maxGSSize, ...)
} else {
res = clusterProfiler::enrichKEGG(gene, keyType=keyType, minGSSize=minGSSize, maxGSSize=maxGSSize, universe=universe, ...)
}
return(.proc.go.result(res))
}

#' @export
enrichMKEGG <- function(gene, OrgDb, keyType="SYMBOL", minGSSize=10, maxGSSize=100, universe=NULL, ...) {
if (keyType != "kegg") {
gene = AnnotationDbi::mapIds(OrgDb, keys=gene, keytype=keyType, column="ENTREZID")
if (!is.null(universe)) {
universe = Reduce(c, AnnotationDbi::mapIds(OrgDb, keys=universe, keytype=keyType, column="ENTREZID", multiVals=list))
}
keyType = "ncbi-geneid"
}
print(str(gene))
if (is.null(universe)) {
res = clusterProfiler::enrichMKEGG(as.integer(gene), keyType=keyType, minGSSize=minGSSize, maxGSSize=maxGSSize, ...)
} else {
res = clusterProfiler::enrichMKEGG(gene, keyType=keyType, minGSSize=minGSSize, maxGSSize=maxGSSize, universe=universe, ...)
}
return(.proc.go.result(res))
}

#' @export
enrichWP <- function(gene, OrgDb, keyType="SYMBOL", minGSSize=10, maxGSSize=100, universe=NULL, ...) {
mf = S4Vectors::metadata(OrgDb)
mf = setNames(mf$value, mf$name)
organism = mf[["ORGANISM"]]
if (keyType != "ENTREZID") {
gene = AnnotationDbi::mapIds(OrgDb, keys=gene, keytype=keyType, column="ENTREZID")
if (!is.null(universe)) {
universe = Reduce(c, AnnotationDbi::mapIds(OrgDb, keys=universe, keytype=keyType, column="ENTREZID", multiVals=list))
}
}
if (is.null(universe)) {
res = clusterProfiler::enrichWP(gene, organism, minGSSize=minGSSize, maxGSSize=maxGSSize, ...)
} else {
res = clusterProfiler::enrichWP(gene, organism, minGSSize=minGSSize, maxGSSize=maxGSSize, universe=universe, ...)
}
return(.proc.go.result(res))
}

#' @export
enrichReactome <- function(gene, OrgDb, keyType="SYMBOL", minGSSize=10, maxGSSize=100, universe=NULL, ...) {
mf = S4Vectors::metadata(OrgDb)
mf = setNames(mf$value, mf$name)
species = tolower(mf[["SPECIES"]])
if (keyType != "ENTREZID") {
gene = AnnotationDbi::mapIds(OrgDb, keys=gene, keytype=keyType, column="ENTREZID")
if (!is.null(universe)) {
universe = Reduce(c, AnnotationDbi::mapIds(OrgDb, keys=universe, keytype=keyType, column="ENTREZID", multiVals=list))
}
}
if (is.null(universe)) {
res = ReactomePA::enrichPathway(gene, species, minGSSize=minGSSize, maxGSSize=maxGSSize, ...)
} else {
res = ReactomePA::enrichPathway(gene, species, minGSSize=minGSSize, maxGSSize=maxGSSize, universe=universe, ...)
}
return(.proc.go.result(res))
}
#'
enrichDO <- function(gene, OrgDb, keyType="SYMBOL", minGSSize=10, maxGSSize=100, universe=NULL, ...) {
if (keyType != "ENTREZID") {
gene = AnnotationDbi::mapIds(OrgDb, keys=gene, keytype=keyType, column="ENTREZID")
if (!is.null(universe)) {
universe = Reduce(c, AnnotationDbi::mapIds(OrgDb, keys=universe, keytype=keyType, column="ENTREZID", multiVals=list))
}
}
if (is.null(universe)) {
res = DOSE::enrichDO(gene, minGSSize=minGSSize, maxGSSize=maxGSSize, ...)
} else {
res = DOSE::enrichDO(gene, minGSSize=minGSSize, maxGSSize=maxGSSize, universe=universe, ...)
}
return(.proc.go.result(res))
}


#' Run clusterProfiler::gseGO with better options and defaults
#'
Expand Down Expand Up @@ -61,6 +149,16 @@ gseGO <- function(geneList, ranks, OrgDb, filter=NULL, keyType="SYMBOL", ont="AL
return(.proc.go.result(ego))
}

gseKEGG <- function(geneList, ranks, OrgDb, filter=NULL, keyType="SYMBOL", minGSSize=10, maxGSSize=100, universe=NULL, ...) {
if (keyType != "kegg") {
gene = AnnotationDbi::mapIds(OrgDb, keys=gene, keytype=keyType, column="ENTREZID")
if (!is.null(universe)) {
universe = Reduce(c, AnnotationDbi::mapIds(OrgDb, keys=universe, keytype=keyType, column="ENTREZID", multiVals=list))
}
keyType = "ncbi-geneid"
}

}
goMatrix <- function() {
L = as.list(org.Hs.eg.db::org.Hs.egGO2ALLEG)
X = lapply(L, function(gl) {
Expand Down

0 comments on commit a443051

Please sign in to comment.