pubmed-database について
PubMedで生物医学文献を検索・分析するためのスキルです。研究者やシステマティックレビューの作業を想定し、高度な検索式、MeSH、E-utilities API、引用検索、結果のエクスポートを扱います。
主な機能
- 01ブール演算子とフィールドタグで検索式を作成
- 02MeSH用語による検索
- 03E-utilities APIでデータを取得
- 04論文種別や日付で絞り込み
- 05引用情報の検索と結果の出力
活用シーン
- 01システマティックレビューの検索戦略作成
- 02著者、日付、研究種別による論文検索
- 03PubMedレコードの一括取得
- 04関連記事の発見と引用情報の整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill pubmed-databaseインストール後、Claude Code で/pubmed-databaseを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api_reference.mdcommon_queries.mdsearch_syntax.md詳細
PubMed データベース
概要
PubMed は、米国国立医学図書館が提供する包括的なデータベースで、MEDLINE および生命科学分野の文献に無料でアクセスできます。ブール演算子、MeSH 用語、フィールドタグを使って高度なクエリを構築し、システマティックレビューや文献分析のために E-utilities API を介してプログラムからデータにアクセスできます。
このスキルを使用するタイミング
このスキルは、次のような場合に使用します:
- 生物医学または生命科学分野の研究論文を検索するとき
- ブール演算子、フィールドタグ、または MeSH 用語を使って複雑な検索クエリを構築するとき
- システマティックレビューやメタアナリシスを実施するとき
- E-utilities API を介してプログラムから PubMed データにアクセスするとき
- 特定の条件(著者、雑誌、出版日、論文の種類)で論文を見つけるとき
- 引用情報、抄録、または全文論文を取得するとき
- PMID(PubMed ID)または DOI を扱うとき
- 文献モニタリングやデータ抽出のための自動化ワークフローを作成するとき
主な機能
1. 高度な検索クエリの構築
ブール演算子、フィールドタグ、専用の構文を使って、洗練された PubMed クエリを構築します。
基本的な検索戦略:
- ブール演算子(AND、OR、NOT)で概念を組み合わせる
- フィールドタグを使って、レコードの特定の部分に検索を限定する
- 完全一致のために二重引用符でフレーズ検索を行う
- ワイルドカードを適用して用語の変形に対応する
- 近接検索を使って、指定した距離内にある用語を検索する
クエリの例:
# Recent systematic reviews on diabetes treatment
diabetes mellitus[mh] AND treatment[tiab] AND systematic review[pt] AND 2023:2024[dp]
# Clinical trials comparing two drugs
(metformin[nm] OR insulin[nm]) AND diabetes mellitus, type 2[mh] AND randomized controlled trial[pt]
# Author-specific research
smith ja[au] AND cancer[tiab] AND 2023[dp] AND english[la]
search_syntax.md を参照するタイミング:
- 利用可能なフィールドタグの包括的な一覧が必要なとき
- 検索演算子の詳しい説明が必要なとき
- 複雑な近接検索を構築するとき
- 自動用語マッピングの動作を理解したいとき
- 日付範囲、ワイルドカード、または特殊文字の具体的な構文が必要なとき
フィールドタグを検索する Grep パターン: \[au\]|\[ti\]|\[ab\]|\[mh\]|\[pt\]|\[dp\]
2. MeSH 用語と統制語彙
Medical Subject Headings(MeSH)を使い、生物医学文献全体に対して正確で一貫した検索を行います。
MeSH 検索:
- [mh] タグは、下位用語を自動的に含めて MeSH 用語を検索する
- [majr] タグは、そのトピックが主要な焦点となっている論文に絞り込む
- 特異性を高めるために、MeSH 用語とサブヘディングを組み合わせる(例: diabetes mellitus/therapy[mh])
一般的な MeSH サブヘディング:
- /diagnosis - 診断方法
- /drug therapy - 薬物療法
- /epidemiology - 疾患のパターンと有病率
- /etiology - 疾患の原因
- /prevention & control - 予防措置
- /therapy - 治療アプローチ
例:
# Diabetes therapy with specific focus
diabetes mellitus, type 2[mh]/drug therapy AND cardiovascular diseases[mh]/prevention & control
3. 論文の種類と出版物によるフィルタリング
出版の種類、日付、本文の利用可能性、その他の属性で検索結果を絞り込みます。
出版の種類([pt] フィールドタグを使用):
- Clinical Trial
- Meta-Analysis
- Randomized Controlled Trial
- Review
- Systematic Review
- Case Reports
- Guideline
日付によるフィルタリング:
- 単一年:
2024[dp] - 日付範囲:
2020:2024[dp] - 特定の日付:
2024/03/15[dp]
本文の利用可能性:
- 無料の全文: クエリに
AND free full text[sb]を追加する - 抄録あり: クエリに
AND hasabstract[text]を追加する
例:
# Recent free full-text RCTs on hypertension
hypertension[mh] AND randomized controlled trial[pt] AND 2023:2024[dp] AND free full text[sb]
4. E-utilities API によるプログラムからのアクセス
自動化や大量処理のために、NCBI E-utilities REST API を使用して PubMed のデータにプログラムからアクセスします。
主要な API エンドポイント:
- ESearch - データベースを検索し、PMID を取得
- EFetch - さまざまな形式で完全なレコードをダウンロード
- ESummary - ドキュメントの概要を取得
- EPost - バッチ処理のために UID をアップロード
- ELink - 関連論文とリンクされたデータを検索
基本的なワークフロー:
import requests
# Step 1: Search for articles
base_url = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/"
search_url = f"{base_url}esearch.fcgi"
params = {
"db": "pubmed",
"term": "diabetes[tiab] AND 2024[dp]",
"retmax": 100,
"retmode": "json",
"api_key": "YOUR_API_KEY" # Optional but recommended
}
response = requests.get(search_url, params=params)
pmids = response.json()["esearchresult"]["idlist"]
# Step 2: Fetch article details
fetch_url = f"{base_url}efetch.fcgi"
params = {
"db": "pubmed",
"id": ",".join(pmids),
"rettype": "abstract",
"retmode": "text",
"api_key": "YOUR_API_KEY"
}
response = requests.get(fetch_url, params=params)
abstracts = response.text
レート制限:
- API キーなし: 毎秒 3 リクエスト
- API キーあり: 毎秒 10 リクエスト
- 必ず User-Agent ヘッダーを含めてください
ベストプラクティス:
- 大規模な結果セットには履歴サーバー(usehistory=y)を使用する
- 複数の UID に対するバッチ処理は EPost を介して実装する
- 冗長な呼び出しを最小限にするため、結果をローカルにキャッシュする
- サービスの中断を避けるため、レート制限を遵守する
api_reference.md を参照するタイミング:
- エンドポイントの詳細なドキュメントが必要な場合
- 各 E-utility のパラメーター仕様が必要な場合
- バッチ処理や履歴サーバーのワークフローを構築する場合
- レスポンス形式(XML、JSON、テキスト)を理解する必要がある場合
- API エラーやレート制限の問題をトラブルシューティングする場合
API エンドポイントを検索する grep パターン: esearch|efetch|esummary|epost|elink|einfo
5. 引用文献のマッチングと論文の取得
部分的な引用情報や特定の識別子を使って論文を見つけます。
識別子による検索:
# By PMID
12345678[pmid]
# By DOI
10.1056/NEJMoa123456[doi]
# By PMC ID
PMC123456[pmc]
引用文献のマッチング(ECitMatch API を使用): 雑誌名、発行年、巻、ページ、著者を使用して PMID を見つけます:
Format: journal|year|volume|page|author|key|
Example: Science|2008|320|5880|1185|key1|
著者およびメタデータによる検索:
# First author with year and topic
smith ja[1au] AND 2023[dp] AND cancer[tiab]
# Journal, volume, and page
nature[ta] AND 2024[dp] AND 456[vi] AND 123-130[pg]
6. 系統的文献レビュー
系統的レビューやメタアナリシスのために、包括的な文献検索を実施します。
PICO フレームワーク(Population、Intervention、Comparison、Outcome): 臨床研究の疑問を体系的に構造化します:
# Example: Diabetes treatment effectiveness
# P: diabetes mellitus, type 2[mh]
# I: metformin[nm]
# C: lifestyle modification[tiab]
# O: glycemic control[tiab]
diabetes mellitus, type 2[mh] AND
(metformin[nm] OR lifestyle modification[tiab]) AND
glycemic control[tiab] AND
randomized controlled trial[pt]
包括的な検索戦略:
# Include multiple synonyms and MeSH terms
(disease name[tiab] OR disease name[mh] OR synonym[tiab]) AND
(treatment[tiab] OR therapy[tiab] OR intervention[tiab]) AND
(systematic review[pt] OR meta-analysis[pt] OR randomized controlled trial[pt]) AND
2020:2024[dp] AND
english[la]
検索の絞り込み:
- 広く検索を開始し、結果を確認する
- フィールドタグを使って具体性を加える
- 日付と出版物の種類によるフィルターを適用する
- 高度な検索を使用して、クエリの変換内容を確認する
- 複雑なクエリのために検索履歴を組み合わせる
common_queries.md を参照するタイミング:
- 特定の疾患の種類や研究分野に関するクエリ例が必要な場合
- さまざまな研究デザインのテンプレートが必要な場合
- 集団固有のクエリパターン(小児、高齢者など)を探している場合
- 方法論に特化した検索を構築する場合
- 品質フィルターやベストプラクティスのパターンが必要な場合
クエリ例を検索する grep パターン: diabetes|cancer|cardiovascular|clinical trial|systematic review
7. 検索履歴と保存済みの検索
効率的な研究ワークフローのために、PubMed の検索履歴と My NCBI の機能を利用します。
検索履歴(高度な検索経由):
- 最大 100 件の検索を保持
- 8 時間操作がないと期限切れになる
-
を使って以前の検索を組み合わせる
- 実行前に結果件数をプレビューする
例:
#1: diabetes mellitus[mh]
#2: cardiovascular diseases[mh]
#3: #1 AND #2 AND risk factors[tiab]
My NCBI の機能:
- 検索を無期限に保存する
- 新しい一致論文のメールアラートを設定する
- 保存済み論文のコレクションを作成する
- プロジェクトやトピックごとに研究を整理する
RSS フィード: 関心のある分野の新しい出版物を監視するために、任意の検索に対して RSS フィードを作成します。
8. 関連論文と引用の発見
関連する研究を見つけ、引用ネットワークを探索します。
類似論文機能: すべての PubMed 論文には、以下に基づいて事前計算された関連論文が含まれます:
- タイトルと抄録の類似性
- MeSH 用語の重複
- 重み付けされたアルゴリズムによるマッチング
関連データのための ELink:
# Find related articles programmatically
elink.fcgi?dbfrom=pubmed&db=pubmed&id=PMID&cmd=neighbor
引用リンク:
- 出版社の全文への LinkOut
- PubMed Central の無料論文へのリンク
- 関連する NCBI データベース(GenBank、ClinicalTrials.gov など)への接続
9. エクスポートと引用管理
検索結果を様々な形式でエクスポートし、引用管理やさらなる分析に利用できます。
エクスポート形式:
- 文献管理ツール(Zotero、Mendeley、EndNote)用の .nbib ファイル
- AMA、MLA、APA、NLM の引用スタイル
- データ分析用の CSV
- プログラムによる処理用の XML
クリップボードとコレクション:
- クリップボード: 最大 500 件のアイテムを一時保存(8 時間で期限切れ)
- コレクション: My NCBI アカウントを通じた永続的な保存
API によるバッチエクスポート:
# Export citations in MEDLINE format
efetch.fcgi?db=pubmed&id=PMID1,PMID2&rettype=medline&retmode=text
参照ファイルの活用
このスキルには、references/ ディレクトリに 3 つの包括的な参照ファイルが含まれています。
references/api_reference.md
9 つのエンドポイントすべて、パラメーター、レスポンス形式、ベストプラクティスを含む E-utilities API の完全なドキュメントです。次の場合に参照してください:
- PubMed へのプログラムによるアクセスを実装するとき
- API リクエストを組み立てるとき
- レート制限と認証を理解したいとき
- 履歴サーバーを使って大規模なデータセットを扱うとき
- API エラーのトラブルシューティングを行うとき
references/search_syntax.md
フィールドタグ、ブール演算子、ワイルドカード、特殊文字を含む PubMed 検索構文の詳細ガイドです。次の場合に参照してください:
- 複雑な検索クエリを組み立てるとき
- 自動用語マッピングを理解したいとき
- 高度な検索機能(近接検索、ワイルドカード)を使うとき
- フィルターと制限を適用するとき
- 予期しない検索結果のトラブルシューティングを行うとき
references/common_queries.md
さまざまな研究シナリオ、疾患の種類、研究手法に関するクエリ例の豊富なコレクションです。次の場合に参照してください:
- 新しい文献検索を始めるとき
- 特定の研究分野向けのテンプレートが必要なとき
- ベストプラクティスとなるクエリパターンを探しているとき
- システマティックレビューを実施するとき
- 特定の研究デザインや対象集団を検索するとき
参照ファイルの読み込み戦略: タスクに応じて必要な参照ファイルをコンテキストに読み込んでください。簡単なクエリや基本的な検索であれば、この SKILL.md の情報で十分な場合があります。複雑な操作では、該当する参照ファイルを確認してください。
一般的なワークフロー
ワークフロー 1: 基本的な文献検索
- 主要な概念と同義語を特定する
- ブール演算子とフィールドタグを使ってクエリを組み立てる
- 初期結果を確認し、クエリを絞り込む
- フィルター(日付、論文の種類、言語)を適用する
- 分析のために結果をエクスポートする
ワークフロー 2: システマティックレビューのための検索
- PICO フレームワークを使って研究課題を定義する
- 関連するすべての MeSH 用語と同義語を特定する
- 網羅的な検索戦略を組み立てる
- 複数のデータベースを検索する(PubMed を含む)
- 検索戦略と検索日を記録する
- スクリーニングとレビューのために結果をエクスポートする
ワークフロー 3: プログラムによるデータ抽出
- 検索クエリを設計し、Web インターフェースでテストする
- ESearch API を使って検索を実装する
- 大規模な結果セットには履歴サーバーを使用する
- EFetch で詳細なレコードを取得する
- XML/JSON レスポンスを解析する
- キャッシュを使ってデータをローカルに保存する
- レート制限とエラー処理を実装する
ワークフロー 4: 引用文献の探索
- 既知の関連論文から始める
- Similar Articles を使って関連する研究を見つける
- 引用している論文を確認する(利用可能な場合)
- 関連論文から MeSH 用語を調べる
- 発見内容に基づいて新しい検索を組み立てる
- ELink を使って関連するデータベースのエントリーを見つける
ワークフロー 5: 継続的な文献モニタリング
- 網羅的な検索クエリを組み立てる
- 精度を高めるためにクエリをテストし、調整する
- 検索を My NCBI アカウントに保存する
- 新しいヒットのためのメールアラートを設定する
- フィードリーダーで監視するための RSS フィードを作成する
- 新しい論文を定期的に確認する
ヒントとベストプラクティス
検索戦略
- まずは広く検索し、フィールドタグとフィルターで絞り込む
- 網羅性を高めるために、同義語と MeSH 用語を含める
- 完全一致のフレーズには引用符を使う
- 高度な検索の Search Details で、クエリがどのように変換されたかを確認する
- 検索履歴を使って複数の検索を組み合わせる
API の使用
- より高いレート制限(10 リクエスト/秒、3 リクエスト/秒の場合と比べて)を得るために API キーを取得する
- 500 件を超える記事の結果セットには履歴サーバーを使用する
- レート制限への対応として指数バックオフを実装する
- 冗長なリクエストを最小限に抑えるため、結果をローカルにキャッシュする
- 内容のわかる User-Agent ヘッダーを必ず含める
品質によるフィルタリング
- 統合されたエビデンスを得るために、システマティックレビューとメタアナリシスを優先する
- 特定の研究デザインを見つけるために、出版タイプフィルターを使用する
- 最新の研究を探すために、日付でフィルタリングする
- 必要に応じて言語フィルターを適用する
- すぐにアクセスできるように、無料全文フィルターを使用する
引用管理
- 検索結果を失わないように、早い段階から頻繁にエクスポートする
- ほとんどの文献管理ツールと互換性を持たせるため、.nbib 形式を使用する
- 永続的なコレクションのために My NCBI アカウントを作成する
- 再現性のために検索戦略を記録する
- プロジェクトごとに研究を整理するため、コレクションを使用する
制限事項と考慮点
データベースの対象範囲
- 主に生物医学およびライフサイエンスの文献が対象である
- 1975 年以前の論文には抄録がないことが多い
- 著者のフルネームは 2002 年以降から利用可能である
- 英語以外の抄録も利用可能だが、表示は英語がデフォルトになる場合がある
検索の制限
- 表示される結果は最大 10,000 件に制限される
- 検索履歴は 8 時間操作がないと失効する
- クリップボードは最大 500 件まで保持でき、8 時間で失効する
- 自動用語マッピングにより、予期しない結果が生じる場合がある
API に関する考慮点
- レート制限が適用される(3〜10 リクエスト/秒)
- 大規模なクエリはタイムアウトする場合がある(履歴サーバーを使用する)
- 詳細なデータを抽出するには XML の解析が必要である
- 本番環境での利用には API キーが推奨される
アクセスの制限
- PubMed が提供するのは書誌情報と抄録であり、全文とは限らない
- 全文へのアクセスは、出版社、所属機関のアクセス権、またはオープンアクセスの状況によって異なる
- LinkOut の利用可否は、雑誌や機関によって異なる
- 一部のコンテンツには購読や支払いが必要である
サポートリソース
- PubMed ヘルプ: https://pubmed.ncbi.nlm.nih.gov/help/
- E-utilities ドキュメント: https://www.ncbi.nlm.nih.gov/books/NBK25501/
- NLM ヘルプデスク: 1-888-FIND-NLM (1-888-346-3656)
- テクニカルサポート: vog.hin.mln.ibcn@seitilitue
- メーリングリスト: [email protected]