From c9d4e926ec4ec6c55a5230a4dbbb5295b656cf0a Mon Sep 17 00:00:00 2001 From: Mark Bonicillo Date: Wed, 11 Oct 2023 14:18:58 -0700 Subject: [PATCH] HYP-344 Add tutorial readmes, update Collab links --- Makefile | 15 ++++++-- README.md | 12 +++---- tutorials/advanced/README.md | 29 ++++++++++++++++ tutorials/basic/README.md | 32 ++++++++++++++++++ .../images/jupyter_notebook_screenshot.png | Bin 0 -> 21650 bytes tutorials/widget/README.md | 31 +++++++++++++++++ 6 files changed, 111 insertions(+), 8 deletions(-) create mode 100644 tutorials/advanced/README.md create mode 100644 tutorials/basic/README.md create mode 100644 tutorials/images/jupyter_notebook_screenshot.png create mode 100644 tutorials/widget/README.md diff --git a/Makefile b/Makefile index 786d1b77..0c7be1a9 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,6 @@ test-ci: test-deps pre-commit install pre-commit run --all-files @$(PYTHON3) -m tox -e py38 -r - @$(PYTHON3) -m tox -e py38-notebooks -r test-ci-github: test-deps @$(PYTHON3) -m pip install 'pytest-github-actions-annotate-failures>=0.1.7' @@ -53,13 +52,25 @@ version-deps: .PHONY: version-deps -#### Documentation +### Documentation docs-deps: @$(PYTHON3) -m pip install -e .'[documentation]' --use-pep517 .PHONY: docs-deps +## Tutorials + +.PHONY: tutorial-deps +tutorial-deps: + @$(PYTHON3) -m pip install .'[tutorials]' .'[widget]' --use-pep517 + +.PHONY: tutorials +tutorials: + jupyter notebook tutorials + + + ## Environment clean-venv: diff --git a/README.md b/README.md index e5098c1b..dae06123 100644 --- a/README.md +++ b/README.md @@ -72,25 +72,25 @@ Google Colab ------------ - + Open In Colab Tutorial 1 - HNX Basics
- + Open In Colab Tutorial 2 - Visualization Methods
- + Open In Colab Tutorial 3 - LesMis Case Study
- + Open In Colab Tutorial 4 - LesMis Visualizations-Book Tour @@ -102,7 +102,7 @@ Google Colab
- + Open In Colab Tutorial 6 - Homology mod2 for TriLoop Example @@ -112,7 +112,7 @@ Google Colab Jupyter Notebooks ----------------- -Additional tutorials that can be run as Jupyter Notebooks can be found in the 'tutorials-jupyter' folder. +Additional tutorials that can be run as Jupyter Notebooks are found under [tutorials](./tutorials). Installation ==================== diff --git a/tutorials/advanced/README.md b/tutorials/advanced/README.md new file mode 100644 index 00000000..09d36ab7 --- /dev/null +++ b/tutorials/advanced/README.md @@ -0,0 +1,29 @@ +# Overview + +These tutorials cover advanced topics in hypergraphs such as hypergraph metrics, homology, generating hypergraphs from +random models, modeling contagion with hypergraphs, and hypergraph modularity. + +# How to run the tutorials on Jupyter Notebook + +Create a virtual environment: + +`make venv` + +Activate the environment: + +`source venv-hnx/bin/activate` + +Navigate to the root of this repository. Install the required dependencies in order to run the Jupyter Notebooks: + +`make tutorials-deps` + +Once the dependencies have been installed, run the notebooks: + +`make tutorials` + +This command will open up the notebooks on a browser at the following URL: http://localhost:8888/tree + +Below is a screenshot of what to expect to see on the browser. Click a folder and open the desired +tutorial on your browser: + +![](../images/jupyter_notebook_screenshot.png) diff --git a/tutorials/basic/README.md b/tutorials/basic/README.md new file mode 100644 index 00000000..3db4f888 --- /dev/null +++ b/tutorials/basic/README.md @@ -0,0 +1,32 @@ +# Overview + +These tutorials provide an introduction to the HyperNetX library using graph data such as the [Les Miserables dataset from the +Stanford GraphBase](https://cs.stanford.edu/pub/sgb/sgb.tar.gz). The tutorials also show how to use the library's visualization tools +to visualize and analyze hypergraphs. + +# How to run the tutorials on Jupyter Notebook + +Create a virtual environment: + +`make venv` + + +Activate the environment: + +`source venv-hnx/bin/activate` + + +Navigate to the root of this repository. Install the required dependencies in order to run the Jupyter Notebooks: + +`make tutorials-deps` + +Once the dependencies have been installed, run the notebooks: + +`make tutorials` + +This command will open up the notebooks on a browser at the following URL: http://localhost:8888/tree + +Below is a screenshot of what to expect to see on the browser. Click a folder and open the desired +tutorial on your browser: + +![](../images/jupyter_notebook_screenshot.png) diff --git a/tutorials/images/jupyter_notebook_screenshot.png b/tutorials/images/jupyter_notebook_screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..6a47bd1347f192095b12669536f075784cce1dea GIT binary patch literal 21650 zcmdSBby!qg_%)0OQX(iI(ujykD%~I@D5Z1^A>BE2I3l2uigbyTbk`u=l2Sv5G($)? zynCKU;Q7Ay_wW0K*9DGe&N+LZefGZZwbs419~9-E;p39yqM@PT%ScPSLPJB3LqoeF zg?$YiX}P9ghlYk*Y$h(QC?hUTt7vayY-VYMh9>is%oev0mcHU?;u1gUzUCVuy)%`yN}>QAMJz1g%h&S)H&BopJFkGu<-0fR-_0 z@2Y=(<@%4kuGl#D`SxQ6lljvH`7R7JT%QNwX$_fZhSG&b(^rH$hRR(StO*IP;7na1 z>2Wz`ek8!mj6utuamGr+e}yw`T{EQVaBtyE#S~rtHVxXt>(lg4Z;M==4r_h&C$-QL zP4Vbv<*(nCOLug|qwb31N|c)fN)lz?nMtveN^bF_Yw)}|h=HaszhOv+*4q3&KDvSQ zu3anTJFENX1sM9X0)IMMTZw4{XEEpBhY(K}>}RLcG~PU6G5*ZX5c1&FW}`+kX7^1K znLgJSXWfX6n)~-4!qE-H8neV2dc5C0!M|deMb|x#pzp+qH!RQ_^Nv%Rg}n^x=-v!U zG`tc*lsy(J{J`*YSktMtQJkgqEInS)F&%?O1X*rJIP;c~0=oitxLU&P)Z%pPil6%x zk3KyKi@O(`z|p2*cC$`NxcYgeEOlj-x?N23jC;oE64w~JyJ9nS zAL=VKb$nDAWFWLZPV@No<+Rt5#)#F-Evi>Hiu!A@$(+Q)J>z?%_U1NGn^b9=Z|fPz zY~RpeKNXfG#H2*S8@d~C^>v}|i{`b5e>%UghJTQJG%U;AYb3^?R$mrfS6o)&jHZ`u z@*uad^3R6OJI*e-VfIhduRTQ%4Y$6qWDvjc6QkcreiXaGiuN57t)FLWt}qT~R9)c8 z^-T*=%S|pG%0Vc(_RgDDy)u)`}D~WM(JDJ ze2SH;{6FPbaa97$#Y(=eeRF%6rlcoy0in59t z0uz3h`%G7AQgSbeWYOjht`wGmuU&)flY%=pji00uD*5rf;q$F{TM
rwl4r+&ikXihA1XYgQCVct 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 Hr-UW|=yuZf literal 0 HcmV?d00001 diff --git a/tutorials/widget/README.md b/tutorials/widget/README.md new file mode 100644 index 00000000..2364a4f1 --- /dev/null +++ b/tutorials/widget/README.md @@ -0,0 +1,31 @@ +# Overview + +These tutorials demonstrate how to use [hnxwidget](https://pypi.org/project/hnxwidget/), an interactive visualization tool +of HyperNetX. + +# How to run the tutorials on Jupyter Notebook + +Create a virtual environment: + +`make venv` + + +Activate the environment: + +`source venv-hnx/bin/activate` + + +Navigate to the root of this repository. Install the required dependencies in order to run the Jupyter Notebooks: + +`make tutorials-deps` + +Once the dependencies have been installed, run the notebooks: + +`make tutorials` + +This command will open up the notebooks on a browser at the following URL: http://localhost:8888/tree + +Below is a screenshot of what to expect to see on the browser. Click a folder and open the desired +tutorial on your browser: + +![](../images/jupyter_notebook_screenshot.png)