Efficient database search tool for bioRxiv preprint server. Use this skill when searching for life sciences preprints by keywords, authors, date ranges, or categories, retrieving paper metadata, downloading PDFs, or conducting literature reviews.
Efficient database search tool for bioRxiv preprint server. Use this skill when searching for life sciences preprints by keywords, authors, date ranges, or categories, retrieving paper metadata, downloading PDFs, or conducting literature reviews.
bioRxiv Database
Overview
This skill provides efficient Python-based tools for searching and retrieving preprints from the bioRxiv database. It enables comprehensive searches by keywords, authors, date ranges, and categories, returning structured JSON metadata that includes titles, abstracts, DOIs, and citation information. The skill also supports PDF downloads for full-text analysis.
When to Use This Skill
Use this skill when:
Searching for recent preprints in specific research areas
Tracking publications by particular authors
Conducting systematic literature reviews
Analyzing research trends over time periods
Retrieving metadata for citation management
Downloading preprint PDFs for analysis
Filtering papers by bioRxiv subject categories
Core Search Capabilities
1. Keyword Search
Search for preprints containing specific keywords in titles, abstracts, or author lists.
Batch Processing:
For multiple PDFs, extract DOIs from a search result JSON and download each paper:
import json
from biorxiv_search import BioRxivSearcher
# Load search resultswithopen('results.json') as f:
data = json.load(f)
searcher = BioRxivSearcher(verbose=True)
# Download each paperfor i, paper inenumerate(data['results'][:10]): # First 10 papers
doi = paper['doi']
searcher.download_pdf(doi, f"papers/paper_{i+1}.pdf")
Valid Categories
Filter searches by bioRxiv subject categories:
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
Output Format
All searches return structured JSON with the following format:
{"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":""}]}
import json
withopen('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']}")
Download selected papers:
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}")
Trend Analysis
Track research trends by analyzing publication frequencies over time:
# Note: Abstract inclusion is controlled in Python APIfrom 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]
Programmatic Integration
Integrate search results into downstream analysis pipelines:
import json
import pandas as pd
# Load resultswithopen('results.json') as f:
data = json.load(f)
# Convert to DataFrame for analysis
df = pd.DataFrame(data['results'])
# Analyzeprint(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)
Testing the Skill
To verify that the bioRxiv database skill is working correctly, run the comprehensive test suite.
Prerequisites:
uv pip install requests
Run tests:
python tests/test_biorxiv_search.py
The test suite validates:
Initialization: BioRxivSearcher class instantiation
Date Range Search: Retrieving papers within specific date ranges
Category Filtering: Filtering papers by bioRxiv categories
Keyword Search: Finding papers containing specific keywords
DOI Lookup: Retrieving specific papers by DOI
Result Formatting: Proper formatting of paper metadata
Interval Search: Fetching recent papers by time intervals
Expected Output:
🧬 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.
Note: Some tests may show warnings if no papers are found in specific date ranges or categories. This is normal and does not indicate a failure.
Reference Documentation
For detailed API specifications, endpoint documentation, and response schemas, refer to:
references/api_reference.md - Complete bioRxiv API documentation