Skip to main content
skill CX Codex

quickgo-database — Claude Code skill for Gene Ontology queries

Queries the QuickGO and ECO REST API to link genes to biological processes, molecular functions and cellular components. Useful when working through gene annotations.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add google-deepmind/science-skills --skill quickgo-database -a claude-code
npx skills add google-deepmind/science-skills --skill quickgo_database -a claude-code
Open on GitHub

What quickgo-database does

The skill hands your agent a Python wrapper, scripts/quickgo_tool.py, over the QuickGO and Evidence & Conclusion Ontology REST API. Four subcommands cover the ground: go for term definitions, ancestors, descendants and slims; annotation for mapping a gene product to GO terms; geneproduct for turning a gene symbol into a formal database ID; eco for the evidence codes that show how an annotation was derived. The script formats requests, respects rate limits and writes large JSON responses to files.

You need uv on PATH before anything runs. If .licenses/quickgo_database_LICENSE.txt is missing from the workspace root, the skill asks you to review the terms on the EMBL-EBI sites and then creates that file with the notification text and a timestamp. Skip the raw API and use the wrapper — it handles the rate limit for you. The description also draws a line: drug target lookups belong to OpenTargets, and mechanistic signalling diagrams belong to KEGG.

On larger datasets keep --limit 100 and page through with --page, and always save with --output. For human clinical or genomic work, set --taxonId 9606. Experimental evidence codes such as ECO:0000269 cut the noise that electronic predictions add. When the skill runs, it asks that you mention it in your output.

What it helps with

  • pull GO annotations for a single gene
  • list genes annotated to one GO term
  • check whether a term sits under a broader category
  • summarise a gene list through a GO Slim
  • filter out electronic predictions and keep experimental evidence

Example prompts for the agent

  • Resolve the UniProtKB ID for human gene PROC and show its experimental GO annotations
  • Which human genes are annotated to GO:0003700? Save the response to a file
  • Check whether GO:0001917 is a descendant of a broader term and print its definition

How to install quickgo-database

1Skills CLI (Vercel)

npx skills add google-deepmind/science-skills --skill quickgo-database -a claude-code
npx skills add google-deepmind/science-skills --skill quickgo_database -a claude-code

2Manually: put the files in place

~/.claude/skills/quickgo_database/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/quickgo_database/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about quickgo-database

How do I install quickgo-database in Claude?

Run npx skills add google-deepmind/science-skills --skill quickgo-database -a claude-code, then npx skills add google-deepmind/science-skills --skill quickgo_database -a claude-code. The skill file lands at ~/.claude/skills/quickgo_database/SKILL.md.

What does quickgo-database do?

It queries the QuickGO and ECO REST API through a Python wrapper: GO terms, gene annotations, gene product identifiers and evidence codes. Responses go to files, and the wrapper keeps to the rate limit.

What does the skill need to run?

uv installed and on PATH. If .licenses/quickgo_database_LICENSE.txt is not in the workspace root, the skill prompts you to check the terms on the QuickGO and QuickGO API sites, then creates that file.

Source text

SKILL.md · Apache-2.0
---
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

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](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](references/annotations.md).
3.  **`geneproduct`**: For resolving gene symbols (like `PROC`) to their formal
    database identifiers. See
    [references/gene_products.md](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](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.

```bash
# 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"):

```bash
# 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:

```bash
# 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:

```bash
# 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
```

© google-deepmind · Apache-2.0 · google-deepmind/science-skills

Similar skills

Everything for Science and research →

From the same set39

unibind-database This skill queries UniBind for experimentally validated transcription-factor binding sites and downloads BED or FASTA coordinates for local analysis. CX Codex +1 2,100installs ucsc-conservation-and-tfbs Pulls evolutionary conservation scores (phyloP, phastCons) and transcription factor binding sites out of the UCSC Genome Browser. Handy when you are reading non-coding variants. CX Codex +1 2,100installs encode-ccres-database Queries the ENCODE Registry of cis-regulatory elements using the SCREEN GraphQL API and REST API. It identifies promoters or enhancers across cell types. CX Codex +1 2,100installs gnomad-database This skill queries gnomAD for variant frequencies, gene constraint metrics, and regional variant searches. Use it for genetics research workflows. CX Codex +1 2,100installs jaspar-database Queries the JASPAR database for transcription factor binding profiles. Useful when fetching PFM or PWM matrices and converting gene names into stable matrix IDs. CX Codex +1 2,100installs gtex-database Retrieves RNA expression and eQTL data from GTEx across 54 non-diseased human tissue sites. Use it to query genes, variants, or tissue-specific expression. CX Codex +1 2,100installs foldseek-structural-search Sends a protein 3D structure file to the Foldseek API and returns structurally similar proteins. Built for cases where you have coordinates, not just a sequence. CX Codex +1 2,100installs interpro-database Queries protein domains, families, and functional sites through the InterPro API. Integrates 14 member databases and automates genome annotations with GO terms. CX Codex +1 2,100installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor