Skip to content

Commit e589c6b

Browse files
Merge pull request #54 from pnnl/hnxbeta
Hnxbeta
2 parents bb9acfe + 4685bad commit e589c6b

File tree

181 files changed

+47887
-8466
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

181 files changed

+47887
-8466
lines changed

.gitignore

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
.DS_Store
2-
gitmerge.sh
3-
dist
1+
.DS_Store
2+
gitmerge.sh
3+
dist
44
hypernetx.egg-info
55

66
stashmerge.sh
@@ -20,5 +20,7 @@ untitled*
2020
Untitled*
2121
pypipush.sh
2222
experimental
23+
tutorials/h2d-hnx-why_v5.tar.gz
2324
vis_develop
24-
25+
dist/
26+
*.egg-info*

README.md

Lines changed: 111 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,132 @@
1+
<img src="docs/source/images/harrypotter_basic_hyp.png" align="right" width="300pt">
2+
13
HyperNetX
24
=========
35

4-
### Super Users: HNXBeta is now available on a development branch.
5-
Go to
6-
<a href="https://github.com/pnnl/HyperNetX/tree/hnxbeta" target="_blank">HNXBeta</a>
7-
to see some of our cool new features!
8-
9-
![](docs/source/images/hnxbasics.png)
10-
11-
The HyperNetX library provides classes and methods for the analysis and visualization of complex network data. HyperNetX uses data structures designed to represent set systems containing nested data and/or multi-way relationships. The library generalizes traditional graph metrics to hypergraphs.
12-
13-
The current version is preliminary. We are actively testing and would be grateful for comments and suggestions. Expect changes in both class names and methods as many of the requirements demanded of the library are worked out.
14-
15-
HypernetX was developed by the Pacific Northwest National Laboratory for the Hypernets project as part of its High Performance Data Analytics (HPDA) program. PNNL is operated by Battelle Memorial Institute under Contract DE-AC05-76RL01830.
6+
The HNX library provides classes and methods for modeling the entities and relationships
7+
found in complex networks as hypergraphs, the natural models for multi-dimensional network data.
8+
As strict generalizations of graphs, hyperedges can represent arbitrary multi-way relations
9+
among entities, and in particular can distinguish cliques and simplices, and admit singleton edges.
10+
As both vertex adjacency and edge
11+
incidence are generalized to be quantities,
12+
hypergraph paths and walks thereby have both length and *width* because of these multiway connections.
13+
Most graph metrics have natural generalizations to hypergraphs, but since
14+
hypergraphs are basically set systems, they also admit to the powerful tools of algebraic topology,
15+
including simplicial complexes and simplicial homology, to study their structure.
16+
17+
This library serves as a repository of the methods and algorithms we find most useful
18+
as we explore what hypergraphs can tell us. We have a growing community of users and contributors.
19+
To learn more about some of our research check out our publications below:
20+
21+
Publications
22+
------------
23+
• Joslyn, Cliff A; Aksoy, Sinan; Callahan, Tiffany J; Hunter, LE; Jefferson, Brett ; Praggastis, Brenda ; Purvine, Emilie AH ; Tripodi, Ignacio J: (2020) "Hypernetwork Science: From Multidimensional Networks to Computational Topology", in: Int. Conf. Complex Systems (ICCS 2020), https://arxiv.org/abs/2003.11782, (in press)
24+
• Feng, Song; Heath, Emily; Jefferson, Brett; Joslyn, CA; Kvinge, Henry; McDermott, Jason E ; Mitchell, Hugh D ; Praggastis, Brenda ; Eisfeld, Amie J; Sims, Amy C ; Thackray, Larissa B ; Fan, Shufang ; Walters, Kevin B; Halfmann, Peter J ; Westhoff-Smith, Danielle ; Tan, Qing ; Menachery, Vineet D ; Sheahan, Timothy P ; Cockrell, Adam S ; Kocher, Jacob F ; Stratton, Kelly G ; Heller, Natalie C ; Bramer, Lisa M ; Diamond, Michael S ; Baric, Ralph S ; Waters, Katrina M ; Kawaoka, Yoshihiro ; Purvine, Emilie: (2020) "Hypergraph Models of Biological Networks to Identify Genes Critical to Pathogenic Viral Response", in: https://arxiv.org/abs/2010.03068, BMC Bioinformatics, 22:287, doi: 10.1186/s12859-021-04197-2
25+
• Aksoy, Sinan G; Joslyn, Cliff A; Marrero, Carlos O; Praggastis, B; Purvine, Emilie AH: (2020) "Hypernetwork Science via High-Order Hypergraph Walks", EPJ Data Science, v. 9:16, https://doi.org/10.1140/epjds/s13688-020-00231-0
26+
• Joslyn, Cliff A; Aksoy, Sinan; Arendt, Dustin; Firoz, J; Jenkins, Louis ; Praggastis, Brenda ; Purvine, Emilie AH ; Zalewski, Marcin: (2020) "Hypergraph Analytics of Domain Name System Relationships", in: 17th Wshop. on Algorithms and Models for the Web Graph (WAW 2020), Lecture Notes in Computer Science, v. 12901, ed. Kaminski, B et al., pp. 1-15, Springer, https://doi.org/10.1007/978-3-030-48478-1_1
27+
• Joslyn, Cliff A; Aksoy, Sinan; Arendt, Dustin; Jenkins, L; Praggastis, Brenda; Purvine, Emilie; Zalewski, Marcin: (2019) "High Performance Hypergraph Analytics of Domain Name System Relationships", in: Proc. HICSS Symp. on Cybersecurity Big Data Analytics, http://www.azsecure-hicss.org/
28+
29+
30+
HNX was developed by the Pacific Northwest National Laboratory for the
31+
Hypernets project as part of its High Performance Data Analytics (HPDA) program.
32+
PNNL is operated by Battelle Memorial Institute under Contract DE-ACO5-76RL01830.
1633

