Skip to content

Commit

Permalink
store only mapped user data
Browse files Browse the repository at this point in the history
  • Loading branch information
kovidhv committed Mar 22, 2021
1 parent 48b4f8c commit 525c711
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions R/SBGNview.R
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,8 @@ SBGNview <- function(gene.data = NULL, cpd.data = NULL, simulate.data = FALSE, i
user.data = user.data, output.formats = output.formats,
sbgn.id.attr = sbgn.id.attr, pathway.name = pathway.name.on.graph,
if.plot.svg = FALSE, ...)
# store only user data mapped to glyphs
user.data <- get.mapped.user.data(sbgn.result.list$glyphs, user.data)
# record all parameters. They might be used again when we later modify the 'SBGNview' object
sbgn.result.list[["render.sbgn.parameters.list"]] <- list(input.sbgn = input.sbgn.full.path,
output.file = output.file.sbgn,
Expand Down Expand Up @@ -263,3 +265,27 @@ createSBGNviewObject <- function(data, output.file, output.formats){
}

#########################################################################################################
# this function will return only the user data that have been mapped to glyphs
get.mapped.user.data <- function(glyphs, user.data) {

node.ids.with.data <- c()
if.gene.and.cpd.data <- FALSE
if(length(user.data) > 3) if.gene.and.cpd.data <- TRUE

for(glyph in glyphs) {
if(identical(glyph@user.data, logical(0))) next # empty slot
if(!"no.user.data" %in% glyph@user.data) {
node.ids.with.data <- c(node.ids.with.data, glyph@id[[1]])
}
}
user.data[[1]] <- subset(user.data[[1]],
rownames(user.data[[1]]) %in% node.ids.with.data)
if(if.gene.and.cpd.data) {
user.data[[4]] <- subset(user.data[[4]],
rownames(user.data[[4]]) %in% node.ids.with.data)
}

return(user.data)
}

#########################################################################################################

0 comments on commit 525c711

Please sign in to comment.