{"id":26674384,"url":"https://github.com/multiomics-analytics-group/nf-vuegen","last_synced_at":"2025-04-12T06:53:58.124Z","repository":{"id":282010083,"uuid":"940592640","full_name":"Multiomics-Analytics-Group/nf-vuegen","owner":"Multiomics-Analytics-Group","description":"nf-core module designed to automate report generation from outputs produced by other modules, subworkflows, or pipelines. VueGen creates reports from bioinformatics outputs, supporting formats like PDF, HTML, DOCX, ODT, PPTX, Reveal.js, Jupyter notebooks, and Streamlit web applications.","archived":false,"fork":false,"pushed_at":"2025-04-11T15:11:02.000Z","size":3310,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-12T06:53:54.716Z","etag":null,"topics":["data-visualization","developer-tools","nextflow-modules","nf-core","quarto","reports","streamlit"],"latest_commit_sha":null,"homepage":"","language":"Nextflow","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":null,"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":"2025-02-28T12:59:11.000Z","updated_at":"2025-04-11T15:11:05.000Z","dependencies_parsed_at":"2025-03-12T10:33:07.717Z","dependency_job_id":"1644ae97-294d-4f10-befe-5f8d1f75087c","html_url":"https://github.com/Multiomics-Analytics-Group/nf-vuegen","commit_stats":null,"previous_names":["multiomics-analytics-group/nf-vuegen"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Multiomics-Analytics-Group%2Fnf-vuegen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Multiomics-Analytics-Group%2Fnf-vuegen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Multiomics-Analytics-Group%2Fnf-vuegen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Multiomics-Analytics-Group%2Fnf-vuegen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Multiomics-Analytics-Group","download_url":"https://codeload.github.com/Multiomics-Analytics-Group/nf-vuegen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248530588,"owners_count":21119595,"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","nextflow-modules","nf-core","quarto","reports","streamlit"],"created_at":"2025-03-26T02:19:00.698Z","updated_at":"2025-04-12T06:53:58.118Z","avatar_url":"https://github.com/Multiomics-Analytics-Group.png","language":"Nextflow","funding_links":[],"categories":[],"sub_categories":[],"readme":"![nf-VueGen Logo](https://raw.githubusercontent.com/Multiomics-Analytics-Group/nf-vuegen/main/docs/images/nfvuegen_logo.svg)\n-----------------\n\u003cp align=\"center\"\u003e\n   nf-VueGen is a nf-core module designed to automate report generation from outputs produced by other modules, subworkflows, or pipelines. \n\u003c/p\u003e\n\n| Information | Links |\n| :--- | :--- |\n| **Module** | [![License](https://img.shields.io/github/license/Multiomics-Analytics-Group/nf-vuegen)][nf-vuegen-license] |\n| **Documentation** | [![View - Documentation](https://img.shields.io/badge/view-Documentation-blue?style=flat)][vuegen-docs] |\n| **Build** | |\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/nf-vuegen)][issues] [![GitHub pull requests](https://img.shields.io/github/issues-pr/Multiomics-Analytics-Group/nf-vuegen)][pulls]|\n\n## Table of contents:\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- [Credits and acknowledgements](#credits-and-acknowledgements)\n- [Citation](#citation)\n- [Contact and feedback](#contact-and-feedback)\n\n## About the project\nThe VueGen [nf-core][nfcore] module is designed to automate report generation from outputs produced by other modules, subworkflows, or pipelines. The module integrates the [VueGen Python library][vuegen] and customizes it for compatibility with the [Nextflow][nextflow] environment. 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.\n\nThis module is compatible with existing Nextflow reporting tools such as [MultiQC][multiqc], [AssemblyQC][assemblyqc], and others, allowing their HTML outputs to be embedded as components within VueGen reports. \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\nA metro-map representation of the VueGen nf-core module is presented below:\n\n![nf-VueGen MetroMap](https://raw.githubusercontent.com/Multiomics-Analytics-Group/nf-vuegen/main/docs/images/metro_map_vuegen.svg)\n\nThe workflow starts with an input dataset and continues through different stages, generating intermediate outputs in various formats. In the final stage, the VueGen nf-core module collects these outputs from a folder and generates reports in multiple formats.\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\nWe are currently working on the integration of VueGen with the nf-core framework. This process can take some time because it requires the approval of the nf-core community. In the meantime, you can clone this repository and use nf-VueGen as a standalone Nextflow module. The `main.nf` file provides an example of how to use the nf-VueGen module in a Nextflow pieline. \n\n### Dependencies\nYou should have [Nextflow][nextflow] installed on your system to run nf-VueGen. [Conda][conda] or [Docker][docker] are also required to manage dependencies and create an isolated environment for the nf-VueGen module. \n\nWe recommend using Docker to containetize the nf-VueGen environment, ensuring reproducibility and compatibility across different systems. The Docker image is available at [quay.io/dtu_biosustain_dsp/vuegen][vuegen-docker-quay] and is automatically pulled by Nextflow when running the module. The Dockerfiles to build the image is available in the [Docker folder][docker-folder] of this repository. \n\nIf you prefer to use Conda, a virtual environment with the required dependencies is created automatically by Nextflow when running the module, using the information in the `modules/environment.yml` file.\n\n## Execution\n\u003e [!IMPORTANT]\n\u003e Here we use the `Basic_example_vuegen_demo_notebook` directory and the `Basic_example_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 nf-VueGen using a directory with the following command:\n\n```bash\nnextflow run main.nf --directory docs/example_data/Basic_example_vuegen_demo_notebook --report_type html -profile docker\n```\n\nIt's also possible to provide a configuration file instead of a directory:\n\n```bash\nnextflow run main.nf --config docs/example_config_files/Basic_example_vuegen_demo_notebook_config.yaml --report_type html -profile docker\n```\n\n\u003e [!NOTE]\n\u003e If you use Conda for environment management, you should use the `-profile conda` option instead of `-profile docker` in the commands above.\n\nThe current report types supported by nf-VueGen are:\n* Streamlit\n* HTML\n* PDF\n* DOCX\n* ODT\n* Reveal.js\n* PPTX\n* Jupyter\n\n## Case studies\nnf-VueGen’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\nTo test this case study, follow the instructions from the [Execution section](#execution), where `Basic_example_vuegen_demo_notebook` directory and `Basic_example_vuegen_demo_notebook.yaml` configuration file are used.\n\n**2. Earth Microbiome Project Data**\n\nThis advanced case study demonstrates the application of nf-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\nTo test this case study, use the `Earth_microbiome_vuegen_demo_notebook` directory and the `Earth_microbiome_vuegen_demo_notebook.yaml` configuration file available in the `docs/example_data` and `docs/example_config_files` folders, respectively.\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\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 of the [VueGen repository][vuegen].\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## Credits and acknowledgements\n- nf-VueGen was developed by the [Multiomics Network Analytics Group (MoNA)][Mona] at the [Novo Nordisk Foundation Center for Biosustainability (DTU Biosustain)][Biosustain].\n- nf-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 nf-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\nIf you use nf-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\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 nf-VueGen better for everyone. \n\n[nf-vuegen-license]: https://github.com/Multiomics-Analytics-Group/nf-vuegen/blob/main/LICENSE\n[vuegen-docs]: https://vuegen.readthedocs.io/\n[conda]: https://docs.conda.io/en/latest/\n[docker-folder]: https://github.com/Multiomics-Analytics-Group/nf-vuegen/tree/main/Docker\n[streamlit]: https://streamlit.io/ \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/nf-vuegen/issues\n[pulls]: https://github.com/Multiomics-Analytics-Group/nf-vuegen/pulls\n[nfcore]: https://nf-co.re/\n[vuegen]: https://github.com/Multiomics-Analytics-Group/vuegen\n[nextflow]: https://www.nextflow.io/\n[multiqc]: https://seqera.io/multiqc/\n[assemblyqc]: https://github.com/Plant-Food-Research-Open/assemblyqc\n[docker]: https://www.docker.com/\n[vuegen-docker-quay]: https://quay.io/repository/dtu_biosustain_dsp/vuegen\n[emp]: https://earthmicrobiome.org/\n[quarto]: https://quarto.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/nf-vuegen/issues/new\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiomics-analytics-group%2Fnf-vuegen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmultiomics-analytics-group%2Fnf-vuegen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmultiomics-analytics-group%2Fnf-vuegen/lists"}