Query KEGG for biological pathways and gene info. Use when user asks about metabolic pathways, signaling pathways, pathway genes, or KEGG IDs. Triggers on "kegg", "pathway", "metabolic pathway", "signaling pathway", "pathway genes".
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill query-kegg --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Query Kegg?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-query-kegg)More formats (shields.io, HTML) on the badges page.
---
name: query-kegg
description: Query KEGG for biological pathways and gene info. Use when user asks about metabolic pathways, signaling pathways, pathway genes, or KEGG IDs. Triggers on "kegg", "pathway", "metabolic pathway", "signaling pathway", "pathway genes".
---
# KEGG Pathway Database Query
Query the KEGG REST API for biological pathways, genes, and compounds.
## When to Use
- User asks about biological pathways (glycolysis, apoptosis, etc.)
- User wants to find which pathways a gene is in
- User asks about KEGG pathway IDs
- User wants pathway gene lists
## How to Execute
```python
import requests
BASE_URL = "https://rest.kegg.jp"
# 1. Find pathways by keyword
def find_pathways(keyword, organism="hsa"):
url = f"{BASE_URL}/find/pathway/{keyword}"
r = requests.get(url)
lines = r.text.strip().split('\n')
results = []
for line in lines:
if line:
parts = line.split('\t')
pid = parts[0].replace("map", organism) if organism else parts[0]
results.append({"id": pid, "name": parts[1] if len(parts) > 1 else ""})
return results
# 2. Get pathway details
def get_pathway(pathway_id):
url = f"{BASE_URL}/get/{pathway_id}"
r = requests.get(url)
return r.text
# 3. Get genes in a pathway
def get_pathway_genes(pathway_id):
url = f"{BASE_URL}/link/genes/{pathway_id}"
r = requests.get(url)
genes = []
for line in r.text.strip().split('\n'):
if line:
parts = line.split('\t')
if len(parts) >= 2:
genes.append(parts[1])
return genes
# 4. Get gene info
def get_gene(kegg_gene_id):
url = f"{BASE_URL}/get/{kegg_gene_id}"
r = requests.get(url)
return r.text
# 5. Find genes by name
def find_gene(gene_name, organism="hsa"):
url = f"{BASE_URL}/find/{organism}/{gene_name}"
r = requests.get(url)
return r.text
# 6. List all human pathways
def list_pathways(organism="hsa"):
url = f"{BASE_URL}/list/pathway/{organism}"
r = requests.get(url)
return r.text
# Example
pathways = find_pathways("apoptosis")
for p in pathways[:5]:
print(f"{p['id']}: {p['name']}")
```
## API Pattern
`https://rest.kegg.jp/<operation>/<argument>`
| Operation | Example | Use |
|-----------|---------|-----|
| `list` | `/list/pathway/hsa` | List all human pathways |
| `find` | `/find/pathway/cancer` | Search by keyword |
| `get` | `/get/hsa:672` | Get BRCA1 gene info |
| `link` | `/link/genes/hsa00010` | Get genes in pathway |
| `conv` | `/conv/genes/ncbi-geneid:672` | Convert IDs |
## Organism Codes
- `hsa` = Human, `mmu` = Mouse, `rno` = Rat, `dme` = Fly, `sce` = Yeast, `eco` = E. coli
## Follow-up Suggestions
- "Want me to get the full gene list for this pathway?"
- "Should I visualize which of your genes overlap with this pathway?"
- "Want me to check related pathways?"
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!