From eb4f1e5a1c8f7cd11caa9e2bb69813e8de7bce6c Mon Sep 17 00:00:00 2001 From: PaulJonasJost Date: Sun, 5 May 2024 19:02:42 +0200 Subject: [PATCH 1/2] remove random.see in favor of np.random.seed --- doc/example/amici.ipynb | 6 ++---- doc/example/roadrunner.ipynb | 3 +-- doc/example/store.ipynb | 3 +-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/doc/example/amici.ipynb b/doc/example/amici.ipynb index 477c63e52..3b0bcb96e 100644 --- a/doc/example/amici.ipynb +++ b/doc/example/amici.ipynb @@ -36,7 +36,6 @@ "source": [ "# import\n", "import logging\n", - "import random\n", "import tempfile\n", "from pprint import pprint\n", "\n", @@ -57,7 +56,8 @@ "mpl.rcParams[\"figure.dpi\"] = 100\n", "mpl.rcParams[\"font.size\"] = 18\n", "\n", - "random.seed(1912)\n", + "# Set seed for reproducibility\n", + "np.random.seed(1912)\n", "\n", "\n", "# name of the model that will also be the name of the python module\n", @@ -929,8 +929,6 @@ "outputs": [], "source": [ "%%time\n", - "# Set seed for reproducibility\n", - "np.random.seed(1)\n", "result = optimize.minimize(\n", " problem=problem,\n", " optimizer=optimizer,\n", diff --git a/doc/example/roadrunner.ipynb b/doc/example/roadrunner.ipynb index 06b540937..a82b55e84 100644 --- a/doc/example/roadrunner.ipynb +++ b/doc/example/roadrunner.ipynb @@ -32,7 +32,6 @@ "outputs": [], "source": [ "# import\n", - "import random\n", "import matplotlib as mpl\n", "import petab\n", "import pypesto.objective\n", @@ -47,7 +46,7 @@ "mpl.rcParams[\"figure.dpi\"] = 100\n", "mpl.rcParams[\"font.size\"] = 18\n", "\n", - "random.seed(1912)\n", + "np.random.seed(1912)\n", "\n", "\n", "# name of the model that will also be the name of the python module\n", diff --git a/doc/example/store.ipynb b/doc/example/store.ipynb index f96520f6c..58f9902af 100644 --- a/doc/example/store.ipynb +++ b/doc/example/store.ipynb @@ -59,7 +59,6 @@ "outputs": [], "source": [ "import logging\n", - "import random\n", "import tempfile\n", "\n", "import matplotlib as mpl\n", @@ -76,7 +75,7 @@ "mpl.rcParams[\"figure.dpi\"] = 100\n", "mpl.rcParams[\"font.size\"] = 18\n", "# set a random seed to get reproducible results\n", - "random.seed(3142)\n", + "np.random.seed(3142)\n", "\n", "%matplotlib inline" ] From 2b8a267c89f63409d5627e0ddc808a4e4e345c8d Mon Sep 17 00:00:00 2001 From: PaulJonasJost Date: Sun, 5 May 2024 19:36:21 +0200 Subject: [PATCH 2/2] added import numpy as np import --- doc/example/roadrunner.ipynb | 242 ++++++++++++++++++++++------------- 1 file changed, 153 insertions(+), 89 deletions(-) diff --git a/doc/example/roadrunner.ipynb b/doc/example/roadrunner.ipynb index a82b55e84..54c4d25df 100644 --- a/doc/example/roadrunner.ipynb +++ b/doc/example/roadrunner.ipynb @@ -2,6 +2,12 @@ "cells": [ { "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "source": [ " # RoadRunner in pyPESTO\n", "\n", @@ -9,30 +15,37 @@ "\n", "* ... create a pyPESTO problem using [RoadRunner](https://www.libroadrunner.org) as a simulator directly from a PEtab problem.\n", "* ... perform a parameter estimation using pyPESTO with RoadRunner as a simulator, setting advanced simulator features." - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "# install pyPESTO with roadrunner support\n", "# %pip install pypesto[roadrunner,petab] --quiet" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "# import\n", "import matplotlib as mpl\n", + "import numpy as np\n", "import petab\n", "import pypesto.objective\n", "import pypesto.optimize as optimize\n", @@ -54,25 +67,31 @@ "\n", "# output directory\n", "model_output_dir = \"tmp/\" + model_name" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "source": [ "## Creating pyPESTO problem from PEtab\n", "\n", "The [PEtab file format](https://petab.readthedocs.io/en/latest/documentation_data_format.html) stores all the necessary information to define a parameter estimation problem. This includes the model, the experimental data, the parameters to estimate, and the experimental conditions. Using the `pypesto_rr.PetabImporterRR` class, we can create a pyPESTO problem directly from a PEtab problem." - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "petab_yaml = f\"./{model_name}/{model_name}.yaml\"\n", @@ -80,34 +99,43 @@ "petab_problem = petab.Problem.from_yaml(petab_yaml)\n", "importer = pypesto_rr.PetabImporterRR(petab_problem)\n", "problem = importer.create_problem()" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "source": [ "We now have a pyPESTO problem that we can use to perform parameter estimation. We can get some information on the RoadRunnerObjective and access the RoadRunner model." - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "pprint(problem.objective.get_config())" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "# direct simulation of the model using roadrunner\n", @@ -116,23 +144,29 @@ ")\n", "pprint(sim_res)\n", "problem.objective.roadrunner_instance.plot();" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "source": [ "For more details on interacting with the roadrunner instance, we refer to the [documentation of libroadrunner](https://libroadrunner.readthedocs.io/en/latest/). However, we point out that while theoretical possible, we **strongly advice against** changing the model in that manner." - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "ret = problem.objective(\n", @@ -141,25 +175,31 @@ " return_dict=True,\n", ")\n", "pprint(ret)" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "source": [ "## Optimization\n", "\n", "To optimize a problem using a RoadRunner objective, we can set additional solver options for the ODE solver." - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "optimizer = optimize.ScipyOptimizer()\n", @@ -171,14 +211,17 @@ ")\n", "engine = pypesto.engine.SingleCoreEngine()\n", "problem.objective.solver_options = solver_options" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "result = optimize.minimize(\n", @@ -188,78 +231,99 @@ " engine=engine\n", ")\n", "display(Markdown(result.summary()))" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "source": [ "Disclaimer: Currently there are two main things not yet fully supported with roadrunner objectives. One is parallelization of the optimization using MultiProcessEngine. The other is explicit gradients of the objective function. While the former will be added in a near future version, we will show a workaround for the latter, until it is implemented." - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "source": [ "### Visualization Methods\n", "\n", "In order to visualize the optimization, there are a few things possible. For a more extensive explanation we refer to the \"getting started\" notebook." - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "visualize.waterfall(result);" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "visualize.parameters(result);" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "visualize.parameters_correlation_matrix(result);" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "markdown", + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "source": [ "### Sensitivities via finite differences\n", "\n", "Some solvers need a way to calculate the sensitivities, which currently RoadRunner Objectives do not suport. For this scenario, we can use the FiniteDifferences objective in pypesto, which wraps a given objective into one, that computes sensitivities via finite differences." - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "# no support for sensitivities\n", @@ -273,14 +337,17 @@ " pprint(ret)\n", "except ValueError as e:\n", " pprint(e)" - ], - "metadata": { - "collapsed": false - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "objective_fd = pypesto.objective.FD(problem.objective)\n", @@ -295,31 +362,28 @@ " pprint(ret)\n", "except ValueError as e:\n", " pprint(e)" - ], - "metadata": { - "collapsed": false - } + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" + "pygments_lexer": "ipython3", + "version": "3.10.2" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 4 }