1734
* Principle Developer and Designer: Brenda Praggastis
18-
* Graphics Developer and Designer: Dustin Arendt
19-
* Principal Investigator: Emilie Purvine
20-
* Program Manager: Cliff Joslyn, Mark Raugas
21-
* Mathematics, methods, and algorithms: Sinan Aksoy, Dustin Arendt, Cliff Joslyn, Brenda Praggastis, and Emilie Purvine
22-
* Software support: Kyle Monson
35+
* Visualization: Dustin Arendt, Ji Young Yun
36+
* High Performance Computing: Tony Liu, Andrew Lumsdaine
37+
* Principal Investigator: Cliff Joslyn
38+
* Program Manager: Mark Raugas, Brian Kritzstein
39+
* Mathematics, methods, and algorithms: Sinan Aksoy, Dustin Arendt, Cliff Joslyn, Andrew Lumsdaine, Tony Liu, Brenda Praggastis, and Emilie Purvine
2340

24-
For questions and comments you may contact the developers directly at:
25-
hypernetx@pnnl.gov
41+
The code in this repository is intended to support researchers modeling data
42+
as hypergraphs. We have a growing community of users and contributors.
43+
Documentation is available at: <https://pnnl.github.io/HyperNetX/>
44+
For questions and comments contact the developers directly at:
45+
<hypernetx@pnnl.gov>
2646

27-
Documentation is available at: https://pnnl.github.io/HyperNetX/
47+
New Features of Version 1.0:
48+
49+
1. Hypergraph construction can be sped up by reading in all of the data at once. In particular the hypergraph constructor may read a Pandas dataframe object and create edges and nodes based on column headers. The new hypergraphs are given an attribute `static=True`.
50+
2. A C++ addon called [NWHy](docs/build/nwhy.html) can be used in Linux environments to support optimized hypergraph methods such as s-centrality measures.
51+
3. A JavaScript addon called [Hypernetx-Widget](docs/build/widget.html) can be used to interactively inspect hypergraphs in a Jupyter Notebook.
52+
4. We've added four new tutorials highlighting the s-centrality metrics, static Hypergraphs, [NWHy](docs/build/nwhy.html), and [Hypernetx-Widget](docs/build/widget.html).
2853

