mcpField
A
alterlab-kegg

alterlab-kegg

github.com/alterlab-ieuデータ・データベース7866 回インストール5 週間前に更新
リポジトリ

alterlab-kegg について

alterlab-keggは、KEGG REST APIで生物学データを検索するスキルです。生物情報学の研究者向けに、複数の生物種のパスウェイ、遺伝子、化合物、酵素、疾患、薬剤の記録を取得・関連付けます。

主な機能

  1. 01データベース情報とエントリの取得
  2. 02キーワードや分子特性による検索
  3. 03配列、構造、パスウェイデータの取得
  4. 04KEGGと外部データベース間のID変換
  5. 05エントリ間の関連と薬物相互作用の検索

活用シーン

  1. 01対象遺伝子を関連パスウェイに対応付け
  2. 02化合物が関与する代謝パスウェイの検索
  3. 03生物種間のパスウェイ比較
  4. 04薬剤の組み合わせの相互作用確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alterlab-ieu/alterlab-academic-skills --skill alterlab-kegg

インストール後、Claude Code で/alterlab-keggを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
evals.json
references/
kegg_reference.md
scripts/
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

クイックスタート

このスキルには、次のものが用意されています。

  1. すべてのKEGG REST API操作に対応するPythonヘルパー関数(scripts/kegg_api.py)
  2. 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 を解釈するときや、ユーザーにパスウェイを推奨するときは、次のカテゴリを参照してください。

  1. 代謝(例:map00010 - 解糖系、map00190 - 酸化的リン酸化)
  2. 遺伝情報処理(例:map03010 - リボソーム、map03040 - スプライソソーム)
  3. 環境情報処理(例:map04010 - MAPK シグナル伝達、map02010 - ABC トランスポーター)
  4. 細胞プロセス(例:map04140 - オートファジー、map04210 - アポトーシス)
  5. 生体システム(例:map04610 - 補体系カスケード、map04910 - インスリンシグナル伝達)
  6. ヒトの疾患(例:map05200 - がんに関するパスウェイ、map05010 - アルツハイマー病)
  7. 創薬(時系列および標的に基づく分類)

詳細なパスウェイ一覧と分類については、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. エントリー数の上限:1 回の操作につき最大 10 エントリー(image/image2x/kgml は例外で、1 エントリーのみ)
  2. 学術利用:API は学術利用に限られます。商用利用にはライセンスが必要です
  3. HTTP ステータスコード:200(成功)、400(不正なリクエスト)、404(見つからない)を確認してください
  4. レート制限: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:メタゲノム/メタトランスクリプトームの注釈

コメント