Skip to main content

Social network analysis and visualization tool for Instagram follower/following relationships with community detection and influence metrics

Project description

FollowWeb Network Analysis Package

A network analysis tool for Instagram follower/following relationships using graph theory and network analysis techniques. Transform social connection data into interactive visualizations with automatic community detection and influence metrics.


Key Features

  • Multiple Analysis Strategies: k-core decomposition, reciprocal connections, ego-alter analysis
  • Comprehensive Reporting: text reports with network statistics and parameters
  • Performance Optimized: caching system eliminates duplicate calculations and reduces memory usage

Analysis Strategies

  1. K-Core Analysis: Full network analysis identifying densely connected subgraphs
  2. Reciprocal K-Core: Focus on mutual connections and bidirectional relationships
  3. Ego-Alter Analysis: Personal network analysis centered on specific users

Output Formats

  • Interactive HTML: Network visualizations with hover tooltips and physics controls
  • Static PNG: High-resolution images suitable for presentations and papers
  • Metrics Reports: Detailed analysis statistics, timing, and configuration parameters

Quick Setup

Installation

# Install production dependencies
pip install -r requirements.txt

# Install the package in development mode
pip install -e .

# Or install with development dependencies
pip install -e ".[dev]"

Basic Usage

# Run analysis with sample data
python -m FollowWeb_Visualizor.main --input examples/followers_following.json

# Use a configuration file
python -m FollowWeb_Visualizor.main --config configs/fast_config.json

# Print default configuration
python -m FollowWeb_Visualizor.main --print-default-config

Example Configuration Files

Development Setup

For development, see docs/development/CONTRIBUTING.md for detailed setup instructions including dependency installation and code quality tools.


Testing

FollowWeb includes a comprehensive test suite with 337 passing tests and 73.95% code coverage, ensuring reliability across all components.

Test Categories

  • Unit Tests (280+ tests): Fast, isolated component testing with maximum parallelization
  • Integration Tests (45+ tests): Cross-module testing with controlled parallelization
  • Performance Tests (12+ tests): Benchmarking and timing validation with sequential execution

Running Tests

# Run all tests with coverage
python -m pytest --cov=FollowWeb_Visualizor --cov-report=term-missing

# Run specific test categories
python -m pytest tests/unit/          # Unit tests only
python -m pytest tests/integration/   # Integration tests only
python -m pytest tests/performance/   # Performance tests only

# Run tests with detailed output
python -m pytest -v

# Run tests in parallel (automatic)
python -m pytest -n auto

For detailed testing procedures, see tests/README.md.


Documentation

User Documentation

Developer Documentation

Package Structure

├── FollowWeb_Visualizor/    # Main package (main.py, config.py, analysis.py, visualization.py, utils.py, progress.py)
├── tests/                   # Test suite (unit/, integration/, performance/)
├── docs/                    # Documentation (API_REFERENCE.md, USER_GUIDE.md, CONTRIBUTING.md, etc.)
│   └── development/         # Development documentation and analysis reports
├── configs/                 # Configuration files for different analysis scenarios
├── examples/                # Sample data and example outputs
├── Output/                  # Default output directory for generated results
├── README.md               # Main documentation
├── setup.py                # Package installation
├── requirements*.txt       # Dependencies
├── Makefile               # Development automation
└── pytest.ini            # Test configuration

Acknowledgments

FollowWeb is built upon excellent open-source libraries and tools. We gratefully acknowledge:

Core Dependencies

  • NetworkX - Graph analysis algorithms and community detection
  • pandas - Data manipulation and analysis
  • matplotlib - Static graph visualization and plotting
  • pyvis - Interactive network visualizations

Development Tools

  • pytest ecosystem - Comprehensive testing framework
  • ruff, mypy - Code quality tools

See docs/attribution/CONTRIBUTORS.md for detailed acknowledgments and contribution guidelines.

Links

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

followweb_visualizor-1.0.0.tar.gz (986.6 kB view details)

Uploaded Source

Built Distribution

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

followweb_visualizor-1.0.0-py3-none-any.whl (119.0 kB view details)

Uploaded Python 3

File details

Details for the file followweb_visualizor-1.0.0.tar.gz.

File metadata

  • Download URL: followweb_visualizor-1.0.0.tar.gz
  • Upload date:
  • Size: 986.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for followweb_visualizor-1.0.0.tar.gz
Algorithm Hash digest
SHA256 616cb707907f25c7897b96d2028988c344ed303f10e783789ea9b12cd2e758b7
MD5 1641b2e3e05b552b7be997f95353d390
BLAKE2b-256 14a4de24b15d8460ae088da9ecb525c29c935c990ee20b03a0f491d05234a77e

See more details on using hashes here.

File details

Details for the file followweb_visualizor-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for followweb_visualizor-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cb9f17de500e8a01c74ca5f2936224263bddb0db91988d2937e7a3ba0ae2ab9f
MD5 2c753aa8455ae02b93af354b9f14b1de
BLAKE2b-256 56c0ddd7a5ee334014d8017c9a6060637764396a026bf298e07239d040cb569a

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