mcpField
C
Checking ChEMBL for Structured SAR Data

Checking ChEMBL for Structured SAR Data

github.com/kthornデータ・データベース13154 回インストール53 週間前に更新
リポジトリ

Checking ChEMBL for Structured SAR Data について

Checking ChEMBL for Structured SAR Data は、創薬化学の調査で論文の ChEMBL 収載状況を確認し、構造化された生物活性データを取得するスキルです。DOI で検索し、データベースの情報を全文調査と併用します。

主な機能

  1. 01DOI による論文収載状況の確認
  2. 02生物活性データ件数の取得
  3. 03活性タイプによるデータの絞り込み
  4. 04調査要約への ChEMBL 状況の記録
  5. 05構造化データと全文分析の併用

活用シーン

  1. 01創薬化学論文に ChEMBL データがあるか確認
  2. 02IC50 や MIC などの活性データを取得
  3. 03PDF 表の解析前に構造化データを確認

インストール

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

$npx skills add https://github.com/kthorn/research-superpower --skill checking-chembl-for-structured-sar-data

インストール後、Claude Code で/checking-chembl-for-structured-sar-dataを入力して読み込まれたか確認します。

詳細

構造化された SAR データを ChEMBL で確認する

概要

ChEMBL は、約 99,000 件の創薬化学論文を手作業でキュレーションし、抽出した標準化済みの生物活性データを収録するデータベースです。論文が ChEMBL に登録されていれば、PDF を解析せずに構造化データへアクセスできます。

基本原則: 創薬化学論文は、まず ChEMBL で確認してください。キュレーション済みデータは、表を解析して得たデータよりも信頼性が高いです。

使用する場面

次の場合にこのスキルを使用してください。

  • 論文が創薬化学/創薬について記述している
  • 要旨に化合物シリーズ、SAR、または活性データの記載がある
  • 論文に IC50、MIC、Ki、EC50、またはその他の生物活性測定値がある
  • 表や図からデータを抽出する前
  • 関連性評価で論文のスコアが 7 以上

使用しない場面:

  • 創薬化学以外の論文(細胞生物学、ゲノミクスなど)
  • 活性測定値のない論文
  • 一次データを含まないレビュー
  • ごく最近の論文(6 か月未満で、まだキュレーションされていない可能性が高いもの)

ChEMBL API の基本

ベース URL: https://www.ebi.ac.uk/chembl/api/data/

認証は不要です

重要:ChEMBL の検索に使用できるのは DOI のみで、PMID では検索できません

  • API は結果に PMID を返しますが、クエリパラメーターとしては受け付けません
  • 検索には必ず DOI を使用してください:?doi=10.1234/example
  • PMID で検索すると、論文が ChEMBL に登録されていても結果は 0 件になります

2 段階の手順:

  1. DOI で論文が ChEMBL に登録されているか確認する
  2. 登録されている場合、生物活性データを取得する

ステップ 1:論文が ChEMBL に登録されているか確認する

DOI で検索(機能する唯一の方法):

curl -s "https://www.ebi.ac.uk/chembl/api/data/document.json?doi=DOI"

⚠️ 重要:PMID ではなく DOI を使用してください

# ✅ CORRECT - Use DOI
doi="10.1021/jm401507s"
curl -s "https://www.ebi.ac.uk/chembl/api/data/document.json?doi=$doi"

# ❌ WRONG - PMID won't work (will return 0 results)
pmid="24446688"
curl -s "https://www.ebi.ac.uk/chembl/api/data/document.json?pubmed_id=$pmid"  # Does NOT work!

PMID しかない場合: まず PubMed から DOI を取得し、その DOI で ChEMBL を検索してください。

レスポンスの構造:

{
  "documents": [
    {
      "document_chembl_id": "CHEMBL3120156",
      "doi": "10.1021/jm401507s",
      "title": "Discovery and development of simeprevir (TMC435), a HCV NS3/4A protease inhibitor.",
      "abstract": "Hepatitis C virus is a blood-borne infection...",
      "pubmed_id": 24446688,
      "journal": "J Med Chem",
      "year": 2014,
      "doc_type": "PUBLICATION"
    }
  ],
  "page_meta": {
    "total_count": 1
  }
}

