alterlab-gene-db について
alterlab-gene-dbは、NCBI Geneデータを扱うスキルで、遺伝子ID、注釈、配列情報を必要とする研究やデータ業務向けです。E-utilitiesとNCBI Datasets APIを使い、個別検索と一括照会に対応します。
主な機能
- 01遺伝子記号や名称で検索
- 02Gene IDから詳細情報を取得
- 03遺伝子リストの一括照会
- 04ゲノム位置とGO注釈の取得
- 05JSON、XML、FASTAなどでデータ取得
活用シーン
- 01遺伝子リストの検証と注釈付け
- 02遺伝子パネルのメタデータ取得
- 03遺伝子配列と機能情報の検索
- 04生物種や表現型による遺伝子の絞り込み
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alterlab-ieu/ alterlab-academic-skills --skill alterlab-gene-dbインストール後、Claude Code で/alterlab-gene-dbを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsonreferences/api_reference.mdcommon_workflows.mdscripts/batch_gene_lookup.pyfetch_gene_data.pyquery_gene.py詳細
遺伝子データベース
概要
NCBI Gene は、多様な種の遺伝子情報を統合した包括的なデータベースです。命名法、参照配列(RefSeq)、染色体マップ、生物学的経路、遺伝的変異、表現型、および世界中のゲノムリソースへの相互参照を提供します。
このスキルを使用する場合
遺伝子シンボルや ID による検索、遺伝子配列とメタデータの取得、遺伝子の機能や経路の分析、遺伝子の一括検索など、遺伝子データを扱う際にこのスキルを使用してください。
トリガーされない場合
| シナリオ | 代わりに使用 |
|---|---|
| Ensembl ID、VEP の影響、オルソログ、または GRCh37↔GRCh38 のマッピング | alterlab-ensembl |
| タンパク質レベルの機能、ドメイン、PTM、または UniProt ID のマッピング | alterlab-uniprot |
| 変異の臨床的意義 | alterlab-clinvar |
| 遺伝子リストの経路への所属/エンリッチメント | alterlab-reactome |
| データベースを横断する CLI からの簡単な単発遺伝子検索 | alterlab-gget |
クイックスタート
NCBI は、遺伝子データへのアクセスに主に 2 つの API を提供しています。
- E-utilities(従来型):柔軟なクエリに対応する、すべての Entrez データベース向けの高機能 API
- NCBI Datasets API(新しい API):簡素化されたワークフローで遺伝子データを取得するために最適化されています
複雑なクエリやデータベース横断検索には E-utilities を選択してください。遺伝子メタデータを簡単に取得する場合は Datasets API を選択してください(1 リクエストにつき 1 件の遺伝子レポートが返されます。転写産物/タンパク質の RefSeq アクセッションは別の product_report エンドポイントから取得します)。
よくあるワークフロー
シンボルまたは名称で遺伝子を検索する
生物種を横断してシンボルまたは名称で遺伝子を検索するには、次の手順に従ってください。
- E-utilities ESearch を使う
scripts/query_gene.pyスクリプトを使用します - 遺伝子シンボルと生物種を指定します(例:「ヒトの BRCA1」)
- スクリプトが一致する Gene ID を返します
クエリの例(タグは einfo.fcgi?db=gene で確認されます。[disease]、[phenotype]、[pathway] などの未知のタグは、通知なく [All Fields] に書き換えられます。ESearch の応答にある querytranslation を必ず確認してください):
- 遺伝子シンボル:
INS[sym] AND human[organism]([gene]/[sym]はシンボルに一致するため、insulin[gene name]では何も見つかりません。名称にはinsulin[Gene Full Name]を使用してください) - 疾患に関連する遺伝子:
dystrophin[Gene Full Name] AND "muscular dystrophy"[Disease/Phenotype] - 細胞遺伝学的な位置:
human[organism] AND 17q21[Default Map Location]([chromosome]に格納されるのは染色体番号のみです。例:17[chromosome])
ID で遺伝子情報を取得する
既知の Gene ID の詳細情報を取得するには、次の手順に従ってください。
- 包括的なデータを取得するには、Datasets API を使う
scripts/fetch_gene_data.pyを使用します - または、特定の形式で取得するには、E-utilities EFetch を使う
scripts/query_gene.pyを使用します - 希望する出力形式(JSON、XML、またはテキスト)を指定します
Datasets API の遺伝子レポートには、次の情報が含まれます。
- 遺伝子の命名法、別名、相互参照(HGNC、Ensembl、UniProt/Swiss-Prot、OMIM)
- ゲノム上の位置とアセンブリのマッピング(アセンブリごと。例:GRCh38 と T2T-CHM13)
- Gene Ontology(GO)アノテーション
- 転写産物とタンパク質の数
個々の転写産物/タンパク質の RefSeq アクセッションを取得するには、product_report エンドポイント(GET /gene/id/{id}/product_report)をリクエストしてください。基本の遺伝子レポートには数が含まれますが、アクセッションは含まれません。
遺伝子の一括検索
複数の遺伝子を同時に検索するには、次の手順に従ってください。
- 効率的な一括処理には
scripts/batch_gene_lookup.pyを使用します - 遺伝子シンボルまたは ID のリストを指定します
- シンボルで検索する場合は生物種を指定します
- スクリプトがレート制限を自動的に処理します(API キー使用時は毎秒 10 リクエスト)
このワークフローは、次の用途に役立ちます。
- 遺伝子リストの検証
- 遺伝子パネルのメタデータ取得
- 遺伝子識別子の相互参照
- 遺伝子アノテーションテーブルの作成
生物学的コンテキストによる検索
特定の生物学的機能や表現型に関連する遺伝子を見つけるには:
- E-utilities で Gene Ontology(GO)用語または表現型のキーワードを使用します
- 経路名または疾患との関連でクエリします
- 生物種、染色体、その他の属性で絞り込みます
検索例:
- GO 用語による検索(用語名はインデックス化されていますが、GO ID はインデックス化されていません):
"apoptotic process"[Gene Ontology] AND human[organism] - 疾患/表現型による検索:
diabetes[Disease/Phenotype] AND mouse[organism] - 経路による検索:Gene には経路フィールドがありません。一致する GO プロセス(
"insulin receptor signaling pathway"[Gene Ontology])または経路データベース(alterlab-reactome、alterlab-kegg)を使用します
API の利用パターン
レート制限:
- API キーなし:E-utilities は毎秒 3 リクエスト、Datasets API は毎秒 5 リクエスト
- API キーあり:両方の API で毎秒 10 リクエスト
認証: レート制限を引き上げるには、https://www.ncbi.nlm.nih.gov/account/ で無料の NCBI API キーに登録します。
エラー処理: 両方の API は標準的な HTTP ステータスコードを返します。一般的なエラーは次のとおりです:
- 400:クエリの形式が正しくない、またはパラメーターが無効
- 429:レート制限を超過
- 404:Gene ID が見つからない
失敗したリクエストは、指数バックオフを使用して再試行してください。
スクリプトの使用方法
query_gene.py
E-utilities(ESearch、ESummary、EFetch)を使用して NCBI Gene にクエリします。
python scripts/query_gene.py --search "BRCA1" --organism "human"
python scripts/query_gene.py --id 672 --format json
python scripts/query_gene.py --search "INS[sym] AND diabetes[Disease/Phenotype]" --organism human
fetch_gene_data.py
NCBI Datasets API を使用して包括的な遺伝子データを取得します。
python scripts/fetch_gene_data.py --gene-id 672
python scripts/fetch_gene_data.py --symbol BRCA1 --taxon human
python scripts/fetch_gene_data.py --symbol TP53 --taxon "Homo sapiens" --output json
batch_gene_lookup.py
複数の遺伝子クエリを効率的に処理します。
python scripts/batch_gene_lookup.py --file gene_list.txt --organism human
python scripts/batch_gene_lookup.py --ids 672,7157,5594 --output results.json
API リファレンス
エンドポイント、パラメーター、レスポンス形式、例など、詳細な API ドキュメントについては、次を参照してください:
references/api_reference.md- E-utilities と Datasets API の包括的な API ドキュメントreferences/common_workflows.md- その他の例とユースケースのパターン
特定の API エンドポイントの詳細、パラメーターの選択肢、またはレスポンス構造に関する情報が必要な場合は、これらのリファレンスを検索してください。
データ形式
NCBI Gene のデータは、複数の形式で取得できます:
- JSON:プログラムでの処理に適した構造化データ
- XML:完全なメタデータを含む詳細な階層形式
- GenBank:アノテーション付きの配列データ
- FASTA:配列データのみ
- Text:人が読みやすい要約
最新のアプリケーションには JSON、詳細なメタデータを必要とするレガシーシステムには XML、配列解析のワークフローには FASTA を選択してください。
ベストプラクティス
- 遺伝子シンボルで検索する場合は、曖昧さを避けるために必ず生物種を指定します
- 利用可能な場合は、正確に検索するためにGene ID を使用します
- 複数の遺伝子を扱う場合は、API 呼び出しを最小限に抑えるためにリクエストをまとめて送信します
- 重複するクエリを減らすために、結果をローカルにキャッシュします
- レート制限を引き上げるために、スクリプトにAPI キーを含めます
- 一時的な障害に対する再試行ロジックを用いて、エラーを適切に処理します
- 入力ミスを検出するために、一括処理の前に遺伝子シンボルを検証します
リソース
このスキルには次のものが含まれています:
scripts/
query_gene.py- E-utilities(ESearch、ESummary、EFetch)を使用して遺伝子を検索しますfetch_gene_data.py- NCBI Datasets API を使用して遺伝子データを取得しますbatch_gene_lookup.py- 複数の遺伝子クエリを効率的に処理します
references/
api_reference.md- E-utilities と Datasets API の両方に関する詳細な API ドキュメントcommon_workflows.md- 一般的な遺伝子クエリとユースケースの例