quickgo-database
google-deepmind/science-skills
Query Gene Ontology and functional annotations via QuickGO REST API to map genes to biological processes and molecular functions.
What is quickgo-database?
QuickGO is a web-based browser for the Gene Ontology (GO) and Evidence & Conclusion Ontology (ECO) maintained by EMBL-EBI. Use this skill to map genes to their biological processes, molecular functions, and cellular components, find genes associated with specific pathways, or explore the GO hierarchy. Do not use for drug targets (use OpenTargets) or mechanistic signaling diagrams (use KEGG).
- Resolve gene symbols to UniProtKB identifiers and retrieve their functional annotations
- Search for all genes annotated to a specific GO term or biological pathway
- Explore the Gene Ontology hierarchy including term definitions, ancestors, and descendants
- Filter annotations by evidence type (experimental vs. electronic) and organism (e.g., human via taxon ID)
- Create GO Slim summaries to generate high-level functional overviews of gene sets
How to install quickgo-database
npx skills add https://github.com/google-deepmind/science-skills --skill quickgo-database- uv package manager installed and on PATH (see uv skill)
- Review terms at https://www.ebi.ac.uk/QuickGO/ and https://www.ebi.ac.uk/QuickGO/api/index.html before first use
- License notification file will be created in workspace root on first use
How to use quickgo-database
- 1.Resolve a gene symbol to its UniProtKB ID using: uv run scripts/quickgo_tool.py geneproduct search --query "GENE_NAME" --taxonId 9606
- 2.Query functional annotations for that ID with: uv run scripts/quickgo_tool.py annotation search --geneProductId "UniProtKB:ID" --evidenceCode "ECO:0000269" --limit 100 --output results.json
- 3.Find all genes in a pathway by querying a GO term: uv run scripts/quickgo_tool.py annotation search --goId "GO:XXXXXXX" --taxonId 9606 --limit 100 --output genes.json
- 4.Explore GO term details and hierarchy using: uv run scripts/quickgo_tool.py go terms --ids "GO:XXXXXXX" --relation ancestors --output hierarchy.json
- 5.Create GO Slim summaries by mapping candidate gene GO IDs to slim categories using the go slim subcommand
Use cases
- Map a human gene like PROC to its biological processes and molecular functions using experimental evidence only
- Find all transcription factors in human by querying genes annotated to GO:0003700
- Determine if a specific GO term is a descendant of a broader functional category
- Generate a functional summary of candidate genes by mapping them to a predefined GO Slim
- Explore the complete ancestry chain of a GO term to understand its position in the ontology
- Bioinformaticians analyzing gene function and annotation
- Researchers mapping genes to biological pathways and processes
- Scientists working with functional genomics or systems biology
- Anyone needing to link genes to their molecular functions and cellular roles
quickgo-database FAQ
Use QuickGO for functional annotation mapping (genes to biological processes, molecular functions, cellular components) and GO hierarchy exploration. Use OpenTargets for drug targets and disease associations; use KEGG for mechanistic signaling pathway diagrams.
Experimental evidence codes (like ECO:0000269 for EXP) are more reliable than electronic predictions (ECO:0000501). Filtering reduces noise when you need high-confidence functional annotations.
Add the --taxonId 9606 parameter to your queries. This filters annotations to human organisms only, useful for clinical or human genomic analysis.
Use --limit 100 to set the maximum results per page, then use the --page parameter to iterate through larger datasets. Always save responses to a file using --output.
Always use the provided scripts/quickgo_tool.py wrapper. It enforces required rate limits and handles response formatting safely.
Full instructions (SKILL.md)
Source of truth, from google-deepmind/science-skills.
name: quickgo-database description: > Query the QuickGO and Evidence & Conclusion Ontology (ECO) REST API. Use this when you need to map genes to biological processes, molecular functions, or cellular components, find genes associated with a specific pathway/GO term, or explore the Gene Ontology hierarchy. Do not use for querying drug targets (use OpenTargets) or mechanistic signaling pathway diagrams (use KEGG).
QuickGO Database Skill
GO (Gene Ontology) annotations are one of the main ways to label a gene's function. QuickGO is a fast, web-based browser for the GO and Evidence & Conclusion Ontology (ECO), maintained by the Gene Ontology Annotation (GOA) group at EMBL-EBI.
It provides a centralised resource to explore the functional attributes of gene products (proteins, RNA, and complexes). It is a primary tool for functional annotation mapping since it allows you to link a gene (e.g., USH2A) to its specific biological processes (e.g. sensory perception of light stimulus), molecular functions, and cellular components.
Prerequisites
uv: Read theuvskill and follow its Setup instructions to ensureuvis installed and on PATH.- User Notification: If .licenses/quickgo_database_LICENSE.txt does not already exist in the workspace root directory then (1) prominently notify the user to check the terms at https://www.ebi.ac.uk/QuickGO/ and https://www.ebi.ac.uk/QuickGO/api/index.html, then (2) create the file recording the notification text and timestamp.
Usage
This skill provides a Python CLI wrapper scripts/quickgo_tool.py that queries
the QuickGO REST API. It handles formatting the requests, respecting rate
limits, and safely storing the potentially large JSON responses.
Core Rules
- Use the Wrapper: ALWAYS execute the provided helper scripts to query the database rather than accessing the database directly. The scripts automatically enforce the required rate limit gracefully.
- Pagination & Limits: Restrict endpoints to a maximum of 100 results per
page using
--limit 100and the--pageparameter for larger datasets. - Output Files: Always use the
--outputflag to save responses to a file incrementally or parse viajq. - Evidence Codes: Prioritize experimental evidence (
ECO:0000269) over electronic (ECO:0000501) to avoid noisy predictions. - Taxon Filtering: Use
--taxonId 9606to restrict results to Human when analysing clinical or human genomic data. - Notification: If this skill is used, ensure this is mentioned in the output.
The tool has four main subcommands:
go: For retrieving information about GO terms (e.g. definitions, ancestors, descendants, and slims). See references/go_terms.md.annotation: For finding functional annotations linking gene products to GO terms. This is your primary functional mapper. See references/annotations.md.geneproduct: For resolving gene symbols (likePROC) to their formal database identifiers. See references/gene_products.md.eco: For Evidence & Conclusion Ontology terms (used in annotations to indicate how an annotation was derived, e.g. experimental vs electronic). See references/eco_terms.md.
Common Workflows
1. Map a gene to its functions (Annotations)
To find out what a gene does, you must first resolve its symbol to a UniProtKB
ID, and then query its annotations. Often it is best to filter for experimental
evidence (e.g. ECO:0000269 for EXP, or others like IDA, IMP) to avoid noisy
electronic predictions.
# Step 1: Find the UniProtKB ID for human (9606) gene PROC
uv run scripts/quickgo_tool.py geneproduct search --query "PROC" --taxonId 9606 --limit 5 --output proc_id.json
# (Look at proc_id.json, observe the ID is e.g., UniProtKB:P04070)
# Step 2: Find experimental GO annotations for that ID
uv run scripts/quickgo_tool.py annotation search --geneProductId "UniProtKB:P04070" --taxonId 9606 --evidenceCode "ECO:0000269" --limit 50 --output proc_annotations.json
2. Find all genes in a pathway
To find all genes annotated to a specific GO term (e.g., GO:0003700 for "transcription factor activity"):
# Find human genes with this specific molecular function
uv run scripts/quickgo_tool.py annotation search --goId "GO:0003700" --taxonId 9606 --limit 50 --output tf_genes.json
3. Explore the GO Hierarchy
To check if a specific GO term is a descendant of a broader category, or to fetch its definition:
# Fetch term details (definitions, synonyms)
uv run scripts/quickgo_tool.py go terms --ids "GO:0003150" --output term_details.json
# Check ancestry (e.g., is GO:0001917 a child of something?)
uv run scripts/quickgo_tool.py go terms --ids "GO:0001917" --relation ancestors --output term_ancestors.json
4. Create a GO Slim Summary
If you have a list of candidate genes and want a high-level functional summary, you can map them up to a predefined GO Slim. First, fetch the annotations for the genes to extract their GO IDs, then pass those IDs to the slim endpoint:
# Step 1: Find GO IDs for candidate genes (e.g., via their UniProt IDs, fetching their annotations)
# ... (output yields e.g., GO:0006915,GO:0008219)
# Step 2: Create a slim summary from those specific GO IDs
uv run scripts/quickgo_tool.py go slim --slimsToIds "GO:0005575,GO:0008150,GO:0003674" --slimsFromIds "GO:0006915,GO:0008219" --output my_slim.json
Related skills
More from google-deepmind/science-skills and the wider catalog.

reactome-database
Query Reactome pathway database for enrichment analysis, identifier mapping, and pathway navigation.

scienceskillscommon
>-

string-database
Query protein-protein interactions, functional enrichment, and homology from the STRING database.

ucsc-conservation-and-tfbs
Fetch evolutionary conservation scores and transcription factor binding sites from UCSC Genome Browser.

unibind-database
Query experimentally validated transcription factor binding sites across 9 species from the UniBind database.

uniprot-database
Access protein metadata, sequences, and functional annotations from UniProtKB, UniParc, and UniRef databases.