clinpgx-database について
clinpgx-database は、臨床医や研究者向けの薬理ゲノミクス検索スキルです。ClinPGx REST API を通じて、遺伝子と薬剤の関係、ガイドライン、アレル、薬剤ラベルを参照できます。
主な機能
- 01遺伝子・薬剤情報の検索
- 02遺伝子・薬剤関係の取得
- 03CPIC 臨床ガイドラインの参照
- 04アレル・バリアント注釈の確認
- 05臨床注釈・薬剤ラベルの検索
活用シーン
- 01遺伝子型と薬剤反応の評価
- 02遺伝子型に応じた投薬助言の確認
- 03集団別アレル頻度の研究
- 04薬剤に関する臨床エビデンスの調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill clinpgx-databaseインストール後、Claude Code で/clinpgx-databaseを入力して読み込まれたか確認します。
同梱ファイルreferences/api_reference.mdscripts/query_clinpgx.py
詳細
ClinPGx データベース
概要
ClinPGx(Clinical Pharmacogenomics Database、臨床薬理ゲノミクスデータベース)は、PharmGKB の後継となる臨床薬理ゲノミクス情報の包括的なリソースです。PharmGKB、CPIC、PharmCAT のデータを統合し、遺伝的変異が薬剤応答に与える影響に関する厳選された情報を提供します。遺伝子と薬剤のペア、臨床ガイドライン、アレル機能、薬剤ラベルにアクセスでき、精密医療への応用に役立ちます。
このスキルを使用するタイミング
このスキルは次のような場合に使用します。
- 遺伝子と薬剤の相互作用: 遺伝的バリアントが薬物代謝、有効性、毒性にどのように影響するかを照会する場合
- CPIC ガイドライン: 薬理遺伝学に関するエビデンスに基づいた臨床診療ガイドラインを参照する場合
- アレル情報: アレル機能、頻度、表現型データを取得する場合
- 薬剤ラベル: FDA やその他の規制当局による薬理ゲノミクスの薬剤ラベル表示を調べる場合
- 薬理ゲノミクスの注釈: 遺伝子・薬剤・疾患の関係に関する厳選された文献にアクセスする場合
- 臨床意思決定支援: 表現型変換およびカスタム遺伝子型解釈に PharmDOG ツールを使用する場合
- 精密医療: 臨床現場で薬理ゲノミクス検査を実装する場合
- 薬物代謝: CYP450 やその他の薬理遺伝子の機能を理解する場合
- 個別化投与: 遺伝子型に基づく投与推奨を見つける場合
- 副作用リスク: 薬物毒性に関する遺伝的リスク因子を特定する場合
インストールとセットアップ
Python API アクセス
ClinPGx REST API は、データベースのすべてのリソースへのプログラムからのアクセスを提供します。基本的なセットアップは次のとおりです。
uv pip install requests
API エンドポイント
BASE_URL = "https://api.clinpgx.org/v1/"
レート制限:
- 1 秒あたり最大 2 リクエスト
- 過剰なリクエストは HTTP 429(Too Many Requests)レスポンスとなります
認証: 基本的なアクセスには不要です
データライセンス: Creative Commons Attribution-ShareAlike 4.0 International License
大規模に API を利用する場合は、[email protected] まで ClinPGx チームへご連絡ください。
主な機能
1. 遺伝子の照会
機能、臨床注釈、薬理ゲノミクス上の重要性を含む遺伝子情報の取得:
import requests
# Get gene details
response = requests.get("https://api.clinpgx.org/v1/gene/CYP2D6")
gene_data = response.json()
# Search for genes by name
response = requests.get("https://api.clinpgx.org/v1/gene",
params={"q": "CYP"})
genes = response.json()
主要な薬理遺伝子:
- CYP450 酵素: CYP2D6、CYP2C19、CYP2C9、CYP3A4、CYP3A5
- トランスポーター: SLCO1B1、ABCB1、ABCG2
- その他の代謝酵素: TPMT、DPYD、NUDT15、UGT1A1
- 受容体: OPRM1、HTR2A、ADRB1
- HLA 遺伝子: HLA-B、HLA-A
2. 薬剤および化学物質の照会
薬理ゲノミクスの注釈と作用機序を含む薬剤情報の取得:
# Get drug details
response = requests.get("https://api.clinpgx.org/v1/chemical/PA448515") # Warfarin
drug_data = response.json()
# Search drugs by name
response = requests.get("https://api.clinpgx.org/v1/chemical",
params={"name": "warfarin"})
drugs = response.json()
薬理ゲノミクス上重要な薬剤カテゴリー:
- 抗凝固薬(ワルファリン、クロピドグレル)
- 抗うつ薬(SSRI、TCA)
- 免疫抑制薬(タクロリムス、アザチオプリン)
- 腫瘍学薬(5-フルオロウラシル、イリノテカン、タモキシフェン)
- 循環器系薬(スタチン、β遮断薬)
- 鎮痛薬(コデイン、トラマドール)
- 抗ウイルス薬(アバカビル)
3. 遺伝子と薬剤のペアの照会
臨床注釈を伴う厳選された遺伝子と薬剤の関係へのアクセス:
# Get gene-drug pair information
response = requests.get("https://api.clinpgx.org/v1/geneDrugPair",
params={"gene": "CYP2D6", "drug": "codeine"})
pair_data = response.json()
# Get all pairs for a gene
response = requests.get("https://api.clinpgx.org/v1/geneDrugPair",
params={"gene": "CYP2C19"})
all_pairs = response.json()
臨床注釈のソース:
- CPIC(Clinical Pharmacogenetics Implementation Consortium)
- DPWG(Dutch Pharmacogenetics Working Group)
- FDA(Food and Drug Administration)のラベル
- 査読付き文献の要約注釈
4. CPIC ガイドライン
エビデンスに基づいた臨床診療ガイドラインへのアクセス:
# Get CPIC guideline
response = requests.get("https://api.clinpgx.org/v1/guideline/PA166104939")
guideline = response.json()
# List all CPIC guidelines
response = requests.get("https://api.clinpgx.org/v1/guideline",
params={"source": "CPIC"})
guidelines = response.json()
CPIC ガイドラインの構成要素:
- 対象となる遺伝子と薬剤のペア
- 表現型別の臨床推奨
- エビデンスレベルと推奨の強さの評価
- 裏付けとなる文献
- ダウンロード可能な PDF と補足資料
- 実装上の考慮事項
ガイドラインの例:
- CYP2D6-コデイン(超迅速代謝者では使用を避ける)
- CYP2C19-クロピドグレル(代謝能低下者には代替療法)
- TPMT-アザチオプリン(中間代謝者・低代謝者では用量を減量)
- DPYD-フルオロピリミジン(活性に基づいて用量を調整)
- HLA-B*57:01-アバカビル(陽性の場合は使用を避ける)
5. アレルおよびバリアント情報
アレルの機能と頻度データを照会:
# Get allele information
response = requests.get("https://api.clinpgx.org/v1/allele/CYP2D6*4")
allele_data = response.json()
# Get all alleles for a gene
response = requests.get("https://api.clinpgx.org/v1/allele",
params={"gene": "CYP2D6"})
alleles = response.json()
アレル情報に含まれる内容:
- 機能的ステータス(正常、低下、機能喪失、亢進、不確定)
- 民族集団ごとの集団頻度
- 定義バリアント(SNP、インデル、CNV)
- 表現型の割り当て
- PharmVarおよびその他の命名体系への参照
表現型カテゴリ:
- 超速代謝者(UM): 酵素活性の亢進
- 正常代謝者(NM): 正常な酵素活性
- 中間代謝者(IM): 酵素活性の低下
- 低速代謝者(PM): 酵素活性がほとんどないか、まったくない
6. バリアントアノテーション
特定の遺伝子バリアントに関する臨床アノテーションにアクセス:
# Get variant information
response = requests.get("https://api.clinpgx.org/v1/variant/rs4244285")
variant_data = response.json()
# Search variants by position (if supported)
response = requests.get("https://api.clinpgx.org/v1/variant",
params={"chromosome": "10", "position": "94781859"})
variants = response.json()
バリアントデータに含まれる内容:
- rsIDおよびゲノム座標
- 遺伝子と機能的影響
- アレルの関連付け
- 臨床的意義
- 集団頻度
- 文献参照
7. 臨床アノテーション
キュレーションされた文献アノテーションを取得(旧PharmGKB臨床アノテーション):
# Get clinical annotations
response = requests.get("https://api.clinpgx.org/v1/clinicalAnnotation",
params={"gene": "CYP2D6"})
annotations = response.json()
# Filter by evidence level
response = requests.get("https://api.clinpgx.org/v1/clinicalAnnotation",
params={"evidenceLevel": "1A"})
high_evidence = response.json()
エビデンスレベル(高い順から低い順):
- レベル1A: 高品質のエビデンス、CPIC/FDA/DPWGガイドラインに収載
- レベル1B: 高品質のエビデンス、まだガイドラインには収載されていない
- レベル2A: 適切に設計された研究による中程度のエビデンス
- レベル2B: 一部に限界がある中程度のエビデンス
- レベル3: 限定的または相反するエビデンス
- レベル4: 症例報告または弱いエビデンス
8. 添付文書
添付文書から薬理遺伝学的情報にアクセス:
# Get drug labels with PGx information
response = requests.get("https://api.clinpgx.org/v1/drugLabel",
params={"drug": "warfarin"})
labels = response.json()
# Filter by regulatory source
response = requests.get("https://api.clinpgx.org/v1/drugLabel",
params={"source": "FDA"})
fda_labels = response.json()
添付文書情報に含まれる内容:
- 検査の推奨事項
- 遺伝子型別の用量ガイダンス
- 警告および注意事項
- バイオマーカー情報
- 規制当局の情報源(FDA、EMA、PMDAなど)
9. パスウェイ
薬物動態および薬力学のパスウェイを探索:
# Get pathway information
response = requests.get("https://api.clinpgx.org/v1/pathway/PA146123006") # Warfarin pathway
pathway_data = response.json()
# Search pathways by drug
response = requests.get("https://api.clinpgx.org/v1/pathway",
params={"drug": "warfarin"})
pathways = response.json()
パスウェイ図に示される内容:
- 薬物代謝の各ステップ
- 関与する酵素およびトランスポーター
- 各ステップに影響する遺伝子バリアント
- 有効性・毒性への下流の影響
- 他のパスウェイとの相互作用
クエリのワークフロー
ワークフロー1: 処方に関する臨床意思決定支援
-
関連する薬理遺伝子について患者の遺伝子型を特定:
# Example: Patient is CYP2C19 *1/*2 (intermediate metabolizer) response = requests.get("https://api.clinpgx.org/v1/allele/CYP2C19*2") allele_function = response.json() -
対象薬剤の遺伝子-薬物ペアを照会:
response = requests.get("https://api.clinpgx.org/v1/geneDrugPair", params={"gene": "CYP2C19", "drug": "clopidogrel"}) pair_info = response.json() -
用量に関する推奨事項についてCPICガイドラインを取得:
response = requests.get("https://api.clinpgx.org/v1/guideline", params={"gene": "CYP2C19", "drug": "clopidogrel"}) guideline = response.json() # Recommendation: Alternative antiplatelet therapy for IM/PM -
規制上のガイダンスについて添付文書を確認:
response = requests.get("https://api.clinpgx.org/v1/drugLabel", params={"drug": "clopidogrel"}) label = response.json()
ワークフロー2: 遺伝子パネル解析
-
臨床パネルに含まれる薬理遺伝子の一覧を取得:
pgx_panel = ["CYP2C19", "CYP2D6", "CYP2C9", "TPMT", "DPYD", "SLCO1B1"] -
各遺伝子について、すべての薬物相互作用を取得:
all_interactions = {} for gene in pgx_panel: response = requests.get("https://api.clinpgx.org/v1/geneDrugPair", params={"gene": gene}) all_interactions[gene] = response.json() -
CPICガイドラインレベルのエビデンスでフィルタリング:
for gene, pairs in all_interactions.items(): for pair in pairs: if pair.get('cpicLevel'): # Has CPIC guideline print(f"{gene} - {pair['drug']}: {pair['cpicLevel']}") -
対応可能な薬理遺伝学的所見を含む患者レポートを作成。
ワークフロー3: 薬剤安全性評価
-
薬剤について薬理遺伝学的関連性を照会:
response = requests.get("https://api.clinpgx.org/v1/chemical", params={"name": "abacavir"}) drug_id = response.json()[0]['id'] -
臨床アノテーションを取得:
response = requests.get("https://api.clinpgx.org/v1/clinicalAnnotation", params={"drug": drug_id}) annotations = response.json() -
HLA関連性と毒性リスクを確認:
for annotation in annotations: if 'HLA' in annotation.get('genes', []): print(f"Toxicity risk: {annotation['phenotype']}") print(f"Evidence level: {annotation['evidenceLevel']}") -
ガイドラインおよび添付文書からスクリーニングの推奨事項を取得。
ワークフロー4: 研究解析 - 集団薬理遺伝学
-
集団間比較のためにアレル頻度を取得:
response = requests.get("https://api.clinpgx.org/v1/allele", params={"gene": "CYP2D6"}) alleles = response.json() -
集団特異的な頻度を抽出:
populations = ['European', 'African', 'East Asian', 'Latino'] frequency_data = {} for allele in alleles: allele_name = allele['name'] frequency_data[allele_name] = { pop: allele.get(f'{pop}_frequency', 'N/A') for pop in populations } -
集団ごとに表現型分布を算出:
# Combine allele frequencies with function to predict phenotypes phenotype_dist = calculate_phenotype_frequencies(frequency_data) -
多様な集団における薬剤用量への影響を分析。
ワークフロー5: 文献エビデンスのレビュー
-
遺伝子-薬物ペアを検索:
response = requests.get("https://api.clinpgx.org/v1/geneDrugPair", params={"gene": "TPMT", "drug": "azathioprine"}) pair = response.json() -
すべての臨床アノテーションを取得:
response = requests.get("https://api.clinpgx.org/v1/clinicalAnnotation", params={"gene": "TPMT", "drug": "azathioprine"}) annotations = response.json() -
エビデンスレベルと出版日でフィルタリング:
high_quality = [a for a in annotations if a['evidenceLevel'] in ['1A', '1B', '2A']] -
PMIDを抽出し、完全な文献情報を取得:
pmids = [a['pmid'] for a in high_quality if 'pmid' in a] # Use PubMed skill to retrieve full citations
レート制限とベストプラクティス
レート制限の遵守
import time
def rate_limited_request(url, params=None, delay=0.5):
"""Make API request with rate limiting (2 req/sec max)"""
response = requests.get(url, params=params)
time.sleep(delay) # Wait 0.5 seconds between requests
return response
# Use in loops
genes = ["CYP2D6", "CYP2C19", "CYP2C9"]
for gene in genes:
response = rate_limited_request(
"https://api.clinpgx.org/v1/gene/" + gene
)
data = response.json()
エラー処理
def safe_api_call(url, params=None, max_retries=3):
"""API call with error handling and retries"""
for attempt in range(max_retries):
try:
response = requests.get(url, params=params, timeout=10)
if response.status_code == 200:
return response.json()
elif response.status_code == 429:
# Rate limit exceeded
wait_time = 2 ** attempt # Exponential backoff
print(f"Rate limit hit. Waiting {wait_time}s...")
time.sleep(wait_time)
else:
response.raise_for_status()
except requests.exceptions.RequestException as e:
print(f"Attempt {attempt + 1} failed: {e}")
if attempt == max_retries - 1:
raise
time.sleep(1)
結果のキャッシュ
import json
from pathlib import Path
def cached_query(cache_file, api_func, *args, **kwargs):
"""Cache API results to avoid repeated queries"""
cache_path = Path(cache_file)
if cache_path.exists():
with open(cache_path) as f:
return json.load(f)
result = api_func(*args, **kwargs)
with open(cache_path, 'w') as f:
json.dump(result, f, indent=2)
return result
# Usage
gene_data = cached_query(
'cyp2d6_cache.json',
rate_limited_request,
"https://api.clinpgx.org/v1/gene/CYP2D6"
)
PharmDOG ツール
PharmDOG(旧 DDRx)は、ClinPGx が提供する薬理遺伝学的検査結果の解釈を支援する臨床意思決定支援ツールです。
主な機能:
- 表現型変換計算機: CYP2D6 に影響する薬物相互作用に応じて表現型予測を調整します
- カスタム遺伝子型: 患者の遺伝子型を入力して表現型予測を取得します
- QR コード共有: 共有可能な患者レポートを生成します
- 柔軟なガイダンスソース: 適用するガイドライン(CPIC、DPWG、FDA)を選択できます
- 複数薬剤解析: 複数の薬剤を同時に評価します
アクセス: https://www.clinpgx.org/pharmacogenomic-decision-support で利用できます
ユースケース:
- PGx パネル検査結果の臨床解釈
- 既知の遺伝子型を持つ患者の服薬レビュー
- 患者教育資料
- ポイントオブケアでの意思決定支援
リソース
scripts/query_clinpgx.py
一般的な ClinPGx クエリに対応した、すぐに使える関数を含む Python スクリプトです:
get_gene_info(gene_symbol)- 遺伝子の詳細を取得しますget_drug_info(drug_name)- 薬剤情報を取得しますget_gene_drug_pairs(gene, drug)- 遺伝子と薬剤の相互作用を照会しますget_cpic_guidelines(gene, drug)- CPIC ガイドラインを取得しますget_alleles(gene)- 遺伝子のすべてのアレルを取得しますget_clinical_annotations(gene, drug, evidence_level)- 文献アノテーションを照会しますget_drug_labels(drug)- 薬理遺伝学的な薬剤ラベルを取得しますsearch_variants(rsid)- variant rsID で検索しますexport_to_dataframe(data)- 結果を pandas DataFrame に変換します
適切なレート制限とエラー処理の実装例については、このスクリプトを参照してください。
references/api_reference.md
以下を含む包括的な API ドキュメントです:
- パラメーター付きのエンドポイント一覧
- リクエストおよびレスポンス形式の仕様
- 各エンドポイントの例となるクエリ
- フィルター演算子と検索パターン
- データスキーマの定義
- レート制限の詳細
- 認証要件(ある場合)
- よくあるエラーのトラブルシューティング
詳細な API 情報が必要な場合や、複雑なクエリを作成する場合は、このドキュメントを参照してください。
重要な注意事項
データソースと統合
ClinPGx は複数の信頼性の高い情報源を統合しています:
- PharmGKB: キュレーションされた薬理ゲノミクスのナレッジベース(現在は ClinPGx の一部)
- CPIC: エビデンスに基づく臨床実装ガイドライン
- PharmCAT: アレル判定および表現型解釈ツール
- DPWG: オランダの薬理遺伝学ガイドライン
- FDA/EMA ラベル: 規制当局による薬理ゲノミクス情報
2025 年 7 月時点で、すべての PharmGKB URL は対応する ClinPGx ページにリダイレクトされます。
臨床実装上の考慮事項
- エビデンスレベル: 臨床応用の前に、必ずエビデンスの強さを確認してください
- 集団間の差異: アレル頻度は集団によって大きく異なります
- 表現型変換: 酵素活性に影響する薬物相互作用を考慮してください
- 複数遺伝子の影響: 複数の薬理遺伝子の影響を受ける薬剤があります
- 非遺伝的要因: 年齢、臓器機能、薬物相互作用も反応に影響します
- 検査の限界: 臨床的に重要なアレルがすべてのアッセイで検出されるとは限りません
データの更新
- ClinPGx は新しいエビデンスとガイドラインで継続的に更新されています
- 臨床アノテーションは公開日を確認してください
- お知らせについては ClinPGx Blog(https://blog.clinpgx.org/)を確認してください
- CPIC ガイドラインは新たなエビデンスの出現に応じて更新されます
- PharmVar はアレル定義の命名法の更新を提供しています
API の安定性
- API エンドポイントは比較的安定していますが、開発中に変更される場合があります
- パラメーターおよびレスポンス形式は変更される可能性があります
- API の変更履歴および ClinPGx ブログで更新情報を確認してください
- 本番用アプリケーションでは、バージョン固定を検討してください
- API の変更は本番デプロイ前に開発環境でテストしてください
よくあるユースケース
事前的薬理遺伝学検査
臨床的に対応可能な遺伝子と薬剤の組み合わせをすべて照会し、パネルの選択に役立てます:
# Get all CPIC guideline pairs
response = requests.get("https://api.clinpgx.org/v1/geneDrugPair",
params={"cpicLevel": "A"}) # Level A recommendations
actionable_pairs = response.json()
服薬管理(Medication Therapy Management)
患者の服薬内容を既知の遺伝子型と照合してレビューします:
patient_genes = {"CYP2C19": "*1/*2", "CYP2D6": "*1/*1", "SLCO1B1": "*1/*5"}
medications = ["clopidogrel", "simvastatin", "escitalopram"]
for med in medications:
for gene in patient_genes:
response = requests.get("https://api.clinpgx.org/v1/geneDrugPair",
params={"gene": gene, "drug": med})
# Check for interactions and dosing guidance
臨床試験の適格性
薬理ゲノム学的禁忌をスクリーニングします:
# Check for HLA-B*57:01 before abacavir trial
response = requests.get("https://api.clinpgx.org/v1/geneDrugPair",
params={"gene": "HLA-B", "drug": "abacavir"})
pair_info = response.json()
# CPIC: Do not use if HLA-B*57:01 positive
追加リソース
- ClinPGx ウェブサイト: https://www.clinpgx.org/
- ClinPGx ブログ: https://blog.clinpgx.org/
- API ドキュメント: https://api.clinpgx.org/
- CPIC ウェブサイト: https://cpicpgx.org/
- PharmCAT: https://pharmcat.clinpgx.org/
- ClinGen: https://clinicalgenome.org/
- 連絡先: [email protected] (大量の API 利用の場合)