I am new to Gene Ontology (GO) analysis and would like to classify and visualize the annotations. Here is the background and the steps I have taken so far:

  1. I annotated the bacterial whole genome using Prokka. I performed

  2. Interproscan on the annotated genome using the Galaxy server.

  3. The Interproscan results are in a tabular format, and column 14 contains the GO IDs.

Example GO IDs from column 14:

column 14

I would like to classify these annotations into the Cellular Component, Biological Process, and Molecular Function categories, and then plot a graph similar to the provided image.

enter image description here

I am comfortable using either R or Python for this analysis. Could you please provide guidance on how to achieve this using the preferred language?

Thank you in advance for your help!

  • $\begingroup$ library(clusterProfiler) library(org.Hs.eg.db) data <- read.delim("A3_InterProScan.tabular", header = TRUE, sep = "\t") go_ids <- data[,14] gene_symbols <- mapIds(org.Hs.eg.db, keys = go_ids, keytype = "GO", column = "SYMBOL") gene_symbols <- gene_symbols[!is.na(gene_symbols)] enrich_result <- enrichGO(gene = gene_symbols, OrgDb = org.Hs.eg.db) $\endgroup$
    – Umar
    Jul 4 at 20:37
  • $\begingroup$ Hmmm... well I know how I'd solve this and its a lot of code. I'd download the GO database (I assume it's downloadable) and screen the names from there. Then there's a pandas based solution to obtain frequencies and plot it. That strategy isn't a single question. Again, its possible there's something published. $\endgroup$
    – M__
    Jul 4 at 21:31
  • $\begingroup$ @M__, Thank you, If other easy way is ther thats fine too, Kindly provide me a code, I would be grateful to you, Thanks in advance $\endgroup$
    – Umar
    Jul 5 at 6:30
  • $\begingroup$ The site is not a coding service. As the question stands published solutions are good answers. There's one possible solution, but I've never really used it especially in this context of the question, so can't recommend it. $\endgroup$
    – M__
    Jul 5 at 13:43
  • $\begingroup$ A python version of this question has been posted here: stackoverflow.com/questions/76614627 $\endgroup$
    – Ram RS
    Jul 5 at 16:02


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.