... | ... |
@@ -11,22 +11,21 @@ |
11 | 11 |
|
12 | 12 |
get_drug_table <- function(pathwayid){ |
13 | 13 |
|
14 |
- url <- paste0("http://www.kegg.jp/kegg-bin/pathway_dd_list?map=", |
|
15 |
- pathwayid) |
|
16 |
- dd_table <- data.frame( |
|
17 |
- XML::readHTMLTable(url, header = TRUE, which = 4, |
|
18 |
- as.data.frame = FALSE), |
|
19 |
- stringsAsFactors = FALSE) |
|
14 |
+ raw_tabs <- GET(paste0("http://www.kegg.jp/kegg-bin/pathway_dd_list?map=", |
|
15 |
+ pathwayid)) |
|
16 |
+ |
|
17 |
+ dd_table <- XML::readHTMLTable(rawToChar(raw_tabs$content),which = 4, |
|
18 |
+ stringsAsFactors = F) |
|
20 | 19 |
if (nrow(dd_table) > 0){ |
21 | 20 |
d_table <- subset(dd_table, |
22 |
- substring(dd_table$Disease.drug, 1, 1) == "D") |
|
21 |
+ substring(dd_table[,1], 1, 1) == "D") |
|
23 | 22 |
if(nrow(d_table) == 0){ |
24 | 23 |
warning("No associated drug targets in selected pathway") |
25 | 24 |
return() |
26 | 25 |
} |
27 | 26 |
names(d_table) <- c("drug_KEGG_ID", "drug_name", "gene_target") |
28 | 27 |
d_table$gene_target <- strsplit(d_table$gene_target, " ") |
29 |
- |
|
28 |
+ |
|
30 | 29 |
for(i in 1:nrow(d_table)){ |
31 | 30 |
l <- length(unlist(d_table$gene_target[i])) |
32 | 31 |
d_table$drug_KEGG_ID[i] <- list(rep(d_table$drug_KEGG_ID[i], l)) |
... | ... |
@@ -39,11 +38,11 @@ get_drug_table <- function(pathwayid){ |
39 | 38 |
stringsAsFactors = FALSE) |
40 | 39 |
for (i in 1:nrow(long_drug)){ |
41 | 40 |
long_drug$gene_id[i] <- strsplit(long_drug$gene_target[i], |
42 |
- "\\(")[[1]][1] |
|
41 |
+ "\\(")[[1]][1] |
|
43 | 42 |
long_drug$gene_symbol[i] <- regmatches(long_drug$gene_target[i], |
44 |
- gregexpr("(?<=\\().*?(?=\\))", |
|
45 |
- long_drug$gene_target[i], |
|
46 |
- perl=TRUE))[[1]] |
|
43 |
+ gregexpr("(?<=\\().*?(?=\\))", |
|
44 |
+ long_drug$gene_target[i], |
|
45 |
+ perl=TRUE))[[1]] |
|
47 | 46 |
} |
48 | 47 |
drops <- "gene_target" |
49 | 48 |
d_table <- long_drug[, names(long_drug) != drops] |