主なフィールド:

  • document_chembl_id - 活性データの取得に使用します
  • doc_type - "PUBLICATION"(文献由来)または "DATASET"(登録データ)
  • pubmed_id - PMID はレスポンスに含まれますが、ChEMBL の検索には使用できません
  • total_count = 0 の場合、論文は ChEMBL に登録されていません

レスポンスを解析する:

response=$(curl -s "https://www.ebi.ac.uk/chembl/api/data/document.json?doi=$doi")

if [ $(echo "$response" | jq -r '.page_meta.total_count') -gt 0 ]; then
  chembl_id=$(echo "$response" | jq -r '.documents[0].document_chembl_id')
  echo "✓ Found in ChEMBL: $chembl_id"
else
  echo "✗ Not in ChEMBL"
fi

ステップ 2:活性データの件数を取得する

アクティビティエンドポイントにクエリを送信:

curl -s "https://www.ebi.ac.uk/chembl/api/data/activity.json?document_chembl_id=CHEMBL3120156&limit=1"

合計件数を抽出:

activity_url="https://www.ebi.ac.uk/chembl/api/data/activity.json?document_chembl_id=$chembl_id&limit=1"
activity_count=$(curl -s "$activity_url" | jq -r '.page_meta.total_count')

echo "→ $activity_count bioactivity data points"

ステップ 3:ユーザーに報告し、概要を更新する

すぐに報告:

📄 [15/127] Screening: "Discovery and development of simeprevir"
   Abstract score: 9 → Fetching full text...
   ✓ ChEMBL: CHEMBL3120156 (101 activity data points)
   → IC50 data for HCV NS3 protease inhibitors available

SUMMARY.md に追加:

### [Discovery and development of simeprevir (TMC435), a HCV NS3/4A protease inhibitor](https://doi.org/10.1021/jm401507s) (Score: 9)

