Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

πŸ“Š GraphAvalanche

Interactive Citation Network Visualizer for AVALANCHE Literature Discovery Results

Transform your AVALANCHE literature search into beautiful, interactive citation networks with automatic tier-based highlighting. Create Connected Papers-style visualizations for your systematic reviews and meta-analyses.

Python 3.8+ License: MIT Streamlit


🌟 Features

Interactive Citation Networks

  • Connected Papers-style visualization - Navigate citation relationships intuitively
  • Tier-based color coding - Automatically highlights high-impact papers
  • Multiple layout algorithms - Spring, Kamada-Kawai, Circular, Spectral
  • Interactive exploration - Zoom, pan, hover for details

Smart Analysis

  • Automatic tiering - Papers categorized by citation impact (customizable thresholds)
  • Network statistics - Density, connectivity, influential papers
  • Timeline view - Chronological publication trends
  • OpenAlex integration - Fetches citation relationships automatically

Export & Share

  • GraphML export - Import to Gephi, Cytoscape, or igraph
  • CSV export - Data analysis in R/Python/Excel
  • Publication-ready figures - High-quality visualizations for papers

πŸš€ Quick Start

Installation

# Clone the repository
git clone https://github.com/HaroldMate1/GraphAvalanche.git
cd GraphAvalanche
# Install dependencies
pip install -r requirements.txt

Run the App

python -m streamlit --version python -m streamlit run app_v2.py


πŸ“– Usage

1. Generate AVALANCHE Results

First, run AVALANCHE to discover literature:

python avalanche.py 10.1038/s41586-020-2649-2

This creates avalanche_results.xlsx with your papers.

2. Upload to GraphAvalanche

  1. Launch GraphAvalanche: streamlit run app_v2.py
  2. Click "Upload AVALANCHE Excel Results" in the sidebar
  3. Select your avalanche_results.xlsx file

3. Customize Tiers (Optional)

Adjust citation thresholds in the sidebar:

  • Tier 1 (Gold): Default β‰₯100 citations
  • Tier 2 (Silver): Default β‰₯50 citations
  • Tier 3 (Bronze): Default β‰₯40 citations

4. Build Citation Network

Click "πŸ”„ Fetch Citation Network" button. The app will:

  • Query OpenAlex API for citation data (~2-3 minutes)
  • Build directed citation graph
  • Calculate network statistics

5. Explore & Export

  • Interact: Hover over nodes, zoom, pan
  • Adjust: Change layout algorithm, edge opacity, labels
  • Export: Download GraphML or CSV for further analysis

πŸ“Š Citation Tier System

Papers are automatically categorized into visual tiers based on citation impact:

Tier Color Default Threshold Description
Tier 1 🟑 Gold β‰₯100 citations Landmark papers
Tier 2 βšͺ Silver β‰₯50 citations High-impact papers
Tier 3 🟀 Bronze β‰₯40 citations Core papers
Other πŸ”΅ Blue <40 citations Supporting literature

Thresholds are fully customizable via the sidebar.


πŸ“‹ Input Requirements

GraphAvalanche works with any Excel file that has these columns:

Required Columns

  • Title: Paper title (string)
  • DOI: Digital Object Identifier (string)
  • Cited_By: Citation count (integer)

Optional Columns

  • Year: Publication year (integer) - enables timeline view
  • Venue: Journal/conference (string) - shown in hover info
  • Abstract: Paper abstract (string) - shown in hover info
  • Relevance: Relevance score (float) - from AVALANCHE scoring

Example Input Format

Title,Year,DOI,Cited_By,Venue
"Strategies for enzyme prodrug therapy",2017,10.1016/j.addr.201609005,278,Advanced Drug Delivery Reviews
"ADEPT: Trials and tribulations",2012,10.1016/j.bmc.2011εΉ΄12月02ζ—₯1,129,Bioorganic Chemistry
"Prodrugs for Targeted Tumor Therapies",2011,10.2174/138161211795428985,100,Current Pharmaceutical Design

🎨 Visualization Controls

Sidebar Controls

Control Options Purpose
Layout Algorithm Spring, Kamada-Kawai, Circular, Spectral Graph arrangement style
Show Labels On/Off Display paper titles on nodes
Edge Opacity 0.1 - 1.0 Citation line transparency
Show Timeline On/Off Toggle chronological view
Tier Thresholds Custom integers Adjust tier boundaries

Interactive Features

  • Zoom: Mouse scroll wheel
  • Pan: Click and drag
  • Hover: View paper details
  • Legend: Click to show/hide tiers

πŸ”¬ Use Cases

Academic Research

  • Literature Reviews: Visualize research landscapes
  • Gap Analysis: Identify underexplored areas
  • Trend Analysis: Track field evolution over time

Manuscript Preparation

  • Figures: Publication-ready citation networks
  • Methods: Document systematic search process
  • Discussion: Illustrate research connections

Teaching & Learning

  • Course Material: Teach citation analysis
  • Student Projects: Guide literature discovery
  • Research Training: Demonstrate systematic reviews

πŸ“Š Network Analysis

