PubTrends is an interactive scientific literature exploration tool that helps researchers analyze topics, visualize research trends, and discover related works.
Available online at: https://pubtrends.info/
With PubTrends, you can:
- Gain a concise overview of your research area.
- Explore popular trends and impactful publications.
- Discover new and promising research directions.
See an example of the analysis at: https://pubtrends.info/about.html
- Pubmed ~40 mln papers and 450 mln citations
- Semantic Scholar 170 mln papers and 600 mln citations
PubTrends is a Python / Kotlin + JavaScript web service with a PostgreSQL backend. It uses:
- Languages: Python + Kotlin + JavaScript
- Backend: Nginx + Flask + Gunicorn
- Task Queue: Celery + Redis
- DataBase: Postgres + Postgres pgvector + Psycopg2 + Kotlin ORM
- Data Analysis: Pandas, NumPy, Scikit-learn
- Semantic Search: Sentence-Tranformers + Faiss
- NLP: NLTK, SpaCy, GenSim, Fasttext
- Visualization: Bokeh, Holoviews, Seaborn, Matplotlib
- Frontend: Bootstrap, jQuery, Cytoscape.js
- Deployment: Docker Compose
- Testing: PyTest + Flake8 + JUnit + TeamCity
See pyproject.toml for the full list of libraries used in the project.
For detailed information, see:
- DATABASE.md - Database setup and data loading
- DEVELOPMENT.md - Development environment, testing, and deployment
- CHANGES.md - Version history and changelog
-
Copy and modify
config.propertiesto~/.pubtrends/config.propertieswith your database credentials. -
Set up the database - see DATABASE.md for detailed instructions.
-
Set up development environment - see DEVELOPMENT.md for detailed instructions.
See AUTHORS.md for a list of authors and contributors.
-
Shpynov, O. and Kapralov, N., 2021, August. PubTrends: a scientific literature explorer. In Proceedings of the 12th ACM Conference on Bioinformatics, Computational Biology, and Health Informatics (pp. 1-1). https://doi.org/10.1145/3459930.3469501
Here’s how you can help:
- ⭐ Star this repo, help others to discover it
- 🐛 Found a bug? Open an issue
- 💡 Have an idea? Feel free to submit a feature request or a PR
- 👍 Upvote issues you care about, help us prioritize
