## ----setup, include = FALSE------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) options(width = 72) ## ----bioconductor_install, eval=FALSE--------------------------------- # if (!require("BiocManager", quietly = TRUE)) # install.packages("BiocManager") # # BiocManager::install("fenr") ## ----figure, fig.cap="Overview of fenr data pipeline.", echo=FALSE---- knitr::include_graphics("figures/overview.png") ## ----load_fenr-------------------------------------------------------- library(fenr) data(exmpl_all, exmpl_sel) ## ----fetch_go--------------------------------------------------------- go <- fetch_go(species = "sgd") ## ----species---------------------------------------------------------- go_species <- fetch_go_species() go_species ## ----go_terms--------------------------------------------------------- go$terms ## ----go_mapping------------------------------------------------------- go$mapping ## ----prepare_for_enrichment------------------------------------------- go_terms <- prepare_for_enrichment(go$terms, go$mapping, exmpl_all, feature_name = "gene_symbol") ## ----enrichment------------------------------------------------------- enr <- functional_enrichment(exmpl_all, exmpl_sel, go_terms) ## ----enrichment_result------------------------------------------------ enr |> head(10) ## ----interactive_prepare---------------------------------------------- data(yeast_de) term_data <- fetch_terms_for_example(yeast_de) ## ----shiny_app, eval=FALSE-------------------------------------------- # enrichment_interactive(yeast_de, term_data) ## ----topGO------------------------------------------------------------ suppressPackageStartupMessages({ library(topGO) }) # Preparing the gene set all_genes <- setNames(rep(0, length(exmpl_all)), exmpl_all) all_genes[exmpl_all %in% exmpl_sel] <- 1 # Define the gene selection function gene_selection <- function(genes) { genes > 0 } # Mapping genes to GO, we use the go2gene downloaded above and convert it to a # list go2gene <- go$mapping |> dplyr::select(gene_symbol, term_id) |> dplyr::distinct() |> dplyr::group_by(term_id) |> dplyr::summarise(ids = list(gene_symbol)) |> tibble::deframe() # Setting up the GO data for analysis go_data <- new( "topGOdata", ontology = "BP", allGenes = all_genes, geneSel = gene_selection, annot = annFUN.GO2genes, GO2genes = go2gene ) # Performing the enrichment test fisher_test <- runTest(go_data, algorithm = "classic", statistic = "fisher") ## ----fenr_speed------------------------------------------------------- # Setting up data for enrichment go <- fetch_go(species = "sgd") go_terms <- prepare_for_enrichment(go$terms, go$mapping, exmpl_all, feature_name = "gene_symbol") # Executing the enrichment test enr <- functional_enrichment(exmpl_all, exmpl_sel, go_terms) ## ----session_info, echo=FALSE----------------------------------------- sessionInfo()