mcpField
B
biorxiv-database

biorxiv-database

github.com/davila7生産性33.0k358 回インストール今日更新
リポジトリ

biorxiv-database について

biorxiv-databaseは、研究者向けにbioRxivのプレプリントを検索・取得するPythonベースのスキルです。キーワード、著者、日付、カテゴリ、DOIで検索でき、JSONメタデータの出力とPDFのダウンロードにも対応します。

主な機能

  1. 01キーワード・著者・日付で検索
  2. 02bioRxivの分野カテゴリで絞り込み
  3. 03DOIからメタデータを取得
  4. 04構造化JSON結果の出力
  5. 05プレプリントPDFのダウンロード

活用シーン

  1. 01研究分野の新着論文を探す
  2. 02特定著者のプレプリントを追跡
  3. 03文献レビュー用の資料を集める
  4. 04全文分析用に論文をダウンロード

インストール

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

$npx skills add https://github.com/davila7/claude-code-templates --skill biorxiv-database

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

同梱ファイルreferences/api_reference.mdscripts/biorxiv_search.py

詳細

bioRxiv データベース

概要

このスキルは、bioRxiv データベースからプレプリントを検索・取得するための、効率的な Python ベースのツールを提供します。キーワード、著者、日付範囲、カテゴリによる包括的な検索が可能で、タイトル、抄録、DOI、引用情報を含む構造化された JSON メタデータを返します。また、全文分析のための PDF ダウンロードにも対応しています。

このスキルを使用するタイミング

次のような場合にこのスキルを使用します:

  • 特定の研究分野で最新のプレプリントを検索する場合
  • 特定の著者の論文を追跡する場合
  • 系統的な文献レビューを実施する場合
  • 一定期間にわたる研究動向を分析する場合
  • 引用管理のためにメタデータを取得する場合
  • 分析用にプレプリントの PDF をダウンロードする場合
  • bioRxiv の主題カテゴリで論文を絞り込む場合

中核となる検索機能

1. キーワード検索

タイトル、抄録、または著者リストに特定のキーワードを含むプレプリントを検索します。

基本的な使い方:

python scripts/biorxiv_search.py \
  --keywords "CRISPR" "gene editing" \
  --start-date 2024-01-01 \
  --end-date 2024-12-31 \
  --output results.json

カテゴリフィルター付き:

python scripts/biorxiv_search.py \
  --keywords "neural networks" "deep learning" \
  --days-back 180 \
  --category neuroscience \
  --output recent_neuroscience.json

検索フィールド: デフォルトでは、キーワードはタイトルと抄録の両方で検索されます。--search-fields でカスタマイズできます:

python scripts/biorxiv_search.py \
  --keywords "AlphaFold" \
  --search-fields title \
  --days-back 365
2. 著者検索

日付範囲内で特定の著者のすべての論文を検索します。

基本的な使い方:

python scripts/biorxiv_search.py \
  --author "Smith" \
  --start-date 2023-01-01 \
  --end-date 2024-12-31 \
  --output smith_papers.json

最近の出版物:

# Last year by default if no dates specified
python scripts/biorxiv_search.py \
  --author "Johnson" \
  --output johnson_recent.json
3. 日付範囲検索

特定の日付範囲内に投稿されたすべてのプレプリントを取得します。

基本的な使い方:

python scripts/biorxiv_search.py \
  --start-date 2024-01-01 \
  --end-date 2024-01-31 \
  --output january_2024.json

カテゴリフィルター付き:

python scripts/biorxiv_search.py \
  --start-date 2024-06-01 \
  --end-date 2024-06-30 \
  --category genomics \
  --output genomics_june.json

過去の日数指定のショートカット:

# Last 30 days
python scripts/biorxiv_search.py \
  --days-back 30 \
  --output last_month.json
4. DOI による論文詳細の取得

特定のプレプリントの詳細なメタデータを取得します。

基本的な使い方:

python scripts/biorxiv_search.py \
  --doi "10.1101/2024.01.15.123456" \
  --output paper_details.json

DOI の完全な URL も受け付けます:

python scripts/biorxiv_search.py \
  --doi "https://doi.org/10.1101/2024.01.15.123456"
5. PDF のダウンロード

任意のプレプリントの全文 PDF をダウンロードします。

基本的な使い方:

python scripts/biorxiv_search.py \
  --doi "10.1101/2024.01.15.123456" \
  --download-pdf paper.pdf

一括処理: 複数の PDF をダウンロードする場合は、検索結果の JSON から DOI を抽出し、各論文をダウンロードします:

import json
from biorxiv_search import BioRxivSearcher

# Load search results
with open('results.json') as f:
    data = json.load(f)

