alterlab-kegg について
alterlab-keggは、KEGG REST APIで生物学データを検索するスキルです。生物情報学の研究者向けに、複数の生物種のパスウェイ、遺伝子、化合物、酵素、疾患、薬剤の記録を取得・関連付けます。
主な機能
- 01データベース情報とエントリの取得
- 02キーワードや分子特性による検索
- 03配列、構造、パスウェイデータの取得
- 04KEGGと外部データベース間のID変換
- 05エントリ間の関連と薬物相互作用の検索
活用シーン
- 01対象遺伝子を関連パスウェイに対応付け
- 02化合物が関与する代謝パスウェイの検索
- 03生物種間のパスウェイ比較
- 04薬剤の組み合わせの相互作用確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alterlab-ieu/ alterlab-academic-skills --skill alterlab-keggインストール後、Claude Code で/alterlab-keggを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsonreferences/kegg_reference.mdscripts/kegg_api.py詳細
KEGG Database
概要
KEGG(Kyoto Encyclopedia of Genes and Genomes)は、生物学的経路解析と分子相互作用ネットワークのための包括的なバイオインフォマティクスリソースです。
重要:KEGG APIは、学術ユーザーによる学術目的の利用に限り提供されています。学術目的以外での利用には、商用ライセンス(Pathway Solutions経由)が必要です。KEGGは、クライアントにAPI呼び出しを毎秒3回以下に抑えるよう求めています。この制限を超えたクライアントはブロックされるため、scripts/kegg_api.py のヘルパーは呼び出しを自動的に調整します。
このスキルを使用する場面
KEGGのREST APIを使って、複数の生物種にわたる経路、遺伝子、化合物、酵素、疾患、薬物を照会する場合に、このスキルを使用してください。
該当しない場合
| シナリオ | 代わりに使用 |
|---|---|
| タンパク質間相互作用ネットワークとSTRINGエンリッチメント | alterlab-string-db |
| タンパク質配列、機能アノテーション、UniProt IDのマッピング | alterlab-uniprot |
| オープンライセンスのキュレーション済み経路と過剰代表解析 | alterlab-reactome |
| KEGG、UniProt、ChEMBLなどに対応する単一のPythonラッパー | alterlab-bioservices |
| ヒトの代謝物濃度、生体液、バイオマーカーの根拠 | alterlab-hmdb |
クイックスタート
このスキルには、次のものが用意されています。
- すべてのKEGG REST API操作に対応するPythonヘルパー関数(
scripts/kegg_api.py) - API仕様の詳細を記載した包括的なリファレンスドキュメント(
references/kegg_reference.md)
ユーザーがKEGGデータを要求した場合は、必要な操作を判断し、scripts/kegg_api.py の適切な関数を使用してください。
主な操作
1. データベース情報(kegg_info)
KEGGデータベースに関するメタデータと統計情報を取得します。
使用する場面:データベースの構造を把握する場合、利用可能なデータを確認する場合、リリース情報を取得する場合。
使用方法:
from scripts.kegg_api import kegg_info
# Get pathway database info
info = kegg_info('pathway')
# Get organism-specific info
hsa_info = kegg_info('hsa') # Human genome
一般的なデータベース:kegg、pathway、module、brite、genes、genome、compound、glycan、reaction、enzyme、disease、drug
2. エントリーの一覧表示(kegg_list)
KEGGデータベースからエントリーの識別子と名称を一覧表示します。
使用する場面:ある生物種のすべての経路を取得する場合、遺伝子を一覧表示する場合、化合物カタログを取得する場合。
使用方法:
from scripts.kegg_api import kegg_list
# List all reference pathways
pathways = kegg_list('pathway')
# List human-specific pathways
hsa_pathways = kegg_list('pathway', 'hsa')
# List specific genes (max 10)
genes = kegg_list('hsa:10458+hsa:10459')
一般的な生物種コード:hsa(ヒト)、mmu(マウス)、dme(ショウジョウバエ)、sce(酵母)、eco(大腸菌)
3. 検索(kegg_find)
キーワードまたは分子特性を使ってKEGGデータベースを検索します。
使用する場面:名称や説明から遺伝子を検索する場合、分子式や質量から化合物を検索する場合、キーワードからエントリーを探す場合。
使用方法:
from scripts.kegg_api import kegg_find
# Keyword search
results = kegg_find('genes', 'p53')
shiga_toxin = kegg_find('genes', 'shiga toxin')
# Chemical formula search (partial match, atom order ignored)
compounds = kegg_find('compound', 'C7H10N4O2', 'formula')
# Molecular weight range search
drugs = kegg_find('drug', '300-310', 'exact_mass')
検索オプション:formula(部分一致 — クエリを含む分子式を検索し、原子の順序は無視します)、exact_mass(範囲指定。クエリの小数位に丸められます)、mol_weight(範囲指定)
4. エントリーの取得(kegg_get)
データベースのエントリー全体または特定のデータ形式を取得します。
使用する場面:経路の詳細を取得する場合、遺伝子/タンパク質配列を取得する場合、経路マップをダウンロードする場合、化合物の構造にアクセスする場合。
使用方法:
from scripts.kegg_api import kegg_get
# Get pathway entry
pathway = kegg_get('hsa00010') # Glycolysis pathway
# Get multiple entries (max 10)
genes = kegg_get(['hsa:10458', 'hsa:10459'])
# Get protein sequence (FASTA)
sequence = kegg_get('hsa:10458', 'aaseq')
# Get nucleotide sequence
nt_seq = kegg_get('hsa:10458', 'ntseq')
# Get compound structure
mol_file = kegg_get('cpd:C00002', 'mol') # ATP in MOL format
# Get pathway image (PNG) — single entry only
pathway_img = kegg_get('hsa05130', 'image')
# Get pathway KGML (XML structure) — single entry only
pathway_kgml = kegg_get('hsa05130', 'kgml')
# Get a BRITE hierarchy as JSON (json is for BRITE, not pathways)
brite_json = kegg_get('br:br08301', 'json')
出力形式:aaseq(タンパク質FASTA)、ntseq(ヌクレオチドFASTA)、mol/kcf(化合物/糖鎖/薬物の構造)、image(PNG。経路マップおよび化合物/糖鎖/薬物)、image2x(2倍サイズのPNG。参照用の map##### のみ)、kgml(経路XML)、conf(経路マップの座標)、json(BRITE階層のみ — /get/hsa05130/json はHTTP 400を返します)
重要:image、image2x、kgml は一度に1つのエントリーのみ指定できます。配列形式と構造形式では、最大10件のエントリーを指定できます。
5. ID変換(kegg_conv)
KEGGと外部データベース間で識別子を変換します。
使用する場面:KEGGデータを他のデータベースと統合する場合、遺伝子IDをマッピングする場合、化合物の識別子を変換する場合。
使用方法:
from scripts.kegg_api import kegg_conv
# Convert all human genes to NCBI Gene IDs
conversions = kegg_conv('ncbi-geneid', 'hsa')
# Convert specific gene
gene_id = kegg_conv('ncbi-geneid', 'hsa:10458')
# Convert to UniProt
uniprot_id = kegg_conv('uniprot', 'hsa:10458')
# Convert compounds to PubChem
pubchem_ids = kegg_conv('pubchem', 'compound')
# Reverse conversion (NCBI Gene ID to KEGG)
kegg_id = kegg_conv('hsa', 'ncbi-geneid')
対応する変換:ncbi-geneid、ncbi-proteinid、uniprot、pubchem、chebi
6. 相互参照(kegg_link)
KEGG データベース内およびデータベース間の関連エントリーを検索します。
使用する場面:遺伝子を含むパスウェイの検索、パスウェイ内の遺伝子の取得、遺伝子と KO グループのマッピング、パスウェイ内の化合物の検索。
使用方法:
from scripts.kegg_api import kegg_link
# Find pathways linked to human genes
pathways = kegg_link('pathway', 'hsa')
# Get genes in a specific pathway: the target is the organism code
# ('genes' as the target returns HTTP 400)
genes = kegg_link('hsa', 'hsa00010') # Glycolysis genes
# Find pathways containing a specific gene
gene_pathways = kegg_link('pathway', 'hsa:10458')
# Find compounds in a pathway: compounds link to reference maps (map#####);
# the organism-specific hsa00010 returns an empty body
compounds = kegg_link('compound', 'map00010')
# Map genes to KO (orthology) groups
ko_groups = kegg_link('ko', 'hsa:10458')
よく使われるリンク:遺伝子 ↔ パスウェイ(遺伝子側のデータベースには、例として hsa のような生物種コードを使用)、参照パスウェイ(map) ↔ 化合物、パスウェイ ↔ 酵素、遺伝子 ↔ ko(オーソロジー)。list の出力では 2023 年にプレフィックスが削除されましたが、リンクの出力にはプレフィックス(path:hsa04010、cpd:C00022)が保持されます。
7. 薬物間相互作用(kegg_ddi)
薬物間相互作用を確認します。
使用する場面:薬物の組み合わせの分析、禁忌の確認、薬理学的研究。
使用方法:
from scripts.kegg_api import kegg_ddi
# Check single drug
interactions = kegg_ddi('D00001')
# Check multiple drugs (max 10)
interactions = kegg_ddi(['D00001', 'D00002', 'D00003'])
よくある分析ワークフロー
ワークフロー 1:遺伝子からパスウェイへのマッピング
ユースケース:関心のある遺伝子に関連するパスウェイの検索(例:パスウェイ濃縮解析)。
from scripts.kegg_api import kegg_find, kegg_link, kegg_get
# Step 1: Find gene ID by name
gene_results = kegg_find('genes', 'p53')
# Step 2: Link gene to pathways
pathways = kegg_link('pathway', 'hsa:7157') # TP53 gene
# Step 3: Get detailed pathway information
for pathway_line in pathways.split('\n'):
if pathway_line:
pathway_id = pathway_line.split('\t')[1].replace('path:', '')
pathway_info = kegg_get(pathway_id)
# Process pathway information
ワークフロー 2:パスウェイ濃縮のコンテキスト
ユースケース:濃縮解析のために、生物種のパスウェイに含まれるすべての遺伝子を取得します。
from collections import defaultdict
from scripts.kegg_api import kegg_list, kegg_link
# Step 1: pathway names (one call)
names = dict(line.split('\t', 1) for line in kegg_list('pathway', 'hsa').splitlines() if line)
# Step 2: every gene-pathway link for the organism in ONE call, instead of one
# request per pathway (~370 calls would take minutes at KEGG's 3 calls/s limit)
gene_sets = defaultdict(set)
for line in kegg_link('pathway', 'hsa').splitlines():
gene, path = line.split('\t') # 'hsa:10327', 'path:hsa00010'
gene_sets[path.removeprefix('path:')].add(gene)
# gene_sets['hsa00010'] -> set of KEGG gene IDs for Glycolysis / Gluconeogenesis
ワークフロー 3:化合物からパスウェイへの分析
ユースケース:関心のある化合物を含む代謝パスウェイを検索します。
from scripts.kegg_api import kegg_find, kegg_link, kegg_get
# Step 1: Search for compound
compound_results = kegg_find('compound', 'glucose')
# Step 2: Link compound to reactions
reactions = kegg_link('reaction', 'cpd:C00031') # Glucose
# Step 3: Link reactions to pathways
pathways = kegg_link('pathway', 'rn:R00299') # Specific reaction
# Step 4: Get pathway details
pathway_info = kegg_get('map00010') # Glycolysis
ワークフロー 4:データベース間の統合
ユースケース:KEGG のデータを UniProt、NCBI、または PubChem のデータベースと統合します。
from scripts.kegg_api import kegg_conv, kegg_get
# Step 1: Convert KEGG gene IDs to external database IDs
uniprot_map = kegg_conv('uniprot', 'hsa')
ncbi_map = kegg_conv('ncbi-geneid', 'hsa')
# Step 2: Parse conversion results
for line in uniprot_map.split('\n'):
if line:
kegg_id, uniprot_id = line.split('\t')
# Use external IDs for integration
# Step 3: Get sequences using KEGG
sequence = kegg_get('hsa:10458', 'aaseq')
ワークフロー 5:生物種固有のパスウェイ分析
ユースケース:異なる生物種間でパスウェイを比較します。
from scripts.kegg_api import kegg_list, kegg_get
# Step 1: List pathways for multiple organisms
human_pathways = kegg_list('pathway', 'hsa')
mouse_pathways = kegg_list('pathway', 'mmu')
yeast_pathways = kegg_list('pathway', 'sce')
# Step 2: Get reference pathway for comparison
ref_pathway = kegg_get('map00010') # Reference glycolysis
# Step 3: Get organism-specific versions
hsa_glycolysis = kegg_get('hsa00010')
mmu_glycolysis = kegg_get('mmu00010')
パスウェイのカテゴリ
KEGG はパスウェイを 7 つの主要なカテゴリに分類しています。パスウェイ ID を解釈するときや、ユーザーにパスウェイを推奨するときは、次のカテゴリを参照してください。
- 代謝(例:
map00010- 解糖系、map00190- 酸化的リン酸化) - 遺伝情報処理(例:
map03010- リボソーム、map03040- スプライソソーム) - 環境情報処理(例:
map04010- MAPK シグナル伝達、map02010- ABC トランスポーター) - 細胞プロセス(例:
map04140- オートファジー、map04210- アポトーシス) - 生体システム(例:
map04610- 補体系カスケード、map04910- インスリンシグナル伝達) - ヒトの疾患(例:
map05200- がんに関するパスウェイ、map05010- アルツハイマー病) - 創薬(時系列および標的に基づく分類)
詳細なパスウェイ一覧と分類については、references/kegg_reference.md を参照してください。
重要な識別子と形式
パスウェイ ID
map#####- 参照パスウェイ(汎用、生物種固有ではありません)hsa#####- ヒトのパスウェイmmu#####- マウスのパスウェイ
遺伝子 ID
- 形式:
organism:gene_number(例:hsa:10458)
化合物 ID
- 形式:
cpd:C#####(例:ATP の場合はcpd:C00002)
薬物 ID
- 形式:
dr:D#####(例:dr:D00001)
酵素 ID
- 形式:
ec:EC_number(例:ec:1.1.1.1)
KO(KEGG Orthology)ID
- 形式:
ko:K#####(例:ko:K00001)
API の制限事項
KEGG API を使用する際は、次の制約を守ってください。
- エントリー数の上限:1 回の操作につき最大 10 エントリー(
image/image2x/kgmlは例外で、1 エントリーのみ) - 学術利用:API は学術利用に限られます。商用利用にはライセンスが必要です
- HTTP ステータスコード:200(成功)、400(不正なリクエスト)、404(見つからない)を確認してください
- レート制限:1 秒あたり最大 3 回です。これを超えるクライアントは KEGG によってブロックされます。エントリーごとのループよりも、一括呼び出し(
/link/pathway/hsa、/conv/ncbi-geneid/hsa)を優先してください
詳細なリファレンス
包括的な API ドキュメント、データベース仕様、生物種コード、高度な使用方法については、references/kegg_reference.md を参照してください。次の内容が含まれます。
- KEGG データベースの完全な一覧
- API 操作の詳細な構文
- すべての生物種コード
- HTTP ステータスコードとエラー処理
- Biopython および R/Bioconductor との統合
- API 使用のベストプラクティス
トラブルシューティング
404 Not Found:エントリまたはデータベースが存在しません。ID と生物種コードを確認してください。
400 Bad Request:API 呼び出しに構文エラーがあります。パラメーターの形式を確認してください。
検索結果が空:検索語がエントリと一致しない可能性があります。より広いキーワードを試してください。
画像/KGML エラー:image/image2x/kgml は単一のエントリでのみ使用できます。一括処理を削除してください。
経路で json を指定すると 400 が返る:json は BRITE 階層(例:br:br08301)でのみ有効です。経路構造には kgml を使用してください。
その他のツール
経路のインタラクティブな可視化と注釈には、次を使用できます。
- KEGG Mapper: https://www.kegg.jp/kegg/mapper/
- BlastKOALA:ゲノムの自動注釈
- GhostKOALA:メタゲノム/メタトランスクリプトームの注釈