Publication network analyser - co-author graphs, citation trends, topic clusters from Google Scholar
Project description
PubNet
Visualise your research footprint. PubNet takes a Google Scholar profile and turns it into interactive visualisations - co-author networks, citation trends, topic clusters, journal impact factors, and formatted references - all from a single command.
Try the live demo - no install required.
What PubNet does
Paste any Google Scholar profile URL, and PubNet will:
- Map your co-author network as an interactive force-directed graph
- Chart your citation trends over time with a rolling h-index overlay
- Track your publications per year to show research output
- Cluster your work into research topics using TF-IDF and k-means
- Look up journal impact factors from a bundled database of 4,600+ journals
- Correct venue names via the Crossref API before impact factor lookup
- Format every publication as a copyable reference in APA, MLA, BibTeX, Vancouver, or Chicago style
- Export everything as JSON or CSV
PubNet has two interfaces: a CLI that generates self-contained HTML reports you can share, and an interactive web GUI for live exploration with filters, sorting, and cross-linked charts.
Quick start
Option 1: Try it online
Visit pubnetwork.onrender.com and click Analyze. A demo profile loads immediately. To analyse your own profile, paste your Google Scholar URL and click Analyze.
Option 2: Install locally
pip install pubnetwork
Requires Python 3.10+. Then:
# Generate an HTML report
pubnet analyze --scholar-url "https://scholar.google.com/citations?user=ML7X29AAAAAJ"
# Or launch the interactive GUI
pubnet gui
# Or try the bundled demo
pubnet demo
Option 3: Clone and develop
git clone https://github.com/sanjiv856/pubnet.git
cd pubnet
pip install -e ".[dev]"
pytest tests/
CLI reference
pubnet analyze [OPTIONS]
--scholar-url TEXT Google Scholar profile URL
--author-id TEXT Google Scholar author ID
--builtin Use bundled demo profile
--format [apa|mla|bibtex|vancouver|chicago]
Reference format (default: apa)
--topics INTEGER Number of topic clusters (default: 5)
-o, --output PATH Output HTML file path
--no-cache Force fresh Scholar fetch
--crossref / --no-crossref Crossref venue correction (default: enabled)
-v, --verbose Debug logging
pubnet gui Launch interactive web GUI at localhost:8050
pubnet demo Generate report from bundled demo profile
pubnet cache list Show cached profiles
pubnet cache clear Remove all cached data
Profiles are cached to ~/.pubnet/cache/ so repeated analyses don't re-fetch from Scholar.
How it works
Scholar URL → Fetch → Clean/Dedup → Crossref Enrich → Analyse → Render
The core library is a set of pure-function modules shared by both CLI and GUI:
| Module | What it does |
|---|---|
fetch.py |
Fetches Scholar profiles via SerpAPI or scholarly, with JSON caching |
analyze.py |
Builds co-author graphs, citation trends, topic clusters, summary stats |
formatters.py |
Formats references in APA, MLA, BibTeX, Vancouver, and Chicago styles |
journal_if.py |
Looks up impact factors from a bundled 4,600-journal Scimago database, with OpenAlex API fallback |
crossref.py |
Corrects venue names and retrieves DOIs via the free Crossref REST API |
report.py |
Renders self-contained HTML reports with embedded Plotly charts |
gui/ |
Dash web app with sidebar navigation, filters, and interactive cross-linked charts |
Tech stack
Python 3.10+ with scholarly, pydantic, networkx, dash, dash-cytoscape, plotly, scikit-learn, click, jinja2, rapidfuzz, and SerpAPI for cloud deployment.
Tests
pytest tests/
142+ tests covering models, fetcher, analysis, formatters, report rendering, CLI, and GUI components.
License
PolyForm Noncommercial 1.0.0 - free for academic, educational, and non-commercial research use. Commercial use requires a separate license. See LICENSE for details.
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 pubnetwork-0.1.2.tar.gz.
File metadata
- Download URL: pubnetwork-0.1.2.tar.gz
- Upload date:
- Size: 101.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
760e2758b3d94e582c9608ca139843fcc51f177cee95b23dcedbf9a8e8be1b87
|
|
| MD5 |
19dbb45bbf03e8f2bc3905984815ab47
|
|
| BLAKE2b-256 |
3419dba347670c06f711a28f72ba2c22c52710f6ef23885a74ab7690ac89e2a0
|
File details
Details for the file pubnetwork-0.1.2-py3-none-any.whl.
File metadata
- Download URL: pubnetwork-0.1.2-py3-none-any.whl
- Upload date:
- Size: 103.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ec2689c9760a78c6027d5764b34cd1e4432342e518498caf75ec2d540274f46
|
|
| MD5 |
b410064cce24e3397b580cba0c1a6f03
|
|
| BLAKE2b-256 |
e04680d3acd1c393ada68e4d03d655d6530f2a985e5963d60533303c46de2de0
|