R/gene_intolerance.R

Defines functions ensembl2loeuf sym2loeuf ensembl2gevir sym2gevir get_gevir_table_hgnc get_gevir_table

Documented in ensembl2gevir ensembl2loeuf get_gevir_table get_gevir_table_hgnc sym2gevir sym2loeuf

#' Retrieve GeVIR table from get_cavalier_opt("gevir_url") or disk cache
#' @importFrom readr read_csv
#' @importFrom dplyr "%>%" mutate rename select
get_gevir_table <- function()
{
  gevir_url <- get_cavalier_opt("gevir_url")
  
  fun <- function() {
    retry('GET', gevir_url) %>% 
      content(as = 'raw') %>% 
      rawConnection() %>% 
      read_csv(col_types = cols()) %>% 
      select(symbol = gene_name, ensembl_gene_id = gene_id, gevir_percentile, loeuf_percentile) %>% 
      distinct()
  }
  
  cache(
    fun = fun,
    name = 'gevir_gene_rankings'
  )
}

#' Update GeVIR table gene symbol with current HGNC symbol
get_gevir_table_hgnc <- function()
{
  get_gevir_table() %>% 
    mutate(symbol = coalesce(hgnc_ensembl2sym(ensembl_gene_id),
                             hgnc_sym2sym(symbol)))
}

#' Convert HGNC gene symbol to GeVIR percentile
#' @export
sym2gevir <- function(symbol)
{
  symbol <- hgnc_sym2sym(symbol)
  gevir_table <- get_gevir_table_hgnc()
  gevir_table$gevir_percentile[match(symbol, gevir_table$symbol)]
}

#' Convert ensemble gene id to GeVIR percentile
#' @export
ensembl2gevir <- function(ensembl)
{
  gevir_table <- get_gevir_table_hgnc()
  gevir_table$gevir_percentile[match(ensembl, gevir_table$ensembl_gene_id)]
}

#' Convert HGNC gene symbol to (ExAC) LOUEF percentile 
#' @export
sym2loeuf <- function(symbol)
{
  symbol <- hgnc_sym2sym(symbol)
  gevir_table <- get_gevir_table_hgnc()
  gevir_table$loeuf_percentile[match(symbol, gevir_table$symbol)]
}

#' Convert ensemble gene id to to (ExAC) LOUEF percentile 
#' @export
ensembl2loeuf <- function(ensembl)
{
  gevir_table <- get_gevir_table_hgnc()
  gevir_table$loeuf_percentile[match(ensembl, gevir_table$ensembl_gene_id)]
}
bahlolab/cavalier documentation built on April 5, 2025, 11:33 p.m.