searcher = BioRxivSearcher(verbose=True)

# Download each paper
for i, paper in enumerate(data['results'][:10]):  # First 10 papers
    doi = paper['doi']
    searcher.download_pdf(doi, f"papers/paper_{i+1}.pdf")

有効なカテゴリ

bioRxiv の主題カテゴリで検索を絞り込みます:

  • animal-behavior-and-cognition
  • biochemistry
  • bioengineering
  • bioinformatics
  • biophysics
  • cancer-biology
  • cell-biology
  • clinical-trials
  • developmental-biology
  • ecology
  • epidemiology
  • evolutionary-biology
  • genetics
  • genomics
  • immunology
  • microbiology
  • molecular-biology
  • neuroscience
  • paleontology
  • pathology
  • pharmacology-and-toxicology
  • physiology
  • plant-biology
  • scientific-communication-and-education
  • synthetic-biology
  • systems-biology
  • zoology

出力形式

すべての検索は、次の形式の構造化された JSON を返します:

{
  "query": {
    "keywords": ["CRISPR"],
    "start_date": "2024-01-01",
    "end_date": "2024-12-31",
    "category": "genomics"
  },
  "result_count": 42,
  "results": [
    {
      "doi": "10.1101/2024.01.15.123456",
      "title": "Paper Title Here",
      "authors": "Smith J, Doe J, Johnson A",
      "author_corresponding": "Smith J",
      "author_corresponding_institution": "University Example",
      "date": "2024-01-15",
      "version": "1",
      "type": "new results",
      "license": "cc_by",
      "category": "genomics",
      "abstract": "Full abstract text...",
      "pdf_url": "https://www.biorxiv.org/content/10.1101/2024.01.15.123456v1.full.pdf",
      "html_url": "https://www.biorxiv.org/content/10.1101/2024.01.15.123456v1",
      "jatsxml": "https://www.biorxiv.org/content/...",
      "published": ""
    }
  ]
}

一般的な使用パターン

文献レビューのワークフロー
  1. 広範なキーワード検索:
python scripts/biorxiv_search.py \
  --keywords "organoids" "tissue engineering" \
  --start-date 2023-01-01 \
  --end-date 2024-12-31 \
  --category bioengineering \
  --output organoid_papers.json
  1. 結果の抽出とレビュー:
import json

with open('organoid_papers.json') as f:
    data = json.load(f)

print(f"Found {data['result_count']} papers")

for paper in data['results'][:5]:
    print(f"\nTitle: {paper['title']}")
    print(f"Authors: {paper['authors']}")
    print(f"Date: {paper['date']}")
    print(f"DOI: {paper['doi']}")
  1. 選択した論文のダウンロード:
from biorxiv_search import BioRxivSearcher

searcher = BioRxivSearcher()
selected_dois = ["10.1101/2024.01.15.123456", "10.1101/2024.02.20.789012"]

for doi in selected_dois:
    filename = doi.replace("/", "_").replace(".", "_") + ".pdf"
    searcher.download_pdf(doi, f"papers/{filename}")
動向分析

論文数の時系列変化を分析して研究動向を追跡します:

python scripts/biorxiv_search.py \
  --keywords "machine learning" \
  --start-date 2020-01-01 \
  --end-date 2024-12-31 \
  --category bioinformatics \
  --output ml_trends.json

その後、結果の時間的分布を分析します。

著者の追跡

特定の研究者のプレプリントを監視します:

# Track multiple authors
authors = ["Smith", "Johnson", "Williams"]

for author in authors:
    python scripts/biorxiv_search.py \
      --author "{author}" \
      --days-back 365 \
      --output "{author}_papers.json"

Python API の使用

より複雑なワークフローでは、BioRxivSearcher クラスを直接インポートして使用します:

from scripts.biorxiv_search import BioRxivSearcher

# Initialize
searcher = BioRxivSearcher(verbose=True)

# Multiple search operations
keywords_papers = searcher.search_by_keywords(
    keywords=["CRISPR", "gene editing"],
    start_date="2024-01-01",
    end_date="2024-12-31",
    category="genomics"
)

author_papers = searcher.search_by_author(
    author_name="Smith",
    start_date="2023-01-01",
    end_date="2024-12-31"
)

# Get specific paper details
paper = searcher.get_paper_details("10.1101/2024.01.15.123456")

# Download PDF
success = searcher.download_pdf(
    doi="10.1101/2024.01.15.123456",
    output_path="paper.pdf"
)

# Format results consistently
formatted = searcher.format_result(paper, include_abstract=True)

