Skip to content

Commit

Permalink
adding paper for journal consideration
Browse files Browse the repository at this point in the history
  • Loading branch information
brendapraggastis committed Oct 16, 2023
1 parent f861138 commit d742134
Show file tree
Hide file tree
Showing 5 changed files with 361 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.
228 changes: 228 additions & 0 deletions HNX_Paper/paper.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@

@inproceedings{Joslyn2020DNS,
address = {Cham},
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},
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},
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},
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},
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},
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)},
author={Berge, Claude},
year={1973},
publisher={American Elsevier, New York}
}

@book{Berge1984Hypergraphs,
title={Hypergraphs: combinatorics of finite sets},
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},
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}
}

@article{Pickard2023Hat,
title={HAT: Hypergraph analysis toolbox},
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}
}

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

@article{Lotito2023Hypergraphx,
title={Hypergraphx: a library for higher-order network analysis},
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},
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},
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}, journal = {},
issn = {2569--7072},
number = ,
volume = ,
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}
}

@article{hagberg2020,
title={Networkx: Network analysis with python},
author={Hagberg, Aric and Conway, Drew},
journal={URL: https://networkx. github. io},
year={2020}
}

@article{csardi2006,
title={The igraph 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},
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}}

133 changes: 133 additions & 0 deletions HNX_Paper/paper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
---
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-0000-0000-0000
affiliation: "1"
- name: Dustin Arendt
orcid: 0000-0000-0000-0000
affiliation: "1"
- name: Mark Bonicillo
orcid: 0000-0000-0000-0000
affiliation: "1"
- name: Cliff Joslyn
orcid: 0000-0000-0000-0000
affiliation: "1"
- name: Emilie Purvine
orcid: 0000-0000-0000-0000
affiliation: "1"
- name: Madelyn Shapiro
orcid: 0000-0000-0000-0000
affiliation: "1"
- name: Ji Young Yun
orcid: 0000-0000-0000-0000
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 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 [@hagberg2020] and Igraph [@csardi2006] 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.
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 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.

## HNX-Widget: Interactive Diagrams of Hypergraphs
HNX interfaces with an add-on widget for the Jupyter Notebook
computational environment, enabling users to view and interactively
explore hypergraphs, see Figure 1.
The main features of the tool are: 1) adjustable layout 2) advanced
selection and 3) visual encoding of node and edge properties.

The primary tool of the widget is an Euler diagram visualization approach that shows nodes as circles and hyperedges as closed curves surrounding the nodes/circles they contain. The tool uses a force directed layout of the underlying bipartite representation to determine the position of the nodes. Hyperedges are then drawn as convex hulls given the node positions. To remove overlapping hyperedges the user and can move and pin nodes as desired.
Selection of nodes and hyperedges is available via clicking, brushing, and advanced methods. For example, the set of selected nodes can be expanded by selecting all nodes contained by selected edges, and vice versa.

<!-- This approach was chosen to satisfy a tradeoff between familiarity/interpretability, quality, speed, and ease of implementation. However, this algorithm is not perfect—nodes and edges might overlap creating clutter, and implying relationships that do not exist. Thus, the tool allows the user to move and pin nodes as desired. -->

<!-- Nodes and hyperedges are selected by clicking them. -->
<!-- Nodes and edges can be selected independently of each other, i.e., it is possible to select an edge without selecting the nodes it contains. -->


Metadata may be attached to the tool by providing tabular data via two optional data frames indexed by node and hyperedge identifiers. Single rows from these tables become visible to the user in a tooltip when they hover over a node or hyperedge in this tool. The user can configure the tool to encode the node size or color and the hyperedge color using a column in these data tables.

## 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.

0 comments on commit d742134

Please sign in to comment.