alterlab-reactome について
alterlab-reactomeは、Reactome経路データベースの検索と分析を支援する、システム生物学研究者向けのスキルです。REST APIとPythonクライアントで、経路取得、遺伝子マッピング、富化・発現解析を行えます。
主な機能
- 01経路、反応、分子エンティティの検索
- 02遺伝子やタンパク質の経路への対応付け
- 03経路の過剰代表解析
- 04遺伝子発現データの解析
- 05種間の経路比較
活用シーン
- 01遺伝子リストから富化経路を特定
- 02経路に関わる分子を調査
- 03発現データに関連する経路の分析
- 04種間で経路情報を比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alterlab-ieu/ alterlab-academic-skills --skill alterlab-reactomeインストール後、Claude Code で/alterlab-reactomeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsonreferences/api_reference.mdscripts/reactome_query.py詳細
Reactome Database
概要
Reactome は、キュレーションされた無料のオープンソース経路データベースです(数千のヒト経路を収録)。REST API と Python クライアントを使って、生物学的経路の検索、過剰代表解析と発現解析、遺伝子の経路へのマッピング、分子間相互作用の探索を行い、システム生物学の研究に活用できます。
このスキルを使用する場面
次のような場合にこのスキルを使用してください:
- 遺伝子またはタンパク質のリストに対して経路エンリッチメント解析を行う場合
- 関連する生物学的経路を特定するために遺伝子発現データを解析する場合
- 特定の経路情報、反応、または分子間相互作用を検索する場合
- 遺伝子またはタンパク質を生物学的経路やプロセスにマッピングする場合
- 疾患関連の経路やメカニズムを調べる場合
- Reactome Pathway Browser で解析結果を可視化する場合
- 種をまたいだ比較経路解析を行う場合
対象外
| シナリオ | 代わりに使用 |
|---|---|
| KEGG 経路マップ、KO オーソロジー、KEGG 化合物/薬剤 ID | alterlab-kegg |
| タンパク質間相互作用ネットワークと STRING の機能エンリッチメント | alterlab-string-db |
| ゲノムスケール代謝モデルとフラックスバランス解析 | alterlab-cobrapy |
| RNA-seq カウントからの差次的発現統計 | alterlab-pydeseq2 |
| 創薬における標的と疾患のエビデンススコアリング | alterlab-opentargets |
主な機能
Reactome は、2 つの主要な API サービスと Python クライアントライブラリを提供します。
1. Content Service - データ取得
生物学的経路データ、分子間相互作用、エンティティ情報を検索して取得します。
一般的な操作:
- 経路情報と階層を取得する
- 特定のエンティティ(タンパク質、反応、複合体)を検索する
- 経路に関与する分子を取得する
- データベースのバージョンとメタデータにアクセスする
- 経路の区画と局在を調べる
API ベース URL: https://reactome.org/ContentService
2. Analysis Service - 経路解析
遺伝子リストと発現データに対して計算解析を実行します。
解析の種類:
- 過剰代表解析:遺伝子/タンパク質リストから統計的に有意な経路を特定します
- 発現データ解析:遺伝子発現データセットを解析して関連する経路を見つけます
- 種の比較:異なる生物種間で経路データを比較します
API ベース URL: https://reactome.org/AnalysisService
3. reactome2py Python パッケージ
Reactome API 呼び出しをラップし、プログラムから簡単にアクセスできる Python クライアントライブラリです。
インストール:
uv pip install reactome2py
注: reactome2py パッケージ(バージョン 3.0.0、2021 年 1 月リリース)は動作しますが、積極的には保守されていません。最新の機能を利用するには、REST API を直接呼び出す方法を検討してください。
経路データの検索
Content Service REST API の使用
Content Service は REST プロトコルを使用し、JSON またはプレーンテキスト形式でデータを返します。
データベースのバージョンを取得する:
import requests
response = requests.get("https://reactome.org/ContentService/data/database/version")
version = response.text
print(f"Reactome version: {version}")
特定のエンティティを検索する:
import requests
entity_id = "R-HSA-69278" # Example pathway ID
response = requests.get(f"https://reactome.org/ContentService/data/query/{entity_id}")
data = response.json()
経路に関与する分子を取得する:
import requests
# NOTE: the path is /data/participants/{id}/... (NOT /data/event/{id}/...);
# the older /data/event/.../participatingPhysicalEntities now returns 404.
pathway_id = "R-HSA-69278"
response = requests.get(
f"https://reactome.org/ContentService/data/participants/{pathway_id}/participatingPhysicalEntities"
)
molecules = response.json()
遺伝子/タンパク質を、それが関与する経路にマッピングする:
import requests
# /data/mapping/{resource}/{id}/pathways — resource = UniProt, Ensembl, etc.
response = requests.get(
"https://reactome.org/ContentService/data/mapping/UniProt/P04637/pathways",
params={"species": "9606"}, # taxId; 9606 = Homo sapiens
)
pathways = response.json() # list of {stId, displayName, ...}
マッピング用のエンドポイントには、UniProt アクセッション(例:P04637)または Ensembl 遺伝子 ID を使用してください。遺伝子シンボル(例:TP53)から始める場合は、まず UniProt/Ensembl ID に変換するか、Analysis Service(/identifiers/)に送信してください。Analysis Service はシンボルを自動判別し、一致する経路を返します。
名前でエンティティを検索する(安定した ID がない場合):
response = requests.get(
"https://reactome.org/ContentService/search/query",
params={"query": "glycolysis", "species": "Homo sapiens", "types": "Pathway"},
)
hits = response.json()["results"] # grouped result clusters
reactome2py パッケージの使用
import reactome2py
from reactome2py import content
# Query pathway information
pathway_info = content.query_by_id("R-HSA-69278")
# Get database version
version = content.get_database_version()
API エンドポイントとパラメーターの詳細については、このスキルの references/api_reference.md を参照してください。
経路解析の実行
過剰代表解析
遺伝子/タンパク質識別子のリストを送信して、エンリッチされた経路を特定します。
REST API を使用する場合:
import requests
# Prepare identifier list
identifiers = ["TP53", "BRCA1", "EGFR", "MYC"]
data = "\n".join(identifiers)
# Submit analysis
response = requests.post(
"https://reactome.org/AnalysisService/identifiers/",
headers={"Content-Type": "text/plain"},
data=data
)
result = response.json()
token = result["summary"]["token"] # Save token to retrieve results later
# Access pathways
for pathway in result["pathways"]:
print(f"{pathway['stId']}: {pathway['name']} (p-value: {pathway['entities']['pValue']})")
トークンで解析結果を取得する:
# Token is valid for 7 days
response = requests.get(f"https://reactome.org/AnalysisService/token/{token}")
results = response.json()
発現データ解析
定量値を含む遺伝子発現データセットを解析します。
入力形式(ヘッダーが # で始まる TSV):
#Gene Sample1 Sample2 Sample3
TP53 2.5 3.1 2.8
BRCA1 1.2 1.5 1.3
EGFR 4.5 4.2 4.8
発現データを送信する:
import requests
# Read TSV file
with open("expression_data.tsv", "r") as f:
data = f.read()
response = requests.post(
"https://reactome.org/AnalysisService/identifiers/",
headers={"Content-Type": "text/plain"},
data=data
)
result = response.json()
種の投影
識別子をヒトのパスウェイにマッピングするには、/projection/ エンドポイントのみを使用してください。
response = requests.post(
"https://reactome.org/AnalysisService/identifiers/projection/",
headers={"Content-Type": "text/plain"},
data=data
)
結果の可視化
解析トークンを使って URL を構築すると、Reactome Pathway Browser で解析結果を可視化できます。
token = result["summary"]["token"]
pathway_id = "R-HSA-69278"
url = f"https://reactome.org/PathwayBrowser/#{pathway_id}&DTAB=AN&ANALYSIS={token}"
print(f"View results: {url}")
解析トークンの使用
- 解析トークンの有効期限は 7 日間です
- トークンを使うと、再送信せずに以前に計算した結果を取得できます
- セッションをまたいで結果にアクセスできるよう、トークンを保存してください
- 結果を取得するには、
GET /token/{TOKEN}エンドポイントを使用してください
データ形式と識別子
対応する識別子の種類
Reactome はさまざまな識別子形式に対応しています。
- UniProt アクセッション番号(例:P04637)
- 遺伝子シンボル(例:TP53)
- Ensembl ID(例:ENSG00000141510)
- EntrezGene ID(例:7157)
- 小分子用の ChEBI ID
システムが識別子の種類を自動的に検出します。
入力形式の要件
過剰代表解析の場合:
- 識別子を1行に1つずつ記載したプレーンテキストのリスト
- または、TSV 形式の単一列
発現解析の場合:
#で始まる必須のヘッダー行を含む TSV 形式- 1列目:識別子
- 2列目以降:数値の発現値
- 小数点にはピリオド(.)を使用してください
出力形式
すべての API 応答は、以下を含む JSON を返します。
pathways:統計指標を含む、濃縮されたパスウェイの配列summary:解析のメタデータとトークンentities:一致した識別子とマッピングされなかった識別子- 統計値:pValue、FDR(偽発見率)
ヘルパースクリプト
このスキルには、一般的な Reactome 操作のためのヘルパースクリプト scripts/reactome_query.py が含まれています。
# Query pathway information
python scripts/reactome_query.py query R-HSA-69278
# List participating molecules in a pathway
python scripts/reactome_query.py entities R-HSA-69278
# Search for a pathway by name
python scripts/reactome_query.py search "cell cycle"
# Perform overrepresentation analysis
python scripts/reactome_query.py analyze gene_list.txt
# Get database version
python scripts/reactome_query.py version
このスクリプトの依存関係は requests のみです。uv run --with requests scripts/reactome_query.py ... で実行してください。
追加リソース
- API ドキュメント:https://reactome.org/dev
- ユーザーガイド:https://reactome.org/userguide
- ドキュメントポータル:https://reactome.org/documentation
- データのダウンロード:https://reactome.org/download-data
- reactome2py ドキュメント:https://reactome.github.io/reactome2py/
API エンドポイントの包括的なドキュメントについては、このスキルの references/api_reference.md を参照してください。
データベースのバージョン
Reactome は四半期ごとにリリースされます。ライブバージョン(2026-09 時点で 97、API で確認済み)が信頼できる最新情報です。古くなる件数をハードコードしないでください。クエリの実行時に、現在のリリースと種類ごとの統計を取得してください。
curl -s https://reactome.org/ContentService/data/database/version
リリース単位のコンテンツ統計は、https://reactome.org/about/statistics にまとめられています。