mcpField
A
alterlab-fda

alterlab-fda

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

alterlab-fda について

openFDAを通じて公開FDA規制データを検索する研究者や分析担当者向けのスキルです。Pythonインターフェースで医薬品、医療機器、食品、動物用製品、物質を扱い、再利用可能なクエリ例やレート制限、キャッシュ処理も提供します。

主な機能

  1. 01有害事象と製品ラベルの検索
  2. 02承認、認可、リコール情報の検索
  3. 03医薬品コードと物質の照会
  4. 04供給不足と規制措置の監視
  5. 05レート制限、キャッシュ、再試行の処理

活用シーン

  1. 01市販後の医薬品安全性報告の確認
  2. 02医療機器のリコールと認可の監視
  3. 03食品リコールと有害事象の追跡
  4. 04化学物質識別子の照会

インストール

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

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

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

同梱ファイル

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

evals/
evals.json
references/
animal_veterinary.md
api_basics.md
devices.md
drugs.md
foods.md
other.md
query_patterns.md
scripts/
fda_examples.py
fda_query.py

詳細

FDA データベースへのアクセス

概要

FDA の取り組みとして公開データセット向けにオープン API を提供する openFDA を通じて、包括的な FDA 規制データにアクセスできます。標準化されたインターフェースを使用し、Python から医薬品、医療機器、食品、動物用製品、物質に関する情報を検索できます。

主な機能:

  • 医薬品、医療機器、食品、動物用製品の有害事象を検索
  • 製品表示、承認、規制関連申請にアクセス
  • リコールや規制措置を監視
  • National Drug Codes(NDC)と物質識別子(UNII)を検索
  • 医療機器の分類と承認状況(510k、PMA)を分析
  • 医薬品の供給不足や供給上の問題を追跡
  • 化学構造や物質間の関係を調査

このスキルを使用する場面

次のような作業でこのスキルを使用してください。

  • 医薬品の調査:安全性プロファイル、有害事象、製品表示、承認、供給不足
  • 医療機器の監視:有害事象、リコール、510(k) 承認、PMA 承認
  • 食品の安全性:リコール、アレルゲンの追跡、有害事象、栄養補助食品
  • 獣医学:動物の種や品種別の動物用医薬品の有害事象
  • 化学物質/物質のデータ:UNII の検索、CAS 番号との対応付け、分子構造
  • 規制分析:承認経路、規制措置、コンプライアンスの追跡
  • ファーマコビジランス:市販後調査、安全性シグナルの検出
  • 科学研究:医薬品相互作用、安全性の比較、疫学研究
該当しない場面
シナリオ代わりに使用
臨床試験登録情報(NCT ID、募集状況、適格性)alterlab-clinicaltrials
DrugBank のキュレーション済み医薬品–標的/DDI ナレッジalterlab-drugbank
化合物の生理活性および作用機序データalterlab-chembl
薬理ゲノム学に基づく投与量のガイダンス(CPIC/DPWG)alterlab-clinpgx

クイックスタート

1. 基本設定
# Run from the skill's scripts/ dir, or add it to sys.path first.
from fda_query import FDAQuery

# API key is optional (works keyless); pass it or set FDA_API_KEY.
fda = FDAQuery(api_key="YOUR_API_KEY")

# Query drug adverse events
events = fda.query_drug_events("aspirin", limit=100)

# Get drug labeling
label = fda.query_drug_label("Lipitor", brand=True)

# Search device recalls
recalls = fda.query("device", "enforcement",
                   search="classification:Class+I",
                   limit=50)
2. API キーの設定

API キーがなくても API を利用できますが、登録するとレート制限が緩和されます。

  • キーなし:240 リクエスト/分、1,000 リクエスト/日
  • キーあり:240 リクエスト/分、120,000 リクエスト/日

登録先:https://open.fda.gov/apis/authentication/

環境変数として設定します。

export FDA_API_KEY="your_key_here"
3. 実行例
# Run comprehensive examples
python scripts/fda_examples.py