ベストプラクティス

  1. 適切な日付範囲を使用する: 日付範囲が狭いほど検索は速くなります。長期間にわたるキーワード検索では、複数のクエリに分割することを検討してください。

  2. カテゴリで絞り込む: 可能な場合は --category を使用して、データ転送量を減らし、検索精度を高めます。

  3. レート制限を遵守する: スクリプトにはリクエスト間の自動遅延(0.5 秒)が組み込まれています。大規模なデータ収集では、追加の遅延を入れてください。

  4. 結果をキャッシュする: 検索結果を JSON ファイルに保存し、API 呼び出しの繰り返しを避けます。

  5. バージョンの追跡: プレプリントは複数のバージョンを持つことがあります。version フィールドは返された バージョンを示します。PDF の URL にはバージョン番号が含まれます。

  6. エラーを適切に処理する: 出力 JSON の result_count を確認してください。結果が空の場合は、日付範囲の問題または API への接続の問題が考えられます。

  7. デバッグ用の詳細モード: --verbose フラグを使用すると、API リクエストとレスポンスの詳細なログを確認できます。

高度な機能

カスタム日付範囲のロジック
from datetime import datetime, timedelta

# Last quarter
end_date = datetime.now()
start_date = end_date - timedelta(days=90)

python scripts/biorxiv_search.py \
  --start-date {start_date.strftime('%Y-%m-%d')} \
  --end-date {end_date.strftime('%Y-%m-%d')}
結果の件数制限

返される結果の数を制限します:

python scripts/biorxiv_search.py \
  --keywords "COVID-19" \
  --days-back 30 \
  --limit 50 \
  --output covid_top50.json
高速化のためにアブストラクトを除外

メタデータのみが必要な場合:

# Note: Abstract inclusion is controlled in Python API
from scripts.biorxiv_search import BioRxivSearcher

searcher = BioRxivSearcher()
papers = searcher.search_by_keywords(keywords=["AI"], days_back=30)
formatted = [searcher.format_result(p, include_abstract=False) for p in papers]

プログラムによる統合

検索結果を後続の分析パイプラインに統合します:

import json
import pandas as pd

# Load results
with open('results.json') as f:
    data = json.load(f)

# Convert to DataFrame for analysis
df = pd.DataFrame(data['results'])

# Analyze
print(f"Total papers: {len(df)}")
print(f"Date range: {df['date'].min()} to {df['date'].max()}")
print(f"\nTop authors by paper count:")
print(df['authors'].str.split(',').explode().str.strip().value_counts().head(10))

# Filter and export
recent = df[df['date'] >= '2024-06-01']
recent.to_csv('recent_papers.csv', index=False)

スキルのテスト

bioRxiv データベーススキルが正しく動作していることを確認するには、包括的なテストスイートを実行します。

前提条件:

uv pip install requests

テストの実行:

python tests/test_biorxiv_search.py

テストスイートでは以下を検証します:

  • 初期化: BioRxivSearcher クラスのインスタンス化
  • 日付範囲検索: 特定の日付範囲内の論文の取得
  • カテゴリフィルタリング: bioRxiv のカテゴリによる論文の絞り込み
  • キーワード検索: 特定のキーワードを含む論文の検索
  • DOI 検索: DOI による特定の論文の取得
  • 結果のフォーマット: 論文メタデータの適切な書式設定
  • インターバル検索: 時間間隔による最新論文の取得

期待される出力:

🧬 bioRxiv Database Search Skill Test Suite
======================================================================

🧪 Test 1: Initialization
✅ BioRxivSearcher initialized successfully

🧪 Test 2: Date Range Search
✅ Found 150 papers between 2024-01-01 and 2024-01-07
   First paper: Novel CRISPR-based approach for genome editing...

[... additional tests ...]

======================================================================
📊 Test Summary
======================================================================
✅ PASS: Initialization
✅ PASS: Date Range Search
✅ PASS: Category Filtering
✅ PASS: Keyword Search
✅ PASS: DOI Lookup
✅ PASS: Result Formatting
✅ PASS: Interval Search
======================================================================
Results: 7/7 tests passed (100%)
======================================================================

🎉 All tests passed! The bioRxiv database skill is working correctly.

注: 特定の日付範囲やカテゴリで論文が見つからない場合、テストで警告が表示されることがあります。これは正常な動作であり、失敗を示すものではありません。

リファレンスドキュメント

詳細な API 仕様、エンドポイントのドキュメント、レスポンススキーマについては、以下を参照してください:

  • references/api_reference.md - bioRxiv API の完全なドキュメント

リファレンスファイルには以下が含まれます:

  • API エンドポイントの完全な仕様
  • レスポンス形式の詳細
  • エラー処理のパターン
  • レート制限のガイドライン
  • 高度な検索パターン

コメント