{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# silico general demo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "from numpy import random" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import silico" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define a function that takes some parameters and returns a dict of information about the results:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def experiment_f(mean, sigma, seed):\n", " # All seeds should be initialized using a parameter for reproducibility\n", " random.seed(seed)\n", " # Return a dict with the results (must be pickleable)\n", " return {\"value\": random.normal(mean, sigma)}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define the values for each of the parameters:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "experiment = silico.Experiment(\n", " [\n", " (\"mean\", [1, 2, 4]),\n", " (\"sigma\", [1, 2, 3]),\n", " (\"seed\", list(range(20))),\n", " ],\n", " experiment_f, # Function\n", " \"experiment-demo\", # Folder where the results are stored\n", ")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# If the definition of the experiment has changed, previous results can be deleted by running:\n", "experiment.invalidate()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/json": { "ascii": false, "bar_format": null, "colour": null, "elapsed": 0.017731428146362305, "initial": 0, "n": 0, "ncols": null, "nrows": 67, "postfix": null, "prefix": "", "rate": null, "total": 180, "unit": "it", "unit_divisor": 1000, "unit_scale": false }, "application/vnd.jupyter.widget-view+json": { "model_id": "3d03d1d9fb344ea7a84a99cf559ac071", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/180 [00:00\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", " \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", "
_run_start_elapsed_secondsvalue
meansigmaseed
1102023-03-23 01:20:53.1545190.0000542.764052
12023-03-23 01:20:53.1554300.0000502.624345
22023-03-23 01:20:53.1561250.0000300.583242
32023-03-23 01:20:53.1563630.0000232.788628
42023-03-23 01:20:53.1565680.0000211.050562
..................
43152023-03-23 01:20:53.1879190.0000103.063015
162023-03-23 01:20:53.1880140.0000104.383846
172023-03-23 01:20:53.1881110.0000094.828798
182023-03-23 01:20:53.1882170.0000104.238285
192023-03-23 01:20:53.1883130.0000104.663010
\n", "

180 rows × 3 columns

\n", "" ], "text/plain": [ " _run_start _elapsed_seconds value\n", "mean sigma seed \n", "1 1 0 2023-03-23 01:20:53.154519 0.000054 2.764052\n", " 1 2023-03-23 01:20:53.155430 0.000050 2.624345\n", " 2 2023-03-23 01:20:53.156125 0.000030 0.583242\n", " 3 2023-03-23 01:20:53.156363 0.000023 2.788628\n", " 4 2023-03-23 01:20:53.156568 0.000021 1.050562\n", "... ... ... ...\n", "4 3 15 2023-03-23 01:20:53.187919 0.000010 3.063015\n", " 16 2023-03-23 01:20:53.188014 0.000010 4.383846\n", " 17 2023-03-23 01:20:53.188111 0.000009 4.828798\n", " 18 2023-03-23 01:20:53.188217 0.000010 4.238285\n", " 19 2023-03-23 01:20:53.188313 0.000010 4.663010\n", "\n", "[180 rows x 3 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df=experiment.get_results_df()\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot and table generation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some examples for figure and table generation follow" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Add an id field concatenating the two relevant levels of the index:\n", "df[\"id\"]=df.reset_index([\"mean\", \"sigma\"]).apply(lambda x: \"(%s, %s)\"%(x[\"mean\"],x[\"sigma\"]), axis=1).values\n", "\n", "plt.figure(figsize=(10, 10 / 1.618))\n", "sns.violinplot(\n", " data=df,\n", " x=\"id\",\n", " y=\"value\",\n", ")\n", "# plt.ylim(0.8, 1.1)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_elapsed_secondsvalue
meansigma
110.000023 ± 0.0000021.58 ± 0.19
20.0000262 ± 0.00000142.2 ± 0.4
30.0000219 ± 0.00000092.7 ± 0.6
210.000028 ± 0.0000022.58 ± 0.19
20.0000243 ± 0.00000143.2 ± 0.4
30.000024 ± 0.0000033.7 ± 0.6
410.0000156 ± 0.00000054.58 ± 0.19
20.00000995 ± 0.000000095.2 ± 0.4
30.00000975 ± 0.000000105.7 ± 0.6
\n", "
" ], "text/plain": [ " _elapsed_seconds value\n", "mean sigma \n", "1 1 0.000023 ± 0.000002 1.58 ± 0.19\n", " 2 0.0000262 ± 0.0000014 2.2 ± 0.4\n", " 3 0.0000219 ± 0.0000009 2.7 ± 0.6\n", "2 1 0.000028 ± 0.000002 2.58 ± 0.19\n", " 2 0.0000243 ± 0.0000014 3.2 ± 0.4\n", " 3 0.000024 ± 0.000003 3.7 ± 0.6\n", "4 1 0.0000156 ± 0.0000005 4.58 ± 0.19\n", " 2 0.00000995 ± 0.00000009 5.2 ± 0.4\n", " 3 0.00000975 ± 0.00000010 5.7 ± 0.6" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Produce a table summarizing the mean values with its error\n", "silico.df_agg_mean(df.drop([\"_run_start\", \"id\"], axis=1), [\"mean\", \"sigma\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Modifying task iteration order" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Evaluation order is only important if you interfere with the run before it finishes** (e.g, looking at intermediate results) **or if you want to explore only a subset of the parameter space**.\n", "\n", "The default strategy follows an ordered array from inner to outer coordinates. The experiment definition could be manipulated to alter this, modifying the variable order or the values list." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "MultiIndex([(1, 1, 0),\n", " (1, 1, 1),\n", " (1, 1, 2),\n", " (1, 1, 3),\n", " (1, 1, 4),\n", " (1, 1, 5),\n", " (1, 1, 6),\n", " (1, 1, 7),\n", " (1, 1, 8),\n", " (1, 1, 9),\n", " ...\n", " (4, 3, 10),\n", " (4, 3, 11),\n", " (4, 3, 12),\n", " (4, 3, 13),\n", " (4, 3, 14),\n", " (4, 3, 15),\n", " (4, 3, 16),\n", " (4, 3, 17),\n", " (4, 3, 18),\n", " (4, 3, 19)],\n", " names=['mean', 'sigma', 'seed'], length=180)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check the chronological execution order in the previous example\n", "df.sort_values(\"_run_start\").index" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An alternative strategy can be used to explore the same grid in a different order by first picking the corners and the choosing always a point furthest away from already picked ones. This is called the *urinal* strategy, since this implements [a protocol known by most men](https://blog.xkcd.com/2009/09/02/urinal-protocol-vulnerability/)." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "experiment_urinal = silico.Experiment(\n", " [\n", " (\"mean\", [1, 2, 4]),\n", " (\"sigma\", [1, 2, 3]),\n", " (\"seed\", list(range(20))),\n", " ],\n", " experiment_f, # Function\n", " \"experiment-demo-urinal\", # Folder where the results are stored\n", " strategy=\"urinal\"\n", ")" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "application/json": { "ascii": false, "bar_format": null, "colour": null, "elapsed": 0.019145965576171875, "initial": 0, "n": 0, "ncols": null, "nrows": 67, "postfix": null, "prefix": "", "rate": null, "total": 180, "unit": "it", "unit_divisor": 1000, "unit_scale": false }, "application/vnd.jupyter.widget-view+json": { "model_id": "b689ce3616244b52804e427e2ab26cfc", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/180 [00:00