diff --git a/Resources/Hipathia/resolve_aliases.R b/Resources/Hipathia/resolve_aliases.R index f7deb3b489e14d238265b1e368ae7104ed1aba78..1e103fcc0477d6318c6974527f59af1f2a98405d 100644 --- a/Resources/Hipathia/resolve_aliases.R +++ b/Resources/Hipathia/resolve_aliases.R @@ -10,7 +10,8 @@ library(jsonlite) ### A convenience function to handle API queries ask_GET <- function(furl, fask) { - resp <- httr::GET(url = paste0(furl, fask), + print(URLencode(paste0(furl, fask))) + resp <- httr::GET(url = URLencode(paste0(furl, fask)), httr::add_headers('Content-Type' = "application/x-www-form-urlencoded"), ### Currently ignoring SSL! httr::set_config(config(ssl_verifypeer = 0L))) @@ -21,10 +22,10 @@ ask_GET <- function(furl, fask) { } ### Define the source file (GitLab, raw link) -diagram <- "https://git-r3lab.uni.lu/covid/models/-/raw/master/Curation/Apoptosis/Apoptosis_03.06.2020.xml" +diagram <- "https://git-r3lab.uni.lu/covid/models/-/raw/master/Curation/Pyrimidine%20deprivation/Pyrimidine_deprivation_stable.xml" ### Read in the raw SIF version (here straight from the github of Aurelien) -raw_sif <- read.table(url("https://raw.githubusercontent.com/aurelien-naldi/preliminary-covid-modeling/master/covid-models/Apoptosis_03.06.2020_raw.sif"), +raw_sif <- read.table(url("https://git-r3lab.uni.lu/covid/models/-/raw/master/Executable%20Modules/SBML_qual_build/sif/Pyrimidine_deprivation_stable_raw.sif"), sep = " ", header = F, stringsAsFactors = F) ### Read the list of resources to be integrated, from the MINERVA build scripts @@ -83,12 +84,15 @@ group_elements <- function(feid, felements, fentrez) { ### A workaround function to get information about hypothetical complexes; ### currently MINERVA API does not support this, we need to get the entire CD file and parse it get_groups <- function(fname) { - message(paste0("Getting groups for", fname, "...")) + message(paste0("Getting groups for ", fname, "...")) library(xml2) - cd_map <- read_xml(ask_GET(mnv_base, - paste0("models/", - models$idObject[models$name == fname], - ":downloadModel?handlerClass=lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser"))) + ### Currently comment out the MINERVA download, some content dlded as binary! + # cd_map <- read_xml(ask_GET(mnv_base, + # paste0("models/", + # models$idObject[models$name == fname], + # ":downloadModel?handlerClass=lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser"))) + cd_map <- read_xml(diagram) + print(cd_map) ### CellDesigner namespace ns_cd <- xml_ns_rename(xml_ns(read_xml("<root> <sbml xmlns = \"http://www.sbml.org/sbml/level2/version4\"/> @@ -97,11 +101,13 @@ get_groups <- function(fname) { d1 = "sbml", d2 = "cd") ### Get complex ids cids <- xml_attr(xml_find_all(cd_map, "//cd:complexSpeciesAlias", ns_cd), "species") + print(cids) ### For each check, which is hypothetical - hypocs <- sapply(xml_attr(xml_find_all(cd_map, "//cd:complexSpeciesAlias", ns_cd), "species"), - function(x) xml_text(xml_find_first(xml_find_first(cd_map, - paste0("//sbml:species[@id='", x, "']"), ns_cd), - ".//cd:hypothetical", ns_cd))) + hypocs <- sapply(cids, + function(x) { + tcid <- xml_find_first(cd_map, paste0("//sbml:species[@id='", x, "']"), ns_cd) + ifelse(length(tcid) > 0, xml_text(xml_find_first(tcid, ".//cd:hypothetical", ns_cd)), NA) + }) names(hypocs) <- gsub("s_id_", "",names(hypocs)) return(hypocs) }