Skip to content

Repository files navigation

Pollination Network Analysis Across Global Ecosystems

This project analyzes plant–pollinator interaction networks from multiple ecological datasets to study network structure, robustness, and extinction dynamics. The analysis progresses from individual networks to continent-level aggregated networks, enabling large-scale ecological insights.


Member

Group 1:

  • Agastya Nath (12340140)
  • Paritosh Lahre (12341550)
  • Y. Rahul Dev Reddy (12342390)
  • Aman Pratap Singh (M25MT002)
  • Dhananjoy Doley (M25DS002)

Repository Structure

.
├── continents                                  # Continent-wise classification plots
│   ├── Africa_pollination_network_analysis.png
│   ├── Asia_pollination_network_analysis.png
│   ├── Europe_pollination_network_analysis.png
│   ├── North America_pollination_network_analysis.png
│   ├── Oceania_pollination_network_analysis.png
│   └── South America_pollination_network_analysis.png
├── final_continent.ipynb                       # Continent-wise classification Notebook
├── gnn_multi_network.ipynb                     # GNN Multi Network Notebook
├── gnn_novelty.ipynb                           # GNN Novelty Notebook
├── gnn_species_roles.csv                       # GNN species classification CSV
├── outputs_gnn                                 # GNN analysis results and plots
│   └── multi_network                           # Plots and results
│       ├── all_networks_gnn_summary.csv        # Summarized CSV results
│       ├── per_network                         # CSV results for each dataset
│       │   ├── M_PL_001_roles.csv
│       │   └── ...
│       ├── viz1_role_heatmap.png               # GNN Plots
│       ├── viz2_stacked_bars.png
│       ├── viz3_connectance_scatter.png
│       ├── viz4_quality_distributions.png
│       ├── viz5_size_bubble.png
│       ├── viz6_summary_panel.png
│       ├── viz6a_dominant_role_donut.png
│       ├── viz6b_role_pct_boxplot.png
│       ├── viz6c_quality_scatter.png
│       └── viz6d_role_by_size_bin.png
├── outputs_transplant                          # Transplant analysis plots
│   ├── transplant_centrality_report.csv
│   ├── transplant_impact.png
│   └── transplant_summary.csv
├── README.md
├── requirements.txt                            # Library requirements for Notebook
├── species_transplant.ipynb                    # Species Transplant Notebook
└── web-of-life_2026-03-23_105349               # Raw datasets (CSV interaction matrices)
    ├── README                                  # Details regarding format and use of datasets
    ├── references.csv                          # Details regarding each dataset
    ├── M_PL_001.csv                            # Raw datasets
    └── ...

Data

Raw Interaction Networks

  • Located in web-of-life_2026-03-23_105349/

  • Each CSV represents a bipartite interaction matrix:

    • Rows → plants
    • Columns → pollinators
    • Values → interaction frequency

Metadata

  • references.csv

    • Maps dataset IDs to:

      • Latitude & Longitude
      • Locality
    • Used to derive continent-level grouping


Installation

Install dependencies using:

pip install -r requirements.txt

Core Functionality

1. Network Construction

  • build_bipartite()

    • Converts interaction matrix → NetworkX graph

2. Network Metrics

  • compute_metrics()

    • Degree centrality
    • Betweenness centrality
    • Eigenvector centrality
    • Clustering coefficient

3. Structural Analysis

  • nodf_score() → Nestedness (NODF)
  • compute_modularity() → Bipartite modularity

4. Species Roles

  • classify_roles()

    • Specialist
    • Generalist
    • Connector
    • Keystone

5. Robustness Simulations

  • cascading_extinction()

    • Sequential pollinator removal
    • Tracks plant survival
  • adaptive_rewiring_simulation()

    • Models interaction recovery

6. Machine Learning

  • predict_extinction_risk()

    • Random Forest classifier
    • Predicts species vulnerability

Continent-Level Analysis

Workflow

  1. Extract dataset ID from filenames
  2. Map dataset → continent using coordinates
  3. Group datasets by continent
  4. Merge matrices:
merged = merged.add(df, fill_value=0)

Result

Each continent forms a meta-network:

  • Larger and more stable
  • Enables cross-region comparisons

Key Insights

  • Small networks → high nestedness
  • Large networks → higher modularity
  • Specialists → most vulnerable to extinction
  • Eigenvector centrality dominates in large systems
  • Targeted removals cause rapid collapse

Limitations

  • Assumes consistent species naming across datasets
  • Ignores temporal dynamics
  • Bipartite clustering has limited interpretability
  • Geographic mapping is approximate

Usage

Run each notebook in a Jupyter Notebook environment:

  • final_continent.ipynb (Continent-wise classification Notebook)
  • gnn_multi_network.ipynb (GNN Multi Network Notebook)
  • gnn_novelty.ipynb (GNN Novelty Notebook)
  • species_transplant.ipynb (Species Transplant Notebook)

Future Improvements

  • Better species name normalization
  • Temporal network analysis
  • True bipartite clustering metrics
  • Graph Neural Network models
  • Ecological validation

Summary

This project builds a scalable framework for analyzing ecological networks from local to continental scale, revealing how interaction structure influences ecosystem stability and extinction risk.

Releases

Packages

Contributors

Languages