-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEnrichr.R
More file actions
99 lines (82 loc) · 2.94 KB
/
Enrichr.R
File metadata and controls
99 lines (82 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
## Author: Wajid Jawaid
## Date: 1 August 2019
## enrichR package: sends data to http://http://amp.pharm.mssm.edu/Enrichr/ for gene enrichment
## in multiple databases.
rm(list = objects( all = TRUE ))
options(stringsAsFactors = FALSE)
if (!is.null( dev.list() )) dev.off()
sysPackages <- (.packages())
options()$download.file.method
.libPaths()
library("httr")
getEnrichr <- function(url, ...) {
tryCatch(
{
options(enrichR.live = TRUE)
x <- GET(url = url, ...)
},
error = function(err_msg) {
message("EnrichR website not responding")
options(enrichR.live = FALSE)
},
finally = function() {
invisible(x)
}
)
}
options(enrichR.base.address = "http://amp.pharm.mssm.edu/Enrichr/")
options(enrichR.live = TRUE)
packageStartupMessage("Welcome to enrichR\nChecking connection ... ", appendLF = FALSE)
getEnrichr(url = paste0(getOption("enrichR.base.address"), "datasetStatistics"))
if (getOption("enrichR.live")) packageStartupMessage("Connection is Live!")
enrichr <- function(genes, dbs) {
cat("Uploading data to Enrichr... ")
if (is.vector(genes)) {
temp <- POST(url = paste0(getOption("enrichR.base.address"), "enrich"),
body = list(list = paste(genes, collapse = "\n")))
} else if (is.data.frame(genes)) {
temp <- POST(url = paste0(getOption("enrichR.base.address"), "enrich"),
body = list(list = paste(paste(genes[,1], genes[,2], sep = ","),
collapse = "\n")))
}
getEnrichr(url = paste0(getOption("enrichR.base.address"), "share"))
cat("Done.\n")
result <- lapply(dbs, function(x) {
cat(" Querying ", x, "... ", sep = "")
r <- getEnrichr(url = paste0(getOption("enrichR.base.address"), "export"),
query = list(file = "API", backgroundType = x))
if (!getOption("enrichR.live")) return()
r <- gsub("'", "'", intToUtf8(r$content))
tc <- textConnection(r)
r <- read.table(tc, sep = "\t", header = TRUE, quote = "", comment.char = "")
close(tc)
cat("Done.\n")
return(r)
})
cat("Parsing results... ")
names(result) <- dbs
cat("Done.\n")
return(result)
}
gene_list <- read.table("./load/WGCNA_20190718_CytoscapeInput.node.anno.sort (2).txt")
gene_list <- gene_list[gene_list$V4 == "mRNA",]
color_list <- unique(gene_list[,2])
head(color_list)
length(color_list)
for (col in color_list) {
print(which(col %in% color_list))
print(col)
pick_gene <- gene_list[gene_list[,2] == col,]
if (nrow(pick_gene) > 1) {
dbs <- as.list(c("BioCarta_2016", "GO_Biological_Process_2018", "KEGG_2019_Human"))
enriched <- enrichr(pick_gene[,3], dbs)
for (id in 1:length(dbs)) {
print(id)
print(dbs[id])
file_name <- paste(col, dbs[id], "r.csv", sep = "_")
print(file_name)
data <- enriched[id]
write.csv(data, file = file_name)
}
}
}