Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
342 changes: 153 additions & 189 deletions doc/example/amici.ipynb

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions doc/example/conversion_reaction.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -108,18 +108,18 @@
"# load amici module (the usual starting point later for the analysis)\n",
"sys.path.insert(0, os.path.abspath(model_output_dir))\n",
"model_module = importlib.import_module(model_name)\n",
"model = model_module.getModel()\n",
"model.requireSensitivitiesForAllParameters()\n",
"model.setTimepoints(np.linspace(0, 10, 11))\n",
"model.setParameterScale(amici.ParameterScaling.log10)\n",
"model.setParameters([-0.3, -0.7])\n",
"solver = model.getSolver()\n",
"solver.setSensitivityMethod(amici.SensitivityMethod.forward)\n",
"solver.setSensitivityOrder(amici.SensitivityOrder.first)\n",
"model = model_module.get_model()\n",
"model.require_sensitivities_for_all_parameters()\n",
"model.set_timepoints(np.linspace(0, 10, 11))\n",
"model.set_parameter_scale(amici.ParameterScaling.log10)\n",
"model.set_parameters([-0.3, -0.7])\n",
"solver = model.create_solver()\n",
"solver.set_sensitivity_method(amici.SensitivityMethod.forward)\n",
"solver.set_sensitivity_order(amici.SensitivityOrder.first)\n",
"\n",
"# how to run amici now:\n",
"rdata = amici.runAmiciSimulation(model, solver, None)\n",
"amici.plotting.plotStateTrajectories(rdata)\n",
"rdata = amici.run_simulation(model, solver, None)\n",
"amici.plotting.plot_state_trajectories(rdata)\n",
"edata = amici.ExpData(rdata, 0.2, 0.0)"
]
},
Expand Down Expand Up @@ -329,7 +329,7 @@
")\n",
"\n",
"# run prediction\n",
"prediction = predictor(x=model.getUnscaledParameters())"
"prediction = predictor(x=model.get_unscaled_parameters())"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion doc/example/getting_started.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@
"outputs": [],
"source": [
"# Set gradient computation method to adjoint\n",
"problem.objective.amici_solver.setSensitivityMethod(\n",
"problem.objective.amici_solver.set_sensitivity_method(\n",
" amici.SensitivityMethod.adjoint\n",
")"
]
Expand Down
110 changes: 55 additions & 55 deletions doc/example/petab_import.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,19 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# install if not done yet\n",
"# !apt install libatlas-base-dev swig\n",
"# %pip install pypesto[amici,petab] --quiet\n",
"# %pip install git+https://github.com/Benchmarking-Initiative/Benchmark-Models-PEtab.git@master#subdirectory=src/python --quiet"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"from pprint import pprint\n",
Expand All @@ -43,7 +41,9 @@
"import pypesto.optimize as optimize\n",
"import pypesto.petab\n",
"import pypesto.visualize as visualize"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -68,11 +68,9 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"# a collection of models that can be simulated\n",
"\n",
Expand All @@ -92,7 +90,9 @@
"\n",
"# create a petab problem\n",
"petab_problem = petab.Problem.from_yaml(yaml_config)"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -110,23 +110,23 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"importer = pypesto.petab.PetabImporter(petab_problem, simulator_type=\"amici\")\n",
"factory = importer.create_objective_creator()\n",
"\n",
"model = factory.create_model(verbose=False)\n",
"\n",
"# some model properties\n",
"print(\"Model parameters:\", list(model.getParameterIds()), \"\\n\")\n",
"print(\"Model const parameters:\", list(model.getFixedParameterIds()), \"\\n\")\n",
"print(\"Model outputs: \", list(model.getObservableIds()), \"\\n\")\n",
"print(\"Model states: \", list(model.getStateIds()), \"\\n\")"
]
"print(\"Model parameters:\", list(model.get_parameter_ids()), \"\\n\")\n",
"print(\"Model const parameters:\", list(model.get_fixed_parameter_ids()), \"\\n\")\n",
"print(\"Model outputs: \", list(model.get_observable_ids()), \"\\n\")\n",
"print(\"Model states: \", list(model.get_state_ids()), \"\\n\")"
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -151,15 +151,15 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"importer = pypesto.petab.PetabImporter.from_yaml(\n",
" yaml_config, simulator_type=\"amici\"\n",
")\n",
"problem = importer.create_problem() # creating the problem from the importer. The objective can be found at problem.objective"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -170,11 +170,9 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"import libsbml\n",
"\n",
Expand All @@ -185,10 +183,12 @@
"obj = factory.create_objective()\n",
"\n",
"# for some models, hyperparameters need to be adjusted\n",
"# obj.amici_solver.setMaxSteps(10000)\n",
"# obj.amici_solver.setRelativeTolerance(1e-7)\n",
"# obj.amici_solver.setAbsoluteTolerance(1e-7)"
]
"# obj.amici_solver.set_max_steps(10000)\n",
"# obj.amici_solver.set_relative_tolerance(1e-7)\n",
"# obj.amici_solver.set_absolute_tolerance(1e-7)"
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -199,9 +199,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ret = obj(\n",
" petab_problem.x_nominal_scaled,\n",
Expand All @@ -210,7 +208,9 @@
" return_dict=True,\n",
")\n",
"pprint(ret)"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -221,12 +221,12 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"problem = importer.create_problem(obj)"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -237,13 +237,13 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(f\"{problem.x_fixed_indices=}\")\n",
"print(f\"{problem.x_free_indices=}\")"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -254,22 +254,20 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"objective = problem.objective\n",
"fval, gradient = objective(\n",
" petab_problem.x_nominal_free_scaled, sensi_orders=(0, 1)\n",
")\n",
"print(f\"{fval=}\\n{gradient=}\")"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"eps = 1e-4\n",
"\n",
Expand All @@ -291,7 +289,9 @@
"for i, (g, f) in enumerate(zip(gradient, fdval)):\n",
" print(f\"{i=}: {g=:9f},\\t{f=:9f},\\t{g - f=:9f}\")\n",
"print(f\"l2 difference: {np.linalg.norm(gradient - fdval):.2e}\")"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -309,11 +309,9 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"optimizer = optimize.ScipyOptimizer()\n",
"\n",
Expand All @@ -324,7 +322,9 @@
"result = optimize.minimize(\n",
" problem=problem, optimizer=optimizer, n_starts=10, engine=engine\n",
")"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -342,19 +342,19 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
"problem = importer.create_problem(\n",
" startpoint_kwargs={\"check_fval\": True, \"check_grad\": True}\n",
")"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -372,12 +372,12 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"result.optimize_result.fval"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -388,17 +388,17 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ref = visualize.create_references(\n",
" x=petab_problem.x_nominal_scaled, fval=obj(petab_problem.x_nominal_scaled)\n",
")\n",
"\n",
"visualize.waterfall(result, reference=ref, scale_y=\"lin\")\n",
"visualize.parameters(result, reference=ref);"
]
],
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
Expand All @@ -413,21 +413,21 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"# we need to explicitly import the method\n",
"from pypesto.visualize.model_fit import visualize_optimized_model_fit\n",
"\n",
"visualize_optimized_model_fit(\n",
" petab_problem=petab_problem, result=result, pypesto_problem=problem\n",
");"
]
],
"outputs": [],
"execution_count": null
}
],
"metadata": {
Expand Down
Loading
Loading