# A wrapper function to perform all functional enrichment analyses. # Helper function to save non-empty results save_res <- function(res, fileName = fileName, wb = wb, sheetName = "KEGG") { if (nrow(res) > 0) { openxlsx::addWorksheet(wb = wb, sheetName = sheetName) openxlsx::writeData(wb, res, sheet = sheetName) openxlsx::saveWorkbook(wb, fileName, overwrite = TRUE) } } # A wrapper to save the results save_enrichr <- function(up.genes = up.genes, dn.genes = NULL, databases = "KEGG_2016", fdr.cutoff = 1, fileNameOut = NULL, wb = NULL) { print(paste("Running", databases, "analysis", sep = " ")) if (is.null(dn.genes)) { res.kegg <- enrichGeneList(up.genes, databases = databases, fdr.cutoff = fdr.cutoff) } else { res.kegg <- enrichFullGeneList(up.genes, dn.genes, databases = databases, fdr.cutoff = fdr.cutoff) } res.kegg$pval <- formatC(res.kegg$pval, digits = 3, format = "e") res.kegg$qval <- formatC(res.kegg$qval, digits = 3, format = "e") if (!is.null(fileNameOut)) { if (nchar(databases) > 30) databases <- paste0(substr(databases, 1, 20), "_", substr(databases, nchar(databases) - 8, nchar(databases))) # If a database is longer that 30 characters, keep first 20 and last 10 characters save_res(res.kegg, fileNameOut, wb = wb, sheetName = databases) } # Pause for a few seconds pause_sec <- round(runif(1, min = 1, max = 10)) Sys.sleep(pause_sec) return(res.kegg) }
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "GO_Biological_Process_2015", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "GO_Molecular_Function_2015", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "GO_Cellular_Component_2015", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "WikiPathways_2016", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "BioCarta_2016", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "Reactome_2016", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "Panther_2016", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "TRANSFAC_and_JASPAR_PWMs", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "Genome_Browser_PWMs", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "ChEA_2016", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "ENCODE_TF_ChIP-seq_2015", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "ENCODE_Histone_Modifications_2015", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
res.kegg <- save_enrichr(up.genes = up.genes, dn.genes = dn.genes, databases = "Epigenomics_Roadmap_HM_ChIP-seq", fdr.cutoff = fdr.cutoff, fileNameOut = fileNameOut, wb = wb) DT::datatable(res.kegg)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.