| name | functional-connectivity-graph-neural-networks |
| description | Functional Connectivity Graph Neural Networks methodology combining structural and functional connectivity with persistent graph homology for brain-inspired graph classification. Activation triggers: functional connectivity, graph neural network, persistent homology, brain network, multi-modal GNN. |
Functional Connectivity Graph Neural Networks (FC-GNN)
Brain-inspired graph neural network framework that combines local structural and global functional connectivity through persistent graph homology for improved graph-level classification across diverse networks.
Metadata
- Source: arXiv:2508.05786 [cs.NE]
- Authors: Yang Li, Luopeiwen Yi, Tananun Songdechakraiwut
- Published: 2025-08-07
Core Methodology
Key Innovation
Traditional GNNs typically rely solely on structural connectivity (adjacency information), missing the rich global interaction patterns. FC-GNN introduces a functional connectivity block based on persistent graph homology to capture global topological features, inspired by multi-modal brain imaging where structural and functional connectivity offer complementary views.
Technical Framework
1. Structural Connectivity Component
- Standard message passing on the graph structure
- Captures local neighborhood information
- Node features propagate through edges
2. Functional Connectivity Block
- Persistent Graph Homology: Computes topological features across multiple scales
- Captures higher-order interactions beyond pairwise connections
- Identifies persistent topological structures (loops, voids, clusters)
- Provides global network organization information
3. Multi-Modal Fusion
- Combines structural and functional representations
- Joint learning from complementary connectivity views
- Enhanced graph-level embeddings for classification
Implementation Guide
Prerequisites
- Python 3.8+
- PyTorch Geometric or DGL
- GUDHI or Ripser for persistent homology
- NumPy, SciPy
Step-by-Step Implementation
import torch
import torch.nn as nn
from torch_geometric.nn import GCNConv, global_mean_pool
from gudhi import RipsComplex
class FunctionalConnectivityGNN(nn.Module):
"""
FC-GNN: Combining structural and functional connectivity
"""
def __init__(self, in_channels, hidden_channels, out_channels):
super().__init__()
self.conv1 = GCNConv(in_channels, hidden_channels)
self.conv2 = GCNConv(hidden_channels, hidden_channels)
self.fc_encoder = FunctionalConnectivityEncoder(hidden_channels)
self.fusion = nn.Linear(hidden_channels * 2, hidden_channels)
self.classifier = nn.Linear(hidden_channels, out_channels)
def forward(self, x, edge_index, batch, node_positions=None):
h_struct = self.conv1(x, edge_index).relu()
h_struct = self.conv2(h_struct, edge_index)
h_func = self.fc_encoder(h_struct, node_positions)
h_combined = torch.cat([h_struct, h_func], dim=-1)
h_fused = self.fusion(h_combined).relu()
h_graph = global_mean_pool(h_fused, batch)
.classifier(h_graph)
(nn.Module):
():
().__init__()
.mlp = nn.Sequential(
nn.Linear(, hidden_dim),
nn.ReLU(),
nn.Linear(hidden_dim, hidden_dim)
)
():
dist_matrix = torch.cdist(node_features, node_features)
persistence_pairs = ._compute_persistence(dist_matrix)
features = ._extract_topo_features(persistence_pairs)
features
():
ph_features = .compute_persistence_features(node_features, positions)
.mlp(ph_features)
Persistent Homology Integration
from gudhi import RipsComplex
import numpy as np
def compute_persistent_homology_features(distance_matrix, max_dim=2):
"""
Compute persistent homology features from distance matrix
Args:
distance_matrix: Pairwise distance matrix (N x N)
max_dim: Maximum homology dimension
Returns:
Dictionary of topological features
"""
rips = RipsComplex(distance_matrix=distance_matrix, max_edge_length=2.0)
simplex_tree = rips.create_simplex_tree(max_dimension=max_dim)
persistence = simplex_tree.persistence()
features = {
'betti_0': count_betti_numbers(persistence, 0),
'betti_1': count_betti_numbers(persistence, 1),
'persistence_entropy': compute_persistence_entropy(persistence),
'total_persistence': compute_total_persistence(persistence),
'lifetime_statistics': compute_lifetime_stats(persistence)
}
return features
def functional_connectivity_from_activations(node_activations, threshold=0.5):
"""
Construct functional connectivity from node activations
Similar to fMRI functional connectivity: correlation between
time series (here: node activations across layers)
"""
corr_matrix = torch.corrcoef(node_activations.T)
func_adj = (corr_matrix.abs() > threshold).float()
return func_adj
Applications
1. Brain Network Analysis
- fMRI Connectome Classification: Classify psychiatric disorders from functional connectivity
- Structural-Functional Integration: Combine DTI structural and fMRI functional connectivity
- Multi-Modal Brain Imaging: Leverage complementary information from different modalities
2. General Graph Classification
- Social Networks: Capture community structures via functional connectivity
- Molecular Graphs: Encode topological drug features
- Citation Networks: Model semantic relationships beyond direct citations
3. Network Neuroscience
- Connectome Comparison: Compare brain networks across populations
- Developmental Studies: Track connectivity changes over time
- Disease Biomarkers: Identify disrupted connectivity patterns
Pitfalls
-
Computational Cost: Persistent homology computation can be expensive for large graphs
- Mitigation: Use approximations or subsampling for large-scale graphs
-
Feature Engineering: Choice of persistence features affects performance
- Mitigation: Experiment with different topological descriptors
-
Fusion Balance: Combining structural and functional information requires careful weighting
- Mitigation: Use attention mechanisms or learned fusion strategies
-
Interpretability: Topological features can be abstract
- Mitigation: Visualize persistence diagrams and barcode representations
Related Skills
- brain-graph-neural: GNN methods for brain connectivity
- higher-order-brain-networks: Topological analysis of brain networks
- persistent-homology-brain: Persistent homology applications in neuroscience
- graph-laplacian-denoising: Graph-based denoising for brain networks
References
@article{li2025functional,
title={Functional Connectivity Graph Neural Networks},
author={Li, Yang and Yi, Luopeiwen and Songdechakraiwut, Tananun},
journal={arXiv preprint arXiv:2508.05786},
year={2025}
}
Further Reading
- Persistent Homology: Edelsbrunner & Harer, "Computational Topology"
- Brain Functional Connectivity: Fornito et al., "Fundamentals of Brain Network Analysis"
- Graph Neural Networks: Kipf & Welling, "Semi-Supervised Classification with GCN"