Skip to main content

VueGen automates the creation of reports from bioinformatics outputs, supporting formats like PDF, HTML, DOCX, ODT, PPTX, Reveal.js, Jupyter notebooks, and Streamlit web applications. Users simply provide a directory with output files and VueGen compiles them into a structured report.

Project description

VueGen Logo

VueGen is a Python package that automates the creation of scientific reports.

Information Links
Package PyPI Latest Release Conda Latest Release Supported versions Docker Repository on Quay License
Documentation made-with-sphinx-doc Docs View - Documentation
Build CI Docs
Examples HTML5 Streamlit
Discuss on GitHub GitHub issues GitHub pull requests
Cite DOI:10.1101/2025.03.05.641152

Table of contents:

About the project

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.

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 web applications.

An overview of the VueGen workflow is shown in the figure below:

VueGen Abstract

Also, the class diagram for the project is presented below to illustrate the architecture and relationships between classes:

VueGen Class Diagram

An extended version of the class diagram with attributes and methods is available here.

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

Installation

[!TIP] It is recommended to install VueGen inside a virtual environment to manage depenendencies and avoid conflicts with existing packages. You can use the virtual environment manager of your choice, such as poetry, conda, or pipenv.

Pip

VueGen is available on PyPI and can be installed using pip:

pip install vuegen

You can also install the package for development by cloning this repository and running the following command:

pip install -e path/to/vuegen # specify location
pip install -e . # in case your pwd is in the vuegen directory

Conda

VueGen is also available on Bioconda and can be installed using conda:

conda install bioconda::vuegen

Dependencies

VueGen uses Quarto to generate various report types. The pip insallation includes quarto using the quarto-cli Python library. To test if quarto is installed in your computer, run the following command:

quarto check

[!TIP] If quarto is not installed, you can download the command-line interface from the Quarto website for your operating system.

Docker

If you prefer not to install VueGen on your system, a pre-configured Docker container is available. It includes all dependencies, ensuring a fully reproducible execution environment. See the Execution section for details on running VueGen with Docker. The official Docker image is available at quay.io/dtu_biosustain_dsp/vuegen.

Nextflow and nf-core

VueGen is also available as a nf-core module, customised for compatibility with the Nextflow environment. This module is designed to automate report generation from outputs produced by other modules, subworkflows, or pipelines. The code and documentation for the nf-core module are available in the nf-VueGen repository.

Execution

[!IMPORTANT] Here we use the Earth_microbiome_vuegen_demo_notebook directory and the Earth_microbiome_vuegen_demo_notebook.yaml configuration file as examples, which are available in the docs/example_data and docs/example_config_files folders, respectively. Make sure to clone this reposiotry to access these contents, or use your own directory and configuration file.

Run VueGen using a directory with the following command:

vuegen --directory docs/example_data/Earth_microbiome_vuegen_demo_notebook --report_type streamlit

[!NOTE] By default, the streamlit_autorun argument is set to False, but you can use it in case you want to automatically run the streamlit app.

It's also possible to provide a configuration file instead of a directory:

vuegen --config docs/example_config_files/Earth_microbiome_vuegen_demo_notebook.yaml --report_type streamlit

The current report types supported by VueGen are:

  • Streamlit
  • HTML
  • PDF
  • DOCX
  • ODT
  • Reveal.js
  • PPTX
  • Jupyter

Running VueGen with Docker

Instead of installing VueGen locally, you can run it directly from a Docker container with the following command:

docker run --rm \
  -v "$(pwd)/docs/example_data/Earth_microbiome_vuegen_demo_notebook:/home/appuser/Earth_microbiome_vuegen_demo_notebook" \
  -v "$(pwd)/output_docker:/home/appuser/quarto_report" \
  quay.io/dtu_biosustain_dsp/vuegen:docker --directory /home/appuser/Earth_microbiome_vuegen_demo_notebook --report_type streamlit

GUI

Local GUI

We have a simple GUI for VueGen that can be run locally or through a standalone executable. For now you will need to have a copy of this repository.

pip install '.[gui]'
cd gui
python app.py

Bundled GUI

The bundle GUI with the VueGen package is available under the latest releases. You will need to unzip the file and run vuegen_gui in the unpacked main folder. Most dependencies are included into the bundle using PyInstaller.

Streamlit works out of the box as a purely Python based package. For html creation you will have to have a Python 3.12 installation with the jupyter package installed as quarto needs to start a kernel for execution. This is also true if you install quarto globally on your machine.

We recommend using miniforge to install Python and the conda package manager:

We continous our example assuming you have installed the miniforge distribution for your machine (MacOS with arm64/ apple silicon or x86_64/ intel or Windows x86_64). Also download the latest vuegen_gui bundle from the releases page according to your operating system.

conda create -n vuegen_gui -c conda-forge python=3.12 jupyter
conda info -e # find environment location

Find the vuegen_gui path for your local user.

On MacOS you need to add a bin to the path:

