Examples & Recipes
Complete working examples demonstrating py3plex capabilities. All examples are available in the examples/ directory of the repository.
What’s here:
Runnable Examples — Copy-paste code for common tasks
Analysis Recipes — Reusable patterns (Analysis Recipes & Workflows)
Case Studies — In-depth applications (Use Cases & Case Studies)
Quick Start:
DSL examples:
example_dsl_builder_api.py— Best starting pointVisualization:
example_multilayer_visualization.pyCommunity detection:
example_community_detection.py10-minute tutorial:
tutorial_10min.py
Featured: DSL Examples
The DSL examples showcase py3plex’s SQL-like query language:
from py3plex.dsl import Q, L
# From example_dsl_builder_api.py - Comprehensive DSL v2
result = (
Q.nodes()
.from_layers(L["social"] + L["work"])
.where(degree__gt=5)
.compute("betweenness_centrality", "pagerank")
.order_by("-betweenness_centrality")
.limit(20)
.export_csv("top_influencers.csv")
.execute(network)
)
Recommended starting points:
example_dsl_builder_api.py— Complete DSL v2 tutorialexample_dsl_queries.py— String DSL syntaxexample_dsl_advanced.py— Advanced patterns
See SQL-like DSL for Multilayer Networks for full DSL documentation!
Getting Started Examples
Basic Network Creation
example_load_network.py- Loading networks from filesexample_create_network.py- Creating networks from scratchexample_basic_stats.py- Computing basic statistics
Quick Tutorials
tutorial_10min.py- Executable version of the 10-minute tutorialexample_quick_start.py- Quick start examples
Visualization Examples
Basic Visualization
example_multilayer_visualization.py- Basic multilayer plotsexample_simple_viz.py- Simple visualization examplesexample_hairball.py- Hairball plots
Advanced Visualization
example_custom_layouts.py- Custom layout algorithmsexample_diagonal_plot.py- Diagonal projection for multilayer networksexample_interactive_plots.py- Interactive visualizations with Plotlyexample_layer_visualization.py- Layer-by-layer visualization
Community Visualization
example_community_viz.py- Visualizing detected communitiesexample_colored_networks.py- Custom node/edge coloring
Community Detection Examples
Single-Layer Community Detection
example_community_detection.py- Louvain and Infomapexample_louvain.py- Louvain algorithm examplesexample_label_propagation.py- Semi-supervised community detection
Multilayer Community Detection
example_multilayer_communities.py- Multilayer Louvainexample_modularity.py- Modularity optimizationexample_overlapping_communities.py- Overlapping community detection
DSL and Query Examples
DSL v2 (Recommended)
example_dsl_builder_api.py- Comprehensive Python builder API examples (Q, L, Param)example_dsl_queries.py- String DSL syntax examplesexample_dsl_advanced.py- Advanced queries and transportation network analysisexample_dsl_community_detection.py- Community detection with DSL
Features:
- SQL-like syntax for network queries
- Python builder API with type hints (Q.nodes(), L["layer"], Param)
- Layer algebra (union, difference, intersection)
- Django-style WHERE conditions (degree__gt=5)
- COMPUTE measures with aliases
- ORDER BY, LIMIT, EXPLAIN mode
- Export to pandas, NetworkX, Arrow
Network Statistics Examples
Basic Statistics
example_multilayer_statistics.py- Multilayer-specific statisticsexample_layer_comparison.py- Comparing layersexample_node_metrics.py- Node-level metrics
Centrality Measures
example_centrality.py- Degree, betweenness, PageRankexample_multilayer_centrality.py- Multilayer centrality measuresexample_versatility.py- Versatility centrality
Network Comparison
example_network_comparison.py- Comparing multiple networksexample_statistical_tests.py- Statistical comparison
I/O and Data Format Examples
Loading Networks
example_IO.py- Various input formatsexample_edgelist_loading.py- Edge list formatsexample_graphml.py- GraphML formatexample_csv_loading.py- CSV with sidecars
Modern I/O (Arrow/Parquet)
example_arrow_io.py- Apache Arrow formatexample_parquet.py- Parquet formatexample_schema_graph.py- Schema-based I/O
Format Conversion
example_format_conversion.py- Converting between formatsexample_export.py- Exporting networks
Random Walks and Embeddings
Random Walks
example_random_walks.py- Basic and Node2Vec walksexample_walkers.py- Different walk strategiesexample_metapath_walks.py- Meta-path based walks
Node Embeddings
example_n2v_embedding.py- Node2Vec embeddingsexample_deepwalk.py- DeepWalk embeddingsexample_embeddings.py- Various embedding methods
Embedding Applications
example_link_prediction.py- Link prediction with embeddingsexample_node_classification.py- Node classificationexample_clustering_embeddings.py- Clustering with embeddings
Network Decomposition
example_network_decomposition.py- Meta-path feature extractionexample_feature_extraction.py- Network feature engineeringexample_tensor_decomposition.py- Tensor decomposition methods
Network Manipulation
example_manipulation.py- Network operations (add, remove, filter)example_subnetworks.py- Extracting subnetworksexample_layer_operations.py- Layer-specific operationsexample_aggregation.py- Aggregating layers
Algorithms and Analysis
Network Dynamics
example_spreading.py- Network traversal and spreading processesexample_sir_epidemic.py- SIR epidemic simulationexample_diffusion.py- Diffusion processes
Specialized Algorithms
example_ricci_curvature.py- Ricci curvature computationexample_motifs.py- Network motif discoveryexample_path_analysis.py- Path-based analysis
Machine Learning
example_ml_features.py- Feature extraction for MLexample_graph_kernels.py- Graph kernel methodsexample_supervised_learning.py- Supervised learning on networks
NetworkX Integration
example_networkx_wrapper.py- Using NetworkX functionsexample_networkx_interop.py- NetworkX interoperabilityexample_convert_networkx.py- Converting to/from NetworkX
Benchmarking
example_benchmarking.py- Performance benchmarkingexample_scalability.py- Scalability testingexample_memory_profiling.py- Memory usage analysis
GUI and API
example_api_usage.py- Using the REST APIexample_gui_integration.py- GUI integration examplesexample_batch_processing.py- Batch processing with CLI
Case Studies: End-to-End Workflows
Complete domain-specific analysis pipelines with interpretation. Each case study follows a standard workflow: Data Import → Stats → Analysis → Visualization → Interpretation.
All case studies are in the examples/case_studies/ directory. See the Case Studies README for complete documentation.
Biological Networks — 🟡 Intermediate
biological_networks.py- Protein-gene-disease multilayer networkAnalyzes how protein interactions, gene regulation, and diseases interconnect
Identifies hub proteins (e.g., TP53) as potential drug targets
Detects functional biological modules through community detection
Layers: protein (PPI), gene (regulation), disease (associations)
Key techniques: Multi-layer centrality, cross-layer communities
Social Networks — 🟢 Beginner
social_networks.py- Multi-platform social media analysisIdentifies cross-platform influencers
Compares behavior across Facebook, Twitter, LinkedIn
Detects social communities spanning multiple platforms
Layers: facebook (friends), twitter (followers), linkedin (professional)
Key techniques: Influence metrics, platform comparison
Transportation Networks — 🟡 Intermediate
transportation_networks.py- Multi-modal urban transportIdentifies critical transfer hubs
Computes accessibility metrics for urban planning
Detects service zones and coverage gaps
Layers: bus (coverage), metro (backbone), bike (short trips)
Key techniques: Accessibility analysis, hub identification
Using Case Studies:
Each case study is: * Self-contained — Generates synthetic data, no external files needed * Structured — Follows 4-step pipeline (Import → Stats → Pipeline → Viz) * Interpretable — Extensive domain-specific commentary on results * Adaptable — Designed as templates for your own data
Run a case study:
python examples/case_studies/biological_networks.py
python examples/case_studies/social_networks.py
python examples/case_studies/transportation_networks.py
See also: * Book Chapter 12-14 — Extended case studies with theoretical background * Notebooks — Interactive versions (coming soon)
Real-World Datasets
Biological Networks
example_protein_interaction.py- Protein-protein interaction networksexample_gene_regulation.py- Gene regulatory networksexample_metabolic_networks.py- Metabolic pathways
Social Networks
example_social_multiplex.py- Multiplex social networksexample_citation_network.py- Citation networksexample_collaboration.py- Collaboration networks
Transportation
example_multimodal_transport.py- Multi-modal transportationexample_flight_network.py- Airline networks
Running Examples
All examples can be run directly with Python from the repository root:
# Run DSL builder API examples (recommended starting point)
python examples/network_analysis/example_dsl_builder_api.py
# Run string DSL examples
python examples/network_analysis/example_dsl_queries.py
# Run advanced DSL examples
python examples/network_analysis/example_dsl_advanced.py
# Run a visualization example
python examples/visualization/example_multilayer_visualization.py
# Run a community detection example
python examples/communities/example_community_detection.py
# Run a getting started example
python examples/getting_started/tutorial_10min.py
Many examples accept command-line arguments:
python examples/communities/example_community_detection.py --algorithm louvain
Example Template
Use this template when creating new example scripts. The pattern includes
a docstring, a main() function, and an if __name__ == "__main__": guard:
"""
Example: Your Feature
=====================
Description of what this example demonstrates.
Usage:
python examples/<category>/example_your_feature.py
"""
from py3plex.core import multinet
from py3plex.visualization.multilayer import draw_multilayer_default
def main():
# Load or create network
network = multinet.multi_layer_network()
network.add_edges([
['A', 'layer1', 'B', 'layer1', 1]
], input_type="list")
# Your analysis
network.basic_stats()
# Visualization
draw_multilayer_default([network], display=True)
if __name__ == "__main__":
main()
Contributing Examples
To contribute an example:
Create a well-documented script in the appropriate
examples/<category>/directoryUse the template above with docstring +
main()+if __name__ == "__main__":Follow the naming convention:
example_<feature>.pyTest that it runs without errors
Add it to this index with a brief description
Submit a pull request
See Contributing to py3plex for detailed guidelines.