literature-search-europepmc について
生命科学の研究者向けに、Europe PMCのオープンアクセス文献を検索し、論文本文や引用情報を取得するスキルです。キーワード検索のほか、DOIや著者、参考文献、引用文献からの検索にも対応します。
主な機能
- 01オープンアクセス論文の検索
- 02DOI・著者・IDによる論文検索
- 03PDFのダウンロードと全文取得
- 04引用文献と参考文献の取得
活用シーン
- 01テーマに関連するオープンアクセス論文の検索
- 02論文の全文やPDFの取得
- 03論文の引用元・参考文献の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ google-deepmind/ science-skills --skill literature-search-europepmcインストール後、Claude Code で/literature-search-europepmcを入力して読み込まれたか確認します。
同梱ファイルreferences/citation.bibscripts/europepmc_api.py
詳細
Europe PMC データベース
Europe PMC のオープンアクセス論文を検索、ダウンロード、閲覧するためのスキルです。Europe PMC は、4,300 万件を超える抄録と900万件の全文記事を収録する、包括的で無料の生命科学文献データベースです。
前提条件
uv:uvスキルを読み、そのセットアップ手順に従って、uvがインストールされ、PATH に設定されていることを確認してください。- ユーザーへの通知:ワークスペースのルートディレクトリに .licenses/literature_search_europepmc_LICENSE.txt がまだ存在しない場合は、(1)ユーザーに https://europepmc.org/ の利用条件を確認し、このスキルで取得した論文に制限がないか、必ずライセンスを確認するよう目立つ形で通知し、(2)通知文とタイムスタンプを記録したファイルを作成してください。
基本ルール
- オープンアクセスのみ:このスキルでは、オープンアクセスのコンテンツだけを検索します。スクリプトはすべての検索クエリに
OPEN_ACCESS:yを自動的に追加します。このフィルターを削除または上書きしないでください。 - python3 や python3 -c を直接実行しないでください:システムの Python には、必要な依存関係がすべてそろっているとは限りません。pip のインストールや新しい venv の作成を試みないでください。
- ラッパーを使用してください:API を直接呼び出さず、必ず提供されているスクリプトを使用してください。スクリプトがレート制限(1 req/s)とエラーを処理します。
- 出力ファイル:すべてのサブコマンドで、結果を書き込むために
--outputが必要です。コンテキストの過剰な消費を避けるため、出力ファイルは別途読み込んでください。 - **出典を記載してください。**このスキルを使用した場合は、その旨を出力に記載し、出力の作成に使用したすべての論文の URL を列挙してください。
ユーティリティスクリプト
すべてのコマンドは scripts/europepmc_api.py のサブコマンドです。レート制限と再試行は自動的に処理されます。
1. 検索(search)
クエリを使って Europe PMC を検索します。DOI 検索、キーワード検索、著者検索、PMID 検索、および完全な Europe PMC 検索構文に対応しています。
# Look up a paper by DOI
uv run scripts/europepmc_api.py search "DOI:10.1038/s41586-021-03819-2" --output result.json
# Keyword search
uv run scripts/europepmc_api.py search "CRISPR cancer" --max_results 5 --output results.json
# Author search
uv run scripts/europepmc_api.py search "AUTH:Jumper J" --max_results 10 --output results.json
# PMID lookup
uv run scripts/europepmc_api.py search "EXT_ID:34265844 AND SRC:MED" --output result.json
# Sorted by citations
uv run scripts/europepmc_api.py search "machine learning" \
--sort "CITED desc" --max_results 20 --output results.json
引数:
query(str、必須)— Europe PMC 構文を使った検索クエリ--output(str、必須)— 出力 JSON ファイルのパス--max_results(int、デフォルト 10)— 1 ページあたりの最大結果数(最大 1000)--result_type(str、デフォルトcore)—core(すべてのメタデータ)またはlite--cursor(str、デフォルト*)— ページネーション用のカーソルマーク。次のページを取得するには、前回のレスポンスのnextCursorMark値を渡します--sort(str)— 並べ替え順。例:CITED desc、P_PDATE_D desc(出版日降順)、P_PDATE_D asc
**出力:**次の3つのフィールドを含む JSON ファイルです。
hitCount(int)— 一致する記事の総数nextCursorMark(str)— 次のページのカーソル。ページがこれ以上ない場合は空文字列results(list)— 記事メタデータオブジェクトの配列
検索構文のクイックリファレンス:
DOI:10.xxxx/yyyy— DOI による検索EXT_ID:12345678 AND SRC:MED— PMID による検索AUTH:surname initials— 著者検索TITLE:keyword— タイトルのみを検索JOURNAL:name— ジャーナルによる検索PUB_YEAR:2024または(FIRST_PDATE:[2023-01-01 TO 2023-12-31])— 日付フィルターHAS_FT:y— Europe PMC に全文がある記事に限定- 論理演算子:
AND、OR、NOT
注:すべてのクエリには
OPEN_ACCESS:yが自動的に追加されます。手動で追加する必要はありません。
2. PDF のダウンロード(download_pdf)
PMCID を指定して、Europe PMC からオープンアクセスの PDF をダウンロードします。
uv run scripts/europepmc_api.py download_pdf PMC8371605 --output alphafold.pdf
引数:
pmcid(str、必須)— PubMed Central ID(例:PMC8371605)--output(str、必須)— PDF の保存先ファイルパス
**出力:**指定したファイルに PDF を保存します。PMCID が見つからない場合、またはレスポンスが有効な PDF ではない場合は、エラーで終了します。PDF をダウンロードしたら、ダウンロードした PDF が空でないこと、および破損していないことを確認してください。
3. 全文を取得する(get_fulltext)
オープンアクセス論文の全文を取得し、ファイルに保存します。デフォルトではプレーンテキスト(XML タグを削除済み)を返します。--format xml を指定すると、生の XML を返します。
# Get plain text (default)
uv run scripts/europepmc_api.py get_fulltext PMC8371605 --output fulltext.txt
# Get raw XML
uv run scripts/europepmc_api.py get_fulltext PMC8371605 --format xml --output fulltext.xml
引数:
pmcid(str、必須)— PubMed Central ID--output(str、必須)— 出力ファイルのパス--format(str、デフォルトはtext)—text(プレーンテキスト)またはxml(生の JATS XML)
出力: 全文が指定したファイルに書き込まれます。論文が Europe PMC のオープンアクセスサブセットに含まれていない場合は、エラーで終了します。
重要:全文を利用できるのは、PMC Open Access Subset に含まれる論文のみです。取得に失敗した場合は、
searchを使用してisOpenAccessフィールドを確認し、抄録に切り替えてください。
4. 被引用文献を取得する(get_citations)
指定した論文を引用している論文を取得します。
# Get citations for the AlphaFold paper (PMID 34265844)
uv run scripts/europepmc_api.py get_citations MED 34265844 \
--page_size 25 --output citations.json
引数:
source(str、必須)— ソースデータベース:MED(PubMed)、PMC、PPR(プレプリント)、PAT(特許)article_id(str、必須)— ソースデータベースにおける論文 ID--output(str、必須)— 出力 JSON ファイルのパス--page(int、デフォルトは 1)— ページ番号--page_size(int、デフォルトは 25)— 1 ページあたりの結果数
出力: hitCount と citations 配列を含む JSON ファイル。
5. 参考文献を取得する(get_references)
指定した論文の参考文献一覧を取得します。
# Get references from the AlphaFold paper
uv run scripts/europepmc_api.py get_references MED 34265844 \
--page_size 100 --output references.json
引数:
source(str、必須)— ソースデータベース:MED、PMC、PPR、PATarticle_id(str、必須)— ソースデータベースにおける論文 ID--output(str、必須)— 出力 JSON ファイルのパス--page(int、デフォルトは 1)— ページ番号--page_size(int、デフォルトは 25)— 1 ページあたりの結果数
出力: hitCount と references 配列を含む JSON ファイル。
よく使うワークフロー
DOI から PDF を取得する
# Step 1: Search for the PMCID
uv run scripts/europepmc_api.py search "DOI:10.1038/s41586-021-03819-2" --output result.json
PMCID=$(jq -r '.results[0].pmcid // empty' result.json)
# Step 2: Download the PDF
uv run scripts/europepmc_api.py download_pdf "$PMCID" --output paper.pdf
PMID から全文を取得する
# Step 1: Find the PMCID from a PMID
uv run scripts/europepmc_api.py search "EXT_ID:34265844 AND SRC:MED" --output result.json
PMCID=$(jq -r '.results[0].pmcid // empty' result.json)
# Step 2: Get the full text
uv run scripts/europepmc_api.py get_fulltext "$PMCID" --output fulltext.txt
引用グラフをたどる
# Find what papers cite a landmark study, then check their references
uv run scripts/europepmc_api.py get_citations MED 34265844 --page_size 50 --output citing.json
# Parse a cited paper's PMID and explore its references
uv run scripts/europepmc_api.py get_references MED <CITING_PMID> --output refs.json
ページネーションを使用して検索する
# First page
uv run scripts/europepmc_api.py search "CRISPR" --max_results 100 --output page1.json
# Extract cursor for next page
CURSOR=$(jq -r '.nextCursorMark // empty' page1.json)
# Next page
uv run scripts/europepmc_api.py search "CRISPR" --max_results 100 --cursor "$CURSOR" --output page2.json