Statistics Provided

  • Node Count: Total papers in network
  • Edge Count: Citation relationships within dataset
  • Network Density: Connectivity measure (0-1)
  • Most Cited: Influential papers within network
  • Connected Components: Research clusters

Export Formats

GraphML (for network analysis)

# Use in Python with NetworkX
import networkx as nx
G = nx.read_graphml('network.graphml')

CSV (for data analysis)

# Use in R
library(tidyverse)
data <- read_csv('citation_network_data.csv')

πŸ› οΈ Advanced Usage

Programmatic Access

Use the GraphAvalanche modules in your own code:

from graphavalanche import CitationNetwork, MetadataLoader
# Load papers
papers = MetadataLoader.load_excel('avalanche_results.xlsx')
# Build network
network = CitationNetwork(papers)
network.build_connections()
graph = network.build_graph()
# Get statistics
stats = network.get_stats()
print(f"Network has {stats['nodes']} nodes and {stats['edges']} edges")

Custom Visualization

import networkx as nx
import plotly.graph_objects as go
# Load your graph
G = nx.read_graphml('network.graphml')
# Custom analysis
communities = nx.community.greedy_modularity_communities(G)
betweenness = nx.betweenness_centrality(G)
# Create custom visualization
# ... your code here

πŸ“– Example Workflows

Workflow 1: Quick Visualization

# 1. Run AVALANCHE
python avalanche.py 10.1038/nature12373
# 2. Launch GraphAvalanche
streamlit run app_v2.py
# 3. Upload avalanche_results.xlsx
# 4. Click "Fetch Citation Network"
# 5. Export figure for your paper

Workflow 2: Custom Thresholds

# For niche fields with lower citation counts:
# 1. Upload your Excel file
# 2. Set Tier 1 = 20, Tier 2 = 10, Tier 3 = 5
# 3. Build network
# 4. Analyze tier distribution

Workflow 3: Multiple Datasets

# Compare different literature searches:
# 1. Run AVALANCHE for Topic A β†’ topicA_results.xlsx
# 2. Run AVALANCHE for Topic B β†’ topicB_results.xlsx
# 3. Visualize each in GraphAvalanche
# 4. Compare network structures, densities, tier distributions

πŸ”§ Configuration

API Settings

GraphAvalanche uses the OpenAlex API (no key required). For faster access:

  1. Add your email to get "polite pool" access:
# In app_v2.py, line ~140
headers = {"User-Agent": "GraphAvalanche/1.0 (mailto:your.email@university.edu)"}
  1. Rate limiting is built-in (1 second between requests)

Customizing Tier Colors

Edit tier_colors dictionary in app_v2.py:

tier_colors = {
 'Tier 1': '#FFD700', # Gold
 'Tier 2': '#C0C0C0', # Silver
 'Tier 3': '#CD7F32', # Bronze
 'Other': '#87CEEB' # Sky Blue
}

🀝 Contributing

Contributions are welcome! Areas for improvement:

  • Additional layout algorithms (hierarchical, force-atlas)
  • Export to other formats (PDF, PNG)
  • Clustering analysis (community detection)
  • Comparative network analysis (multiple datasets)
  • Theme customization (dark mode)
  • Performance optimization (large networks >1000 nodes)

See CONTRIBUTING.md for guidelines.


πŸ“š Citation

If you use GraphAvalanche in your research, please cite:

GraphAvalanche: Interactive Citation Network Visualizer for AVALANCHE
Harold Mateo Mojica Urrego, University of Navarra-TECNUN, 2026
GitHub: https://github.com/HaroldMate1/GraphAvalanche

For AVALANCHE itself:

AVALANCHE: Automated Federated Literature Discovery Tool
Harold Mateo Mojica Urrego, University of Navarra-TECNUN, 2026
GitHub: https://github.com/HaroldMate1/AVALANCHE

πŸ› Troubleshooting

Issue: "Missing required columns: DOI, Cited_By"

Solution: Ensure your Excel file has columns named exactly Title, DOI, and Cited_By (case-sensitive).

Issue: "Network appears empty" (no edges)

Cause: Papers don't cite each other, or OpenAlex doesn't have citation data.

Solutions:

  • Try a different seed paper with more citations
  • Check that DOIs are valid
  • Verify papers are within the same research domain

Issue: "API request timeout"

Solutions:

  • Check internet connection
  • Wait a few minutes and retry (rate limits)
  • Reduce batch size in code (line ~150: batch_size=25)

Issue: "Very slow performance"

Solutions:

  • Reduce number of papers (<200 recommended for smooth UI)
  • Set edge opacity to 0.2 or lower
  • Turn off node labels
  • Use "circular" layout (faster than "spring")

πŸ“„ License

MIT License - see LICENSE for details.


πŸ”— Related Projects


πŸ“§ Contact


πŸ™ Acknowledgments

  • OpenAlex for providing open citation data
  • Plotly for interactive visualization capabilities
  • NetworkX for graph algorithms
  • Streamlit for the web framework
  • Connected Papers for visualization inspiration

Made with ❀️ for the research community

Transform your literature reviews into interactive visual insights πŸš€

About

Neuralnetworks-style visualizations for your papers.

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /