I want to annotate 25,000+ proteins with GO_ID, TERM, and CATEGORY prior to doing enrichment analysis. Can I extract this information by submitting my sequences? Meanwhile, my species is a fish, and it's a non-model organism. Since my species is a non-model species, I have annotated the proteins from the whole genome by myself using interproscan. There I was able to find GO IDs but there was no term or category which is not helpful for Enrichment analysis.

Seq type:

>maker-ctg000210_np1212-snap-gene-104.0-mRNA-1 p/t AED:0.26 eAED:0.29 QI:38|0.66|0.5|1|0.33|0.25|4|0|342

After annotation:

maker-ctg001000_np1212-snap-gene-144.133-mRNA-1       710fdf6795f6f6bfbb960a017c734103        1139    ProSiteProfiles PS50056 Tyrosine specific protein phosphatases domain profile.  354     408     12.21363        T       20-02-2023      IPR000387       Tyrosine-specific protein phosphatases domain   GO:0016311|GO:0016791

But I want to use my protein sequences and the following output I need:

Seq_id    GO_ID    GO_term    GO_categoty

I would appreciate any of your suggestions. Thanks.

  • $\begingroup$ Please edit your question and show us an example of your input data and the output you would want from those data. Are these known, annotated proteins? What IDs do you have? Are these just raw sequences with no annotation? Do you need to assign GO terms based on homology with other, known sequences?n $\endgroup$
    – terdon
    Oct 25, 2023 at 9:50
  • $\begingroup$ That looks like an unknown, novel protein. Does it actually have GO annotations? How are you annotating it? $\endgroup$
    – terdon
    Oct 25, 2023 at 15:16

1 Answer 1


It's unclear what you're asking. Can you please give some more information about what you will do with this output once you've found it.

The single annotation you have provided has GO IDs, and using AmiGO, I get the following results:

  • GO:0016311
    • Name: dephosphorylation
    • Ontology: biological_process
  • GO:0016791
    • Name: phosphatase activity
    • Ontology: molecular_function

Bear in mind that GO is a hierarchical annotation, and most GO enrichment analysis programs ignore this hierarchy when carrying out their analysis, which is even more important for a less studied non-model species, where annotation is unlikely to be complete at any level.

Using a standard enrichment program that ignores the hierarchy would require fully populating the GO tree for each protein. For example, using the inferred tree view from AmiGO for that one protein:

  • GO:0016311 -> GO:0008150|GO:0009987|GO:0008152|GO:0044237|GO:0006793|GO:0006796|GO:0016311
  • GO:0016791 -> GO:0003674|GO:0003824|GO:0016787|GO:0016788|GO:0042578|GO:0016791

Consider this when thinking about the type of output you want. This will not be a single GO term/category per sequence; each sequence will have multiple GO IDs, multiple terms, and multiple categories, with many overlaps and lots of gaps.

Further information about exploring the GO database (both automated and manual) can be found here:



Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.