CompleX Group Interactions (XGI) is a Python package for the representation, manipulation, and study of the structure, dynamics, and functions of complex systems with group (higher-order) interactions.
Sign up for our mailing list and follow XGI on Twitter or Mastodon!
XGI runs on Python 3.8 or higher.
To install the latest version of XGI, run the following command:
pip install xgi
To install this package locally:
- Clone this repository
- Navigate to the folder on your local machine
- Run the following command:
pip install -e .["all"]
- If that command does not work, you may try the following instead
pip install -e .\[all\]
To get started, take a look at the tutorials illustrating the library's basic functionality.
A number of higher-order datasets are available in the XGI-DATA repository and can be easily accessed with the load_xgi_data()
function.
If you want to contribute to this project, please make sure to read the contributing guidelines. We expect respectful and kind interactions by all contributors and users as laid out in our code of conduct.
The XGI community always welcomes contributions, no matter how small. We're happy to help troubleshoot XGI issues you run into, assist you if you would like to add functionality or fixes to the codebase, or answer any questions you may have.
Some concrete ways that you can get involved:
- Get XGI updates by following the XGI Twitter account, signing up for our mailing list, or starring this repository.
- Spread the word when you use XGI by sharing with your colleagues and friends.
- Request a new feature or report a bug by raising a new issue.
- Create a Pull Request (PR) to address an open issue or add a feature.
- Join our Zulip channel to be a part of the daily goings-on of XGI.
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 XGI in your work. Currently, the best way to cite XGI is to go to our repository page (if you haven't already) and click the "cite this repository" button on the right sidebar. This will generate a citation in your preferred format, and will also integrate well with citation managers.
Released under the 3-Clause BSD license (see LICENSE.md
)
Copyright (C) 2021-2023 XGI Developers
The XGI library has copied or modified code from the HyperNetX and NetworkX libraries, the licenses of which can be found in our license file
The XGI package has been supported by NSF Grant 2121905, "HNDS-I: Using Hypergraphs to Study Spreading Processes in Complex Social Networks".
This library may not meet your needs and if this is this case, consider checking out these other resources:
- HyperNetX: A Python package for representing, analyzing, and visualizing hypergraphs.
- Hypergraph Analysis Toolbox (HAT): A Python/Matlab package for hypergraph construction, visualization, and analysis (Especially for Pore-C data).
- halp: A Python package with directed and undirected hypergraph implementations and several algorithms.
- Reticula: A Python package wrapping C++ functions for representing, analyzing, and visualizing temporal and static graphs and hypergraphs.
- SimpleHypergraphs.jl: A Julia package for representing, analyzing, and generating hypergraphs.
- HyperGraphs.jl: A Julia package for representing, analyzing, and generating hypergraphs which may be oriented and weighted.
- hyperG: An R package for storing and analyzing hypergraphs
- NetworkX: A Python package for representing, analyzing, and visualizing networks.