_images/logo.png _images/logo_white.png

Software for higher-order networks#

The CompleX Group Interactions (XGI) library provides data structures and algorithms for modeling, analyzing, and visualizing complex systems with group (higher-order) interactions. It provides tools to:

  • load and store higher-order networks in standard formats

  • generate many random and non-random higher-order networks from models

  • analyze the structure of higher-order networks with metrics and algorithms

  • compute nodes and edge statistics in a unified interface

  • draw higher-order networks

  • manipulate hypergraphs (undirected and directed) and simplicial complexes

Higher-order networks generalize standard (pairwise) networks by allowing to encode higher-order interactions, that is, interactions between any number of entities. Collaborations and contagion processes are typical examples where these higher-order interactions are crucial. For more information about what higher-order interactions are, see a brief overview.

XGI is implemented in pure Python and is designed to seamlessly interoperate with the rest of the Python scientific stack (numpy, scipy, pandas, matplotlib, etc). XGI is designed and developed by network scientists with the needs of network scientists in mind. Browse the list of projects using XGI to get an idea of what XGI can do and how it is being used by other people.

Get started immediately by installing XGI and checking the XGI in 1 minute tutorial.

Corresponding Data#

A number of higher-order datasets are available in the XGI-DATA repository and can be easily accessed with the load_xgi_data() function. More information about the datasets and how to load them is in the XGI-DATA menu.

Get involved#

To simply getting news and updates, you can sign up for our mailing list and follow XGI on Twitter!

If you want to contribute, even better! The XGI community always welcomes contributions, no matter how small. For more information, see our contribution guide.

How to Cite#

We acknowledge the importance of good software to support research, and we note that research becomes more valuable when it is communicated effectively. To demonstrate the value of XGI, we ask that you cite the XGI paper in your work. You can cite XGI either by going to our repository page repository page and clicking the “cite this repository” button on the right sidebar (which will generate a citation in your preferred format) or by copying the following BibTeX entry:

@article{Landry_XGI_2023,
author = {Landry, Nicholas W. and Lucas, Maxime and Iacopini, Iacopo and Petri, Giovanni and Schwarze, Alice and Patania, Alice and Torres, Leo},
title = {{XGI: A Python package for higher-order interaction networks}},
doi = {10.21105/joss.05162},
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
year = {2023},
month = may,
volume = {8},
number = {85},
pages = {5162},
url = {https://doi.org/10.21105/joss.05162},
}

Academic References#

Funding#

The XGI package has been supported by NSF Grant 2121905, HNDS-I: Using Hypergraphs to Study Spreading Processes in Complex Social Networks.

License#

This project is licensed under the BSD 3-Clause License.