技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
kegg-database【数据与研究】Direct access to KEGG via the REST API for academic-only pathway/gene/compound/drug queries; use when you need precise HTTP-level control or targeted KEGG ID mapping.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Note: KEGG REST access is intended for academic use. Non-academic/commercial use may require a separate KEGG license.
kegg_info (database metadata)kegg_list (catalog listing)kegg_find (keyword/property search)kegg_get (entry retrieval; sequences/structures/images)kegg_conv (ID conversion)kegg_link (cross-database linking)kegg_ddi (drug–drug interactions)map00010, hsa00010hsa:10458cpd:C00002dr:D00001ec:1.1.1.1ko:K00001kegg_get: aaseq, ntseq, mol, kcf, image, kgml, json (some formats are single-entry only).>=3.9requests >=2.31.0"""
End-to-end example:
1) Find a human gene by keyword
2) Link the gene to pathways
3) Retrieve one pathway entry
4) Convert the gene ID to UniProt
"""
from scripts.kegg_api import kegg_find, kegg_link, kegg_get, kegg_conv
# 1) Search for a gene keyword in KEGG GENES
hits = kegg_find("genes", "p53")
print("FIND results (first lines):")
print("\n".join(hits.splitlines()[:5]), "\n")
# Choose a known KEGG gene ID for TP53 (human)
gene_id = "hsa:7157"
# 2) Link gene -> pathways
pathway_links = kegg_link("pathway", gene_id)
print("LINK gene -> pathways (first lines):")
print("\n".join(pathway_links.splitlines()[:5]), "\n")
# Parse the first pathway ID from the link output
# Typical line format: path:hsaXXXXX<TAB>hsa:7157
first_line = next((ln for ln in pathway_links.splitlines() if ln.strip()), None)
if not first_line:
raise RuntimeError("No pathways returned for the gene ID.")
path_id = first_line.split("\t")[0].replace("path:", "")
print("Selected pathway:", path_id, "\n")
# 3) Retrieve the pathway entry (flat text)
pathway_entry = kegg_get(path_id)
print("GET pathway entry (first 30 lines):")
print("\n".join(pathway_entry.splitlines()[:30]), "\n")
# 4) Convert KEGG gene ID -> UniProt
uniprot_map = kegg_conv("uniprot", gene_id)
print("CONV KEGG -> UniProt:")
print(uniprot_map)
This skill wraps KEGG REST endpoints into Python functions (see scripts/kegg_api.py):
kegg_info(database_or_org)
Retrieves database or organism metadata (release info, counts, etc.).
kegg_list(database, organism=None)
Lists entries in a database; optionally scoped to an organism (e.g., ("pathway", "hsa")).
Also supports listing explicit IDs (batch-style) when passed as a single string.
kegg_find(database, query, option=None)
Searches by keyword or by chemical properties. Common option values:
formula (exact match)exact_mass (range like 300-310)mol_weight (range)kegg_get(entry_ids, option=None)
Retrieves full entries or specific formats:
aaseq, ntseqmol, kcfimage (PNG), kgml (XML), json (Pathway JSON)Batching rules:
image, kgml, and json typically allow only 1 entry per request.kegg_conv(target_db, source)
Converts IDs between KEGG and external databases (e.g., uniprot, ncbi-geneid, pubchem, chebi).
Output is tab-delimited pairs: source_id<TAB>target_id.
kegg_link(target_db, source)
Cross-references entries across KEGG databases (e.g., gene → pathway, pathway → compound, gene → KO).
kegg_ddi(drug_ids)
Returns known drug–drug interactions for one or more KEGG drug IDs (up to typical batch limits).
image/kgml/json.400 (bad request / malformed parameters)404 (unknown database or entry ID)For detailed endpoint syntax, database lists, and species codes, consult:
references/kegg_reference.md