# Gene Ontology and GO Terms

> How Gene Ontology organizes gene and gene-product functions using standard terms, and how to read GO terms, annotations, BP, MF, CC, and enrichment results.

Gene Ontology (GO) is a **biological knowledge system that represents the functions of genes and gene products using structured, standard terms**. GO defines functional terms and the relationships between them, and links gene products such as proteins and functional RNAs to terms supported by evidence.

GO is not itself an analysis program or an RNA-seq result. It is a functional classification system shared by researchers and databases. Analysis tools such as g:Profiler use this knowledge to find shared functions in a gene list.

## Record the same function under the same name

If different studies use expressions such as `cells divide`, `cell division`, and `mitosis`, a computer cannot easily group them as the same function. GO assigns a standard name and a unique ID to each concept.

For example, `GO:0007049` identifies the concept `cell cycle`. One such functional entry is called a **GO term**. At minimum, a GO term contains the following information.

| Field | Meaning | Example |
| --- | --- | --- |
| GO ID | Stable unique identifier | `GO:0007049` |
| Name | Human-readable standard name | `cell cycle` |
| Category | BP, MF, or CC | BP |
| Definition | What the term includes and excludes | Standard definition of the cell cycle |
| Relationships | Links to broader or more specific terms | `is_a`, `part_of`, and others |

In software-project terms, a GO ID is a stable internal key, while its name and definition are human-readable documentation. Terms with similar names can still represent different concepts if their GO IDs differ.

## GO divides function into three questions

GO classifies gene-product function from three perspectives.

| Category | Full name | Question | Examples |
| --- | --- | --- | --- |
| `GO:BP` | Biological Process | What does it participate in within a larger biological process? | Cell cycle, DNA repair |
| `GO:MF` | Molecular Function | What activity does the molecule itself perform? | DNA binding, kinase activity |
| `GO:CC` | Cellular Component | Where in the cell does it perform its function? | Nucleus, cell membrane |

One protein can have terms from all three perspectives. A protein that binds DNA, resides in the nucleus, and participates in the cell cycle can have MF, CC, and BP annotations respectively.

BP and MF are especially easy to confuse. `protein kinase activity` is an activity performed directly by a protein, so it is MF. `regulation of cell cycle` is a larger process created by the activities of multiple molecules, so it is BP.

## GO terms form a relationship graph, not a folder list

GO terms connect broad concepts to more specific concepts. `mitotic cell cycle` is more specific than `cell cycle`, and more detailed processes such as chromosome segregation can be linked beneath it.

This is not a simple folder tree in which every child has one parent. GO is a **graph** with terms as nodes and relationships such as `is_a`, `part_of`, and `regulates` as edges. One term can connect to multiple broader terms.

This structure is why several semantically similar terms can appear in an enrichment result. If `cell cycle`, `mitotic cell cycle`, and `chromosome segregation` share some of the same genes, the rows may represent a broad category and its subcategories appearing together, not three fully independent discoveries.

## A GO term and a GO annotation are different

A **GO term** defines a functional concept. A **GO annotation** is an evidence-backed record that links a particular gene product to a particular GO term.

This hypothetical row illustrates the structure of an annotation.

| gene product | GO term | relationship | evidence | reference |
| --- | --- | --- | --- | --- |
| `GENE_A` protein | `GO:0007049` cell cycle | `involved_in` | Experimental evidence code | Paper or database |

A standard GO annotation includes at least the gene product, GO term, supporting reference, and evidence code. The evidence code identifies the kind of evidence used to make the link, such as a direct experiment, sequence similarity, phylogenetic analysis, or automated inference.

The absence of an annotation does not mean the function is absent. The gene product may not yet have been studied sufficiently or the result may not have reached the database. Conversely, an annotation does not mean the function is always active in every cell and condition.

## Compare a gene list with GO

The input to GO enrichment is usually a **selected gene list**. The tool collects the GO annotations linked to each gene and tests which GO terms appear more often than expected by chance.

Consider a hypothetical example.

- All genes available for analysis: 20,000
- Genes linked to `cell cycle`: 500
- Selected candidate list: 1,000
- Genes in the candidate list that overlap `cell cycle`: 120

A random sample of 1,000 genes would be expected to overlap approximately 25 genes. If the actual overlap is 120, that provides evidence that cell-cycle genes are unusually concentrated in the candidate list. Over-representation analysis (ORA) repeats this question across many terms.

### Common columns in an ORA results table

| Column | Meaning |
| --- | --- |
| `name` | Human-readable GO term name |
| `native` | Original database identifier such as a GO ID |
| `term_size` | Number of genes linked to the term in the background set |
| `intersection_size` | Number of genes actually shared by the input list and the term |
| `intersections` | Actual list of overlapping genes |
| `intersection_symbols` | Extra column converting result IDs to human-readable gene symbols |
| `p_value` | Probability of observing at least this much overlap by chance; check the tool documentation to see whether correction is applied |

A term with a large `term_size` is likely to overlap many genes even at random. Do not inspect `intersection_size` alone. Consider the input-list size, background gene set, and term size together through the p-value. Because many terms are tested at once, multiple-testing correction is also required. Some tools, including g:Profiler, return an already corrected value under a simple column name such as `p_value`, so check the definition used by the tool.

A large `-log10(p_value)` in a bar chart means that the adjusted p-value is small. It does not mean that the process is several times more active. GO ORA tests **whether functional labels are concentrated in a selected gene list**. It does not directly measure protein activity or the speed of a process.

## GO and pathway databases are not the same

GO:BP and pathways overlap, but they have different purposes and structures.

| Resource | What it primarily represents |
| --- | --- |
| GO:BP | Hierarchical classification of biological processes in which gene products participate |
| [Reactome](/en/reference/reactome/) | Reactions and pathways performed in sequence by molecules |
| KEGG Pathway | Maps of metabolism, signalling, and disease-related pathways |

A GO term does not necessarily show the order of reactions or direct links between molecules. Its strength is classifying the work with which multiple genes are associated. [Workflows Built by Genes Together](/en/lessons/pathway/) continues with the difference between pathways and gene sets.

## Conclusions to avoid

- Do not conclude that a process is actually active just because its GO term is significant.
- Do not interpret the longest bar as the largest expression change.
- Do not count similar parent and child terms as independent discoveries.
- Do not mix upregulated and downregulated genes and then interpret the direction of change.
- Do not call a gene without a GO annotation functionless.
- Do not conclude that a causal gene has been identified because a disease-related term appears.

Results depend on the input-gene selection criteria and the background set. In RNA-seq ORA, it is generally more appropriate to use genes that could actually be tested in the experiment as the background. Using all human genes indiscriminately may include unmeasured genes in the comparison.

## What to record for reproducibility

The GO ontology and its annotations are continually updated. The same gene list can produce different results depending on the version and tool settings, so record:

- Analysis date and the data version of GO or the analysis service
- Target organism
- Input ID type and gene-symbol conversion method
- Statistical criteria and direction of change used to select the input list
- Background gene set
- Categories used, such as GO:BP, GO:MF, and GO:CC
- Multiple-testing correction method and threshold
- The actual `intersections` genes producing each term

## Official resources

- [Gene Ontology overview](https://geneontology.org/docs/ontology-documentation/): what GO is, its three categories, and term structure
- [Introduction to GO annotations](https://geneontology.org/docs/go-annotations/): annotations, evidence, and limits of interpretation
- [Relations in the Gene Ontology](https://geneontology.org/docs/ontology-relations/): graph relationships between terms
- [Download annotations](https://geneontology.org/docs/download-go-annotations/): annotation files and version-recording methods