2954
Tutorials may be run in your browser using Google Colab
3055
-------------------------------------------------------
3156

3257
<a href="https://colab.research.google.com/github/pnnl/HyperNetX/blob/master/tutorials/Tutorial%201%20-%20HNX%20Basics.ipynb" target="_blank">
33-
3458
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
35-
<span style={'margin-left':5px}>Tutorial 1 - HNX Basics</span>
59+
<span >Tutorial 1 - HNX Basics</span>
3660
</a>
3761
</br>
38-
<a href="https://colab.research.google.com/github/pnnl/HyperNetX/blob/master/tutorials/Tutorial%202%20-%20Visualization%20Methods.ipynb" target="_blank">
39-
4062

63+
<a href="https://colab.research.google.com/github/pnnl/HyperNetX/blob/master/tutorials/Tutorial%202%20-%20Visualization%20Methods.ipynb" target="_blank">
4164
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
42-
<span style={'margin-left':5px}>Tutorial 2 - Visualization Methods</span>
65+
<span >Tutorial 2 - Visualization Methods</span>
4366
</a>
4467
</br>
45-
<a href="https://colab.research.google.com/github/pnnl/HyperNetX/blob/master/tutorials/Tutorial%203%20-%20LesMis%20Case%20Study.ipynb" target="_blank">
46-
4768

69+
<a href="https://colab.research.google.com/github/pnnl/HyperNetX/blob/master/tutorials/Tutorial%203%20-%20LesMis%20Case%20Study.ipynb" target="_blank">
4870
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
49-
<span style={'margin-left':5px}>Tutorial 3 - LesMis Case Study</span>
71+
<span >Tutorial 3 - LesMis Case Study</span>
5072
</a>
5173
</br>
74+
5275
<a href="https://colab.research.google.com/github/pnnl/HyperNetX/blob/master/tutorials/Tutorial%204%20-%20LesMis%20Visualizations-BookTour.ipynb" target="_blank">
76+
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
77+
<span >Tutorial 4 - LesMis Visualizations-Book Tour</span>
78+
</a>
79+
</br>
5380

81+
<a href="https://colab.research.google.com/github/pnnl/HyperNetX/blob/master/tutorials/Tutorial%205%20-%20Homology%20mod%202%20for%20TriLoop%20Example.ipynb" target="_blank">
82+
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
83+
<span >Tutorial 5 - Homology mod2 for TriLoop Example</span>
84+
</a>
85+
</br>
5486

87+
<a href="https://colab.research.google.com/github/pnnl/HyperNetX/blob/master/tutorials/Tutorial%206%20-%20Static%20Hypergraphs%20and%20Entities.ipynb" target="_blank">
5588
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
56-
<span style={'margin-left':5px}>Tutorial 4 - LesMis Visualizations-Book Tour</span>
89+
<span >Tutorial 6 - Static Hypergraphs and Entities</span>
5790
</a>
5891
</br>
59-
<a href="https://colab.research.google.com/github/pnnl/HyperNetX/blob/master/tutorials/Tutorial%205%20-%20Homology%20mod%202%20for%20TriLoop%20Example.ipynb" target="_blank">
6092

93+
<a href="https://colab.research.google.com/github/pnnl/HyperNetX/blob/master/tutorials/Tutorial%20%20-%20s-centrality.ipynb" target="_blank">
6194
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
62-
<span style={'margin-left':5px}>Tutorial 5 - Homology mod2 for TriLoop Example</span>
95+
<span >Tutorial 7 - s-Centrality</span>
6396
</a>
97+
</br>
6498

6599

66-
67-
Installation Instructions
68-
-------------------------
69-
70-
HyperNetX requires Python>=3.6.
71-
We recommend installation in a virtual environment.
100+
Installing HyperNetX
101+
====================
102+
HyperNetX may be cloned or forked from: <https://github.com/pnnl/HyperNetX>
72103

