{"id":26459455,"url":"https://github.com/multiomics-analytics-group/vuegen","last_synced_at":"2025-03-19T01:16:10.607Z","repository":{"id":274975541,"uuid":"653025033","full_name":"Multiomics-Analytics-Group/vuegen","owner":"Multiomics-Analytics-Group","description":"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.","archived":false,"fork":false,"pushed_at":"2025-03-18T08:19:29.000Z","size":72155,"stargazers_count":10,"open_issues_count":24,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-18T09:29:36.777Z","etag":null,"topics":["data-visualization","developer-tools","python","quarto","reports","streamlit"],"latest_commit_sha":null,"homepage":"https://vuegen.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Multiomics-Analytics-Group.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-13T09:09:35.000Z","updated_at":"2025-03-17T13:05:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"b7dc920a-f7f5-4bff-ad50-b9f901f9341b","html_url":"https://github.com/Multiomics-Analytics-Group/vuegen","commit_stats":null,"previous_names":["multiomics-analytics-group/vuegen"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Multiomics-Analytics-Group%2Fvuegen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Multiomics-Analytics-Group%2Fvuegen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Multiomics-Analytics-Group%2Fvuegen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Multiomics-Analytics-Group%2Fvuegen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Multiomics-Analytics-Group","download_url":"https://codeload.github.com/Multiomics-Analytics-Group/vuegen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244333023,"owners_count":20436123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-visualization","developer-tools","python","quarto","reports","streamlit"],"created_at":"2025-03-19T01:16:09.661Z","updated_at":"2025-03-19T01:16:10.601Z","avatar_url":"https://github.com/Multiomics-Analytics-Group.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![VueGen Logo](https://raw.githubusercontent.com/Multiomics-Analytics-Group/vuegen/main/docs/images/vuegen_logo.svg)\n-----------------\n\u003cp align=\"center\"\u003e\n   VueGen is a Python package that automates the creation of scientific reports.\n\u003c/p\u003e\n\n| Information | Links |\n| :--- | :--- |\n| **Package** |[![PyPI Latest Release](https://img.shields.io/pypi/v/vuegen.svg)][vuegen-pypi] [![Conda Latest Release](https://img.shields.io/conda/v/bioconda/vuegen.svg)][vuegen-conda] [![Supported versions](https://img.shields.io/pypi/pyversions/vuegen.svg)][vuegen-pypi] [![Docker Repository on Quay](https://quay.io/repository/dtu_biosustain_dsp/vuegen/status \"Docker Repository on Quay\")][vuegen-docker-quay] [![License](https://img.shields.io/github/license/Multiomics-Analytics-Group/vuegen)][vuegen-license]|\n| **Documentation** | [![made-with-sphinx-doc](https://img.shields.io/badge/Made%20with-Sphinx-1f425f.svg)](https://www.sphinx-doc.org/) ![Docs](https://readthedocs.org/projects/vuegen/badge/?style=flat) [![View - Documentation](https://img.shields.io/badge/view-Documentation-blue?style=flat)][vuegen-docs]|\n| **Build** | [![CI](https://github.com/Multiomics-Analytics-Group/vuegen/actions/workflows/cdci.yml/badge.svg)][ci-gh-action] [![Docs](https://github.com/Multiomics-Analytics-Group/vuegen/actions/workflows/docs.yml/badge.svg)][ci-docs]|\n| **Examples** | [![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge\u0026logo=html5\u0026logoColor=white)][emp-html-demo] [![Streamlit](https://img.shields.io/badge/Streamlit-%23FE4B4B.svg?style=for-the-badge\u0026logo=streamlit\u0026logoColor=white)][emp-st-demo]|\n| **Discuss on GitHub** | [![GitHub issues](https://img.shields.io/github/issues/Multiomics-Analytics-Group/vuegen)][issues] [![GitHub pull requests](https://img.shields.io/github/issues-pr/Multiomics-Analytics-Group/vuegen)][pulls]|\n| **Cite** | [![DOI:10.1101/2025.03.05.641152](https://img.shields.io/badge/DOI-10.1101/2025.03.05.641152-B31B1B.svg)][vuegen-preprint]|\n\n## Table of contents:\n\n- [About the project](#about-the-project)\n- [Installation](#installation)\n- [Execution](#execution)\n- [Case studies](#case-studies)\n- [Web application deployment](#web-application-deployment)\n- [Contributing](#contributing)\n- [Credits and acknowledgements](#credits-and-acknowledgements)\n- [Citation](#citation)\n- [Contact and feedback](#contact-and-feedback)\n\n## About the project\n\nVueGen 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. \n\nThe 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.\n\nAn overview of the VueGen workflow is shown in the figure below:\n\n![VueGen Abstract](https://raw.githubusercontent.com/Multiomics-Analytics-Group/vuegen/main/docs/images/vuegen_graph_abstract.png)\n\nAlso, the class diagram for the project is presented below to illustrate the architecture and relationships between classes:\n\n![VueGen Class Diagram](https://raw.githubusercontent.com/Multiomics-Analytics-Group/vuegen/main/docs/images/vuegen_classdiagram_noattmeth.png)\n\nAn extended version of the class diagram with attributes and methods is available [here][vuegen-class-diag-att].\n\nThe 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. \n\n## Installation\n\n\u003e [!TIP]\n\u003e 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`.\n\n### Pip\n\nVueGen is available on [PyPI][vuegen-pypi] and can be installed using pip:\n\n```bash\npip install vuegen\n```\n\nYou can also install the package for development by cloning this repository and running the following command:\n\n```bash\npip install -e path/to/vuegen # specify location \npip install -e . # in case your pwd is in the vuegen directory\n```\n\n### Conda\n\nVueGen is also available on [Bioconda][vuegen-conda] and can be installed using conda:\n\n```bash\nconda install bioconda::vuegen\n```\n\n### Dependencies\n\nVueGen uses [Quarto][quarto] to generate various report types. The pip insallation includes quarto using the [quarto-cli Python library][quarto-cli-pypi]. To test if quarto is installed in your computer, run the following command:\n\n```bash\nquarto check\n```\n\n\u003e [!TIP]\n\u003e If quarto is not installed, you can download the command-line interface from the [Quarto website][quarto-cli] for your operating system.\n\n### Docker\n\nIf 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](#execution) for details on running VueGen with Docker. The official Docker image is available at [quay.io/dtu_biosustain_dsp/vuegen][vuegen-docker-quay]. \n\n### Nextflow and nf-core\n\nVueGen is also available as a [nf-core][nfcore] module, customised for compatibility with the [Nextflow][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][nf-vuegen].\n\n## Execution\n\n\u003e [!IMPORTANT]\n\u003e 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.\n\nRun VueGen using a directory with the following command:\n\n```bash\nvuegen --directory docs/example_data/Earth_microbiome_vuegen_demo_notebook --report_type streamlit\n```\n\n\u003e [!NOTE]\n\u003e 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.\n\nIt's also possible to provide a configuration file instead of a directory:\n\n```bash\nvuegen --config docs/example_config_files/Earth_microbiome_vuegen_demo_notebook.yaml --report_type streamlit\n```\n\nThe current report types supported by VueGen are:\n* Streamlit\n* HTML\n* PDF\n* DOCX\n* ODT\n* Reveal.js\n* PPTX\n* Jupyter\n\n### Running VueGen with Docker\n\nInstead of installing VueGen locally, you can run it directly from a Docker container with the following command:\n\n```bash\ndocker run --rm \\\n  -v \"$(pwd)/docs/example_data/Earth_microbiome_vuegen_demo_notebook:/home/appuser/Earth_microbiome_vuegen_demo_notebook\" \\\n  -v \"$(pwd)/output_docker:/home/appuser/quarto_report\" \\\n  quay.io/dtu_biosustain_dsp/vuegen:docker --directory /home/appuser/Earth_microbiome_vuegen_demo_notebook --report_type streamlit\n```\n\n## Case studies\n\nVueGen’s functionality is demonstrated through two case studies:\n\n**1. Predefined Directory**\n\nThis 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. \n\n🔗 [![Open in Colab][colab_badge]][colab_link_intro_demo]\n\n**2. Earth Microbiome Project Data**\n\nThis advanced case study demonstrates the application of VueGen in a real-world scenario using data from the [Earth Microbiome Project (EMP)][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.\n\n🔗 [![Open in Colab][colab_badge]][colab_link_emp_demo]\n\n\u003e [!NOTE]\n\u003e The EMP case study is available online as [HTML][emp-html-demo] and [Streamlit][emp-st-demo] reports.\n\n## Web application deployment\n\nOnce 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:\n\n* **Streamlit Community Cloud**: Deploy your report easily using [Streamlit Cloud][st-cloud], as demonstrated in the [EMP VueGen Demo][emp-st-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.\n* **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][st-forum-exe].\n* **Stlite**: Run Streamlit apps directly in the browser with [stlite][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.\n\nThese options provide flexibility depending on whether the goal is online accessibility, lightweight execution, or local application distribution.\n\n## Contributing\n\nVueGen 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](CONTRIBUTING.md) file to ensure that your contribution is easily integrated into the project.\n\n## Credits and acknowledgements\n\n- VueGen was developed by the [Multiomics Network Analytics Group (MoNA)][Mona] at the [Novo Nordisk Foundation Center for Biosustainability (DTU Biosustain)][Biosustain].\n- VueGen relies on the work of numerous open-source projects like [Streamlit](streamlit), [Quarto][quarto], and others. A big thank you to their authors for making this possible!\n- 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].\n\n## Citation\n\nIf you use VueGen in your research or publications, please cite it as follows:\n\n**APA:**\n\nAyala-Ruano, S., Webel, H., \u0026 Santos, A. (2025). *VueGen: Automating the generation of scientific reports*. bioRxiv. https://doi.org/10.1101/2025.03.05.641152\n\n**BibTeX:**\n\n```bibtex\n@article{Ayala-Ruano2025VueGen,\n  author  = {Ayala-Ruano, Sebastian and Webel, Henry and Santos, Alberto},\n  title   = {VueGen: Automating the generation of scientific reports},\n  journal = {bioRxiv},\n  year    = {2025},\n  doi     = {10.1101/2025.03.05.641152},\n  publisher = {Cold Spring Harbor Laboratory},\n  url     = {https://www.biorxiv.org/content/10.1101/2025.03.05.641152},\n  eprint = {https://www.biorxiv.org/content/10.1101/2025.03.05.641152.full.pdf}\n}\n```\n\n## Contact and feedback\n\nWe appreciate your feedback! If you have any comments, suggestions, or run into issues while using VueGen, feel free to [open an issue][new-issue] in this repository. Your input helps us make VueGen better for everyone. \n\n[streamlit]: https://streamlit.io/ \n[vuegen-pypi]: https://pypi.org/project/vuegen/\n[vuegen-conda]: https://anaconda.org/bioconda/vuegen\n[vuegen-docker-quay]: https://quay.io/repository/dtu_biosustain_dsp/vuegen\n[vuegen-license]: https://github.com/Multiomics-Analytics-Group/vuegen/blob/main/LICENSE\n[vuegen-class-diag-att]: https://raw.githubusercontent.com/Multiomics-Analytics-Group/vuegen/main/docs/images/vuegen_classdiagram_withattmeth.pdf\n[vuegen-docs]: https://vuegen.readthedocs.io/\n[ci-gh-action]: https://github.com/Multiomics-Analytics-Group/vuegen/actions/workflows/cdci.yml\n[ci-docs]: https://github.com/Multiomics-Analytics-Group/vuegen/actions/workflows/docs.yml\n[emp-html-demo]: https://multiomics-analytics-group.github.io/vuegen/\n[emp-st-demo]: https://earth-microbiome-vuegen-demo.streamlit.app/\n[issues]: https://github.com/Multiomics-Analytics-Group/vuegen/issues\n[pulls]: https://github.com/Multiomics-Analytics-Group/vuegen/pulls\n[vuegen-preprint]: https://doi.org/10.1101/2025.03.05.641152\n[quarto]: https://quarto.org/\n[quarto-cli-pypi]: https://pypi.org/project/quarto-cli/\n[quarto-cli]: https://quarto.org/docs/get-started/\n[nfcore]: https://nf-co.re/\n[nextflow]: https://www.nextflow.io/\n[nf-vuegen]: https://github.com/Multiomics-Analytics-Group/nf-vuegen/\n[colab_badge]: https://colab.research.google.com/assets/colab-badge.svg\n[colab_link_intro_demo]: https://colab.research.google.com/github/Multiomics-Analytics-Group/vuegen/blob/main/docs/vuegen_basic_case_study.ipynb\n[colab_link_emp_demo]: https://colab.research.google.com/github/Multiomics-Analytics-Group/vuegen/blob/main/docs/vuegen_case_study_earth_microbiome.ipynb\n[emp]: https://earthmicrobiome.org/\n[st-cloud]: https://streamlit.io/cloud\n[stlite]: https://github.com/whitphx/stlite\n[st-forum-exe]: https://discuss.streamlit.io/t/streamlit-deployment-as-an-executable-file-exe-for-windows-macos-and-android/6812\n[Mona]: https://multiomics-analytics-group.github.io/\n[Biosustain]: https://www.biosustain.dtu.dk/\n[scriberia]: https://www.scriberia.co.uk/\n[turingway]: https://github.com/the-turing-way/the-turing-way\n[zenodo-turingway]: https://zenodo.org/records/3695300\n[new-issue]: https://github.com/Multiomics-Analytics-Group/vuegen/issues/new\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiomics-analytics-group%2Fvuegen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmultiomics-analytics-group%2Fvuegen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiomics-analytics-group%2Fvuegen/lists"}