Skip to main content

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

MIT. 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

pubnetwork-0.1.3.tar.gz (104.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pubnetwork-0.1.3-py3-none-any.whl (105.4 kB view details)

Uploaded Python 3

File details

Details for the file pubnetwork-0.1.3.tar.gz.

File metadata

  • Download URL: pubnetwork-0.1.3.tar.gz
  • Upload date:
  • Size: 104.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for pubnetwork-0.1.3.tar.gz
Algorithm Hash digest
SHA256 4a7c74db3850160e1d1927cfaa7369e94d422edfc1927f596ed1e3bc343d96a5
MD5 cb279535f44fcbba2b4f804dd5ad38ba
BLAKE2b-256 1f4b8d6632debcb6d3d3eb8228bb26cc94c7d6ea237400b4338768f1dbd61bc1

See more details on using hashes here.

File details

Details for the file pubnetwork-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pubnetwork-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 105.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for pubnetwork-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0e68a8cf1c433fe5efdf030e5b70e2a4b90573050506131cc3087e40391a65f4
MD5 07d8493b6aaf73bab767a9cb5edcced0
BLAKE2b-256 274fbec7e41828a4aaeef227a7678a103519ab0c52a562f868080c7ac0fbf8f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page