diff --git a/docs/api_examples/line_plot.ipynb b/docs/api_examples/line_plot.ipynb new file mode 100644 index 0000000..4272dd8 --- /dev/null +++ b/docs/api_examples/line_plot.ipynb @@ -0,0 +1,4490 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "640ba1d5", + "metadata": {}, + "source": [ + "# Line Plot\n", + "\n", + "![VueCore logo][vuecore_logo]\n", + "\n", + "[![Open In Colab][colab_badge]][colab_link]\n", + "\n", + "[VueCore][vuecore_repo] is a Python package for creating interactive and static visualizations of multi-omics data.\n", + "It is part of a broader ecosystem of tools—including [ACore][acore_repo] for data processing and [VueGen][vuegen_repo] for automated reporting—that together enable end-to-end workflows for omics analysis.\n", + "\n", + "This notebook demonstrates how to generate line plots using plotting functions from VueCore. We showcase basic and\n", + "advanced plot configurations, highlighting key customization options such as grouping, color mapping, text annotations, and export to multiple file formats.\n", + "\n", + "## Notebook structure\n", + "\n", + "First, we will set up the work environment by installing the necessary packages and importing the required libraries. Next, we will create basic and advanced line plots.\n", + "\n", + "0. [Work environment setup](#0-work-environment-setup)\n", + "1. [Basic line plot](#1-basic-line-plot)\n", + "2. [Advanced line plot](#2-advanced-line-plot)\n", + "\n", + "## Credits and Contributors\n", + "- This notebook was created by Sebastián Ayala-Ruano under the supervision of Henry Webel and Alberto Santos, head of the [Multiomics Network Analytics Group (MoNA)][Mona] at the [Novo Nordisk Foundation Center for Biosustainability (DTU Biosustain)][Biosustain].\n", + "- You can find more details about the project in this [GitHub repository][vuecore_repo].\n", + "\n", + "[colab_badge]: https://colab.research.google.com/assets/colab-badge.svg\n", + "[colab_link]: https://colab.research.google.com/github/Multiomics-Analytics-Group/vuecore/blob/main/docs/api_examples/line_plot.ipynb\n", + "[vuecore_logo]: https://raw.githubusercontent.com/Multiomics-Analytics-Group/vuecore/main/docs/images/logo/vuecore_logo.svg\n", + "[Mona]: https://multiomics-analytics-group.github.io/\n", + "[Biosustain]: https://www.biosustain.dtu.dk/\n", + "[vuecore_repo]: https://github.com/Multiomics-Analytics-Group/vuecore\n", + "[vuegen_repo]: https://github.com/Multiomics-Analytics-Group/vuegen\n", + "[acore_repo]: https://github.com/Multiomics-Analytics-Group/acore" + ] + }, + { + "cell_type": "markdown", + "id": "3b504dfb", + "metadata": {}, + "source": [ + "## 0. Work environment setup" + ] + }, + { + "cell_type": "markdown", + "id": "f0c056a7", + "metadata": {}, + "source": [ + "### 0.1. Installing libraries and creating global variables for platform and working directory\n", + "\n", + "To run this notebook locally, you should create a virtual environment with the required libraries. If you are running this notebook on Google Colab, everything should be set." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "36246ed6", + "metadata": { + "tags": [ + "hide-output" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing /Users/asaru/Documents/DTU/MoNA/VueCore/vuecore\n", + " Installing build dependencies ... \u001b[?25ldone\n", + "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n", + "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n", + "\u001b[?25hRequirement already satisfied: numpy in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (2.2.6)\n", + "Requirement already satisfied: pandas in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (2.3.0)\n", + "Requirement already satisfied: scipy in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (1.16.0)\n", + "Requirement already satisfied: plotly in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (6.1.2)\n", + "Requirement already satisfied: beautifulsoup4 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (4.13.4)\n", + "Requirement already satisfied: requests in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (2.32.4)\n", + "Requirement already satisfied: dash in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (3.0.4)\n", + "Requirement already satisfied: networkx in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (3.5)\n", + "Requirement already satisfied: matplotlib in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (3.10.3)\n", + "Requirement already satisfied: kaleido in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (1.0.0)\n", + "Requirement already satisfied: pyvis in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (0.3.1)\n", + "Requirement already satisfied: wordcloud in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (1.9.4)\n", + "Requirement already satisfied: cyjupyter in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (0.2.0)\n", + "Requirement already satisfied: nltk in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (3.9.1)\n", + "Requirement already satisfied: webweb in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (0.0.37)\n", + "Requirement already satisfied: acore in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (0.1.3)\n", + "Requirement already satisfied: dash-cytoscape in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (1.0.2)\n", + "Requirement already satisfied: pydantic in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from vuecore==0.0.6.dev19+g58e96db.d20250624) (2.11.7)\n", + "Collecting nbformat>=4.2.0 (from vuecore==0.0.6.dev19+g58e96db.d20250624)\n", + " Using cached nbformat-5.10.4-py3-none-any.whl.metadata (3.6 kB)\n", + "Collecting fastjsonschema>=2.15 (from nbformat>=4.2.0->vuecore==0.0.6.dev19+g58e96db.d20250624)\n", + " Using cached fastjsonschema-2.21.1-py3-none-any.whl.metadata (2.2 kB)\n", + "Collecting jsonschema>=2.6 (from nbformat>=4.2.0->vuecore==0.0.6.dev19+g58e96db.d20250624)\n", + " Using cached jsonschema-4.24.0-py3-none-any.whl.metadata (7.8 kB)\n", + "Requirement already satisfied: jupyter-core!=5.0.*,>=4.12 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from nbformat>=4.2.0->vuecore==0.0.6.dev19+g58e96db.d20250624) (5.8.1)\n", + "Requirement already satisfied: traitlets>=5.1 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from nbformat>=4.2.0->vuecore==0.0.6.dev19+g58e96db.d20250624) (5.14.3)\n", + "Collecting attrs>=22.2.0 (from jsonschema>=2.6->nbformat>=4.2.0->vuecore==0.0.6.dev19+g58e96db.d20250624)\n", + " Using cached attrs-25.3.0-py3-none-any.whl.metadata (10 kB)\n", + "Collecting jsonschema-specifications>=2023.03.6 (from jsonschema>=2.6->nbformat>=4.2.0->vuecore==0.0.6.dev19+g58e96db.d20250624)\n", + " Using cached jsonschema_specifications-2025.4.1-py3-none-any.whl.metadata (2.9 kB)\n", + "Collecting referencing>=0.28.4 (from jsonschema>=2.6->nbformat>=4.2.0->vuecore==0.0.6.dev19+g58e96db.d20250624)\n", + " Using cached referencing-0.36.2-py3-none-any.whl.metadata (2.8 kB)\n", + "Collecting rpds-py>=0.7.1 (from jsonschema>=2.6->nbformat>=4.2.0->vuecore==0.0.6.dev19+g58e96db.d20250624)\n", + " Using cached rpds_py-0.25.1-cp312-cp312-macosx_11_0_arm64.whl.metadata (4.1 kB)\n", + "Requirement already satisfied: platformdirs>=2.5 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from jupyter-core!=5.0.*,>=4.12->nbformat>=4.2.0->vuecore==0.0.6.dev19+g58e96db.d20250624) (4.3.8)\n", + "Requirement already satisfied: typing-extensions>=4.4.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from referencing>=0.28.4->jsonschema>=2.6->nbformat>=4.2.0->vuecore==0.0.6.dev19+g58e96db.d20250624) (4.14.0)\n", + "Requirement already satisfied: dsp-pandas in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.0.5)\n", + "Requirement already satisfied: scikit-learn>=1.2 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.7.0)\n", + "Requirement already satisfied: biopython in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.85)\n", + "Requirement already satisfied: combat in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.3.3)\n", + "Requirement already satisfied: gseapy!=1.1.5 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.1.9)\n", + "Requirement already satisfied: kmapper in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (2.1.0)\n", + "Requirement already satisfied: lifelines in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.30.0)\n", + "Requirement already satisfied: pingouin in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.5.5)\n", + "Requirement already satisfied: python-louvain in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.16)\n", + "Requirement already satisfied: PyWGCNA!=2.2.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (2.2.1)\n", + "Requirement already satisfied: snfpy in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.2.2)\n", + "Requirement already satisfied: umap-learn in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.5.7)\n", + "Requirement already satisfied: statsmodels in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.14.4)\n", + "Requirement already satisfied: inmoose in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.7.7)\n", + "Requirement already satisfied: rarfile in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (4.2)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from matplotlib->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.3.2)\n", + "Requirement already satisfied: cycler>=0.10 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from matplotlib->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from matplotlib->vuecore==0.0.6.dev19+g58e96db.d20250624) (4.58.4)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from matplotlib->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.4.8)\n", + "Requirement already satisfied: packaging>=20.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from matplotlib->vuecore==0.0.6.dev19+g58e96db.d20250624) (25.0)\n", + "Requirement already satisfied: pillow>=8 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from matplotlib->vuecore==0.0.6.dev19+g58e96db.d20250624) (11.2.1)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from matplotlib->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.2.3)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from matplotlib->vuecore==0.0.6.dev19+g58e96db.d20250624) (2.9.0.post0)\n", + "Requirement already satisfied: six>=1.5 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from python-dateutil>=2.7->matplotlib->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.17.0)\n", + "Requirement already satisfied: seaborn>=0.11.2 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.13.2)\n", + "Requirement already satisfied: biomart>=0.9.2 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.9.2)\n", + "Requirement already satisfied: setuptools>=67.4.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (80.9.0)\n", + "Requirement already satisfied: reactome2py>=3.0.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.0.0)\n", + "Requirement already satisfied: anndata>=0.10.8 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.11.4)\n", + "Requirement already satisfied: rsrc>=0.1.3 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.1.3)\n", + "Requirement already satisfied: psutil>=5.9.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (7.0.0)\n", + "Requirement already satisfied: jinja2>=2.9.6 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.1.6)\n", + "Requirement already satisfied: ipython>=5.3.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (9.3.0)\n", + "Requirement already satisfied: jsonpickle>=1.4.1 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (4.1.1)\n", + "Requirement already satisfied: array-api-compat!=1.5,>1.4 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from anndata>=0.10.8->PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.12.0)\n", + "Requirement already satisfied: h5py>=3.7 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from anndata>=0.10.8->PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.14.0)\n", + "Requirement already satisfied: natsort in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from anndata>=0.10.8->PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (8.4.0)\n", + "Requirement already satisfied: decorator in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (5.2.1)\n", + "Requirement already satisfied: ipython-pygments-lexers in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.1.1)\n", + "Requirement already satisfied: jedi>=0.16 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.19.2)\n", + "Requirement already satisfied: matplotlib-inline in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.1.7)\n", + "Requirement already satisfied: pexpect>4.3 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (4.9.0)\n", + "Requirement already satisfied: prompt_toolkit<3.1.0,>=3.0.41 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.0.51)\n", + "Requirement already satisfied: pygments>=2.4.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (2.19.2)\n", + "Requirement already satisfied: stack_data in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.6.3)\n", + "Requirement already satisfied: wcwidth in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from prompt_toolkit<3.1.0,>=3.0.41->ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.2.13)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.4 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from jedi>=0.16->ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.8.4)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from jinja2>=2.9.6->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.0.2)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pandas->vuecore==0.0.6.dev19+g58e96db.d20250624) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pandas->vuecore==0.0.6.dev19+g58e96db.d20250624) (2025.2)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pexpect>4.3->ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.7.0)\n", + "Requirement already satisfied: json5>=0.8.4 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from reactome2py>=3.0.0->PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.12.0)\n", + "Requirement already satisfied: charset_normalizer<4,>=2 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from requests->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.4.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from requests->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from requests->vuecore==0.0.6.dev19+g58e96db.d20250624) (2.5.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from requests->vuecore==0.0.6.dev19+g58e96db.d20250624) (2025.6.15)\n", + "Requirement already satisfied: memoir>=0.0.3 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from rsrc>=0.1.3->PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.0.3)\n", + "Requirement already satisfied: reprit>=0.3.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from rsrc>=0.1.3->PyWGCNA!=2.2.0->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.9.0)\n", + "Requirement already satisfied: joblib>=1.2.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from scikit-learn>=1.2->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.5.1)\n", + "Requirement already satisfied: threadpoolctl>=3.1.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from scikit-learn>=1.2->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.6.0)\n", + "Requirement already satisfied: patsy>=0.5.6 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from statsmodels->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.0.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from beautifulsoup4->vuecore==0.0.6.dev19+g58e96db.d20250624) (2.7)\n", + "Requirement already satisfied: mpmath>=1.1.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from combat->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.3.0)\n", + "Requirement already satisfied: ipywidgets>=7.0.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from cyjupyter->vuecore==0.0.6.dev19+g58e96db.d20250624) (8.1.7)\n", + "Requirement already satisfied: comm>=0.1.3 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from ipywidgets>=7.0.0->cyjupyter->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.2.2)\n", + "Requirement already satisfied: widgetsnbextension~=4.0.14 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from ipywidgets>=7.0.0->cyjupyter->vuecore==0.0.6.dev19+g58e96db.d20250624) (4.0.14)\n", + "Requirement already satisfied: jupyterlab_widgets~=3.0.15 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from ipywidgets>=7.0.0->cyjupyter->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.0.15)\n", + "Requirement already satisfied: Flask<3.1,>=1.0.4 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from dash->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.0.3)\n", + "Requirement already satisfied: Werkzeug<3.1 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from dash->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.0.6)\n", + "Requirement already satisfied: importlib-metadata in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from dash->vuecore==0.0.6.dev19+g58e96db.d20250624) (8.7.0)\n", + "Requirement already satisfied: retrying in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from dash->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.3.5)\n", + "Requirement already satisfied: nest-asyncio in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from dash->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.6.0)\n", + "Requirement already satisfied: itsdangerous>=2.1.2 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from Flask<3.1,>=1.0.4->dash->vuecore==0.0.6.dev19+g58e96db.d20250624) (2.2.0)\n", + "Requirement already satisfied: click>=8.1.3 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from Flask<3.1,>=1.0.4->dash->vuecore==0.0.6.dev19+g58e96db.d20250624) (8.2.1)\n", + "Requirement already satisfied: blinker>=1.6.2 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from Flask<3.1,>=1.0.4->dash->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.9.0)\n", + "Requirement already satisfied: narwhals>=1.15.1 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from plotly->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.44.0)\n", + "Requirement already satisfied: openpyxl in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from dsp-pandas->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.1.5)\n", + "Requirement already satisfied: zipp>=3.20 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from importlib-metadata->dash->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.23.0)\n", + "Requirement already satisfied: fastcluster in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from inmoose->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.3.0)\n", + "Requirement already satisfied: choreographer>=1.0.5 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from kaleido->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.0.9)\n", + "Requirement already satisfied: logistro>=1.0.8 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from kaleido->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.1.0)\n", + "Requirement already satisfied: orjson>=3.10.15 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from kaleido->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.10.18)\n", + "Requirement already satisfied: simplejson>=3.19.3 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from choreographer>=1.0.5->kaleido->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.20.1)\n", + "Requirement already satisfied: autograd>=1.5 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from lifelines->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.8.0)\n", + "Requirement already satisfied: autograd-gamma>=0.3 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from lifelines->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.5.0)\n", + "Requirement already satisfied: formulaic>=0.2.2 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from lifelines->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.1.1)\n", + "Requirement already satisfied: interface-meta>=1.2.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from formulaic>=0.2.2->lifelines->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.3.0)\n", + "Requirement already satisfied: wrapt>=1.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from formulaic>=0.2.2->lifelines->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (1.17.2)\n", + "Requirement already satisfied: regex>=2021.8.3 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from nltk->vuecore==0.0.6.dev19+g58e96db.d20250624) (2024.11.6)\n", + "Requirement already satisfied: tqdm in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from nltk->vuecore==0.0.6.dev19+g58e96db.d20250624) (4.67.1)\n", + "Requirement already satisfied: et-xmlfile in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from openpyxl->dsp-pandas->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (2.0.0)\n", + "Requirement already satisfied: pandas-flavor in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pingouin->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.7.0)\n", + "Requirement already satisfied: tabulate in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pingouin->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.9.0)\n", + "Requirement already satisfied: xarray in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pandas-flavor->pingouin->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (2025.6.1)\n", + "Requirement already satisfied: annotated-types>=0.6.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pydantic->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.7.0)\n", + "Requirement already satisfied: pydantic-core==2.33.2 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pydantic->vuecore==0.0.6.dev19+g58e96db.d20250624) (2.33.2)\n", + "Requirement already satisfied: typing-inspection>=0.4.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from pydantic->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.4.1)\n", + "Requirement already satisfied: executing>=1.2.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from stack_data->ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (2.2.0)\n", + "Requirement already satisfied: asttokens>=2.1.0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from stack_data->ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (3.0.0)\n", + "Requirement already satisfied: pure_eval in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from stack_data->ipython>=5.3.0->pyvis->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.2.3)\n", + "Requirement already satisfied: numba>=0.51.2 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from umap-learn->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.61.2)\n", + "Requirement already satisfied: pynndescent>=0.5 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from umap-learn->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.5.13)\n", + "Requirement already satisfied: llvmlite<0.45,>=0.44.0dev0 in /Users/asaru/miniconda3/envs/vuecore-dev/lib/python3.12/site-packages (from numba>=0.51.2->umap-learn->acore->vuecore==0.0.6.dev19+g58e96db.d20250624) (0.44.0)\n", + "Using cached nbformat-5.10.4-py3-none-any.whl (78 kB)\n", + "Using cached fastjsonschema-2.21.1-py3-none-any.whl (23 kB)\n", + "Using cached jsonschema-4.24.0-py3-none-any.whl (88 kB)\n", + "Using cached attrs-25.3.0-py3-none-any.whl (63 kB)\n", + "Using cached jsonschema_specifications-2025.4.1-py3-none-any.whl (18 kB)\n", + "Using cached referencing-0.36.2-py3-none-any.whl (26 kB)\n", + "Using cached rpds_py-0.25.1-cp312-cp312-macosx_11_0_arm64.whl (350 kB)\n", + "Building wheels for collected packages: vuecore\n", + " Building wheel for vuecore (pyproject.toml) ... \u001b[?25ldone\n", + "\u001b[?25h Created wheel for vuecore: filename=vuecore-0.0.6.dev19+g58e96db.d20250624-py3-none-any.whl size=55625 sha256=dbbfec57f735203a8482a18fcaf73e20e081423669249c13003a42369f4aff2c\n", + " Stored in directory: /private/var/folders/64/3nt358294s9cjcj1qbtv1g_h0000gp/T/pip-ephem-wheel-cache-8mu7llb7/wheels/b7/c2/2a/80a17c0f7fe0587d17a3dc604f395e41401dc2c1e23b377f0e\n", + "Successfully built vuecore\n", + "Installing collected packages: fastjsonschema, rpds-py, attrs, referencing, jsonschema-specifications, jsonschema, nbformat, vuecore\n", + "\u001b[2K Attempting uninstall: vuecore━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━\u001b[0m \u001b[32m6/8\u001b[0m [nbformat]a]]\n", + "\u001b[2K Found existing installation: vuecore 0.0.6.dev19+g58e96db.d20250624m6/8\u001b[0m [nbformat]\n", + "\u001b[2K Uninstalling vuecore-0.0.6.dev19+g58e96db.d20250624:━━━━━━\u001b[0m \u001b[32m6/8\u001b[0m [nbformat]\n", + "\u001b[2K Successfully uninstalled vuecore-0.0.6.dev19+g58e96db.d2025062432m6/8\u001b[0m [nbformat]\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m8/8\u001b[0m [vuecore]m7/8\u001b[0m [vuecore]\n", + "\u001b[1A\u001b[2KSuccessfully installed attrs-25.3.0 fastjsonschema-2.21.1 jsonschema-4.24.0 jsonschema-specifications-2025.4.1 nbformat-5.10.4 referencing-0.36.2 rpds-py-0.25.1 vuecore-0.0.6.dev19+g58e96db.d20250624\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "# VueCore library\n", + "%pip install vuecore" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "963a9529", + "metadata": { + "tags": [ + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "import os\n", + "\n", + "IN_COLAB = \"COLAB_GPU\" in os.environ" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "ee2ffd40", + "metadata": { + "tags": [ + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "# Create a directory for outputs\n", + "output_dir = \"./outputs\"\n", + "os.makedirs(output_dir, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "id": "31638f9a", + "metadata": {}, + "source": [ + "### 0.2. Importing libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "06dbf6a2", + "metadata": {}, + "outputs": [], + "source": [ + "# Imports\n", + "import pandas as pd\n", + "import plotly.io as pio\n", + "\n", + "from vuecore.plots.basic.line import create_line_plot\n", + "\n", + "# Set the Plotly renderer based on the environment\n", + "pio.renderers.default = \"notebook\"" + ] + }, + { + "cell_type": "markdown", + "id": "5cc60050", + "metadata": {}, + "source": [ + "### 0.3. Create sample data\n", + "We create a synthetic dataset showing measurements over five days for two experiments (A, B), each tested under Control and Treatment conditions, with associated measurement errors." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "ac2db647", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
| \n", + " | day | \n", + "experiment | \n", + "condition | \n", + "value | \n", + "value_error | \n", + "
|---|---|---|---|---|---|
| 0 | \n", + "1 | \n", + "A | \n", + "Control | \n", + "11 | \n", + "1.0 | \n", + "
| 1 | \n", + "2 | \n", + "A | \n", + "Control | \n", + "13 | \n", + "1.2 | \n", + "
| 2 | \n", + "3 | \n", + "A | \n", + "Control | \n", + "15 | \n", + "0.9 | \n", + "
| 3 | \n", + "4 | \n", + "A | \n", + "Control | \n", + "17 | \n", + "1.1 | \n", + "
| 4 | \n", + "5 | \n", + "A | \n", + "Control | \n", + "18 | \n", + "1.0 | \n", + "