/Users/user/miniforge3/envs/vuegen_gui/bin

On Windows you can use the path as displayed by conda info -e:

Note: On Windows a base installation of miniforge with jupyter might work as well as the app can see your entire Path which is not the case on MacOS.

C:\Users\user\miniforge3\envs\vuegen_gui

More information regarding the app and builds can be found in the GUI README.

Case studies

VueGen’s functionality is demonstrated through two case studies:

1. Predefined Directory

This introductory case study uses a predefined directory with plots, dataframes, Markdown, and HTML components. Users can generate reports in different formats and modify the configuration file to customize the report structure.

🔗 Open in Colab

2. Earth Microbiome Project Data

This advanced case study demonstrates the application of VueGen in a real-world scenario using data from the Earth Microbiome Project (EMP). The EMP is an initiative to characterize global microbial taxonomic and functional diversity. The notebook process the EMP data, create plots, dataframes, and other components, and organize outputs within a directory to produce reports. Report content and structure can be adapted by modifying the configuration file. Each report consists of sections on exploratory data analysis, metagenomics, and network analysis.

🔗 Open in Colab

[!NOTE] The EMP case study is available online as HTML and Streamlit reports.

Web application deployment

Once a Streamlit report is generated, it can be deployed as a web application to make it accessible online. There are multiple ways to achieve this:

  • Streamlit Community Cloud: Deploy your report easily using Streamlit Cloud, as demonstrated in the EMP VueGen Demo. The process involves moving the necessary scripts, data, and a requirements.txt file into a GitHub repository. Then, the app can be deployed via the Streamlit Cloud interface. The deployment example is available in the streamlit-report-example branch.
  • Standalone Executables: Convert your Streamlit application into a desktop app by packaging it as an executable file for different operating systems. A detailed explanation of this process can be found in this Streamlit forum post.
  • Stlite: Run Streamlit apps directly in the browser with stlite, a WebAssembly port of Streamlit powered by Pyodide, eliminating the need for a server. It also allows packaging apps as standalone desktop executables using stlite desktop.

These options provide flexibility depending on whether the goal is online accessibility, lightweight execution, or local application distribution.

Contributing

VueGen is an open-source project, and we welcome contributions of all kinds via GitHub issues and pull requests. You can report bugs, suggest improvements, propose new features, or implement changes. Please follow the guidelines in the CONTRIBUTING file to ensure that your contribution is easily integrated into the project.

Credits and acknowledgements

Citation

If you use VueGen in your research or publications, please cite it as follows:

APA:

Ayala-Ruano, S., Webel, H., & Santos, A. (2025). VueGen: Automating the generation of scientific reports. bioRxiv. https://doi.org/10.1101/2025.03.05.641152

BibTeX:

@article{Ayala-Ruano2025VueGen,
  author  = {Ayala-Ruano, Sebastian and Webel, Henry and Santos, Alberto},
  title   = {VueGen: Automating the generation of scientific reports},
  journal = {bioRxiv},
  year    = {2025},
  doi     = {10.1101/2025.03.05.641152},
  publisher = {Cold Spring Harbor Laboratory},
  url     = {https://www.biorxiv.org/content/10.1101/2025.03.05.641152},
  eprint = {https://www.biorxiv.org/content/10.1101/2025.03.05.641152.full.pdf}
}

Contact and feedback

We appreciate your feedback! If you have any comments, suggestions, or run into issues while using VueGen, feel free to open an issue in this repository. Your input helps us make VueGen better for everyone.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vuegen-0.3.0.tar.gz (45.5 kB view details)

Uploaded Source

Built Distribution

vuegen-0.3.0-py3-none-any.whl (44.3 kB view details)

Uploaded Python 3

File details

Details for the file vuegen-0.3.0.tar.gz.

File metadata

  • Download URL: vuegen-0.3.0.tar.gz
  • Upload date:
  • Size: 45.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for vuegen-0.3.0.tar.gz
Algorithm Hash digest
SHA256 90e792786c2fec1d5952a8578269c345c93a761a524c0ae59af5a31d3196a348
MD5 ca07732b8cefa657f1f9891e6d94d39e
BLAKE2b-256 c65e3d2c1c1ea67ff271617943f4523ed9d6a5af5294fbcd660003c5e88579a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for vuegen-0.3.0.tar.gz:

Publisher: cdci.yml on Multiomics-Analytics-Group/vuegen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vuegen-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: vuegen-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 44.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for vuegen-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2b0824cfa175c2886e88b9c5f06d7c403d955c3eaff11ec3b9a0da8d56566148
MD5 e0aa66020776aefc3c9da01798c418b3
BLAKE2b-256 caa2a08c93d2d58c3d6ddaeca753c097704bf713e995387d8e09907a56e70d47

See more details on using hashes here.

Provenance

The following attestation bundles were made for vuegen-0.3.0-py3-none-any.whl:

Publisher: cdci.yml on Multiomics-Analytics-Group/vuegen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page