Checking ChEMBL for Structured SAR Data について
Checking ChEMBL for Structured SAR Data は、創薬化学の調査で論文の ChEMBL 収載状況を確認し、構造化された生物活性データを取得するスキルです。DOI で検索し、データベースの情報を全文調査と併用します。
主な機能
- 01DOI による論文収載状況の確認
- 02生物活性データ件数の取得
- 03活性タイプによるデータの絞り込み
- 04調査要約への ChEMBL 状況の記録
- 05構造化データと全文分析の併用
活用シーン
- 01創薬化学論文に ChEMBL データがあるか確認
- 02IC50 や MIC などの活性データを取得
- 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 段階の手順:
- DOI で論文が ChEMBL に登録されているか確認する
- 登録されている場合、生物活性データを取得する
ステップ 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 ワークフロー中:
- 要旨のスクリーニング後(スコア 7 以上)
- 全文の詳しい調査に入る前
- このスキルを使って ChEMBL を確認
- 見つかった場合:
- SUMMARY.md に ChEMBL ID を記載する
- 活性データを抽出する(PDF の解析より高速)
- 手法、考察、背景情報を確認するため、全文も取得する
- 見つからなかった場合:
- 通常どおり 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 で一般的なアクティビティの種類
| 種類 | 説明 | 単位 |
|---|---|---|
| IC50 | 50%阻害濃度 | nM, µM |
| MIC | 最小発育阻止濃度 | µg/mL, nM |
| Ki | 阻害定数 | nM, µM |
| EC50 | 50%有効濃度 | 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 に反映します
リソース
- ドキュメント全文:
docs/CHEMBL_INTEGRATION.mdを参照してください - ChEMBL API ドキュメント: https://chembl.gitbook.io/chembl-interface-documentation/
- ChEMBL インターフェース: https://www.ebi.ac.uk/chembl/