34 lines
1.4 KiB
R
Executable File
34 lines
1.4 KiB
R
Executable File
msigdb_workflow <- function(signif.genes, category = "C2") {
|
|
library(msigdbr)
|
|
library(ggplot2)
|
|
|
|
msigdb_data <- msigdbr(species = "Homo sapiens", category = category)
|
|
# signif.genes <- reports_P03_Transformed_bcrsn$Set_3_limma
|
|
# top_genes <- head(signif.genes[order(signif.genes$adj.P.Val),], 25)
|
|
top_genes <- signif.genes[order(signif.genes$adj.P.Val), ]
|
|
top_genes <- fill_analyte_info(top_genes)
|
|
top_genes <- top_genes$Gene.name
|
|
|
|
msigdb_genes <- select(msigdb_data, gs_name, gene_symbol)
|
|
enrich_msigdb <- enricher(top_genes, TERM2GENE = msigdb_genes)
|
|
|
|
enrich_msigdb_df <- enrich_msigdb@result %>%
|
|
separate(BgRatio, into = c("size.term", "size.category"), sep = "/") %>%
|
|
separate(GeneRatio, into = c("size.overlap.term", "size.overlap.category"), sep = "/") %>%
|
|
mutate_at(vars("size.term", "size.category", "size.overlap.term", "size.overlap.category"), as.numeric) %>%
|
|
mutate("k.K" = size.overlap.term / size.term)
|
|
|
|
enrich_plot <- enrich_msigdb_df %>%
|
|
filter(p.adjust <= 0.05) %>%
|
|
ggplot(aes(x = reorder(Description, k.K), y = k.K)) +
|
|
geom_col() +
|
|
theme_classic() +
|
|
coord_flip() +
|
|
labs(
|
|
y = "Significant genes in set / Total genes in set \nk/K", x = "Gene set",
|
|
title = paste("Differentially expressed genes enriched in", category, "Gene sets (P<0.05)")
|
|
)
|
|
|
|
return(list(data = enrich_msigdb_df, plot = enrich_plot))
|
|
}
|