161 lines
4.6 KiB
Markdown
161 lines
4.6 KiB
Markdown
---
|
|
title: "Gene Ontology (GO) API Reference"
|
|
task: ""
|
|
lineage_type: import
|
|
upstream_source: https://github.com/K-Dense-AI/scientific-agent-skills/blob/9c9bd2e9/skills/database-lookup/references/gene-ontology.md
|
|
upstream_sha: 9c9bd2e9
|
|
imported_at: 2026-06-26
|
|
prompt_class: prompt
|
|
upstream_changes: accepted
|
|
author: upstream
|
|
validated: false
|
|
---
|
|
|
|
# Gene Ontology (GO) API Reference
|
|
|
|
## Base URLs
|
|
- **QuickGO (EBI, recommended)**: `https://www.ebi.ac.uk/QuickGO/services` — most reliable endpoint
|
|
- **GO API**: `https://api.geneontology.org/api` — may return 403; use QuickGO as fallback
|
|
- **AmiGO / GOlr (Solr-based)**: `http://golr-aux.geneontology.org/solr`
|
|
|
|
## Authentication
|
|
None required. All endpoints are public.
|
|
|
|
## Rate Limits
|
|
No published hard limits. QuickGO recommends reasonable usage.
|
|
|
|
---
|
|
|
|
## GO API (api.geneontology.org)
|
|
|
|
### 1. GO Term Lookup
|
|
```
|
|
GET https://api.geneontology.org/api/ontology/term/{go_id}
|
|
```
|
|
Example:
|
|
```
|
|
GET https://api.geneontology.org/api/ontology/term/GO%3A0008150
|
|
```
|
|
Returns JSON with term name, definition, namespace (biological_process / molecular_function / cellular_component), synonyms.
|
|
|
|
### 2. Gene/Protein Annotations (Bioentity)
|
|
```
|
|
GET https://api.geneontology.org/api/bioentity/gene/{gene_id}/function
|
|
```
|
|
Example — GO annotations for a UniProt protein:
|
|
```
|
|
GET https://api.geneontology.org/api/bioentity/gene/UniProtKB%3AP04637/function
|
|
```
|
|
Returns GO annotations with evidence codes, qualifiers, references.
|
|
|
|
### 3. Genes Annotated to a GO Term
|
|
```
|
|
GET https://api.geneontology.org/api/bioentity/function/{go_id}/genes
|
|
```
|
|
Example:
|
|
```
|
|
GET https://api.geneontology.org/api/bioentity/function/GO%3A0006915/genes?rows=20
|
|
```
|
|
Returns genes/proteins annotated with that GO term.
|
|
|
|
### 4. Search Entities
|
|
```
|
|
GET https://api.geneontology.org/api/search/entity/{query}
|
|
```
|
|
Example:
|
|
```
|
|
GET https://api.geneontology.org/api/search/entity/apoptosis?rows=10
|
|
```
|
|
|
|
### 5. Ontology Ancestors / Descendants
|
|
```
|
|
GET https://api.geneontology.org/api/ontology/term/{go_id}/graph
|
|
```
|
|
|
|
---
|
|
|
|
## QuickGO API (EBI — recommended for robust annotation queries)
|
|
|
|
### 1. GO Term Details
|
|
```
|
|
GET https://www.ebi.ac.uk/QuickGO/services/ontology/go/terms/{go_ids}
|
|
```
|
|
Example:
|
|
```
|
|
GET https://www.ebi.ac.uk/QuickGO/services/ontology/go/terms/GO:0008150
|
|
```
|
|
Accepts comma-separated IDs (up to 25).
|
|
|
|
### 2. Search Annotations
|
|
```
|
|
GET https://www.ebi.ac.uk/QuickGO/services/annotation/search?geneProductId={uniprot_id}
|
|
```
|
|
Example — annotations for TP53:
|
|
```
|
|
GET https://www.ebi.ac.uk/QuickGO/services/annotation/search?geneProductId=P04637&limit=25
|
|
```
|
|
|
|
### 3. Annotations by GO Term
|
|
```
|
|
GET https://www.ebi.ac.uk/QuickGO/services/annotation/search?goId=GO:0006915&taxonId=9606&limit=25
|
|
```
|
|
|
|
### 4. Filter Annotations by Evidence
|
|
```
|
|
GET https://www.ebi.ac.uk/QuickGO/services/annotation/search?geneProductId=P04637&goUsage=descendants&evidenceCode=ECO:0000269&limit=25
|
|
```
|
|
|
|
### 5. GO Term Children
|
|
```
|
|
GET https://www.ebi.ac.uk/QuickGO/services/ontology/go/terms/GO:0008150/children
|
|
```
|
|
|
|
### 6. GO Term Ancestors (Chart)
|
|
```
|
|
GET https://www.ebi.ac.uk/QuickGO/services/ontology/go/terms/GO:0006915/ancestors?relations=is_a,part_of
|
|
```
|
|
|
|
### 7. Search GO Terms by Name
|
|
```
|
|
GET https://www.ebi.ac.uk/QuickGO/services/ontology/go/search?query=apoptosis&limit=10
|
|
```
|
|
|
|
## QuickGO Annotation Search Parameters
|
|
| Parameter | Description |
|
|
|-----------|-------------|
|
|
| `geneProductId` | UniProt accession (e.g., P04637) |
|
|
| `goId` | GO term (e.g., GO:0006915) |
|
|
| `goUsage` | `exact` or `descendants` (include child terms) |
|
|
| `taxonId` | NCBI taxonomy ID (9606 = human) |
|
|
| `evidenceCode` | ECO code (e.g., ECO:0000269 = experimental) |
|
|
| `aspect` | `biological_process`, `molecular_function`, `cellular_component` |
|
|
| `limit` | Results per page (max 100) |
|
|
| `page` | Page number (1-based) |
|
|
|
|
## QuickGO Response Format
|
|
```json
|
|
{
|
|
"numberOfHits": 1234,
|
|
"results": [
|
|
{
|
|
"geneProductId": "P04637",
|
|
"symbol": "TP53",
|
|
"goId": "GO:0006915",
|
|
"goName": "apoptotic process",
|
|
"evidenceCode": "ECO:0000269",
|
|
"goAspect": "biological_process",
|
|
"taxonId": 9606,
|
|
"reference": "PMID:12345678",
|
|
"assignedBy": "UniProt"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Notes
|
|
- QuickGO (EBI) is generally more robust and better documented for annotation queries.
|
|
- GO API (geneontology.org) is better for ontology structure traversal.
|
|
- GO IDs must be URL-encoded when used in paths (e.g., `GO%3A0008150` for `GO:0008150`).
|
|
- Three GO namespaces: biological_process (BP), molecular_function (MF), cellular_component (CC).
|
|
- Evidence codes: IDA (direct assay), IMP (mutant phenotype), IGI (genetic interaction), IEA (electronic annotation), etc.
|