mcpField
B
biorxiv-database

biorxiv-database

github.com/jackspace生产力1637 次安装12 周前更新
代码仓库

关于 biorxiv-database

bioRxiv Database 是面向文献检索和预印本追踪的 Python 工具,适用于研究人员。它支持按关键词、作者、日期和学科类别搜索,返回结构化元数据,并可下载 PDF。

主要功能

  1. 01按关键词和作者搜索
  2. 02按日期和类别筛选
  3. 03通过 DOI 获取论文详情
  4. 04导出结构化 JSON 元数据
  5. 05下载预印本 PDF

适用场景

  1. 01查找研究领域的近期论文
  2. 02追踪特定作者的预印本
  3. 03收集文献综述所需论文
  4. 04下载选定论文进行分析

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jackspace/claudeskillz --skill biorxiv-database

安装后在 Claude Code 中输入/biorxiv-database确认已加载。

附带文件SKILL.json

详细介绍

bioRxiv 数据库

概述

本技能提供高效的基于 Python 的工具,用于搜索和检索 bioRxiv 数据库中的预印本。它支持按关键词、作者、日期范围和类别进行全面的搜索,返回结构化 JSON 元数据,包括标题、摘要、DOI 和引用信息。本技能还支持下载 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.5s)。对于大规模数据收集,请添加额外延迟。

  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 数据库技能是否正常工作,请运行完整的测试套件。

前提条件:

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 端点规范
  • 响应格式详情
  • 错误处理模式
  • 速率限制指南
  • 高级搜索模式

评论

支持 Markdown