73104
To install in an Anaconda environment
74105
-------------------------------------
75106

76-
>>> conda create -n <env name> python=3.6
77-
>>> source activate <env name>
107+
>>> conda create -n <env name> python=3.7
108+
>>> source activate <env name>
109+
>>> pip install hypernetx
78110

79111
Mac Users: If you wish to build the documentation you will need
80112
the conda version of matplotlib:
81-
82-
>>> conda install matplotlib
113+
114+
>>> conda create -n <env name> python=3.7 matplotlib
115+
>>> source activate <env name>
116+
>>> pip install hypernetx
117+
118+
To use [NWHy](docs/build/nwhy.html) use python=3.9 and the conda version of tbb in your environment.
119+
**Note** that [NWHy](docs/build/nwhy.html) only works on Linux and some OSX systems. See [NWHy documentation](docs/build/nwhy.html) for more.:
120+
121+
>>> conda create -n <env name> python=3.9 tbb
122+
>>> source activate <env name>
123+
>>> pip install hypernetx
124+
>>> pip install nwhy
83125

84126
To install in a virtualenv environment
85127
--------------------------------------
86128

87-
>>> virtualenv --python=<path to python 3.6 executable> <path to env name>
129+
>>> virtualenv --python=<path to python 3.7 executable> <path to env name>
88130

89131
This will create a virtual environment in the specified location using
90132
the specified python executable. For example:
@@ -105,27 +147,27 @@ Otherwise use <file extension>=NULL (no file extension).
105147
Once activated continue to follow the installation instructions below.
106148

107149

108-
Install using Pip
109-
-----------------
110-
150+
Install using Pip options
151+
-------------------------
111152
For a minimal installation:
112153

113154
>>> pip install hypernetx
114155

115-
For an editable installation with access to jupyter notebooks:
156+
For an editable installation with access to jupyter notebooks:
116157

117158
>>> pip install [-e] .
118159

119-
To install with the tutorials:
160+
To install with the tutorials:
120161

121162
>>> pip install -e .['tutorials']
122163

123-
To install with the documentation:
124-
164+
To install with the documentation:
165+
125166
>>> pip install -e .['documentation']
126-
>>> sphinx-build -b html docs/source docs/build
127-
## This will generate the documentation in /docs/build
128-
## Open them in your browser with /docs/build/index.html
167+
>>> chmod 755 build_docs.sh
168+
>>> sh build_docs.sh
169+
## This will generate the documentation in /docs/build/
170+
## Open them in your browser with /docs/index.html
129171

130172
To install and test using pytest:
131173

@@ -136,6 +178,23 @@ To install the whole shabang:
136178

137179
>>> pip install -e .['all']
138180

181+
Notice
182+
------
183+
This material was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor the United States Department of Energy, nor Battelle, nor any of their employees, nor any jurisdiction or organization that has cooperated in the development of these materials, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness or any information, apparatus, product, software, or process disclosed, or represents that its use would not infringe privately owned rights.
184+
Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof, or Battelle Memorial Institute. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.
185+
186+
<div align=center>
187+
<pre style="align-text:center;font-size:10pt">
188+
PACIFIC NORTHWEST NATIONAL LABORATORY
189+
operated by
190+
BATTELLE
191+
for the
192+
UNITED STATES DEPARTMENT OF ENERGY
193+
under Contract DE-AC05-76RL01830
194+
</pre>
195+
</div>
196+
197+
139198
License
140199
-------
141200

README.rst

Lines changed: 0 additions & 103 deletions
This file was deleted.

docs/build/.buildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: 8082c27ea31dbc8eae0ddce73b4a952e
3+
config: bbecb70f0b1dbbfd5f5e21c3f3cc3da1
44
tags: 645f666f9bcd5a90fca523b33c5a78b7
57.6 KB
Binary file not shown.
0 Bytes
Binary file not shown.
267 KB
Binary file not shown.
0 Bytes
Binary file not shown.

docs/build/.doctrees/core.doctree

3.15 KB
Binary file not shown.
12.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)