diff --git a/docs/api_examples/bar_plot.ipynb b/docs/api_examples/bar_plot.ipynb index ea40d66..e5fcc75 100644 --- a/docs/api_examples/bar_plot.ipynb +++ b/docs/api_examples/bar_plot.ipynb @@ -73,7 +73,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "963a9529", "metadata": { "tags": [ @@ -84,20 +84,8 @@ "source": [ "import os\n", "\n", - "IN_COLAB = \"COLAB_GPU\" in os.environ" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "ee2ffd40", - "metadata": { - "tags": [ - "hide-cell" - ] - }, - "outputs": [], - "source": [ + "IN_COLAB = \"COLAB_GPU\" in os.environ\n", + "\n", "# Create a directory for outputs\n", "output_dir = \"./outputs\"\n", "os.makedirs(output_dir, exist_ok=True)" @@ -118,11 +106,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Imports\n", - "import pandas as pd\n", - "import numpy as np\n", "from pathlib import Path\n", "\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", "from vuecore.plots.basic.bar import create_bar_plot" ] }, @@ -137,91 +125,14 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "ac2db647", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
SampleGenusRelative_AbundanceGenera_Count
0SoilKlebsiella4.14238411
1SoilShigella12.80730111
2SoilPseudomonas2.66778711
3SoilVibrio14.02017211
4SoilBacteroides17.71375811
\n", - "
" - ], - "text/plain": [ - " Sample Genus Relative_Abundance Genera_Count\n", - "0 Soil Klebsiella 4.142384 11\n", - "1 Soil Shigella 12.807301 11\n", - "2 Soil Pseudomonas 2.667787 11\n", - "3 Soil Vibrio 14.020172 11\n", - "4 Soil Bacteroides 17.713758 11" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [], "source": [ "# Set a random seed for reproducibility of the synthetic data\n", "np.random.seed(42)\n", @@ -229,11 +140,22 @@ "# Sample types and bacterial genera\n", "sample_types = [\"Soil\", \"Freshwater\", \"Ocean\", \"Sediment\", \"Wastewater\"]\n", "genera = [\n", - " \"Pseudomonas\", \"Bacillus\", \"Escherichia\", \"Streptococcus\",\n", - " \"Lactobacillus\", \"Bacteroides\", \"Clostridium\", \"Staphylococcus\",\n", - " \"Enterobacter\", \"Klebsiella\", \"Salmonella\", \"Shigella\", \"Vibrio\"\n", + " \"Pseudomonas\",\n", + " \"Bacillus\",\n", + " \"Escherichia\",\n", + " \"Streptococcus\",\n", + " \"Lactobacillus\",\n", + " \"Bacteroides\",\n", + " \"Clostridium\",\n", + " \"Staphylococcus\",\n", + " \"Enterobacter\",\n", + " \"Klebsiella\",\n", + " \"Salmonella\",\n", + " \"Shigella\",\n", + " \"Vibrio\",\n", "]\n", "\n", + "\n", "def make_sample(sample: str, genera: list[str]) -> list[dict]:\n", " \"\"\"\n", " Generate synthetic microbial abundance data for a single sample.\n", @@ -252,26 +174,31 @@ " Relative abundance, and Genera count.\n", " \"\"\"\n", " # Randomly pick a subset of genera present in this sample\n", - " selected = np.random.choice(genera, np.random.randint(5, len(genera) + 1), replace=False)\n", - " \n", + " selected = np.random.choice(\n", + " genera, np.random.randint(5, len(genera) + 1), replace=False\n", + " )\n", + "\n", " # Generate random raw abundances (shifted by +0.1 to avoid zeros)\n", " raw = np.random.rand(len(selected)) + 0.1\n", - " \n", + "\n", " # Normalize abundances so they sum to exactly 100%\n", " abundances = (raw / raw.sum()) * 100\n", - " \n", + "\n", " # Count how many genera are present\n", " genera_count = len(selected)\n", - " \n", + "\n", " # Store results into list of dicts\n", " return [\n", - " {\"Sample\": sample,\n", - " \"Genus\": genus,\n", - " \"Relative_Abundance\": abund,\n", - " \"Genera_Count\": genera_count}\n", + " {\n", + " \"Sample\": sample,\n", + " \"Genus\": genus,\n", + " \"Relative_Abundance\": abund,\n", + " \"Genera_Count\": genera_count,\n", + " }\n", " for genus, abund in zip(selected, abundances)\n", " ]\n", "\n", + "\n", "# Generate full dataset by combining all samples\n", "abund_df = pd.DataFrame(\n", " [row for sample in sample_types for row in make_sample(sample, genera)]\n", @@ -285,3951 +212,22 @@ "metadata": {}, "source": [ "## 1. Basic Bar Plot\n", - "A basic bar plot can be created by simply providing the `x` and `y` columns from the DataFrame, along with style options like `title`." + "A basic bar plot can be created by simply providing the `x` and `y` columns from the DataFrame,\n", + "along with style options like `title`\n", + "using [`create_bar_plot`](vuecore.plots.basic.bar.create_bar_plot)." ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "d0d34455", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[VueCore] Plot saved to outputs/bar_plot_basic.png\n" - ] - }, - { - "data": { - "text/html": [ - " \n", - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create a df with unique samples and their genera counts\n", - "bar_plot_basic_df = abund_df.drop_duplicates(subset=\"Sample\")[[\"Sample\", \"Genera_Count\"]]\n", + "bar_plot_basic_df = abund_df.drop_duplicates(subset=\"Sample\")[\n", + " [\"Sample\", \"Genera_Count\"]\n", + "]\n", "\n", "# Define output path for the basic png plot\n", "file_path_basic_png = Path(output_dir) / \"bar_plot_basic.png\"\n", @@ -4240,7 +238,7 @@ " x=\"Sample\",\n", " y=\"Genera_Count\",\n", " title=\"Genera Count by Sample Type\",\n", - " file_path=file_path_basic_png, \n", + " file_path=file_path_basic_png,\n", ")\n", "\n", "bar_plot_basic.show()" @@ -4257,72 +255,31 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "358e45fe", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[VueCore] Plot saved to outputs/bar_plot_advanced.html\n" - ] - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Define the output file path for the HTML plot\n", "file_path_adv_html = Path(output_dir) / \"bar_plot_advanced.html\"\n", "\n", "# Generate the advanced stacked bar plot\n", "bar_plot_adv = create_bar_plot(\n", - " data=abund_df, \n", - " x=\"Sample\", \n", - " y=\"Relative_Abundance\", \n", - " color=\"Genus\", \n", - " barmode=\"stack\", \n", + " data=abund_df,\n", + " x=\"Sample\",\n", + " y=\"Relative_Abundance\",\n", + " color=\"Genus\",\n", + " barmode=\"stack\",\n", " title=\"Taxonomic Profile of Environmental Samples\",\n", " subtitle=\"Relative Abundance of Bacterial Genera\",\n", - " labels={ \n", + " labels={\n", " \"Sample\": \"Environmental Sample Type\",\n", " \"Relative_Abundance\": \"Relative Abundance (%)\",\n", - " \"Genus\": \"Genus\"\n", + " \"Genus\": \"Genus\",\n", " },\n", - " hover_name=\"Genus\", \n", - " hover_data=[\"Relative_Abundance\"], \n", - " opacity=0.9, \n", + " hover_name=\"Genus\",\n", + " hover_data=[\"Relative_Abundance\"],\n", + " opacity=0.9,\n", " file_path=file_path_adv_html,\n", ")\n", "\n", diff --git a/docs/api_examples/bar_plot.py b/docs/api_examples/bar_plot.py index 0f91c42..751e288 100644 --- a/docs/api_examples/bar_plot.py +++ b/docs/api_examples/bar_plot.py @@ -62,7 +62,6 @@ IN_COLAB = "COLAB_GPU" in os.environ -# %% tags=["hide-cell"] # Create a directory for outputs output_dir = "./outputs" os.makedirs(output_dir, exist_ok=True) @@ -71,18 +70,18 @@ # ### 0.2. Importing libraries # %% -# Imports -import pandas as pd -import numpy as np from pathlib import Path +import numpy as np +import pandas as pd + from vuecore.plots.basic.bar import create_bar_plot # %% [markdown] # ### 0.3. Create sample data # We create a synthetic dataset representing the relative abundances of common bacterial genera across various environmental samples. -# %% +# %% tags=["hide-input"] # Set a random seed for reproducibility of the synthetic data np.random.seed(42) @@ -156,7 +155,9 @@ def make_sample(sample: str, genera: list[str]) -> list[dict]: # %% [markdown] # ## 1. Basic Bar Plot -# A basic bar plot can be created by simply providing the `x` and `y` columns from the DataFrame, along with style options like `title`. +# A basic bar plot can be created by simply providing the `x` and `y` columns from the DataFrame, +# along with style options like `title` +# using [`create_bar_plot`](vuecore.plots.basic.bar.create_bar_plot). # %% # Create a df with unique samples and their genera counts diff --git a/docs/api_examples/box_violin_plot.ipynb b/docs/api_examples/box_violin_plot.ipynb index 4572c46..8b8ff5d 100644 --- a/docs/api_examples/box_violin_plot.ipynb +++ b/docs/api_examples/box_violin_plot.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "640ba1d5", + "id": "154f4359", "metadata": {}, "source": [ "# Box and Violin Plots\n", @@ -42,7 +42,7 @@ }, { "cell_type": "markdown", - "id": "3b504dfb", + "id": "887daba4", "metadata": {}, "source": [ "## 0. Work environment setup" @@ -50,7 +50,7 @@ }, { "cell_type": "markdown", - "id": "f0c056a7", + "id": "631fd4d6", "metadata": {}, "source": [ "### 0.1. Installing libraries and creating global variables for platform and working directory\n", @@ -61,7 +61,7 @@ { "cell_type": "code", "execution_count": null, - "id": "36246ed6", + "id": "55d473dc", "metadata": { "tags": [ "hide-output" @@ -75,8 +75,8 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "963a9529", + "execution_count": null, + "id": "32202a4b", "metadata": { "tags": [ "hide-cell" @@ -86,20 +86,8 @@ "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": [ + "IN_COLAB = \"COLAB_GPU\" in os.environ\n", + "\n", "# Create a directory for outputs\n", "output_dir = \"./outputs\"\n", "os.makedirs(output_dir, exist_ok=True)" @@ -107,46 +95,50 @@ }, { "cell_type": "markdown", - "id": "31638f9a", - "metadata": {}, + "id": "88e1d232", + "metadata": { + "lines_to_next_cell": 0 + }, "source": [ "### 0.2. Importing libraries" ] }, { "cell_type": "code", - "execution_count": 3, - "id": "06dbf6a2", + "execution_count": null, + "id": "f9c1c5df", "metadata": {}, "outputs": [], "source": [ - "# Imports\n", - "import pandas as pd\n", - "import numpy as np\n", "from pathlib import Path\n", - "import plotly.io as pio\n", "\n", - "from vuecore.plots.basic.box import create_box_plot\n", - "from vuecore.plots.basic.violin import create_violin_plot\n", + "import numpy as np\n", + "import pandas as pd\n", "\n", - "# Set the Plotly renderer based on the environment\n", - "pio.renderers.default = \"notebook\"" + "from vuecore.plots.basic.box import create_box_plot\n", + "from vuecore.plots.basic.violin import create_violin_plot" ] }, { "cell_type": "markdown", - "id": "5cc60050", + "id": "3a6a5b07", "metadata": {}, "source": [ "### 0.3. Create sample data\n", - "We create a synthetic dataset simulating gene expression levels across different patient samples and treatment conditions, with each data point representing a unique gene's expression level under a specific treatment for a particular patient." + "We create a synthetic dataset simulating gene expression levels across different\n", + "patient samples and treatment conditions, with each data point representing a\n", + "unique gene's expression level under a specific treatment for a particular patient." ] }, { "cell_type": "code", - "execution_count": 4, - "id": "ac2db647", - "metadata": {}, + "execution_count": null, + "id": "fd4e573a", + "metadata": { + "tags": [ + "hide-input" + ] + }, "outputs": [], "source": [ "# Set a random seed for reproducibility of the synthetic data\n", @@ -169,7 +161,7 @@ "treatment_effect = np.where(\n", " treatment_assignments == \"Treated\",\n", " np.random.normal(loc=50, scale=30, size=num_samples),\n", - " 0\n", + " 0,\n", ")\n", "\n", "# Small random per-gene offset for extra variability\n", @@ -179,3962 +171,34 @@ "expr = base_expr + treatment_effect + gene_offset\n", "\n", "# Construct DataFrame\n", - "gene_exp_df = pd.DataFrame({\n", - " \"Sample_ID\": sample_ids,\n", - " \"Treatment\": treatment_assignments,\n", - " \"Gene_ID\": gene_ids,\n", - " \"Expression\": expr\n", - "})" + "gene_exp_df = pd.DataFrame(\n", + " {\n", + " \"Sample_ID\": sample_ids,\n", + " \"Treatment\": treatment_assignments,\n", + " \"Gene_ID\": gene_ids,\n", + " \"Expression\": expr,\n", + " }\n", + ")\n", + "gene_exp_df" ] }, { "cell_type": "markdown", - "id": "ade445fe", + "id": "647549ee", "metadata": {}, "source": [ "## 1. Basic Box Plot\n", - "A basic box plot can be created by simply providing the `x` and `y` columns from the DataFrame, along with style options like `title`." + "A basic box plot can be created by simply providing the `x` and `y` columns from the DataFrame,\n", + "along with style options like `title`\n", + "using [`create_box_plot`](vuecore.plots.basic.box.create_box_plot)." ] }, { "cell_type": "code", "execution_count": null, - "id": "d0d34455", + "id": "4683f13b", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[VueCore] Plot saved to outputs/box_plot_basic.png\n" - ] - }, - { - "data": { - "text/html": [ - " \n", - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Define output file path for the PNG basic box plot\n", "file_path_basic_box_png = Path(output_dir) / \"box_plot_basic.png\"\n", @@ -4153,60 +217,21 @@ }, { "cell_type": "markdown", - "id": "727d4fff", + "id": "00c967e1", "metadata": {}, "source": [ "## 2. Basic Violin Plot\n", - "A basic violin plot can be created by simply providing the `x` and `y` columns from the DataFrame, along with style options like `title`." + "A basic violin plot can be created by simply providing the `x` and `y` columns from the DataFrame,\n", + "along with style options like `title`\n", + "using [`create_violin_plot`](vuecore.plots.basic.violin.create_violin_plot) ." ] }, { "cell_type": "code", "execution_count": null, - "id": "42c4e79f", + "id": "ea28fd6b", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[VueCore] Plot saved to outputs/violin_plot_basic.png\n" - ] - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Define output file path for the PNG basic violin plot\n", "file_path_basic_violin_png = Path(output_dir) / \"violin_plot_basic.png\"\n", @@ -4225,7 +250,7 @@ }, { "cell_type": "markdown", - "id": "f5e16637", + "id": "7057277b", "metadata": {}, "source": [ "## 3. Advanced Box Plot\n", @@ -4235,50 +260,9 @@ { "cell_type": "code", "execution_count": null, - "id": "358e45fe", + "id": "431b287d", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[VueCore] Plot saved to outputs/box_plot_advanced.html\n" - ] - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Define the output file path for the advanced HTML box plot\n", "file_path_adv_box_html = Path(output_dir) / \"box_plot_advanced.html\"\n", @@ -4314,7 +298,7 @@ }, { "cell_type": "markdown", - "id": "ae75b950", + "id": "79698c71", "metadata": {}, "source": [ "## 4. Advanced Violin Plot\n", @@ -4323,51 +307,10 @@ }, { "cell_type": "code", - "execution_count": 17, - "id": "e03b8b67", + "execution_count": null, + "id": "912ebc42", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[VueCore] Plot saved to outputs/violin_plot_advanced.html\n" - ] - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Define the output file path for the advanced HTML violin plot\n", "file_path_adv_violin_html = Path(output_dir) / \"violin_plot_advanced.html\"\n", @@ -4407,18 +350,6 @@ "display_name": "vuecore-dev", "language": "python", "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.11" } }, "nbformat": 4, diff --git a/docs/api_examples/box_violin_plot.py b/docs/api_examples/box_violin_plot.py index 145a363..6deda49 100644 --- a/docs/api_examples/box_violin_plot.py +++ b/docs/api_examples/box_violin_plot.py @@ -64,32 +64,28 @@ IN_COLAB = "COLAB_GPU" in os.environ -# %% tags=["hide-cell"] # Create a directory for outputs output_dir = "./outputs" os.makedirs(output_dir, exist_ok=True) # %% [markdown] # ### 0.2. Importing libraries - # %% -# Imports -import pandas as pd -import numpy as np from pathlib import Path -import plotly.io as pio + +import numpy as np +import pandas as pd from vuecore.plots.basic.box import create_box_plot from vuecore.plots.basic.violin import create_violin_plot -# Set the Plotly renderer based on the environment -pio.renderers.default = "notebook" - # %% [markdown] # ### 0.3. Create sample data -# We create a synthetic dataset simulating gene expression levels across different patient samples and treatment conditions, with each data point representing a unique gene's expression level under a specific treatment for a particular patient. +# We create a synthetic dataset simulating gene expression levels across different +# patient samples and treatment conditions, with each data point representing a +# unique gene's expression level under a specific treatment for a particular patient. -# %% +# %% tags=["hide-input"] # Set a random seed for reproducibility of the synthetic data np.random.seed(42) @@ -128,10 +124,13 @@ "Expression": expr, } ) +gene_exp_df # %% [markdown] # ## 1. Basic Box Plot -# A basic box plot can be created by simply providing the `x` and `y` columns from the DataFrame, along with style options like `title`. +# A basic box plot can be created by simply providing the `x` and `y` columns from the DataFrame, +# along with style options like `title` +# using [`create_box_plot`](vuecore.plots.basic.box.create_box_plot). # %% # Define output file path for the PNG basic box plot @@ -150,7 +149,9 @@ # %% [markdown] # ## 2. Basic Violin Plot -# A basic violin plot can be created by simply providing the `x` and `y` columns from the DataFrame, along with style options like `title`. +# A basic violin plot can be created by simply providing the `x` and `y` columns from the DataFrame, +# along with style options like `title` +# using [`create_violin_plot`](vuecore.plots.basic.violin.create_violin_plot) . # %% # Define output file path for the PNG basic violin plot diff --git a/docs/api_examples/histogram_plot.ipynb b/docs/api_examples/histogram_plot.ipynb index df0e5d0..d7c7a26 100644 --- a/docs/api_examples/histogram_plot.ipynb +++ b/docs/api_examples/histogram_plot.ipynb @@ -120,15 +120,12 @@ "outputs": [], "source": [ "# Imports\n", - "import pandas as pd\n", - "import numpy as np\n", "from pathlib import Path\n", - "import plotly.io as pio\n", "\n", - "from vuecore.plots.basic.histogram import create_histogram_plot\n", + "import numpy as np\n", + "import pandas as pd\n", "\n", - "# Set the Plotly renderer based on the environment\n", - "pio.renderers.default = \"notebook\"" + "from vuecore.plots.basic.histogram import create_histogram_plot" ] }, { @@ -137,14 +134,19 @@ "metadata": {}, "source": [ "### 0.3. Create sample data\n", - "We create a synthetic dataset simulating gene expression data across two experimental conditions to demonstrate how histograms can visualize data distribution." + "We create a synthetic dataset simulating gene expression data across two experimental\n", + "conditions to demonstrate how histograms can visualize data distribution." ] }, { "cell_type": "code", "execution_count": null, "id": "ac2db647", - "metadata": {}, + "metadata": { + "tags": [ + "hide-input" + ] + }, "outputs": [ { "data": { @@ -222,29 +224,33 @@ } ], "source": [ - "# Set a random seed for reproducibility of the synthetic data \n", + "# Set a random seed for reproducibility of the synthetic data\n", "np.random.seed(42)\n", "\n", "# Define parameters for synthetic gene expression data\n", "num_genes = 1000\n", + "conditions = [\"Control\", \"Treated\"]\n", "gene_names = [f\"Gene_{i}\" for i in range(num_genes)]\n", "\n", "# Simulate expression data with a slight shift in the \"Treated\" group\n", - "expression_values = np.concatenate([\n", - " np.random.normal(loc=10, scale=2, size=num_genes // 2),\n", - " np.random.normal(loc=12, scale=2, size=num_genes // 2)\n", - "])\n", - "condition_values = np.concatenate([\n", - " [\"Control\"] * (num_genes // 2),\n", - " [\"Treated\"] * (num_genes // 2)\n", - "])\n", + "expression_values = np.concatenate(\n", + " [\n", + " np.random.normal(loc=10, scale=2, size=num_genes // 2),\n", + " np.random.normal(loc=12, scale=2, size=num_genes // 2),\n", + " ]\n", + ")\n", + "condition_values = np.concatenate(\n", + " [[\"Control\"] * (num_genes // 2), [\"Treated\"] * (num_genes // 2)]\n", + ")\n", "\n", "# Create the DataFrame\n", - "gene_exp_df = pd.DataFrame({\n", - " \"Gene_ID\": gene_names,\n", - " \"Expression\": expression_values,\n", - " \"Condition\": condition_values\n", - "})\n", + "gene_exp_df = pd.DataFrame(\n", + " {\n", + " \"Gene_ID\": gene_names,\n", + " \"Expression\": expression_values,\n", + " \"Condition\": condition_values,\n", + " }\n", + ")\n", "\n", "gene_exp_df.head()" ] @@ -255,7 +261,9 @@ "metadata": {}, "source": [ "## 1. Basic Histogram Plot\n", - "A basic histogram plot can be created by simply providing the `x` and `y` columns from the DataFrame, along with style options like `title`." + "A basic histogram plot can be created by simply providing the `x` and `y` columns from the DataFrame,\n", + "along with style options like `title`\n", + "using [`create_histogram_plot`](vuecore.plots.basic.histogram.create_histogram_plot) ." ] }, { @@ -4281,12 +4289,9 @@ " histnorm=\"probability density\",\n", " title=\"Gene Expression Distribution by Treatment Condition\",\n", " subtitle=\"Histogram with probability density normalized\",\n", - " labels={\n", - " \"Expression\": \"Gene Expression\",\n", - " \"Condition\": \"Treatment Condition\"\n", - " },\n", + " labels={\"Expression\": \"Gene Expression\", \"Condition\": \"Treatment Condition\"},\n", " hover_data=[\"Gene_ID\"],\n", - " opacity=0.75, \n", + " opacity=0.75,\n", " file_path=file_path_adv_hist_html,\n", ")\n", "\n", diff --git a/docs/api_examples/histogram_plot.py b/docs/api_examples/histogram_plot.py index 45de99a..f6d5b92 100644 --- a/docs/api_examples/histogram_plot.py +++ b/docs/api_examples/histogram_plot.py @@ -73,21 +73,19 @@ # %% # Imports -import pandas as pd -import numpy as np from pathlib import Path -import plotly.io as pio -from vuecore.plots.basic.histogram import create_histogram_plot +import numpy as np +import pandas as pd -# Set the Plotly renderer based on the environment -pio.renderers.default = "notebook" +from vuecore.plots.basic.histogram import create_histogram_plot # %% [markdown] # ### 0.3. Create sample data -# We create a synthetic dataset simulating gene expression data across two experimental conditions to demonstrate how histograms can visualize data distribution. +# We create a synthetic dataset simulating gene expression data across two experimental +# conditions to demonstrate how histograms can visualize data distribution. -# %% +# %% tags=["hide-input"] # Set a random seed for reproducibility of the synthetic data np.random.seed(42) @@ -120,7 +118,9 @@ # %% [markdown] # ## 1. Basic Histogram Plot -# A basic histogram plot can be created by simply providing the `x` and `y` columns from the DataFrame, along with style options like `title`. +# A basic histogram plot can be created by simply providing the `x` and `y` columns from the DataFrame, +# along with style options like `title` +# using [`create_histogram_plot`](vuecore.plots.basic.histogram.create_histogram_plot) . # %% # Define output file path for the PNG basic histogram diff --git a/docs/api_examples/line_plot.ipynb b/docs/api_examples/line_plot.ipynb index 91fd1fc..c8e1208 100644 --- a/docs/api_examples/line_plot.ipynb +++ b/docs/api_examples/line_plot.ipynb @@ -54,189 +54,21 @@ "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." + "To run this notebook locally, you should create a virtual environment\n", + "with the required libraries. If you are running this notebook on Google\n", + "Colab, everything should be set." ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "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" - ] - } - ], + "outputs": [], "source": [ "# VueCore library\n", "%pip install vuecore" @@ -244,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "963a9529", "metadata": { "tags": [ @@ -255,20 +87,8 @@ "source": [ "import os\n", "\n", - "IN_COLAB = \"COLAB_GPU\" in os.environ" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "ee2ffd40", - "metadata": { - "tags": [ - "hide-cell" - ] - }, - "outputs": [], - "source": [ + "IN_COLAB = \"COLAB_GPU\" in os.environ\n", + "\n", "# Create a directory for outputs\n", "output_dir = \"./outputs\"\n", "os.makedirs(output_dir, exist_ok=True)" @@ -289,10 +109,10 @@ "metadata": {}, "outputs": [], "source": [ - "# Imports\n", - "import pandas as pd\n", "from pathlib import Path\n", "\n", + "import pandas as pd\n", + "\n", "from vuecore.plots.basic.line import create_line_plot" ] }, @@ -302,116 +122,73 @@ "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." + "We create a synthetic dataset showing measurements over five days for\n", + "two experiments (A, B), each tested under Control and Treatment\n", + "conditions, with associated measurement errors." ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "ac2db647", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
dayexperimentconditionvaluevalue_error
01AControl111.0
12AControl131.2
23AControl150.9
34AControl171.1
45AControl181.0
\n", - "
" - ], - "text/plain": [ - " day experiment condition value value_error\n", - "0 1 A Control 11 1.0\n", - "1 2 A Control 13 1.2\n", - "2 3 A Control 15 0.9\n", - "3 4 A Control 17 1.1\n", - "4 5 A Control 18 1.0" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": { + "tags": [ + "hide-input" + ] + }, + "outputs": [], "source": [ - "sample_df = pd.DataFrame({\n", - " \"day\": list(range(1, 6)) * 4, # 5 days\n", - " \"experiment\": [\"A\"] * 10 + [\"B\"] * 10, # 2 experiments\n", - " \"condition\": ([\"Control\"] * 5 + [\"Treatment\"] * 5) * 2, # 2 conditions\n", - " \"value\": [\n", - " 11, 13, 15, 17, 18, # A - Control\n", - " 10, 12, 14, 15, 16, # A - Treatment\n", - " 19, 20, 21, 22, 23, # B - Control\n", - " 20, 22, 21, 23, 22, # B - Treatment\n", - " ],\n", - " \"value_error\": [1, 1.2, 0.9, 1.1, 1.0, 1.3, 1.0, 1.2, 1.4, 1.1,\n", - " 2.0, 1.8, 2.1, 1.5, 2.3, 1.7, 2.0, 1.8, 2.1, 2.2],\n", - "})\n", + "sample_df = pd.DataFrame(\n", + " {\n", + " \"day\": list(range(1, 6)) * 4, # 5 days\n", + " \"experiment\": [\"A\"] * 10 + [\"B\"] * 10, # 2 experiments\n", + " \"condition\": ([\"Control\"] * 5 + [\"Treatment\"] * 5) * 2, # 2 conditions\n", + " \"value\": [\n", + " 11, # A - Control\n", + " 13, # A - Control\n", + " 15, # A - Control\n", + " 17, # A - Control\n", + " 18, # A - Control\n", + " 10, # A - Treatment\n", + " 12, # A - Treatment\n", + " 14, # A - Treatment\n", + " 15, # A - Treatment\n", + " 16, # A - Treatment\n", + " 19, # B - Control\n", + " 20, # B - Control\n", + " 21, # B - Control\n", + " 22, # B - Control\n", + " 23, # B - Control\n", + " 20, # B - Treatment\n", + " 22, # B - Treatment\n", + " 21, # B - Treatment\n", + " 23, # B - Treatment\n", + " 22, # B - Treatment\n", + " ],\n", + " \"value_error\": [\n", + " 1.0,\n", + " 1.2,\n", + " 0.9,\n", + " 1.1,\n", + " 1.0,\n", + " 1.3,\n", + " 1.0,\n", + " 1.2,\n", + " 1.4,\n", + " 1.1,\n", + " 2.0,\n", + " 1.8,\n", + " 2.1,\n", + " 1.5,\n", + " 2.3,\n", + " 1.7,\n", + " 2.0,\n", + " 1.8,\n", + " 2.1,\n", + " 2.2,\n", + " ],\n", + " }\n", + ")\n", "\n", "sample_df.head()" ] @@ -422,3948 +199,17 @@ "metadata": {}, "source": [ "## 1. Basic Line Plot\n", - "A basic line plot can be created by simply providing the `x`, `y`, and `color` columns from the DataFrame." + "A basic line plot can be created by simply providing the `x`, `y`, and\n", + "`color` columns from the DataFrame\n", + "using [`create_line_plot`](vuecore.plots.basic.line.create_line_plot)." ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "d0d34455", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[VueCore] Plot saved to outputs/line_plot_basic.png\n" - ] - }, - { - "data": { - "text/html": [ - " \n", - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Define output path for the basic png plot\n", "file_path_basic_png = Path(output_dir) / \"line_plot_basic.png\"\n", @@ -4387,56 +233,17 @@ "metadata": {}, "source": [ "## 2. Advanced Line Plot\n", - "Here is an example of an advanced line plot with more descriptive parameters, including `error bars`, `line styles`, `markers`, and `custom colors`." + "Here is an example of an advanced line plot with more descriptive\n", + "parameters, including `error bars`, `line styles`, `markers`, and\n", + "`custom colors`." ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "f9307e85", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[VueCore] Plot saved to outputs/line_plot_advanced.html\n" - ] - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Define output file path for the HTML plot\n", "file_path_adv_html = Path(output_dir) / \"line_plot_advanced.html\"\n", @@ -4446,12 +253,17 @@ " data=sample_df,\n", " x=\"day\",\n", " y=\"value\",\n", - " color=\"experiment\", \n", - " line_dash=\"condition\", \n", - " error_y=\"value_error\", \n", + " color=\"experiment\",\n", + " line_dash=\"condition\",\n", + " error_y=\"value_error\",\n", " title=\"Experiment & Condition Trends\",\n", - " subtitle = \"Measurements over 5 days for two experiments (A, B) under Control and Treatment conditions.\",\n", - " labels={\"day\": \"Day\", \"value\": \"Response\", \"condition\": \"Condition\", \"experiment\": \"Experiment\"},\n", + " subtitle=\"Measurements over 5 days for two experiments (A, B) under Control and Treatment conditions.\",\n", + " labels={\n", + " \"day\": \"Day\",\n", + " \"value\": \"Response\",\n", + " \"condition\": \"Condition\",\n", + " \"experiment\": \"Experiment\",\n", + " },\n", " color_discrete_map={\"A\": \"#508AA8\", \"B\": \"#A8505E\"},\n", " line_dash_map={\"Control\": \"solid\", \"Treatment\": \"dot\"},\n", " markers=True,\n", @@ -4479,7 +291,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.11" + "version": "3.11.10" } }, "nbformat": 4, diff --git a/docs/api_examples/line_plot.py b/docs/api_examples/line_plot.py index 44fe1d7..b887f03 100644 --- a/docs/api_examples/line_plot.py +++ b/docs/api_examples/line_plot.py @@ -52,7 +52,9 @@ # %% [markdown] # ### 0.1. Installing libraries and creating global variables for platform and working directory # -# 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. +# 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. # %% tags=["hide-output"] # VueCore library @@ -63,7 +65,6 @@ IN_COLAB = "COLAB_GPU" in os.environ -# %% tags=["hide-cell"] # Create a directory for outputs output_dir = "./outputs" os.makedirs(output_dir, exist_ok=True) @@ -72,46 +73,48 @@ # ### 0.2. Importing libraries # %% -# Imports -import pandas as pd from pathlib import Path +import pandas as pd + from vuecore.plots.basic.line import create_line_plot # %% [markdown] # ### 0.3. Create sample data -# 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. +# 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. -# %% +# %% tags=["hide-input"] sample_df = pd.DataFrame( { "day": list(range(1, 6)) * 4, # 5 days "experiment": ["A"] * 10 + ["B"] * 10, # 2 experiments "condition": (["Control"] * 5 + ["Treatment"] * 5) * 2, # 2 conditions "value": [ - 11, - 13, - 15, - 17, + 11, # A - Control + 13, # A - Control + 15, # A - Control + 17, # A - Control 18, # A - Control - 10, - 12, - 14, - 15, + 10, # A - Treatment + 12, # A - Treatment + 14, # A - Treatment + 15, # A - Treatment 16, # A - Treatment - 19, - 20, - 21, - 22, + 19, # B - Control + 20, # B - Control + 21, # B - Control + 22, # B - Control 23, # B - Control - 20, - 22, - 21, - 23, + 20, # B - Treatment + 22, # B - Treatment + 21, # B - Treatment + 23, # B - Treatment 22, # B - Treatment ], "value_error": [ - 1, + 1.0, 1.2, 0.9, 1.1, @@ -139,7 +142,9 @@ # %% [markdown] # ## 1. Basic Line Plot -# A basic line plot can be created by simply providing the `x`, `y`, and `color` columns from the DataFrame. +# A basic line plot can be created by simply providing the `x`, `y`, and +# `color` columns from the DataFrame +# using [`create_line_plot`](vuecore.plots.basic.line.create_line_plot). # %% # Define output path for the basic png plot @@ -159,7 +164,9 @@ # %% [markdown] # ## 2. Advanced Line Plot -# Here is an example of an advanced line plot with more descriptive parameters, including `error bars`, `line styles`, `markers`, and `custom colors`. +# Here is an example of an advanced line plot with more descriptive +# parameters, including `error bars`, `line styles`, `markers`, and +# `custom colors`. # %% # Define output file path for the HTML plot diff --git a/docs/api_examples/scatter_plot.ipynb b/docs/api_examples/scatter_plot.ipynb index 9339e56..a8d5fba 100644 --- a/docs/api_examples/scatter_plot.ipynb +++ b/docs/api_examples/scatter_plot.ipynb @@ -61,7 +61,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "36246ed6", "metadata": { "tags": [ @@ -73,168 +73,137 @@ "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", + "Requirement already satisfied: vuecore in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (0.0.6.dev66+g88ca84c3f.d20250918)\n", + "Requirement already satisfied: numpy in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (1.26.4)\n", + "Requirement already satisfied: pandas in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (2.2.3)\n", + "Requirement already satisfied: scipy in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (1.14.1)\n", + "Requirement already satisfied: plotly in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (5.24.1)\n", + "Requirement already satisfied: beautifulsoup4 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (4.12.3)\n", + "Requirement already satisfied: requests in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (2.32.3)\n", + "Requirement already satisfied: dash in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (2.18.2)\n", + "Requirement already satisfied: networkx in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (3.4.1)\n", + "Requirement already satisfied: matplotlib in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (3.9.2)\n", + "Requirement already satisfied: kaleido in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (0.2.1)\n", + "Requirement already satisfied: pyvis in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (0.3.1)\n", + "Requirement already satisfied: wordcloud in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (1.9.4)\n", + "Requirement already satisfied: cyjupyter in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (0.2.0)\n", + "Requirement already satisfied: nltk in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (3.9.1)\n", + "Requirement already satisfied: webweb in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (0.0.37)\n", + "Requirement already satisfied: acore in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (0.2.1.dev16+g403241e60.d20250902)\n", + "Requirement already satisfied: dash-cytoscape in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (1.0.2)\n", + "Requirement already satisfied: pydantic in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (2.11.5)\n", + "Requirement already satisfied: nbformat>=4.2.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from vuecore) (5.10.4)\n", + "Requirement already satisfied: fastjsonschema>=2.15 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from nbformat>=4.2.0->vuecore) (2.20.0)\n", + "Requirement already satisfied: jsonschema>=2.6 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from nbformat>=4.2.0->vuecore) (4.23.0)\n", + "Requirement already satisfied: jupyter-core!=5.0.*,>=4.12 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from nbformat>=4.2.0->vuecore) (5.7.2)\n", + "Requirement already satisfied: traitlets>=5.1 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from nbformat>=4.2.0->vuecore) (5.14.3)\n", + "Requirement already satisfied: dsp-pandas in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (0.0.4.dev0+g61107b9.d20241118)\n", + "Requirement already satisfied: scikit-learn>=1.5 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (1.5.2)\n", + "Requirement already satisfied: biopython in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (1.84)\n", + "Requirement already satisfied: combat in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (0.3.3)\n", + "Requirement already satisfied: gseapy!=1.1.5 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (1.1.3)\n", + "Requirement already satisfied: kmapper in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (2.1.0)\n", + "Requirement already satisfied: lifelines in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (0.29.0)\n", + "Requirement already satisfied: pingouin in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (0.5.5)\n", + "Requirement already satisfied: python-louvain in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (0.16)\n", + "Requirement already satisfied: PyWGCNA!=2.2.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (2.1.2)\n", + "Requirement already satisfied: snfpy in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (0.2.2)\n", + "Requirement already satisfied: umap-learn in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (0.5.6)\n", + "Requirement already satisfied: statsmodels in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (0.14.4)\n", + "Requirement already satisfied: inmoose in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (0.7.2)\n", + "Requirement already satisfied: rarfile in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from acore->vuecore) (4.2)\n", + "Requirement already satisfied: soupsieve>1.2 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from beautifulsoup4->vuecore) (2.6)\n", + "Requirement already satisfied: ipywidgets>=7.0.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from cyjupyter->vuecore) (8.1.5)\n", + "Requirement already satisfied: Flask<3.1,>=1.0.4 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from dash->vuecore) (3.0.3)\n", + "Requirement already satisfied: Werkzeug<3.1 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from dash->vuecore) (3.0.6)\n", + "Requirement already satisfied: dash-html-components==2.0.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from dash->vuecore) (2.0.0)\n", + "Requirement already satisfied: dash-core-components==2.0.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from dash->vuecore) (2.0.0)\n", + "Requirement already satisfied: dash-table==5.0.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from dash->vuecore) (5.0.0)\n", + "Requirement already satisfied: importlib-metadata in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from dash->vuecore) (8.5.0)\n", + "Requirement already satisfied: typing-extensions>=4.1.1 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from dash->vuecore) (4.14.0)\n", + "Requirement already satisfied: retrying in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from dash->vuecore) (1.3.4)\n", + "Requirement already satisfied: nest-asyncio in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from dash->vuecore) (1.6.0)\n", + "Requirement already satisfied: setuptools in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from dash->vuecore) (75.1.0)\n", + "Requirement already satisfied: tenacity>=6.2.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from plotly->vuecore) (9.0.0)\n", + "Requirement already satisfied: packaging in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from plotly->vuecore) (24.1)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from matplotlib->vuecore) (1.3.0)\n", + "Requirement already satisfied: cycler>=0.10 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from matplotlib->vuecore) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from matplotlib->vuecore) (4.54.1)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from matplotlib->vuecore) (1.4.7)\n", + "Requirement already satisfied: pillow>=8 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from matplotlib->vuecore) (10.4.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from matplotlib->vuecore) (3.2.0)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from matplotlib->vuecore) (2.9.0)\n", + "Requirement already satisfied: click in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from nltk->vuecore) (8.1.7)\n", + "Requirement already satisfied: joblib in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from nltk->vuecore) (1.4.2)\n", + "Requirement already satisfied: regex>=2021.8.3 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from nltk->vuecore) (2024.11.6)\n", + "Requirement already satisfied: tqdm in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from nltk->vuecore) (4.66.5)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pandas->vuecore) (2024.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pandas->vuecore) (2024.2)\n", + "Requirement already satisfied: annotated-types>=0.6.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pydantic->vuecore) (0.7.0)\n", + "Requirement already satisfied: pydantic-core==2.33.2 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pydantic->vuecore) (2.33.2)\n", + "Requirement already satisfied: typing-inspection>=0.4.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pydantic->vuecore) (0.4.1)\n", + "Requirement already satisfied: jinja2>=2.9.6 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pyvis->vuecore) (3.1.4)\n", + "Requirement already satisfied: ipython>=5.3.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pyvis->vuecore) (8.28.0)\n", + "Requirement already satisfied: jsonpickle>=1.4.1 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pyvis->vuecore) (3.3.0)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from requests->vuecore) (3.4.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from requests->vuecore) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from requests->vuecore) (2.2.3)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from requests->vuecore) (2024.8.30)\n", + "Requirement already satisfied: itsdangerous>=2.1.2 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from Flask<3.1,>=1.0.4->dash->vuecore) (2.2.0)\n", + "Requirement already satisfied: blinker>=1.6.2 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from Flask<3.1,>=1.0.4->dash->vuecore) (1.9.0)\n", + "Requirement already satisfied: decorator in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from ipython>=5.3.0->pyvis->vuecore) (5.1.1)\n", + "Requirement already satisfied: jedi>=0.16 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from ipython>=5.3.0->pyvis->vuecore) (0.19.1)\n", + "Requirement already satisfied: matplotlib-inline in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from ipython>=5.3.0->pyvis->vuecore) (0.1.7)\n", + "Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from ipython>=5.3.0->pyvis->vuecore) (3.0.48)\n", + "Requirement already satisfied: pygments>=2.4.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from ipython>=5.3.0->pyvis->vuecore) (2.18.0)\n", + "Requirement already satisfied: stack-data in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from ipython>=5.3.0->pyvis->vuecore) (0.6.2)\n", + "Requirement already satisfied: pexpect>4.3 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from ipython>=5.3.0->pyvis->vuecore) (4.9.0)\n", + "Requirement already satisfied: comm>=0.1.3 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from ipywidgets>=7.0.0->cyjupyter->vuecore) (0.2.2)\n", + "Requirement already satisfied: widgetsnbextension~=4.0.12 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from ipywidgets>=7.0.0->cyjupyter->vuecore) (4.0.13)\n", + "Requirement already satisfied: jupyterlab-widgets~=3.0.12 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from ipywidgets>=7.0.0->cyjupyter->vuecore) (3.0.13)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from jinja2>=2.9.6->pyvis->vuecore) (3.0.1)\n", + "Requirement already satisfied: attrs>=22.2.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->vuecore) (24.2.0)\n", + "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->vuecore) (2024.10.1)\n", + "Requirement already satisfied: referencing>=0.28.4 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->vuecore) (0.35.1)\n", + "Requirement already satisfied: rpds-py>=0.7.1 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from jsonschema>=2.6->nbformat>=4.2.0->vuecore) (0.20.0)\n", + "Requirement already satisfied: platformdirs>=2.5 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from jupyter-core!=5.0.*,>=4.12->nbformat>=4.2.0->vuecore) (4.3.6)\n", + "Requirement already satisfied: six>=1.5 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from python-dateutil>=2.7->matplotlib->vuecore) (1.16.0)\n", + "Requirement already satisfied: seaborn>=0.11.2 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from PyWGCNA!=2.2.0->acore->vuecore) (0.13.2)\n", + "Requirement already satisfied: biomart>=0.9.2 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from PyWGCNA!=2.2.0->acore->vuecore) (0.9.2)\n", + "Requirement already satisfied: reactome2py>=3.0.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from PyWGCNA!=2.2.0->acore->vuecore) (3.0.0)\n", + "Requirement already satisfied: anndata>=0.10.8 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from PyWGCNA!=2.2.0->acore->vuecore) (0.10.9)\n", + "Requirement already satisfied: rsrc>=0.1.3 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from PyWGCNA!=2.2.0->acore->vuecore) (0.1.3)\n", + "Requirement already satisfied: psutil>=5.9.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from PyWGCNA!=2.2.0->acore->vuecore) (6.0.0)\n", + "Requirement already satisfied: threadpoolctl>=3.1.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from scikit-learn>=1.5->acore->vuecore) (3.5.0)\n", + "Requirement already satisfied: patsy>=0.5.6 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from statsmodels->acore->vuecore) (0.5.6)\n", + "Requirement already satisfied: mpmath>=1.1.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from combat->acore->vuecore) (1.3.0)\n", + "Requirement already satisfied: openpyxl in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from dsp-pandas->acore->vuecore) (3.1.5)\n", + "Requirement already satisfied: zipp>=3.20 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from importlib-metadata->dash->vuecore) (3.20.2)\n", + "Requirement already satisfied: fastcluster in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from inmoose->acore->vuecore) (1.2.6)\n", + "Requirement already satisfied: autograd>=1.5 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from lifelines->acore->vuecore) (1.7.0)\n", + "Requirement already satisfied: autograd-gamma>=0.3 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from lifelines->acore->vuecore) (0.5.0)\n", + "Requirement already satisfied: formulaic>=0.2.2 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from lifelines->acore->vuecore) (1.0.2)\n", + "Requirement already satisfied: pandas-flavor in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pingouin->acore->vuecore) (0.6.0)\n", + "Requirement already satisfied: tabulate in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pingouin->acore->vuecore) (0.9.0)\n", + "Requirement already satisfied: numba>=0.51.2 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from umap-learn->acore->vuecore) (0.60.0)\n", + "Requirement already satisfied: pynndescent>=0.5 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from umap-learn->acore->vuecore) (0.5.13)\n", + "Requirement already satisfied: array-api-compat!=1.5,>1.4 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from anndata>=0.10.8->PyWGCNA!=2.2.0->acore->vuecore) (1.9)\n", + "Requirement already satisfied: h5py>=3.1 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from anndata>=0.10.8->PyWGCNA!=2.2.0->acore->vuecore) (3.12.1)\n", + "Requirement already satisfied: natsort in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from anndata>=0.10.8->PyWGCNA!=2.2.0->acore->vuecore) (8.4.0)\n", + "Requirement already satisfied: interface-meta>=1.2.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from formulaic>=0.2.2->lifelines->acore->vuecore) (1.3.0)\n", + "Requirement already satisfied: wrapt>=1.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from formulaic>=0.2.2->lifelines->acore->vuecore) (1.16.0)\n", + "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from jedi>=0.16->ipython>=5.3.0->pyvis->vuecore) (0.8.4)\n", + "Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from numba>=0.51.2->umap-learn->acore->vuecore) (0.43.0)\n", + "Requirement already satisfied: ptyprocess>=0.5 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pexpect>4.3->ipython>=5.3.0->pyvis->vuecore) (0.7.0)\n", + "Requirement already satisfied: wcwidth in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=5.3.0->pyvis->vuecore) (0.2.13)\n", + "Requirement already satisfied: json5>=0.8.4 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from reactome2py>=3.0.0->PyWGCNA!=2.2.0->acore->vuecore) (0.9.25)\n", + "Requirement already satisfied: memoir>=0.0.3 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from rsrc>=0.1.3->PyWGCNA!=2.2.0->acore->vuecore) (0.0.3)\n", + "Requirement already satisfied: reprit>=0.3.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from rsrc>=0.1.3->PyWGCNA!=2.2.0->acore->vuecore) (0.9.0)\n", + "Requirement already satisfied: et-xmlfile in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from openpyxl->dsp-pandas->acore->vuecore) (2.0.0)\n", + "Requirement already satisfied: xarray in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from pandas-flavor->pingouin->acore->vuecore) (2024.9.0)\n", + "Requirement already satisfied: executing>=1.2.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from stack-data->ipython>=5.3.0->pyvis->vuecore) (2.1.0)\n", + "Requirement already satisfied: asttokens>=2.1.0 in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from stack-data->ipython>=5.3.0->pyvis->vuecore) (2.4.1)\n", + "Requirement already satisfied: pure-eval in /Users/heweb/miniforge3/envs/acore/lib/python3.11/site-packages (from stack-data->ipython>=5.3.0->pyvis->vuecore) (0.2.3)\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } @@ -246,7 +215,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "963a9529", "metadata": { "tags": [ @@ -257,20 +226,8 @@ "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": [ + "IN_COLAB = \"COLAB_GPU\" in os.environ\n", + "\n", "# Create a directory for outputs\n", "output_dir = \"./outputs\"\n", "os.makedirs(output_dir, exist_ok=True)" @@ -291,10 +248,10 @@ "metadata": {}, "outputs": [], "source": [ - "# Imports\n", - "import pandas as pd\n", "from pathlib import Path\n", "\n", + "import pandas as pd\n", + "\n", "from vuecore.plots.basic.scatter import create_scatter_plot" ] }, @@ -309,9 +266,13 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "82dfaf45", - "metadata": {}, + "metadata": { + "tags": [ + "hide-input" + ] + }, "outputs": [ { "data": { @@ -441,7 +402,7 @@ "7 B " ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -476,3946 +437,27 @@ "metadata": {}, "source": [ "## 1. Basic Scatter Plot\n", - "A basic scatter plot can be created by providing the `x` and `y` columns from the DataFrame, along with style options like `title`." + "A basic scatter plot can be created by providing the `x` and `y` columns\n", + "from the DataFrame, along with style options like `title`\n", + "using [`create_scatter_plot`](vuecore.plots.basic.scatter.create_scatter_plot)." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "d0d34455", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "[VueCore] Plot saved to ./outputs/scatter_basic.png\n" + "ename": "NameError", + "evalue": "name 'Path' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[6], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Define output path for the basic png plot\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m file_path_basic_png \u001b[38;5;241m=\u001b[39m \u001b[43mPath\u001b[49m(output_dir) \u001b[38;5;241m/\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mscatter_basic.png\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;03m# Generate the basic scatter plot\u001b[39;00m\n\u001b[1;32m 5\u001b[0m scatter_plot_basic \u001b[38;5;241m=\u001b[39m create_scatter_plot(\n\u001b[1;32m 6\u001b[0m data\u001b[38;5;241m=\u001b[39msample_df,\n\u001b[1;32m 7\u001b[0m x\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mgene_expression\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 10\u001b[0m file_path\u001b[38;5;241m=\u001b[39mfile_path_basic_png,\n\u001b[1;32m 11\u001b[0m )\n", + "\u001b[0;31mNameError\u001b[0m: name 'Path' is not defined" ] - }, - { - "data": { - "text/html": [ - " \n", - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -4448,48 +490,7 @@ "execution_count": null, "id": "f9307e85", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[VueCore] Plot saved to ./outputs/scatter_advanced.html\n" - ] - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Define output file path for the HTML plot\n", "file_path_adv_html = Path(output_dir) / \"scatter_advanced.html\"\n", @@ -4540,7 +541,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.11" + "version": "3.11.10" } }, "nbformat": 4, diff --git a/docs/api_examples/scatter_plot.py b/docs/api_examples/scatter_plot.py index 95c15e2..35abeec 100644 --- a/docs/api_examples/scatter_plot.py +++ b/docs/api_examples/scatter_plot.py @@ -65,7 +65,6 @@ IN_COLAB = "COLAB_GPU" in os.environ -# %% tags=["hide-cell"] # Create a directory for outputs output_dir = "./outputs" os.makedirs(output_dir, exist_ok=True) @@ -74,17 +73,17 @@ # ### 0.2. Importing libraries # %% -# Imports -import pandas as pd from pathlib import Path +import pandas as pd + from vuecore.plots.basic.scatter import create_scatter_plot # %% [markdown] # ### 0.3. Create sample data # We create a synthetic dataset that contains simulated gene expression values, p-values, regulation status, and significance scores for 8 genes across two cell types. -# %% +# %% tags=["hide-input"] sample_df = pd.DataFrame( { "gene_expression": [1.2, 2.5, 3.1, 4.5, 5.2, 6.8, 3.9, 2.1], @@ -109,7 +108,9 @@ # %% [markdown] # ## 1. Basic Scatter Plot -# A basic scatter plot can be created by providing the `x` and `y` columns from the DataFrame, along with style options like `title`. +# A basic scatter plot can be created by providing the `x` and `y` columns +# from the DataFrame, along with style options like `title` +# using [`create_scatter_plot`](vuecore.plots.basic.scatter.create_scatter_plot). # %% # Define output path for the basic png plot diff --git a/docs/conf.py b/docs/conf.py index 580e40c..ae0a710 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -57,9 +57,13 @@ # Plolty support through require javascript library # https://myst-nb.readthedocs.io/en/latest/render/interactive.html#plotly -html_js_files = [ - # "https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.7/require.min.js" -] +# html_js_files = [ +# ] +# Set the Plotly renderer to notebook for ReadTheDocs (visualize plotly figures +# in the documentation) - needed for plotly6 +# Plotly normally decides itself fine which renderer to use, so keep it to Sphinx +# see https://plotly.com/python/renderers/#setting-the-default-renderer +os.environ["PLOTLY_RENDERER"] = "notebook" # https://myst-nb.readthedocs.io/en/latest/configuration.html # Execution @@ -165,11 +169,6 @@ # https://github.com/readthedocs/readthedocs.org/issues/1139 if os.environ.get("READTHEDOCS") == "True": - # Set the Plotly renderer to notebook for ReadTheDocs (visualize plotly figures - # in the documentation) - needed for plotly6 - # Plotly normally decides itself fine which renderer to use, so keep it to RTD - # see https://plotly.com/python/renderers/#setting-the-default-renderer - os.environ["PLOTLY_RENDERER"] = "notebook" PROJECT_ROOT = Path(__file__).parent.parent PACKAGE_ROOT = PROJECT_ROOT / "src" / "vuecore"