R/prepare_draw.R

Defines functions draw_all bind_draws lenlist2chain interpro2draw

Documented in bind_draws draw_all interpro2draw lenlist2chain

#' Title
#'
#' @param interpro
#' @param gene_list
#' @param gene_length
#' @param domain_db
#' @param motif_db
#'
#' @return
#' @export
#'
#' @import dplyr
#'
#' @examples
interpro2draw <- function(interpro, gene_list,
                          gene_length, domain_db = "Pfam",
                          motif_db = "TMHMM"){
  db_list <- list(domain_db, motif_db)

  drawobj <- interpro %>%
    filter(feature_id %in% gene_list) %>%
    mutate(begin = start, description = sigunature_desc) %>%
    filter(DB %in% db_list) %>%
    mutate(type = ifelse(DB == domain_db, "DOMAIN", "MOTIF")) %>%
    mutate(entryName = feature_id) %>%
    mutate(order = 1) %>%
    select(type, description, begin, end, length, entryName, order)
  return(drawobj)
}

#' Title
#'
#' @param gene_length
#' @param gene_list
#'
#' @return
#' @export
#'
#' @import tibble
#' @import dplyr
#'
#' @examples
lenlist2chain <- function(gene_length, gene_list){
  genelen_hit <- gene_length %>%
    filter(protein_id %in% gene_list)

  genenum <- nrow(genelen_hit)

  chain_data <- tibble(type = rep("CHAIN", genenum),
                       description = rep(NA, genenum),
                       begin = rep(1, genenum),
                       end = genelen_hit$length,
                       length = genelen_hit $length,
                       entryName = genelen_hit$protein_id)
  return(chain_data)
}

#' Title
#'
#' @param domain_data
#' @param chain_data
#' @param splice_data
#'
#' @return
#' @export
#'
#' @import tibble
#' @import dplyr
#' @import stringr
#'
#' @examples
bind_draws <- function(domain_data, chain_data, splice_data = NA){
  all_draw <- domain_data %>%
    add_row(chain_data)

  if(!is.na(splice_data)){
    all_draw <- all_draw %>%
      add_row(splice_data) %>%
      mutate(entryName_psuedo = str_replace(entryName, pattern=".m1$", replacement="")) %>%
      mutate(.,order = group_indices(.,entryName_psuedo)) %>%
      mutate(entryName = entryName_psuedo)
  } else {
    all_draw <- all_draw %>%
      mutate(entryName_psuedo = str_replace(entryName, pattern=".m1$", replacement="")) %>%
      mutate(.,order = group_indices(.,entryName_psuedo)) %>%
      mutate(entryName = entryName_psuedo)
  }
  return(all_draw)
}

#' Title
#'
#' @param draw_data
#'
#' @return ggplot object of drawProteins
#' @export
#'
#' @import drawProteins
#'
#' @examples
draw_all <- function(draw_data){
  p_chavas <-  draw_canvas(draw_data)
  p_chavas <-  draw_chains(p_chavas, draw_data, label_chains = FALSE)
  p_chavas <- draw_domains(p_chavas, draw_data, label_domains = FALSE)
  p_chavas <- draw_motif(p_chavas, draw_data)
  p_chavas <- draw_phospho(p_chavas, draw_data, show.legend = FALSE)
  p_chavas <- p_chavas
  return(p_chavas)
}
xvtyzn/interpro2genevis documentation built on Dec. 23, 2021, 7:14 p.m.