# This demonstrates:
# - Drug safety profiles
# - Device surveillance
# - Food recall monitoring
# - Substance lookup
# - Comparative drug analysis
# - Veterinary drug analysis

FDA データベースのカテゴリ

医薬品

承認から市販後調査まで、医薬品のライフサイクル全体を網羅する、医薬品関連の 6 つのエンドポイントにアクセスできます。

エンドポイント:

  1. 有害事象 - 副作用、エラー、治療効果の不十分な事例に関する報告
  2. 製品表示 - 処方情報、警告、効能・効果
  3. NDC ディレクトリ - National Drug Code の製品情報
  4. 規制措置レポート - 医薬品のリコールと安全性に関する措置
  5. Drugs@FDA - 1939 年以降の承認履歴データ
  6. 医薬品の供給不足 - 現在および解消済みの供給問題

一般的な使用例:

# Safety signal detection
fda.count_by_field("drug", "event",
                  search="patient.drug.medicinalproduct:metformin",
                  field="patient.reaction.reactionmeddrapt")

# Get prescribing information
label = fda.query_drug_label("Keytruda", brand=True)

# Check for recalls
recalls = fda.query_drug_recalls(drug_name="metformin")

# Monitor shortages (endpoint is drug/shortages; status values:
# "Current", "To Be Discontinued", "Resolved")
shortages = fda.query("drug", "shortages",
                     search="status:Current")

リファレンス: 詳細なドキュメントについては references/drugs.md を参照してください。

医療機器

医療機器の安全性、承認、登録を網羅する、医療機器関連の 9 つのエンドポイントにアクセスできます。

エンドポイント:

  1. 有害事象 - 医療機器の不具合、負傷、死亡
  2. 510(k) 承認 - 市販前届出
  3. 分類 - 医療機器のカテゴリとリスククラス
  4. 規制措置レポート - 医療機器のリコール
  5. リコール - リコールの詳細情報
  6. PMA - クラス III 医療機器の市販前承認データ
  7. 登録・リスティング - 製造施設のデータ
  8. UDI - 医療機器固有識別データベース
  9. COVID-19 血清学 - 抗体検査の性能データ

一般的な使用例:

# Monitor device safety
events = fda.query_device_events("pacemaker", limit=100)

# Look up device classification
classification = fda.query_device_classification("DQY")

# Find 510(k) clearances
clearances = fda.query_device_510k(applicant="Medtronic")

# Search by UDI
device_info = fda.query("device", "udi",
                       search="identifiers.id:00884838003019")

リファレンス: 詳細なドキュメントについては references/devices.md を参照してください。

食品

安全性のモニタリングとリコールのため、食品関連のエンドポイントにアクセスします。

エンドポイント:

  1. 有害事象 - 食品および栄養補助食品に関する事象(CAERS、food/event)
  2. 執行報告 - 食品のリコール

化粧品の有害事象には、専用のエンドポイントcosmetic/eventが用意されました。

一般的なユースケース:

# Monitor allergen recalls
recalls = fda.query_food_recalls(reason="undeclared peanut")

# Track dietary supplement events
events = fda.query_food_events(
    industry="Dietary Supplements")

# Find contamination recalls
listeria = fda.query_food_recalls(
    reason="listeria",
    classification="I")

リファレンス: 詳細なドキュメントについては、references/foods.mdを参照してください。

動物・獣医学

動物種ごとの情報を含む、動物用医薬品の有害事象データにアクセスします。

エンドポイント:

  1. 有害事象 - 動物種、品種、製品別の動物用医薬品の副作用

一般的なユースケース:

# Species-specific events
dog_events = fda.query_animal_events(
    species="Dog",
    drug_name="flea collar")

# Breed predisposition analysis
breed_query = fda.query("animalandveterinary", "event",
    search="reaction.veddra_term_name:*seizure*+AND+"
           "animal.breed.breed_component:*Labrador*")

リファレンス: 詳細なドキュメントについては、references/animal_veterinary.mdを参照してください。

