R/get_sig_genes.R

Defines functions get_sig_genes

Documented in get_sig_genes

#' Get signature gene identifiers
#'
#' @description
#' Obtain gene signatures implemented in `hacksig` as a named list of gene symbols.
#' @param keywords A character vector indicating keywords for a group of signatures.
#'   The default (`"all"`) will cause the function to check for all the signatures
#'   implemented in `hacksig`.
#' @return A named list of gene signatures.
#' @seealso [get_sig_info()] to get valid keywords for signatures.
#' @examples
#' get_sig_genes()
#' get_sig_genes("estimate")
#' @export
get_sig_genes <- function(keywords = "all") {
    sig_data <- signatures_data
    keywords <- paste0(keywords, collapse = "|")
    if (keywords != "all") {
        sig_data <- sig_data[grep(keywords, sig_data$signature_keywords,
                                  ignore.case = TRUE), ]
        if (nrow(sig_data) == 0) {
            stop("Provided keywords does not match any class of signature.",
                 call. = FALSE)
        }
    }
    sig_list <- lapply(split(sig_data[, c("signature_id", "gene_symbol")],
                             sig_data$signature_id),
                       FUN = `[[`, 2)
    sig_list <- sig_list[lapply(sig_list, length) > 1]
    lapply(sig_list, sort)
}

Try the hacksig package in your browser

Any scripts or data that you put into this service are public.

hacksig documentation built on March 18, 2022, 6:44 p.m.