New to Claude Skills? Learn how to install them →

google-deepmind on GitHub

QuickGO Database

Free

Efficiently map genes to biological functions and processes.

Get this skill

Free · Opens the source repo

What QuickGO Database does

The QuickGO Database skill provides a Python CLI wrapper for querying the QuickGO and Evidence & Conclusion Ontology (ECO) REST API. This tool is essential for researchers and developers in the biological sciences who need to link genes to their associated biological processes, molecular functions, and cellular components. By utilizing this skill, users can effectively explore the Gene Ontology hierarchy and retrieve detailed annotations for gene products, which include proteins and RNA.

The skill offers several key functionalities through its command-line interface. Users can resolve gene symbols to their corresponding UniProtKB IDs, retrieve functional annotations, and explore GO terms and their relationships. This capability is particularly useful for those working on genomic data analysis or functional genomics, where understanding gene functions is critical. The tool also emphasizes the importance of using experimental evidence over electronic predictions, ensuring that the data retrieved is as accurate and relevant as possible.

To use the QuickGO Database skill, users must ensure they have the uv skill installed and configured correctly. The skill is designed to handle large JSON responses efficiently while respecting API rate limits. It also provides mechanisms for outputting results to files for further analysis, making it a practical choice for batch processing or integration into larger workflows.

In summary, this skill is tailored for biologists, bioinformaticians, and researchers who require a reliable method to access and analyze gene function data. Its structured approach to querying the QuickGO API allows for streamlined data retrieval and functional annotation mapping, making it an invaluable tool in the field of bioinformatics.

When to use it

Use this skill when you need to map genes to biological processes or retrieve gene annotations efficiently.

When not to use it

This skill is not suitable for querying drug targets or mechanistic signaling pathways; consider using OpenTargets or KEGG for those purposes.

What you can build with it

Mapping Gene Functions

Use the skill to resolve a gene symbol to its UniProtKB ID and retrieve its functional annotations.

Exploring Gene Ontology Hierarchy

Query specific GO terms to understand their definitions and relationships within the ontology.

Generating Functional Summaries

Create GO Slim summaries from a list of candidate genes to obtain high-level functional insights.

How to install QuickGO Database

View source

1. Install with the skills CLI

npx skills add google-deepmind/science-skills/quickgo_database --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by google-deepmind

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

  1. uv: Read the uv skill and follow its Setup instructions to ensure uv is installed and on PATH.
  2. 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 100 and the --page parameter for larger datasets.
  • Output Files: Always use the --output flag to save responses to a file incrementally or parse via jq.
  • Evidence Codes: Prioritize experimental evidence (ECO:0000269) over electronic (ECO:0000501) to avoid noisy predictions.
  • Taxon Filtering: Use --taxonId 9606 to 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:

  1. go: For retrieving information about GO terms (e.g. definitions, ancestors, descendants, and slims). See references/go_terms.md.
  2. annotation: For finding functional annotations linking gene products to GO terms. This is your primary functional mapper. See references/annotations.md.
  3. geneproduct: For resolving gene symbols (like PROC) to their formal database identifiers. See references/gene_products.md.
  4. 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

Frequently asked questions about QuickGO Database

Similar skills