物質・その他

UNIIコード、化学構造、関連性を含む、分子レベルの物質データにアクセスします。

エンドポイント:

  1. 物質データ(other/substance)- UNII、CAS、化学構造、関連性
  2. UNII(other/unii)- UNIIコード ↔ 物質名の検索
  3. NSDE(other/nsde)- 包括的なNDC SPLデータ要素ファイル
  4. 過去の文書(other/historicaldocument)- FDAのアーカイブ文書

また、以下も利用可能です(2026-09に確認済み):transparency/crl(公開済みの完全回答書)および tobacco/problem(たばこ製品の問題報告)。

一般的なユースケース:

# UNII to CAS mapping
substance = fda.query_substance_by_unii("R16CO5Y76E")

# Search by name
results = fda.query_substance_by_name("acetaminophen")

# Get chemical structure
structure = fda.query("other", "substance",
    search="names.name:ibuprofen+AND+substanceClass:chemical")

リファレンス: 詳細なドキュメントについては、references/other.mdを参照してください。

クエリパターンと結果の処理

再利用可能なFDAQueryパターン(安全性プロファイル、経時的な傾向、比較、データベース横断検索)、レスポンスの構造、エラー処理、ページネーション、ベストプラクティスについては、references/query_patterns.mdを参照してください。

押さえておくべきポイント:

  • 裸のワイルドカードではなく、具体的なフィールド検索(patient.drug.medicinalproduct:aspirin)を使用してください。
  • FDAQueryは、レート制限(240/分、APIキー使用時は120,000/日)とキャッシュを自動的に処理します。
  • skipの上限は25,000です(query_allはそこで停止します)。さらにページを取得する場合は、Linkレスポンスヘッダーのsearch_afterカーソル、より狭い日付範囲での検索、または一括ダウンロードを利用してください。meta.last_updatedで各エンドポイントのデータの鮮度を確認できます。FAERS(drug/event)には四半期分の遅延があります。
  • count_by_fieldで完全一致のフレーズを数えるには、exact=Trueを使用してください(.exactが追加されます)。
  • すべてのレスポンスは{meta: {results: {total, ...}}, results: [...]}という形式です。必ずerrorと空のresultsを確認してください。

APIリファレンス

以下の詳細については:

  • 認証とレート制限 → references/api_basics.mdを参照してください
  • クエリパターンと結果の処理 → references/query_patterns.mdを参照してください
  • 医薬品データベース → references/drugs.mdを参照してください
  • 医療機器データベース → references/devices.mdを参照してください
  • 食品データベース → references/foods.mdを参照してください
  • 動物・獣医学データベース → references/animal_veterinary.mdを参照してください
  • 物質データベース → references/other.mdを参照してください

スクリプト

scripts/fda_query.py

FDAQueryクラスを提供するメインのクエリモジュールです。以下の機能があります:

  • すべてのFDAエンドポイントへの統一インターフェース
  • レート制限とキャッシュの自動処理
  • エラー処理と再試行ロジック
  • 一般的なクエリパターン
scripts/fda_examples.py

以下を実演する包括的な例です:

  • 医薬品の安全性プロファイル分析
  • 医療機器のサーベイランス監視
  • 食品リコールの追跡
  • 物質の検索
  • 医薬品の比較分析
  • 動物用医薬品の分析

例を実行するには:

python scripts/fda_examples.py

その他のリソース

サポートとトラブルシューティング

よくある問題

問題:レート制限を超えました

  • 解決策:API キーを使用する、リクエスト間に待機時間を設ける、またはリクエスト頻度を下げてください

問題:結果が見つかりません

  • 解決策:より広い検索語を試す、スペルを確認する、ワイルドカードを使用してください

問題:クエリ構文が無効です

  • 解決策:references/api_basics.md のクエリ構文を確認してください

問題:結果にフィールドがありません

  • 解決策:すべてのレコードにすべてのフィールドが含まれているわけではありません。必ずフィールドの有無を確認してください
ヘルプの利用

コメント