Skip to content

Commit 99e38d9

Browse files
enryHenryh
andauthored
MacOs and Windows standalone GUIs installers (#73)
First graphical user interface (GUI) for vuegen. Code base was adjusted to improve output file location, passing of configuration paths, logging in a continiously running application and allowing Windows compatibility of used paths. Single commits * 🚧 start with bundleing cli tool * ✨ with pyvis added the basic example works using the cli * 🚧🐛 streamlit not easy to run from within vuegen script - sys.exectuable is vuegen script, not the original Python Interpreter -> not easy to run `pthon -m streamlit run file.py` - manually starting and building streamlit_run command does not connect to browser atm * ✨ start streamlit without subprocess - runs from self-contained app * 🐛 ensure that networking is properly enabled - network URL assigned. - localhost not on port 3000, but 8501 it seems * 🎨 make Streamlit report aware of where it runs - keep also subprocess option in code for local development * 🐛 add st_aggrid as it is imported, not installed import st_aggrid but pip install streamlit-aggrid it is a "hidden" import as the main script is not using it (as pyvis or streamlit itself) * 🚧 start testing of bundeling for quarto - some form of binaries have to be passed, along addtional dependencies * 📝 add current spec file * ✨: First simple working example of a GUI (streamlit local) - can start streamlit when not package as exectuable from GUI - use grid to define layout ToDo: Move to class-based layout * ✨ add basic GUI command - creates relative large executable (740 MB) * 🎨 set default to running streamlit app directly * 🎨 format app script further * ⏪ undo deletion of dependencies * ✨🎨 Try to build executable on ubuntu (+ formating) * 🐛 cli different than on MAC, ⚡ speed up testing for now - only run againt Python 3.11 * 🐛 install vuegen itself with gui deps * 🎨 introduce labels for runner images to be able to specify what is what more easily * ✨ add other runner OS platforms with labels * 🐛 poetry optional dependencies need to be explicit, fix name of job - extras need to be specified as additinal dependencies - build name of job correctly * 🐛 colon not allowed in name... * ⏪ undo command change * ✨ define basic example as default, ship it with bundle Always have something to run. * 🎨 make process label somehow fit UI limitations - for GitHub Actions View in the browser * 🐛 acutally get variable value, not test instance exist - before the existence was just tested, leading to always True (?) * ⏪ restore main branch commands (render, not convert) * 🚚🔥 remove cli exectuable for GUI bundle only - 🚚 move some hints to GUI README * 🔧 Only show streamlit for now (quarto not yet bundled) * 🚧 add quarto execution for bundle - execution still fails - convert and render without execution? - add all report types to GUI (for testing) - do not stop app when quarto is not in PATH * ✨ get quarto html output from bundle - use quarto (pandoc?) to convert qmd to ipynb - use nbconvert and a copied Python executable to execute notebook - use quarto (pandoc?) ot convert executed ipynb to desired format * 🐛 add bundle dependencies, RadioButton toggle - radiobutton values are not correctly used in bundled app when built in runner - works locally (woth local bundle, and direct execution of app) * 🐛 fix command om cdci * :arg: reduce console output (global logging level is DEBUG?) * 🐛 use macos-15 explicitly * 🎨 format and rename callback factory * 📝 add hint to execution procedure * 🐛 try to fix python executable path - just copy what ever is pointing to sys.executable - move to binaries folder Locally this all works, but it might be that the lcoal Python exe is somehow 'valid' (signed, etc) * 🎨 format helper script * 🚧 move python file to main folder * 🚧 try to use miniconda action for python exe * 🚧 inspect conda on GitHub Actions runners * 🚧 find the documented test environment * 🐛 test environment not auto-activated * 🚧 try to activate test env... * 🚧 get environment to be activated * 🚧 modify default shell params * 🚧 use quarto native functionality - require users to have a Python base installation with jupyter installed - pip install jupyter Then quarto manages to pick up local dependencies and run the notebook (to test) * 🚧 try to add tinytex * 🐛 check for dependencies * 🐛 try to add both tools on the fly (chromnium and tinyte) needed for pdfs, docx, pptx, etc * 🐛 close parantheses (merge error) * 🐛 make Windows Path for bundled quarto executable - install quarto on server (as it seems to fail in conda envs which I use locally) * 🚧 test further options * 🎨 add file directory selection - allow to specify a directory - added Alberto's directory selection dialog - added the report generator functionality as suggested by Alberto - success needs to be printed manually. quarto errors are not propagated to our app... (exist code of subprocess run) * 🚧 test now with onefile - importing vuegen.generate_report increased the MAC OS file size - or it was the windowed option? * 🚧 test also non-windowed app * 🐛 set default static dir only on main methods, pass parameter on other hidden methods - will allow to set static dir on app or cli * 🐛 allow to specify log directory * ✨ allow to set output directory, pass on to get_report - initialize logging directory at output directory * 🎨 separate by row, cont. increments * 🐛 fix #89 - check if output was actually created * 🚧 allow to set Python Path manually - manipulate PATH and add logs * 🐛 set generic kernel name - otherwise it uses local defaults on device * 🎨 fix typo in function name * 🎨 use isostandard for log file format - but relace colons with hypens in hour:minutes:seconds * ✨ this let's the interpreter look for the packages in the shipped folder - but they need to be present as full modules (which means that `.py` and not `.so` files are present? - will be large... but that is a side note Use Python=3.12 where pyvis examples should work in streamlit * 🐛 only add folder as import, not the zip file * 🐛 fix cdci * 🚧 build for python 3.12 with jupyter installed - conda base 3.12 with jupyter installed needed to execute - other than that 'only' vuegen required packges * 🚧 add makefile to document local build on mac - Makefile also has environment packages listed which could be added (be aware to use package folder name, not PyPI name, e.g. PIL and not pillow) - should work with local python environment with jupyter installed - switched to windowed build * 🐛 example data not in normal writable file path for bundled app, put config to output folder? - could be an option (to discuss) - config file is where output is, not where report - could be otherwise an option to be specified * 🐛 svg from readme cannot be rendered * 🐛 reset logger (relevant for GUI) - logging.basicConfig only has an effect the first time - executed from GUI, the logs were created but empty the second time * 💥 Write config file based on directory to output directory of report - read-only situation of result directories: One cannot always write to directory which contains the results if -dir option is used - ✨ Return paths for easier reporting - adapt example notebooks accordingly * ✨ improve folder dialog for PythonPath, set str explicitly for Windows - On windows the Path set by the user globally are probably seen (it seems) - check if a path is set for directory dialog, if not start at home directory * 🎨 set default logger_id (so not all loggers are set to debug) * 🐛 do not overwrite _PATH - otherwise bundled quarto is set twice if python env is selected * 🎨 add logo to app and clean-up app.py - for debugging do not build windowed app for now * 🎨 do not reset directories when nothing is set, adj. app size * ✨ cache python exectutable set previously - only require users to setup python environment once - 📝 start describing how to use bundled app * 🎨 format, escape pagemark * ✨ copy example data to vuegen_gui dir in home directory, lib for png export of altair fig - address windows pandoc issue: "pandoc: openBinaryFile: does not exist (No such file or directory)" - add library vl-convert-python needed for altair fig exported as static png * 🎨 remove comment and sort * 🐛 use selected logger, not always root to reset handlers - handlers were not reset if not root logger was used * ✨ document and restore all actions, use windowed build * 🐛 add 'save' tag to ensure that altair plots can be exported * 🎨 format docs as they were adapted - api changes needed to be reflected in docs. - format docs - enforce using action * 📝 link README of GUI * 🚧 gh release upload for adding executables to release? * 🎨 no time zone in log file name, use onefile for windows - time zone names on windows are too long - onefile on Windows should lead to only one exe - see if option leads to okay option for .app on MAC * 🎨 remove some comments and fix docstring --------- Co-authored-by: enryh <[email protected]>
1 parent 94c5e4c commit 99e38d9

File tree

17 files changed

+1809
-477
lines changed

17 files changed

+1809
-477
lines changed

.github/workflows/cdci.yml

Lines changed: 65 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
branches: [main]
88
release:
99
types: [published]
10-
10+
1111
jobs:
1212
test:
1313
name: Unittests+streamlit
@@ -17,14 +17,16 @@ jobs:
1717
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
1818
steps:
1919
- uses: actions/checkout@v4
20-
- uses: psf/black@stable
20+
- uses: psf/black@stable
21+
with:
22+
jupyter: true
2123
- uses: isort/isort-action@v1
2224
- name: Set up Python ${{ matrix.python-version }}
2325
uses: actions/setup-python@v5
2426
with:
2527
python-version: ${{ matrix.python-version }}
26-
cache: 'pip' # caching pip dependencies
27-
cache-dependency-path: '**/pyproject.toml'
28+
cache: "pip" # caching pip dependencies
29+
cache-dependency-path: "**/pyproject.toml"
2830
- name: Install dependencies
2931
run: |
3032
python -m pip install --upgrade pip
@@ -37,7 +39,7 @@ jobs:
3739
cd docs
3840
vuegen --directory example_data/Earth_microbiome_vuegen_demo_notebook
3941
vuegen --config example_data/Earth_microbiome_vuegen_demo_notebook/Earth_microbiome_vuegen_demo_notebook_config.yaml
40-
42+
4143
other-reports:
4244
name: Integration tests
4345
runs-on: ubuntu-latest
@@ -50,8 +52,8 @@ jobs:
5052
uses: actions/setup-python@v5
5153
with:
5254
python-version: ${{ matrix.python-version }}
53-
cache: 'pip' # caching pip dependencies
54-
cache-dependency-path: '**/pyproject.toml'
55+
cache: "pip" # caching pip dependencies
56+
cache-dependency-path: "**/pyproject.toml"
5557
- name: Install dependencies
5658
run: |
5759
pip install --upgrade pip
@@ -110,7 +112,7 @@ jobs:
110112

111113
steps:
112114
- uses: actions/checkout@v4
113-
115+
114116
- uses: actions/setup-python@v5
115117
with:
116118
python-version: "3.11"
@@ -120,3 +122,58 @@ jobs:
120122
run: python -m build
121123
- name: Publish package distributions to PyPI
122124
uses: pypa/gh-action-pypi-publish@release/v1
125+
126+
build-executable:
127+
name: Build-exe-${{ matrix.os.label }}
128+
runs-on: ${{ matrix.os.runner }}
129+
needs:
130+
- test
131+
- other-reports
132+
strategy:
133+
matrix:
134+
python-version: ["3.12"]
135+
os:
136+
# https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/running-variations-of-jobs-in-a-workflow#example-using-a-multi-dimension-matrix
137+
- runner: "macos-13"
138+
label: "macos-13-x64"
139+
- runner: "macos-15"
140+
label: "macos-15-arm64"
141+
- runner: "windows-latest"
142+
label: "windows-x64"
143+
steps:
144+
- uses: actions/checkout@v4
145+
- uses: actions/setup-python@v5
146+
with:
147+
python-version: ${{ matrix.python-version }}
148+
- name: Install VueGen GUI and pyinstaller
149+
run: |
150+
python -m pip install ".[gui]" pyinstaller
151+
- name: Install quarto tools
152+
run: |
153+
quarto install chromium
154+
quarto install tinytex
155+
- name: Build executable
156+
run: |
157+
cd gui
158+
pyinstaller -n vuegen_gui --onefile --windowed --collect-all pyvis --collect-all streamlit --collect-all st_aggrid --collect-all customtkinter --collect-all quarto_cli --collect-all plotly --collect-all _plotly_utils --collect-all traitlets --collect-all referencing --collect-all rpds --collect-all tenacity --collect-all pyvis --collect-all pandas --collect-all numpy --collect-all matplotlib --collect-all openpyxl --collect-all xlrd --collect-all nbformat --collect-all nbclient --collect-all altair --collect-all itables --collect-all kaleido --collect-all pyarrow --collect-all dataframe_image --collect-all narwhals --collect-all PIL --collect-all vl_convert --add-data ../docs/example_data/Basic_example_vuegen_demo_notebook:example_data/Basic_example_vuegen_demo_notebook --add-data ../docs/images/vuegen_logo.png:. app.py
159+
# --windowed only for mac, see:
160+
# https://pyinstaller.org/en/stable/usage.html#building-macos-app-bundles
161+
# 'Under macOS, PyInstaller always builds a UNIX executable in dist.'
162+
# --onefile --windowed for Windows?
163+
# --collect-all yaml --collect-all strenum --collect-all jinja2 --collect-all fastjsonschema --collect-all jsonschema --collect-all jsonschema_specifications
164+
# replace by spec file once done...
165+
- name: Upload executable
166+
uses: actions/upload-artifact@v4
167+
with:
168+
name: vuegen_gui_${{ matrix.os.label }}
169+
path: gui/dist/
170+
- name: Upload Executable to a GitHub Release
171+
if: startsWith(github.ref, 'refs/tags')
172+
env:
173+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
174+
run: |
175+
TAG_NAME=${GITHUB_REF#refs/tags/}
176+
cp
177+
gh release upload "$TAG_NAME" gui/dist/vuegen_gui.*#vuegen_gui_${{ matrix.os.label }}
178+
# https://cli.github.com/manual/gh_release_upload
179+
# either .app or .exe depending on the OS

README.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Also, the class diagram for the project is presented below to illustrate the arc
4141

4242
An extended version of the class diagram with attributes and methods is available [here][vuegen-class-diag-att].
4343

44-
The VueGen documentation is available at [vuegen.readthedocs.io][vuegen-docs], where you can find detailed information of the package’s classes and functions, installation and execution instructions, and case studies to demonstrate its functionality.
44+
The VueGen documentation is available at [vuegen.readthedocs.io][vuegen-docs], where you can find detailed information of the package’s classes and functions, installation and execution instructions, and case studies to demonstrate its functionality.
4545

4646
## Installation
4747

@@ -131,6 +131,26 @@ docker run --rm \
131131
quay.io/dtu_biosustain_dsp/vuegen:docker --directory /home/appuser/Earth_microbiome_vuegen_demo_notebook --report_type streamlit
132132
```
133133

134+
## GUI
135+
136+
We have a simple GUI for VueGen that can be run locally or through a standalone executable.
137+
138+
```bash
139+
cd gui
140+
python app.py
141+
```
142+
143+
The bundle GUI with the VueGen package is available under the releases. You will need to
144+
unzip the file and run `vuegen_gui` in the unpacked main folder. Most dependencies are included into
145+
the bundle under `_internals` using PyInstaller.
146+
147+
Streamlit works out of the box as a purely Python based package. For `html` creation you will have to
148+
have a global Python installation with the `jupyter` package installed. `quarto` needs to start
149+
a kernel for execution. This is also true if you install `quarto` globally on your machine.
150+
151+
More information can be found in the
152+
[GUI README](https://github.com/Multiomics-Analytics-Group/vuegen/blob/os_installers/gui/README.md).
153+
134154
## Case studies
135155

136156
VueGen’s functionality is demonstrated through two case studies:

docs/example_data/Basic_example_vuegen_demo_notebook/5_Markdown/1_All_markdown/README.md

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,32 @@
11
<!-- <div align="center">
22
<img width="300px" src="images/vuegen_logo.svg">
33
</div> -->
4-
![VueGen Logo](https://raw.githubusercontent.com/Multiomics-Analytics-Group/vuegen/main/docs/images/vuegen_logo.svg)
5-
-----------------
4+
5+
![VueGen Logo](https://raw.githubusercontent.com/Multiomics-Analytics-Group/vuegen/main/docs/images/vuegen_logo.png)
6+
67
<p align="center">
78
VueGen is a Python library that automates the creation of scientific reports.
89
</p>
910

10-
| Information | Links |
11-
| :--- | :--- |
12-
| **Package** |[ ![PyPI Latest Release](https://img.shields.io/pypi/v/vuegen.svg)](https://pypi.org/project/vuegen/) [![Supported versions](https://img.shields.io/pypi/pyversions/vuegen.svg)](https://pypi.org/project/vuegen/)|
13-
| **Documentation** | [![Docs](https://readthedocs.org/projects/vuegen/badge/?style=flat)](https://vuegen.readthedocs.io/)|
14-
| **Build** | [![CI](https://github.com/Multiomics-Analytics-Group/vuegen/actions/workflows/cdci.yml/badge.svg)](https://github.com/Multiomics-Analytics-Group/vuegen/actions/workflows/cdci.yml) [![Docs](https://github.com/Multiomics-Analytics-Group/vuegen/actions/workflows/docs.yml/badge.svg)](https://github.com/Multiomics-Analytics-Group/vuegen/actions/workflows/docs.yml)|
15-
| **Examples** | [![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white)](https://multiomics-analytics-group.github.io/vuegen/) [![Streamlit](https://img.shields.io/badge/Streamlit-%23FE4B4B.svg?style=for-the-badge&logo=streamlit&logoColor=white)](https://multiomics-analytics-group.github.io/vuegen/)|
16-
| **Discuss on GitHub** | [![GitHub issues](https://img.shields.io/github/issues/Multiomics-Analytics-Group/vuegen)](https://github.com/Multiomics-Analytics-Group/vuegen/issues) [![GitHub pull requests](https://img.shields.io/github/issues-pr/Multiomics-Analytics-Group/vuegen)](https://github.com/Multiomics-Analytics-Group/vuegen/pulls) |
11+
| Information | Links |
12+
| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
13+
| **Package** | [PyPI Latest Release](https://pypi.org/project/vuegen/) [Supported versions](https://pypi.org/project/vuegen/) |
14+
| **Documentation** | [Docs](https://vuegen.readthedocs.io/) |
15+
| **Build** | [CI](https://github.com/Multiomics-Analytics-Group/vuegen/actions/workflows/cdci.yml) - [Docs](https://github.com/Multiomics-Analytics-Group/vuegen/actions/workflows/docs.yml) |
16+
| **Examples** | [HTML5](https://multiomics-analytics-group.github.io/vuegen/) - [Streamlit](https://multiomics-analytics-group.github.io/vuegen/) |
17+
| **Discuss on GitHub** | [GitHub issues](https://github.com/Multiomics-Analytics-Group/vuegen/issues) - [GitHub pull requests](https://github.com/Multiomics-Analytics-Group/vuegen/pulls) |
1718

1819
## Table of contents:
20+
1921
- [About the project](#about-the-project)
2022
- [Installation](#installation)
2123
- [Execution](#execution)
2224
- [Acknowledgements](#acknowledgements)
2325
- [Contact](#contact)
2426

2527
## About the project
26-
VueGen automates the creation of reports based on a directory with plots, dataframes, and other files in different formats. A YAML configuration file is generated from the directory to define the structure of the report. Users can customize the report by modifying the configuration file, or they can create their own configuration file instead of passing a directory as input.
28+
29+
VueGen automates the creation of reports based on a directory with plots, dataframes, and other files in different formats. A YAML configuration file is generated from the directory to define the structure of the report. Users can customize the report by modifying the configuration file, or they can create their own configuration file instead of passing a directory as input.
2730

2831
The configuration file specifies the structure of the report, including sections, subsections, and various components such as plots, dataframes, markdown, html, and API calls. Reports can be generated in various formats, including documents (PDF, HTML, DOCX, ODT), presentations (PPTX, Reveal.js), notebooks (Jupyter) or [Streamlit](streamlit) web applications.
2932

@@ -34,6 +37,7 @@ An overview of the VueGen workflow is shown in the figure below:
3437
<img width="650px" src="images/vuegen_graph_abstract.png" alt="VueGen overview"/>
3538
</figure>
3639
</p> -->
40+
3741
![VueGen Abstract](https://raw.githubusercontent.com/Multiomics-Analytics-Group/vuegen/main/docs/images/vuegen_graph_abstract.png)
3842

3943
Also, the class diagram for the project is presented below to illustrate the architecture and relationships between classes:
@@ -57,7 +61,7 @@ pip install vuegen
5761
You can also install the package for development from this repository by running the following command:
5862

5963
```bash
60-
pip install -e path/to/vuegen # specify location
64+
pip install -e path/to/vuegen # specify location
6165
pip install -e . # in case your pwd is in the vuegen directory
6266
```
6367

@@ -91,24 +95,26 @@ vuegen --config example_data/Earth_microbiome_vuegen_demo_notebook/Earth_microbi
9195
```
9296

9397
The current report types supported by VueGen are:
94-
* Streamlit
95-
* HTML
96-
* PDF
97-
* DOCX
98-
* ODT
99-
* Reveal.js
100-
* PPTX
101-
* Jupyter
98+
99+
- Streamlit
100+
- HTML
101+
- PDF
102+
- DOCX
103+
- ODT
104+
- Reveal.js
105+
- PPTX
106+
- Jupyter
102107

103108
## Acknowledgements
104109

105110
- Vuegen was developed by the [Multiomics Network Analytics Group (MoNA)][Mona] at the [Novo Nordisk Foundation Center for Biosustainability (DTU Biosustain)][Biosustain].
106111
- The vuegen logo was designed based on an image created by [Scriberia][scriberia] for The [Turing Way Community][turingway], which is shared under a CC-BY licence. The original image can be found at [Zenodo][zenodo-turingway].
107112

108113
## Contact
114+
109115
If you have comments or suggestions about this project, you can [open an issue][issues] in this repository.
110116

111-
[streamlit]: https://streamlit.io/
117+
[streamlit]: https://streamlit.io/
112118
[vuegen-pypi]: https://pypi.org/project/vuegen/
113119
[quarto]: https://quarto.org/
114120
[quarto-cli-pypi]: https://pypi.org/project/quarto-cli/
@@ -119,5 +125,3 @@ If you have comments or suggestions about this project, you can [open an issue][
119125
[turingway]: https://github.com/the-turing-way/the-turing-way
120126
[zenodo-turingway]: https://zenodo.org/records/3695300
121127
[issues]: https://github.com/Multiomics-Analytics-Group/vuegen/issues/new
122-
123-
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
report:
2+
title: Earth Microbiome Vuegen Demo Notebook
3+
description: "The Earth Microbiome Project (EMP) is a systematic attempt to characterize\
4+
\ global microbial taxonomic and functional diversity for the benefit of the planet\
5+
\ and humankind. \n It aimed to sample the Earth\u2019s microbial communities\
6+
\ at an unprecedented scale in order to advance our understanding of the organizing\
7+
\ biogeographic principles that govern microbial community structure. \n The\
8+
\ EMP dataset is generated from samples that individual researchers have compiled\
9+
\ and contributed to the EMP. \n The result is both a reference database giving\
10+
\ global context to DNA sequence data and a framework for incorporating data from\
11+
\ future studies, fostering increasingly complete characterization of Earth\u2019\
12+
s microbial diversity.\n \n You can find more information about the Earth Microbiome\
13+
\ Project at https://earthmicrobiome.org/ and in the [original article](https://www.nature.com/articles/nature24621).\n"
14+
graphical_abstract: ''
15+
logo: ''
16+
sections:
17+
- title: Exploratory Data Analysis
18+
description: ''
19+
subsections:
20+
- title: Sample Exploration
21+
description: ''
22+
components:
23+
- title: Metadata Random Subset
24+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/1_Exploratory_data_analysis/1_sample_exploration/1_metadata_random_subset.csv
25+
description: ''
26+
caption: ''
27+
component_type: DATAFRAME
28+
file_format: CSV
29+
delimiter: ','
30+
- title: Animal Samples Map
31+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/1_Exploratory_data_analysis/1_sample_exploration/2_animal_samples_map.png
32+
description: ''
33+
caption: ''
34+
component_type: PLOT
35+
plot_type: STATIC
36+
- title: Plant Samples Map
37+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/1_Exploratory_data_analysis/1_sample_exploration/3_plant_samples_map.json
38+
description: ''
39+
caption: ''
40+
component_type: PLOT
41+
plot_type: PLOTLY
42+
- title: Saline Samples Map
43+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/1_Exploratory_data_analysis/1_sample_exploration/4_saline_samples_map.json
44+
description: ''
45+
caption: ''
46+
component_type: PLOT
47+
plot_type: ALTAIR
48+
- title: Metagenomics
49+
description: ''
50+
subsections:
51+
- title: Alpha Diversity
52+
description: ''
53+
components:
54+
- title: Alpha Diversity Host Associated Samples
55+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/2_Metagenomics/1_alpha_diversity/1_alpha_diversity_host_associated_samples.png
56+
description: ''
57+
caption: ''
58+
component_type: PLOT
59+
plot_type: STATIC
60+
- title: Alpha Diversity Free Living Samples
61+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/2_Metagenomics/1_alpha_diversity/2_alpha_diversity_free_living_samples.json
62+
description: ''
63+
caption: ''
64+
component_type: PLOT
65+
plot_type: PLOTLY
66+
- title: Average Copy Number
67+
description: ''
68+
components:
69+
- title: Average Copy Number Emp Ontology Level2
70+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/2_Metagenomics/2_average_copy_number/1_average_copy_number_emp_ontology_level2.png
71+
description: ''
72+
caption: ''
73+
component_type: PLOT
74+
plot_type: STATIC
75+
- title: Average Copy Number Emp Ontology Level3
76+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/2_Metagenomics/2_average_copy_number/2_average_copy_number_emp_ontology_level3.json
77+
description: ''
78+
caption: ''
79+
component_type: PLOT
80+
plot_type: PLOTLY
81+
- title: Nestedness
82+
description: ''
83+
components:
84+
- title: Nestedness Random Subset
85+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/2_Metagenomics/3_nestedness/1_nestedness_random_subset.csv
86+
description: ''
87+
caption: ''
88+
component_type: DATAFRAME
89+
file_format: CSV
90+
delimiter: ','
91+
- title: All Samples
92+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/2_Metagenomics/3_nestedness/2_all_samples.json
93+
description: ''
94+
caption: ''
95+
component_type: PLOT
96+
plot_type: PLOTLY
97+
- title: Plant Samples
98+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/2_Metagenomics/3_nestedness/3_plant_samples.json
99+
description: ''
100+
caption: ''
101+
component_type: PLOT
102+
plot_type: PLOTLY
103+
- title: Animal Samples
104+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/2_Metagenomics/3_nestedness/4_animal_samples.png
105+
description: ''
106+
caption: ''
107+
component_type: PLOT
108+
plot_type: STATIC
109+
- title: Non Saline Samples
110+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/2_Metagenomics/3_nestedness/5_non_saline_samples.png
111+
description: ''
112+
caption: ''
113+
component_type: PLOT
114+
plot_type: STATIC
115+
- title: Network Analysis
116+
description: ''
117+
subsections:
118+
- title: Phyla Association Networks
119+
description: ''
120+
components:
121+
- title: Phyla Counts Subset
122+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/3_Network_analysis/1_phyla_association_networks/1_phyla_counts_subset.csv
123+
description: ''
124+
caption: ''
125+
component_type: DATAFRAME
126+
file_format: CSV
127+
delimiter: ','
128+
- title: Phyla Correlation Network With 0.5 Threshold Edgelist
129+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/3_Network_analysis/1_phyla_association_networks/2_phyla_correlation_network_with_0.5_threshold_edgelist.csv
130+
description: ''
131+
caption: ''
132+
component_type: PLOT
133+
plot_type: INTERACTIVE_NETWORK
134+
csv_network_format: EDGELIST
135+
- title: Phyla Correlation Network With 0.5 Threshold
136+
file_path: example_data/Earth_microbiome_vuegen_demo_notebook/3_Network_analysis/1_phyla_association_networks/3_phyla_correlation_network_with_0.5_threshold.png
137+
description: ''
138+
caption: ''
139+
component_type: PLOT
140+
plot_type: STATIC

0 commit comments

Comments
 (0)