R/visualize_network.R

Defines functions visualize_network

Documented in visualize_network

#' Visualize integrated network
#' 
#' This function visualizes the integrated results with an interactive network
#'
#' @param nodes network nodes
#' @param edges network edges
#' @param cluster_df (optional) network clusters dataframe generated by the kinograte function
#' @param layout layout option from igraph. default = "layout_with_fr". \href{https://igraph.org/r/doc/layout_.html}{See full list}
#' @param options_by (optional) set dropdown menu, "group" or "cluster". Set NULL to remove dropdown menu
#' @param seed (optional) set seed
#'
#' @return visNetwork object 
#' 
#' @export
#'


visualize_network <- function(nodes, edges, cluster_df = NULL, layout = "layout_with_fr", seed = 123, options_by = "group") {
  

  edges_vis <- edges
  nodes_vis <- nodes %>% 
    dplyr::rename(id = Protein, group = type, value = prize) %>% 
    dplyr::distinct() %>% 
    dplyr::mutate(label = id)
  
  if(!is.null(cluster_df)) {
    nodes_vis <- dplyr::left_join(nodes_vis, cluster_df)
  }
  
  visNetwork::visNetwork(nodes = nodes_vis, edges = edges_vis) %>% 
    visNetwork::visPhysics() %>% 
    visNetwork::visNodes(font = list(size = 10), shape = "circle") %>% 
    visNetwork::visEdges(smooth = FALSE) %>%
    visNetwork::visGroups(group = "Kinase", color = list(border = "#454545", background = "#D88C9A")) %>%
    visNetwork::visGroups(group = "RNA", color = list(border = "#454545", background = "#F2D0A9")) %>%
    visNetwork::visGroups(group = "Transcription Factor", 
              color = list(border = "#454545", background = "#669bbc")) %>%
    visNetwork::visGroups(group = "Hidden", color = list(border = "#454545", background = "#99C1B9")) %>%
    visNetwork::visGroups(group = "Protein", color = list(border = "#454545", background = "#8E7DBE")) %>%
    visNetwork::visLegend() %>% 
    visNetwork::visIgraphLayout(layout = layout, randomSeed = seed) -> net
  
    if(!is.null(options_by)) {
      net %>% 
      visNetwork::visOptions(highlightNearest = TRUE, nodesIdSelection = TRUE, selectedBy = options_by)
    } else net
  
}
kalganem/Kinograte documentation built on April 27, 2022, 9:03 p.m.