ress

Add a title to gprofiler2 gosttable in R


Hello I'm a new bioinformatician so bear with me please! I'm using the gprofiler2 to run GO/KEGG analysis in R using emacs/ess and I want to add a title to the table it offers:

publish_gosttable(gostres, highlight_terms = gostres$result[c(1:2,10,120),],
                        use_colors = TRUE, 
                        show_columns = c("source", "term_name", "term_size", "intersection_size"),
                        filename = NULL)

I have tried the title(), tab_header() function but I can't seem to be able to add a title. My question is if there is some other function or package that would allow me to add it instead of having to do it manually.

The code so far

GOresult <- gost(
geneid1up$gene,
organism = "hsapiens",
ordered_query = FALSE, 
multi_query = FALSE,
significant = TRUE, 
exclude_iea = FALSE,
measure_underrepresentation = FALSE,
evcodes = FALSE,
user_threshold = 0.05,
correction_method =  "gSCS",
domain_scope = "annotated",
custom_bg = NULL,
numeric_ns = "",
sources = c("GO:BP","GO:MF","GO:CC","KEGG"),
as_short_link = FALSE)

GOresult1 <- as.data.frame(GOresult$result)
GOresult1$minuslog10pval <- -log10(GOresult1$p_value)
names(GOresult1)[15] <- "-log10(pval)"
GOresult2 <- GOresult1[order(GOresult1$p_value, decreasing=F),]

plot1 <- publish_gosttable(GOresult2, highlight_terms = GOresult2[c(1:20),],
                        use_colors = FALSE, 
                        show_columns = c("source", "term_name", "term_size", "intersection_size","-log10(pval)"),
                        filename = NULL)

Solution

  • Does this do the job?

        library(gprofiler2)
    library(ggplot2)
    gostres <- gost(query = c("X:1000:1000000", "rs17396340", "GO:0005005", "ENSG00000156103", "NLRP1"), 
                    organism = "hsapiens", ordered_query = FALSE, 
                    multi_query = FALSE, significant = TRUE, exclude_iea = FALSE, 
                    measure_underrepresentation = FALSE, evcodes = FALSE, 
                    user_threshold = 0.05, correction_method = "g_SCS", 
                    domain_scope = "annotated", custom_bg = NULL, 
                    numeric_ns = "", sources = NULL, as_short_link = FALSE)
    
    publish_gosttable(gostres, highlight_terms = gostres$result[c(1:2,10,120),],
                      use_colors = TRUE, 
                      show_columns = c("source", "term_name", "term_size", "intersection_size"),
                      filename = NULL)+
      ggtitle('Your Title')
    

    Result:

    enter image description here

    The trick is that the plot is a ggplot objet. Therefore you can add the title using +ggtitle('Your Title') after your plot code (as in my example)