关于 biorxiv-database
biorxiv-database 是面向研究人员的 Python 工具,可搜索和获取 bioRxiv 预印本。它支持关键词、作者、日期、类别及 DOI 查询,并提供结构化 JSON 元数据和 PDF 下载。
主要功能
- 01按关键词、作者或日期搜索
- 02按 bioRxiv 学科类别筛选
- 03通过 DOI 获取元数据
- 04导出结构化 JSON 结果
- 05下载预印本 PDF
适用场景
- 01查找研究领域的近期论文
- 02追踪指定作者的预印本
- 03收集文献综述参考资料
- 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 数据库
概述
本技能提供高效的基于 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-cognitionbiochemistrybioengineeringbioinformaticsbiophysicscancer-biologycell-biologyclinical-trialsdevelopmental-biologyecologyepidemiologyevolutionary-biologygeneticsgenomicsimmunologymicrobiologymolecular-biologyneurosciencepaleontologypathologypharmacology-and-toxicologyphysiologyplant-biologyscientific-communication-and-educationsynthetic-biologysystems-biologyzoology
输出格式
所有搜索都返回以下格式的结构化 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": ""
}
]
}
常见使用模式
文献综述工作流
- 宽泛的关键词搜索:
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
- 提取并查看结果:
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']}")
- 下载选定的论文:
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)
最佳实践
-
使用适当的日期范围:日期范围越小,返回速度越快。对于长时间跨度的关键词搜索,考虑拆分为多个查询。
-
按类别筛选:在可能的情况下,使用
--category以减少数据传输并提高搜索精度。 -
遵守速率限制:脚本包含自动延迟(请求之间间隔 0.5s)。对于大规模数据收集,请添加额外延迟。
-
缓存结果:将搜索结果保存到 JSON 文件,以避免重复的 API 调用。
-
版本追踪:预印本可能有多个版本。
version字段指示返回的是哪个版本。PDF URL 包含版本号。 -
优雅地处理错误:检查输出 JSON 中的
result_count。结果为空可能表明日期范围有问题或 API 连接出现问题。 -
调试时使用详细模式:使用
--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 端点规范
- 响应格式详情
- 错误处理模式
- 速率限制指南
- 高级搜索模式