Skip to content

Commit

Permalink
Add HNX paper
Browse files Browse the repository at this point in the history
  • Loading branch information
bonicim committed Mar 27, 2024
1 parent 519c771 commit 463d12f
Show file tree
Hide file tree
Showing 6 changed files with 509 additions and 0 deletions.
Binary file added HNX_Paper/Figures/3graphs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added HNX_Paper/Figures/hnxexample.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
261 changes: 261 additions & 0 deletions HNX_Paper/paper.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@

@inproceedings{Joslyn2020DNS,
address = {Cham},
doi={10.1007/978-3-030-48478-1_1},
author = {Joslyn, Cliff A. and Aksoy, Sinan and Arendt, Dustin and Firoz, Jesun and Jenkins, Louis and Praggastis, Brenda and Purvine, Emilie and Zalewski, Marcin},
booktitle = {Algorithms and Models for the Web Graph},
editor = {Kami{\'{n}}ski, Bogumi{\l} and Pra{\l}at, Pawe{\l} and Szufel, Przemys{\l}aw},
isbn = {978-3-030-48478-1},
pages = {1--15},
publisher = {Springer International Publishing},
title = {Hypergraph Analytics of Domain Name System Relationships},
year = {2020}}

@article{Molnar2022Application,
title={The application of directed hyper-graphs for analysis of models of information systems},
doi={10.3390/math10050759},
author={Moln{\'a}r, B{\'a}lint and Bencz{\'u}r, Andr{\'a}s},
journal={Mathematics},
volume={10},
number={5},
pages={759},
year={2022},
publisher={MDPI}
}

/// Tony's work to quickly compute overlap sizes
@inproceedings{Liu2021Parallel,
title={Parallel algorithms for efficient computation of high-order line graphs of hypergraphs},
doi={10.1109/hipc53243.2021.00045},
author={Liu, Xu T and Firoz, Jesun and Lumsdaine, Andrew and Joslyn, Cliff and Aksoy, Sinan and Praggastis, Brenda and Gebremedhin, Assefaw H},
booktitle={2021 IEEE 28th International Conference on High Performance Computing, Data, and Analytics (HiPC)},
pages={312--321},
year={2021},
organization={IEEE}
}

@article{Zhou2022Topological,
title={Topological simplifications of hypergraphs},
doi={10.1109/tvcg.2022.3153895},
author={Zhou, Youjia and Rathore, Archit and Purvine, Emilie and Wang, Bei},
journal={IEEE Transactions on Visualization and Computer Graphics},
year={2022},
publisher={IEEE}
}

@article{Aksoy2020Hypernetwork,
title={Hypernetwork science via high-order hypergraph walks},
doi={10.1140/epjds/s13688-020-00231-0},
author={Aksoy, Sinan G and Joslyn, Cliff and Marrero, Carlos Ortiz and Praggastis, Brenda and Purvine, Emilie},
journal={EPJ Data Science},
volume={9},
number={1},
pages={16},
year={2020},
publisher={Springer Berlin Heidelberg}
}

@article{Pickard2023HAT,
title={HAT: Hypergraph analysis toolbox},
doi={10.1371/journal.pcbi.1011190},
author={Pickard, Joshua and Chen, Can and Salman, Rahmy and Stansbury, Cooper and Kim, Sion and Surana, Amit and Bloch, Anthony and Rajapakse, Indika},
journal={PLOS Computational Biology},
volume={19},
number={6},
pages={e1011190},
year={2023},
publisher={Public Library of Science San Francisco, CA USA}
}

@misc{Berge1973Graphs,
title={Graphs and {H}ypergraphs,(translated by {E}dward {M}inieka)},
doi={10.1016/s0924-6509(09)x7013-3},
author={Berge, Claude},
year={1973},
publisher={American Elsevier, New York}
}

@book{Berge1984Hypergraphs,
title={Hypergraphs: combinatorics of finite sets},
doi={10.1016/s0924-6509(08)x7007-2},
author={Berge, Claude},
volume={45},
year={1984},
publisher={Elsevier}
}

@article{Feng2021,
title={Hypergraph models of biological networks to identify genes critical to pathogenic viral response},
doi={10.1186/s12859-021-04197-2},
author={Feng, Song and Heath, Emily and Jefferson, Brett and Joslyn, Cliff and Kvinge, Henry and Mitchell, Hugh D and Praggastis, Brenda and Eisfeld, Amie J and Sims, Amy C and Thackray, Larissa B and others},
journal={BMC bioinformatics},
volume={22},
number={1},
pages={1--21},
year={2021},
publisher={BioMed Central}
}

// uses HNX vis capabilities
@article{Vazquez2022Growth,
title={Growth principles of natural hypergraphs},
doi={10.48550/arXiv.2208.03103},
author={Vazquez, Alexei},
journal={arXiv preprint arXiv:2208.03103},
year={2022}
}

@article{Lotito2023Hypergraphx,
title={Hypergraphx: a library for higher-order network analysis},
doi={10.1093/comnet/cnad019},
author={Lotito, Quintino Francesco and Contisciani, Martina and De Bacco, Caterina and Di Gaetano, Leonardo and Gallo, Luca and Montresor, Alberto and Musciotto, Federico and Ruggeri, Nicol{\`o} and Battiston, Federico},
journal={Journal of Complex Networks},
volume={11},
number={3},
pages={cnad019},
year={2023},
publisher={Oxford University Press}
}

@article{Praggastis2022SVD,
title={The SVD of Convolutional Weights: A CNN Interpretability Framework},
doi={10.48550/arXiv.2208.06894},
author={Praggastis, Brenda and Brown, Davis and Marrero, Carlos Ortiz and Purvine, Emilie and Shapiro, Madelyn and Wang, Bei},
journal={arXiv preprint arXiv:2208.06894},
year={2022}
}

@inproceedings{Joslyn2021,
address = {Cham},
doi={10.1007/978-3-030-67318-5_25},
author = {Joslyn, Cliff A. and Aksoy, Sinan G. and Callahan, Tiffany J. and Hunter, Lawrence E. and Jefferson, Brett and Praggastis, Brenda and Purvine, Emilie and Tripodi, Ignacio J.},
booktitle = {Unifying Themes in Complex Systems X},
editor = {Braha, Dan and de Aguiar, Marcus A. M. and Gershenson, Carlos and Morales, Alfredo J. and Kaufman, Les and Naumova, Elena N. and Minai, Ali A. and Bar-Yam, Yaneer},
isbn = {978-3-030-67318-5},
pages = {377--392},
publisher = {Springer International Publishing},
title = {Hypernetwork Science: From Multidimensional Networks to Computational Topology},
year = {2021}}

@article{Torres2021,
author = {Torres, Leo and Blevins, Ann S. and Bassett, Danielle and Eliassi-Rad, Tina},
doi = {10.1137/20M1355896},
eprint = {https://doi.org/10.1137/20M1355896},
journal = {SIAM Review},
number = {3},
pages = {435-485},
title = {The Why, How, and When of Representations for Complex Systems},
url = {https://doi.org/10.1137/20M1355896},
volume = {63},
year = {2021},
bdsk-url-1 = {https://doi.org/10.1137/20M1355896}}

@article{Kurte2021,
title = {Phoenix: A Scalable Streaming Hypergraph Analysis Framework},
author = {Kurte, Kuldeep and Imam, Neena and Hasan, S M Shamimul and Kannan, Ramakrishnan},
doi = {10.1007/978-3-030-71704-9_1},
url = {https://www.osti.gov/biblio/1830117},
issn = {2569--7072},
place = {United States},
year = {2021},
month = {10}
}

@book{knuth1993,
title={The Stanford GraphBase: a platform for combinatorial computing},
author={Knuth, Donald Ervin},
volume={1},
year={1993},
publisher={AcM Press New York}
}

@misc{antonov2023igraph,
title={{i}graph enables fast and robust network analysis across programming languages},
author={Michael Antonov and Gábor Csárdi and Szabolcs Horvát and Kirill Müller and Tamás Nepusz and Daniel Noom and Maëlle Salmon and Vincent Traag and Brooke Foucault Welles and Fabio Zanini},
year={2023},
eprint={2311.10260},
archivePrefix={arXiv},
primaryClass={cs.SI}
}

@article{csardi2006igraph,
title={The {i}graph software package for complex network research},
author={Csardi, Gabor and Nepusz, Tamas and others},
journal={InterJournal, complex systems},
volume={1695},
number={5},
pages={1--9},
year={2006}
}

@inproceedings{joslyn2018,
title={HyperThesis: Topological Hypothesis Management in a Hypergraph Knowledgebase.},
author={Joslyn, Cliff A and Robinson, Michael and Smart, J and Agarwal, Khushbu and Bridgeland, David and Brown, Adam and Choudhury, Sutanay and Jefferson, Brett A and Praggastis, Brenda and Purvine, Emilie and others},
booktitle={TAC},
year={2018}
}

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

@inproceedings{Szufel2019,
title={SimpleHypergraphs. jl—novel software framework for modelling and analysis of hypergraphs},
doi={10.1007/978-3-030-25070-6_9},
author={Antelmi, Alessia and Cordasco, Gennaro and Kami{\'n}ski, Bogumi{\l} and Pra{\l}at, Pawe{\l} and Scarano, Vittorio and Spagnuolo, Carmine and Szufel, Przemyslaw},
booktitle={Algorithms and Models for the Web Graph: 16th International Workshop, WAW 2019, Brisbane, QLD, Australia, July 6--7, 2019, Proceedings 16},
pages={115--129},
year={2019},
organization={Springer}
}

@article{Colby2023,
author = {Sean M Colby and Madelyn R Shapiro and Andy Lin and Aivett Bilbao and Corey D Broeckling and Emilie Purvine and Cliff A Joslyn},
doi = {10.1101/2023.09.29.560191},
elocation-id = {2023.09.29.560191},
eprint = {https://www.biorxiv.org/content/early/2023/10/02/2023.09.29.560191.full.pdf},
journal = {bioRxiv},
publisher = {Cold Spring Harbor Laboratory},
title = {Introducing Molecular Hypernetworks for Discovery in Multidimensional Metabolomics Data},
url = {https://www.biorxiv.org/content/early/2023/10/02/2023.09.29.560191},
year = {2023},
bdsk-url-1 = {https://www.biorxiv.org/content/early/2023/10/02/2023.09.29.560191},
bdsk-url-2 = {https://doi.org/10.1101/2023.09.29.560191}}

@software{reback2020pandas,
author = {{The pandas development team}},
title = {{pandas-dev/pandas: Pandas}},
month = feb,
year = 2020,
publisher = {Zenodo},
version = {latest},
doi = {10.5281/zenodo.3509134},
url = {https://doi.org/10.5281/zenodo.3509134}
}

@InProceedings{ mckinney-proc-scipy-2010,
author = { {W}es {M}c{K}inney },
title = { {D}ata {S}tructures for {S}tatistical {C}omputing in {P}ython },
booktitle = { {P}roceedings of the 9th {P}ython in {S}cience {C}onference },
pages = { 56 - 61 },
year = { 2010 },
editor = { {S}t\'efan van der {W}alt and {J}arrod {M}illman },
doi = { 10.25080/Majora-92bf1922-00a }
}

@InProceedings{SciPyProceedings_11,
author = {Aric A. Hagberg and Daniel A. Schult and Pieter J. Swart},
title = {Exploring Network Structure, Dynamics, and Function using NetworkX},
booktitle = {Proceedings of the 7th Python in Science Conference},
pages = {11 - 15},
address = {Pasadena, CA USA},
year = {2008},
editor = {Ga\"el Varoquaux and Travis Vaught and Jarrod Millman},
}
126 changes: 126 additions & 0 deletions HNX_Paper/paper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
---
title: 'HyperNetX: A Python package for modeling complex network data as hypergraphs'
tags:
- Python
- hypergraph
- network science
- simplicial-complexes
- knowledge graph
- simplicial-homology
- s-linegraph
- property hypergraph
authors:
- name: Brenda Praggastis
orcid: 0000-0003-1344-0497
affiliation: "1"
- name: Sinan Aksoy
orcid: 0000-0002-3466-3334
affiliation: "1"
- name: Dustin Arendt
orcid: 0000-0003-2466-199X
affiliation: "1"
- name: Mark Bonicillo
affiliation: "1"
- name: Cliff Joslyn
orcid: 0000-0002-5923-5547
affiliation: "1"
- name: Emilie Purvine
orcid: 0000-0003-2069-5594
affiliation: "1"
- name: Madelyn Shapiro
orcid: 0000-0002-2786-7056
affiliation: "1"
- name: Ji Young Yun
affiliation: "1"
affiliations:
- name: Pacific Northwest National Laboratory, USA
index: 1

date: 21 June 2023
bibliography: paper.bib

---

# Summary
HyperNetX (HNX) is an open source Python library for the analysis and visualization of complex network data modeled as hypergraphs.
Initially released in 2019, HNX facilitates exploratory data analysis of complex networks using algebraic topology, combinatorics, and generalized hypergraph and graph theoretical methods on structured data inputs.
With its 2023 release, the library supports attaching metadata, numerical and categorical, to nodes (vertices) and hyperedges, as well as to node-hyperedge pairings (incidences).
HNX has a customizable Matplotlib-based visualization module as well as HypernetX-Widget, its JavaScript addon for interactive exploration and visualization of hypergraphs within Jupyter Notebooks. Both packages are available on GitHub and PyPI. With a growing community of users and collaborators, HNX has become a preeminent tool for hypergraph analysis.

![HNX-Widget is an add-on for the Jupyter Notebook
computational environment, enabling users to view and interactively
explore hypergraphs.
The main features of the tool are: 1) adjustable layout 2) advanced
selection and 3) visual encoding of node and edge properties.
Metadata may be attached to the tool by providing tabular data via two optional data frames indexed by node and hyperedge identifiers. Above is an HNX-Widget visualization of a Scene to Character mapping from the LesMis dataset [@knuth1993].](Figures/hnxexample.png){height="225pt"}


# Statement of need
For more than a century, graph theory has provided powerful methods for studying network relationships among abstract entities.
Since the early 2000's, software packages such as NetworkX [@SciPyProceedings_11] and `igraph` [@csardi2006igraph;@antonov2023igraph] have
made these theoretical tools available to data scientists for studying large data sets.
Graphs represent pairwise interactions between entities, but for many network datasets this is a severe limitation.
In 1973, hypergraphs were introduced by Claude Berge [@Berge1973Graphs] as a strict generalization of graphs: a hyperedge in a hypergraph can contain any number of nodes, including 1, 2, or more.
Hypergraphs have been used to model complex network datasets in
areas such as the biological sciences, information systems, the power grid, and cyber security.
Hypergraphs strictly generalize graphs (all graphs are (2-uniform) hypergraphs), and thus can represent additional data complexity and have more mathematical properties to exploit (for example, hyperedges can be contained in other hyperedges). As mathematical set systems, simplicial and homological methods from
Algebraic Topology are well suited to aid in their analysis [@Joslyn2021;@Torres2021].
With the development of hypergraph modeling methods, new software was required to support
experimentation and exploration, which prompted the development of HyperNetX.

## Related Software
Due to the diversity of hypergraph modeling applications, hypergraph software libraries are
often bootstrapped using data structures and methods most appropriate to their usage.
In 2020 SimpleHypergraph.jl was made available for high performance computing on hypergraphs using Julia.
The library offers a suite of tools for centrality analysis and community detection and integrates its own
visualization tools with those offered by HNX [@Szufel2019]. In 2021 CompleX Group Interactions (XGI) was released.
Originally developed to efficiently discover spreading processes in complex social systems, the library now offers
a statistics package as well as a full suite of hypergraph analysis and visualization tools[@Landry2023].
More recently, in 2023 HyperGraphX (HGX) was released, again with a full suite of tools for community detection
as well as general hypergraph analytics [@Lotito2023Hypergraphx].
A nice compendium of many of the hypergraph libraries created in the last decade can be found in @Kurte2021.

HNX leads the effort to share library capabilities by specifying a Hypergraph Interchange Format (HIF)
for storing hypergraph data as a JSON object. Since hypergraphs can store metadata on its nodes,
hyperedges, and incidence pairs, a standardized format makes it easy to share hypergraphs across libraries.

![Visualizations from hypergraph libraries based on the bipartite graph seen in grey
under the HyperNetX visualization (left side): XGI (Center), @Landry2023 and SimpleHypergraph (Right), @Szufel2019.](Figures/3graphs.png)

# Overview of HNX
HNX serves as a platform for the collaboration and sharing of hypergraph
methods within the research community.
Originally intended to generalize many of the methods from NetworkX
to hypergraphs, HNX now has implementations for many hypergraph-specific metrics.
While graph paths can be measured by length,
hypergraph paths also have a width parameter *s*, given by the minimum intersection size
of incident hyperedges in the path [@Aksoy2020Hypernetwork].
HNX uses this *s* parameter in many of
its core methods as well as in its *s-*centrality module.
As set systems, hypergraphs can be viewed as subsets of abstract simplicial
complexes – combinatorial projections of geometric objects constructed from points, line
segments, triangles, tetrahedrons, and their higher dimensional analogues.
HNX's Simplicial Homology module identifies and computes the *voids* of different dimensions
in the simplicial complexes generated by modestly sized hypergraphs.
These objects, which are used for defining the *Homology Groups*
studied by Algebraic Topologists, offer new metrics for exploratory
data science.

As a collaborative platform, HNX contains contributed modules
and tutorials in the form of Jupyter notebooks
for Laplacian clustering, clustering and modularity, synthetic
generation of hypergraphs, and Contagion Theory.
In its latest release, HNX 2.0 uses Pandas dataframes[@reback2020pandas;@mckinney-proc-scipy-2010] as its underlying data structure,
making the nodes and hyperedges of a hypergraph as accessible as the
cells in a dataframe.
This simple design allows HNX to import data from semantically
loaded graphs such as property graphs and knowledge graphs,
in order to model and explore their higher order relationships.
Because it is open source, HNX provides a unique opportunity for
hypergraph researchers to implement their own methods built from
HNX and contribute them as modules and Jupyter tutorials to the HNX user community.

## Projects using HNX
HNX was created by the Pacific Northwest National Laboratory. It has provided data analysis and visualization support for academic papers in subject areas such as biological systems [@Feng2021;@Colby2023], cyber security [@Joslyn2020DNS], information systems [@Molnar2022Application], neural networks [@Praggastis2022SVD], knowledge graphs [@joslyn2018], and the foundations of hypergraph theory [@Vazquez2022Growth].

# References
Binary file added HNX_Paper/paper.pdf
Binary file not shown.
Loading

0 comments on commit 463d12f

Please sign in to comment.