A comprehensive tool to retrieve research data from multiple academic databases (Scopus, OpenAlex, Semantic Scholar, CrossRef, PubMed, Google Scholar), analyze trends, and generate interactive dashboards with recommendations
Project description
Research Trends Scopus
A comprehensive Python package to retrieve research data from multiple academic databases, analyze publication trends, and generate interactive dashboards with actionable recommendations for research exploration.
🌐 Supported Data Sources
| Source | API Key | Coverage | Best For |
|---|---|---|---|
| OpenAlex | Not required | 250M+ works | General research (recommended) |
| Semantic Scholar | Optional | 200M+ papers | AI/ML research, citations |
| CrossRef | Not required | 150M+ DOIs | Metadata & DOI lookup |
| PubMed | Optional | 36M+ papers | Biomedical/life sciences |
| Scopus | Required | 90M+ records | Comprehensive citation data |
| Google Scholar | N/A (scraper) | Largest | Citation counts |
🚀 Features
- Multi-Source Data Retrieval: Fetch from OpenAlex, Scopus, Semantic Scholar, CrossRef, PubMed, and Google Scholar
- Unified Interface: Single API to query multiple databases with automatic fallback and deduplication
- Trend Analysis: Analyze publication trends over time, by author, institution, and topic
- Network Analysis: Visualize collaboration networks and citation patterns
- Topic Modeling: Discover emerging research themes using NLP techniques
- Interactive Dashboard: Generate beautiful dashboards using Plotly and Dash
- Smart Recommendations: Get AI-powered suggestions for research areas to explore
- Caching: Built-in caching to minimize API calls and improve performance
- Export: Export data and visualizations in multiple formats
📦 Installation
From PyPI
pip install research-trends-scopus
With optional dependencies
# For development
pip install research-trends-scopus[dev]
# For documentation
pip install research-trends-scopus[docs]
# For Jupyter notebook support
pip install research-trends-scopus[notebook]
# Install all optional dependencies
pip install research-trends-scopus[all]
From source
git clone https://github.com/research-trends/research-trends-scopus.git
cd research-trends-scopus
pip install -e ".[all]"
⚙️ Configuration
API Keys (Optional for most sources)
Most data sources work without API keys. Only Scopus requires an API key.
For Scopus (optional):
export SCOPUS_API_KEY="your-api-key-here"
For Semantic Scholar (optional, increases rate limits):
export S2_API_KEY="your-api-key-here"
.env file:
SCOPUS_API_KEY=your-api-key-here
S2_API_KEY=your-optional-s2-key
🎯 Quick Start
Using OpenAlex (Recommended - No API Key Required)
from research_trends import OpenAlexClient, TrendAnalyzer, Dashboard
# Initialize the client (no API key needed!)
client = OpenAlexClient(email="your@email.com") # email for polite pool
# Search for publications
results = client.search(
query="machine learning healthcare",
from_year=2020,
max_results=500
)
# Analyze trends
analyzer = TrendAnalyzer(results.publications)
trends = analyzer.analyze()
# Launch interactive dashboard
dashboard = Dashboard(analyzer)
dashboard.run(port=8050)
Multi-Source Search with UnifiedClient
from research_trends import UnifiedClient, DataSource, TrendAnalyzer
# Initialize unified client
unified = UnifiedClient()
# Search multiple sources at once
multi_results = unified.search_multiple(
query="deep learning",
sources=[DataSource.OPENALEX, DataSource.SEMANTIC_SCHOLAR],
max_results=100
)
# Merge and deduplicate results
publications = multi_results.merge_deduplicated()
print(f"Found {len(publications)} unique publications from multiple sources")
# Search with automatic fallback
results = unified.search_with_fallback(
query="quantum computing",
sources=[DataSource.SCOPUS, DataSource.OPENALEX, DataSource.CROSSREF],
max_results=200
)
Individual Clients
from research_trends import (
OpenAlexClient, # 250M+ works, free
SemanticScholarClient, # 200M+ papers, free
CrossRefClient, # 150M+ DOIs, free
PubMedClient, # 36M+ biomedical, free
ScopusClient, # 90M+ records, requires API key
GoogleScholarClient # Largest, web scraper
)
# Semantic Scholar (great for AI/ML research)
s2 = SemanticScholarClient()
papers = s2.search("transformer architecture", max_results=100)
# CrossRef (great for DOI lookups)
crossref = CrossRefClient()
paper = crossref.get_work_by_doi("10.1038/nature12373")
# PubMed (great for biomedical research)
pubmed = PubMedClient()
results = pubmed.search("CRISPR gene editing", max_results=50)
Using Scopus (Requires API Key)
from research_trends import ScopusClient, TrendAnalyzer, Dashboard
# Initialize the client
client = ScopusClient() # Uses SCOPUS_API_KEY from environment
# Search for publications
publications = client.search(
query="machine learning healthcare",
start_year=2020,
end_year=2025,
max_results=1000
)
# Analyze trends
analyzer = TrendAnalyzer(publications)
trends = analyzer.analyze()
recommendations = analyzer.get_recommendations()
# Launch interactive dashboard
dashboard = Dashboard(analyzer)
dashboard.run(port=8050)
Command Line Interface
# Search and analyze
research-trends search "artificial intelligence" --years 2020-2025 --output results.json
# Generate dashboard
research-trends dashboard results.json --port 8050
# Get recommendations
research-trends recommend results.json --top 10
📊 Dashboard Features
The interactive dashboard includes:
- Publication Timeline: Track publication volume over time
- Author Analysis: Identify top authors and their productivity
- Institution Rankings: Compare research output by institution
- Geographic Distribution: World map of research activity
- Keyword Trends: Track emerging keywords and topics
- Citation Analysis: Analyze citation patterns and impact
- Collaboration Network: Interactive network visualization
- Topic Clusters: Discover research themes and clusters
📈 Analysis Capabilities
Trend Analysis
- Publication count trends
- Citation trends
- Author productivity trends
- Keyword emergence patterns
Network Analysis
- Co-authorship networks
- Citation networks
- Institutional collaboration networks
Topic Modeling
- Keyword extraction
- Topic clustering
- Emerging topic detection
Recommendations
- Underexplored research areas
- Potential collaboration opportunities
- High-impact journals for publication
- Trending research directions
📚 Documentation
Full documentation is available at https://research-trends-scopus.readthedocs.io
🧪 Examples
Check out the examples directory for:
- Jupyter notebooks with step-by-step tutorials
- Sample analyses for different research domains
- Dashboard customization examples
🤝 Contributing
Contributions are welcome! Please read our Contributing Guide for details on:
- Code of conduct
- Development setup
- Submitting pull requests
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- OpenAlex - Free, open catalog of scholarly papers
- Semantic Scholar - AI-powered research tool
- CrossRef - DOI registration agency
- PubMed/NCBI - Biomedical literature database
- Elsevier for the Scopus API
- The open-source Python community
📬 Contact
- Issues: GitHub Issues
- Email: research-trends@example.com
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file research_trends_scopus-0.2.0.tar.gz.
File metadata
- Download URL: research_trends_scopus-0.2.0.tar.gz
- Upload date:
- Size: 57.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55af1e2ab7a18ead3cfa3f8b954dfef6150d2ab64668ac41559648474e5929b1
|
|
| MD5 |
24b715be387f29b2d2daf8ff3db1d9d8
|
|
| BLAKE2b-256 |
2e0df3a8845145cc6ec58f1f0d183fd2b4b8cc14e52e2d5610a27c3896147bb9
|
File details
Details for the file research_trends_scopus-0.2.0-py3-none-any.whl.
File metadata
- Download URL: research_trends_scopus-0.2.0-py3-none-any.whl
- Upload date:
- Size: 60.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7060310ec81de6a761e571ef2b7c7760558a9229b407c641a4e9d5da6fad0358
|
|
| MD5 |
e8869fc8cac576e06d4883aa7efb3abc
|
|
| BLAKE2b-256 |
b36485a2d51e3679e40c49e5cc00712e17e1e24494a32e87623f7c5624edba9b
|