**DOI:** [10.1021/jm401507s](https://doi.org/10.1021/jm401507s)
**PMID:** [24446688](https://pubmed.ncbi.nlm.nih.gov/24446688/)
**ChEMBL:** [CHEMBL3120156](https://www.ebi.ac.uk/chembl/document_report_card/CHEMBL3120156/) (101 data points)

**Key Findings:**
- IC50 data for HCV NS3/4A protease inhibitors (from ChEMBL)
- Lead compound simeprevir (TMC435) approved for HCV treatment
- Structures and full activity data: [ChEMBL API](https://www.ebi.ac.uk/chembl/api/data/activity.json?document_chembl_id=CHEMBL3120156)

**ChEMBL Activity Summary:**
- IC50 values for HCV NS3/4A protease
- PK parameters (AUC, Cmax, clearance)
- DMPK assays (metabolic stability, permeability)

ChEMBL の登録状況を必ず記載してください:

  • 見つかった場合:リンク付きの ChEMBL ID とデータポイント数を追加します
  • 見つからなかった場合:「ChEMBL に未登録」と記載します(これも有用な情報です)

ステップ 4:追跡ファイルを更新する

papers-reviewed.json に追加:

{
  "10.1021/jm401507s": {
    "pmid": "24446688",
    "status": "relevant",
    "score": 9,
    "chembl_id": "CHEMBL3120156",
    "chembl_activities": 101,
    "has_structured_data": true
  }
}

任意:構造化データを抽出する

ChEMBL データが豊富な論文(アクティビティが 20 件超)の場合は、抽出を検討してください:

# Get all IC50 data
curl -s "https://www.ebi.ac.uk/chembl/api/data/activity.json?document_chembl_id=CHEMBL3120156&standard_type=IC50&limit=100" > chembl_data.json

# Summary statistics
jq '[.activities[] | .standard_value | tonumber] | "Min: \(min), Max: \(max), Count: \(length)"' chembl_data.json

ユーザーに報告:

📊 ChEMBL data extracted:
   - IC50 values for HCV NS3/4A protease
   - All structures downloaded
   - Data saved to: chembl_CHEMBL3120156_ic50.json

他のスキルとの連携

evaluating-paper-relevance ワークフロー中:

  1. 要旨のスクリーニング後(スコア 7 以上)
  2. 全文の詳しい調査に入る前
  3. このスキルを使って ChEMBL を確認
  4. 見つかった場合:
    • SUMMARY.md に ChEMBL ID を記載する
    • 活性データを抽出する(PDF の解析より高速)
    • 手法、考察、背景情報を確認するため、全文も取得する
  5. 見つからなかった場合:
    • 通常どおり PDF の評価を進める
    • 必要に応じて表を手作業で解析する

ワークフローへの統合箇所:

Stage 2: Deep Dive
├─ 1. Fetch Full Text (PMC → DOI → Unpaywall)
├─ 1.5. Check ChEMBL ← ADD THIS STEP
│   ├─ Query by DOI
│   ├─ If found: note ChEMBL ID + activity count
│   └─ Report to user
├─ 2. Scan for Relevant Content
└─ 3. Extract Findings

ChEMBL で一般的なアクティビティの種類

種類説明単位
IC5050%阻害濃度nM, µM
MIC最小発育阻止濃度µg/mL, nM
Ki阻害定数nM, µM
EC5050%有効濃度nM, µM
Kd解離定数nM, µM
Potency一般的な効力測定値さまざま

アクティビティの種類で絞り込む:

curl "https://www.ebi.ac.uk/chembl/api/data/activity.json?document_chembl_id=ID&standard_type=MIC"

ChEMBL のカバレッジ

約99,000件の文書(2025年時点)

十分に収録されているもの:

  • メディシナルケミストリー論文
  • 化合物シリーズを含む SAR 研究
  • リード最適化プロジェクト
  • 主要な学術誌の論文(J Med Chem、Bioorg Med Chem、Eur J Med Chem など)

収録が不十分なもの:

  • ごく最近の論文(キュレーションに6~12か月の遅れ)
  • 抽出可能な構造や活性データを含まない論文
  • 創薬以外の研究
  • 純粋なメカニズム研究

一般的なヒット率:

  • メディシナルケミストリー論文の約30~40%
  • SAR に焦点を当てた学術誌ではより高い

ChEMBL データの利点

PDF の表解析との比較:

  • ✓ 構造が抽出済み(SMILES 形式)
  • ✓ 単位が標準化済み(すべての IC50 が nM)
  • ✓ 値が検証・キュレーション済み
  • ✓ 機械可読な JSON
  • ✓ OCR エラーなし
  • ✓ アッセイプロトコルにリンク済み
  • ✓ クエリ可能(活性範囲、標的などによる絞り込み)

それでも PDF を使う場合:

  • 実験手順の全文
  • 合成経路
  • ChEMBL に収録されていない論文
  • ごく最近の論文
  • 背景や解釈

進捗報告

重要:関連する論文ごとに ChEMBL の確認結果を報告してください

ワークフローの報告例:

📄 [15/50] Screening: "Novel MmpL3 inhibitors..."
   Abstract score: 8 → Checking ChEMBL...
   ✓ ChEMBL: CHEMBL3456789 (34 data points)
   → Fetching full text...
   → Added to SUMMARY.md with ChEMBL link

ChEMBL に収録されていない論文の場合:

📄 [16/50] Screening: "Another paper..."
   Abstract score: 9 → Checking ChEMBL...
   ✗ Not in ChEMBL (likely too recent or review paper)
   → Fetching full text via Unpaywall...

ヘルパースクリプトのパターン

メディシナルケミストリー論文を多数扱う調査セッション向け:

check_chembl.py を作成します:

#!/usr/bin/env python3
import requests
import json
import sys

def check_chembl(doi):
    """Check if DOI is in ChEMBL and return summary

    IMPORTANT: Must use DOI, not PMID. ChEMBL API does not accept PMID queries.
    """

    # Query document (ONLY works with DOI)
    doc_url = f"https://www.ebi.ac.uk/chembl/api/data/document.json?doi={doi}"
    try:
        doc_response = requests.get(doc_url, timeout=10).json()
    except:
        return None

    # Check if found
    if doc_response.get('page_meta', {}).get('total_count', 0) == 0:
        return {'in_chembl': False}

    doc = doc_response['documents'][0]
    chembl_id = doc['document_chembl_id']

    # Get activity count
    act_url = f"https://www.ebi.ac.uk/chembl/api/data/activity.json?document_chembl_id={chembl_id}&limit=1"
    try:
        act_response = requests.get(act_url, timeout=10).json()
        activity_count = act_response.get('page_meta', {}).get('total_count', 0)
    except:
        activity_count = 0

    return {
        'in_chembl': True,
        'chembl_id': chembl_id,
        'activity_count': activity_count,
        'doc_type': doc.get('doc_type'),
        'title': doc.get('title')
    }

if __name__ == "__main__":
    doi = sys.argv[1]
    result = check_chembl(doi)

    if result and result['in_chembl']:
        print(f"✓ {result['chembl_id']} ({result['activity_count']} activities)")
    else:
        print("✗ Not in ChEMBL")

使用方法:

python3 check_chembl.py "10.1021/jm401507s"
# Output: ✓ CHEMBL3120156 (101 activities)

よくある間違い

PMID によるクエリ: DOI の代わりに PMID を使用 → 常に検索結果が0件になります。ChEMBL が受け付けるのは DOI によるクエリのみです
ChEMBL の確認を省略: メディシナルケミストリー論文を確認しない → すでに抽出済みの構造化データを見逃します
メディシナルケミストリー以外の論文を確認: ゲノミクスや細胞生物学の論文を確認 → 時間の無駄になり、ChEMBL に収録されていません
ステータスを報告しない: ChEMBL の確認結果を報告しない → ユーザーが作業状況を把握できません
SUMMARY.md に追加しない: ChEMBL ID の記載を忘れる → ユーザーが後からデータにアクセスしにくくなります
ChEMBL のみを使用: 論文が ChEMBL に収録されている場合に全文を取得しない → 背景、方法、考察を見逃します
ChEMBL にあるのに PDF を解析: 構造化データが利用可能なのに手作業で表を抽出 → 時間を無駄にし、エラーを招きます

クイックリファレンス

タスクコマンド
DOI が ChEMBL にあるか確認curl "https://www.ebi.ac.uk/chembl/api/data/document.json?doi=DOI"
活性データ件数を取得curl "https://www.ebi.ac.uk/chembl/api/data/activity.json?document_chembl_id=ID&limit=1"
すべての活性データを取得curl "https://www.ebi.ac.uk/chembl/api/data/activity.json?document_chembl_id=ID&limit=1000"
活性タイプで絞り込みcurl "...activity.json?document_chembl_id=ID&standard_type=MIC"
ChEMBL の論文ページhttps://www.ebi.ac.uk/chembl/document_report_card/CHEMBL_ID/

権限

.claude/settings.local.json.template に追加します:

"Bash(curl*https://www.ebi.ac.uk/chembl/api/data/*)",
"WebFetch(domain:www.ebi.ac.uk)"

成功基準

次の条件を満たせば、ChEMBL の確認は成功です:

  • すべてのメディシナルケミストリー論文(スコア ≥7)を確認済み
  • ChEMBL のステータスをユーザーにすぐ報告済み
  • 見つかった場合は ChEMBL ID を SUMMARY.md に追加済み
  • 活性データ件数をサマリーに記載済み
  • papers-reviewed.json を ChEMBL のステータスで更新済み

次のステップ

ChEMBL の確認後:

  • 見つかった場合:関連性の高い論文(≥9)について、構造化データの抽出を検討します
  • 背景を把握するため、全文の評価を続けます
  • ChEMBL に収録されていない論文の場合:通常どおり PDF と表の解析に進みます
  • すべての調査結果を SUMMARY.md に反映します

リソース

コメント