From 1bf36640972ebd529d7a884567d8961c54998ba0 Mon Sep 17 00:00:00 2001 From: llegregam Date: Mon, 29 Apr 2024 10:36:16 +0200 Subject: [PATCH 001/114] Fixed variable inversion error --- physiofit/models/model_5.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/physiofit/models/model_5.py b/physiofit/models/model_5.py index 83f6cfa..48bc342 100644 --- a/physiofit/models/model_5.py +++ b/physiofit/models/model_5.py @@ -95,8 +95,8 @@ def simulate( def calculate_derivative(t, state, y_BM, y_P, km, qsmax): # get substrate and biomass concentrations - s_t = state[0] - x_t = state[1] + x_t = state[0] + s_t = state[1] # calculate fluxes qs_t = qsmax * (s_t / (km + s_t)) From 5e1afb2d18c686fb7d9668c1157e4762cdc93a27 Mon Sep 17 00:00:00 2001 From: llegregam Date: Mon, 29 Apr 2024 10:36:27 +0200 Subject: [PATCH 002/114] Bump to 3.3.7 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index bd8af8c..893c3d9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "physiofit" -version = "3.3.6" +version = "3.3.7" description = "Calculate extracellular fluxes from metabolite concentrations and biomass data" authors = ["llegregam "] license = "GNU General Public License (GPL)" From ee0f8b4e22e996981478e955031a0f799d386c04 Mon Sep 17 00:00:00 2001 From: llegregam Date: Mon, 29 Apr 2024 10:36:39 +0200 Subject: [PATCH 003/114] removed obelete TODO --- physiofit/models/model_1.py | 1 + 1 file changed, 1 insertion(+) diff --git a/physiofit/models/model_1.py b/physiofit/models/model_1.py index 2531e35..98730e0 100644 --- a/physiofit/models/model_1.py +++ b/physiofit/models/model_1.py @@ -94,6 +94,7 @@ def simulate( return simulated_matrix +# TODO: Handle this if __name__ == "__main__": model = ChildModel( From 8af3a72d2b3d428486da20d4353eb80da456f81d Mon Sep 17 00:00:00 2001 From: llegregam Date: Mon, 29 Apr 2024 10:37:22 +0200 Subject: [PATCH 004/114] Added docstring to Configparser --- physiofit/base/io.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/physiofit/base/io.py b/physiofit/base/io.py index 5a8ce38..f7c05a6 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -535,6 +535,12 @@ def _add_sd_area(self, element: str, ax: plt.Axes): class ConfigParser: + """ + The ConfigParser class is used to parse configuration files for the PhysioFit package. It reads a YAML file and + extracts the necessary parameters for the model fitting process. It also includes methods to update the model + with the parsed parameters and export the run parameters back to a yaml config file. + """ + allowed_keys = ["model", "sds", "mc", "iterations"] def __init__( From a701111a8ae9eaa07fbb04eeea75cc85c4f56a94 Mon Sep 17 00:00:00 2001 From: llegregam Date: Mon, 29 Apr 2024 10:37:54 +0200 Subject: [PATCH 005/114] Bugfix by coercing experiment name to string --- physiofit/ui/gui.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 150ac09..2ace01c 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -162,7 +162,7 @@ def _initialize_opt_menu(self): full_dataframe["experiments"] == experiment ].drop("experiments", axis=1).copy() - self.io.res_path = results_path / experiment + self.io.res_path = results_path / str(experiment) if not self.io.res_path.is_dir(): self.io.res_path.mkdir(parents=True) # Initialize the fitter object From 2eb6165f14ca6fbd0404c34ee4e62a6d000effb0 Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 30 Apr 2024 10:32:04 +0200 Subject: [PATCH 006/114] Sent logs to stream --- physiofit/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/physiofit/__init__.py b/physiofit/__init__.py index e56be43..7b83840 100644 --- a/physiofit/__init__.py +++ b/physiofit/__init__.py @@ -3,4 +3,5 @@ __version__ = importlib.metadata.version("physiofit") logger = logging.getLogger("physiofit") -logger.setLevel(logging.DEBUG) \ No newline at end of file +logger.setLevel(logging.DEBUG) +logger.addHandler(logging.StreamHandler()) \ No newline at end of file From d76c457f8845ac588cc5cdf44a68a766a4bce950 Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 30 Apr 2024 10:32:34 +0200 Subject: [PATCH 007/114] Added test for monod model --- physiofit/tests/conftest.py | 161 ++++++++++++++++++++++++++++++++++-- 1 file changed, 154 insertions(+), 7 deletions(-) diff --git a/physiofit/tests/conftest.py b/physiofit/tests/conftest.py index b10201e..8d81c21 100644 --- a/physiofit/tests/conftest.py +++ b/physiofit/tests/conftest.py @@ -1,4 +1,3 @@ - """ Configuration variables for the tests @@ -8,14 +7,12 @@ the fixture function's name. """ -import os - import pandas as pd import pytest from numpy import nan -from physiofit.base.io import IoHandler from physiofit.models.base_model import StandardDevs + @pytest.fixture def data(): """Test data to use in tests (taken from Bergès et al., 2021 --> KEIO_ROBOT1_1)""" @@ -29,6 +26,7 @@ def data(): } ) + # time X Glc Ace # 0 0.031752 NA NA # 1.18888888888889 0.05292 NA NA @@ -44,11 +42,160 @@ def data(): # 4.26666666666667 NA 12.1520761714542 1.62777664140305 # 4.88333333333333 NA 10.9297935900362 2.13639255382759 +@pytest.fixture +def monod_model_data(): + """ + Test data to use in tests for the Monod model. Data was simulated using the pyFOOMB package (see the `example 6 + notebook `_). + """ + return pd.DataFrame.from_dict( + { + "time": [0.00000000e+00, 2.84530395e-06, 1.87841467e-02, 6.86084776e-02, + 1.18432808e-01, 1.68257139e-01, 2.43764260e-01, 3.19271381e-01, + 4.49726191e-01, 5.80181002e-01, 7.10635813e-01, 9.19477706e-01, + 1.12831960e+00, 1.33716149e+00, 1.75431493e+00, 2.17146836e+00, + 2.58862180e+00, 3.00577523e+00, 3.42292866e+00, 3.84008210e+00, + 4.25723553e+00, 4.67438897e+00, 5.09154240e+00, 5.50869584e+00, + 5.92584927e+00, 6.34300270e+00, 6.76015614e+00, 7.17730957e+00, + 7.59446301e+00, 8.01161644e+00, 8.29621850e+00, 8.58082057e+00, + 8.86542263e+00, 9.29555394e+00, 9.61391297e+00, 9.93227199e+00, + 1.02506310e+01, 1.05689900e+01, 1.10543781e+01, 1.15397661e+01, + 1.18839716e+01, 1.22281772e+01, 1.25723827e+01, 1.29165883e+01, + 1.32607938e+01, 1.36049994e+01, 1.39492049e+01, 1.42934105e+01, + 1.46376160e+01, 1.49818216e+01, 1.53260271e+01, 1.56702327e+01, + 1.60144382e+01, 1.62611781e+01, 1.65079181e+01, 1.66591950e+01, + 1.68104719e+01, 1.69021125e+01, 1.69937532e+01, 1.70503459e+01, + 1.71069386e+01, 1.71431957e+01, 1.71794528e+01, 1.72036226e+01, + 1.72277924e+01, 1.72445191e+01, 1.72612458e+01, 1.72732201e+01, + 1.72851944e+01, 1.72940250e+01, 1.73028555e+01, 1.73116860e+01, + 1.73176659e+01, 1.73236458e+01, 1.73296257e+01, 1.73356056e+01, + 1.73415855e+01, 1.73452250e+01, 1.73479133e+01, 1.73506016e+01, + 1.73532900e+01, 1.73559783e+01, 1.73586666e+01, 1.73613549e+01, + 1.73640432e+01, 1.73667316e+01, 1.73694199e+01, 1.73721082e+01, + 1.73747965e+01, 1.73774848e+01, 1.73801731e+01, 1.73828615e+01, + 1.73855498e+01, 1.73882381e+01, 1.73909264e+01, 1.73936147e+01, + 1.73963031e+01, 1.74007815e+01, 1.74052600e+01, 1.74097384e+01, + 1.74142169e+01, 1.74186953e+01, 1.74231738e+01, 1.74276522e+01, + 1.74399174e+01, 1.74521827e+01, 1.74644479e+01, 1.74767132e+01, + 1.75064657e+01, 1.75362183e+01, 1.75967028e+01, 1.76313304e+01, + 1.76659580e+01, 1.77005856e+01, 1.77352132e+01, 1.77698407e+01, + 1.78044683e+01, 1.78390959e+01, 1.78990820e+01, 1.79590681e+01, + 1.80190541e+01, 1.81378620e+01, 1.83754877e+01, 1.87462973e+01, + 1.93988066e+01, 2.22020563e+01, 2.40000000e+01], + "X": [1.00000000e-02, 1.00000114e-02, 1.00755151e-02, 1.02785070e-02, + 1.04851341e-02, 1.06957646e-02, 1.10230425e-02, 1.13603070e-02, + 1.19675160e-02, 1.26070854e-02, 1.32807477e-02, 1.44349438e-02, + 1.56894776e-02, 1.70530554e-02, 2.01425914e-02, 2.37924513e-02, + 2.81029034e-02, 3.31932538e-02, 3.92051466e-02, 4.63058753e-02, + 5.46927632e-02, 6.45987091e-02, 7.62987771e-02, 9.01178828e-02, + 1.06439804e-01, 1.25717816e-01, 1.48487267e-01, 1.75380434e-01, + 2.07144077e-01, 2.44660157e-01, 2.74081338e-01, 3.07039387e-01, + 3.43960267e-01, 4.08357175e-01, 4.63663091e-01, 5.26456335e-01, + 5.97751620e-01, 6.78700806e-01, 8.23709014e-01, 9.99694095e-01, + 1.14682179e+00, 1.31559067e+00, 1.50918382e+00, 1.73124907e+00, + 1.98596629e+00, 2.27812618e+00, 2.61321891e+00, 2.99753328e+00, + 3.43826807e+00, 3.94365639e+00, 4.52310078e+00, 5.18731095e+00, + 5.94841972e+00, 6.56115855e+00, 7.23602834e+00, 7.68287603e+00, + 8.15625966e+00, 8.45628622e+00, 8.76633978e+00, 8.96269975e+00, + 9.16254503e+00, 9.29221224e+00, 9.42289356e+00, 9.51038000e+00, + 9.59792939e+00, 9.65838042e+00, 9.71851163e+00, 9.76120267e+00, + 9.80340828e+00, 9.83407224e+00, 9.86416930e+00, 9.89345565e+00, + 9.91264436e+00, 9.93111628e+00, 9.94861855e+00, 9.96478787e+00, + 9.97911442e+00, 9.98665391e+00, 9.99153422e+00, 9.99576940e+00, + 9.99932800e+00, 1.00022108e+01, 1.00044572e+01, 1.00061428e+01, + 1.00073654e+01, 1.00082263e+01, 1.00088188e+01, 1.00092206e+01, + 1.00094898e+01, 1.00096671e+01, 1.00097831e+01, 1.00098593e+01, + 1.00099092e+01, 1.00099414e+01, 1.00099618e+01, 1.00099747e+01, + 1.00099831e+01, 1.00099916e+01, 1.00099960e+01, 1.00099976e+01, + 1.00099979e+01, 1.00099983e+01, 1.00099988e+01, 1.00099996e+01, + 1.00100002e+01, 1.00100000e+01, 1.00099999e+01, 1.00099999e+01, + 1.00100000e+01, 1.00100000e+01, 1.00099996e+01, 1.00100001e+01, + 1.00100001e+01, 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, + 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, + 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, + 1.00100000e+01, 1.00100000e+01, 1.00100000e+01], + "S_substrate": [2.00000000e+01, 2.00000000e+01, 1.99998490e+01, 1.99994430e+01, + 1.99990297e+01, 1.99986085e+01, 1.99979539e+01, 1.99972794e+01, + 1.99960650e+01, 1.99947858e+01, 1.99934385e+01, 1.99911301e+01, + 1.99886210e+01, 1.99858939e+01, 1.99797148e+01, 1.99724151e+01, + 1.99637942e+01, 1.99536135e+01, 1.99415897e+01, 1.99273882e+01, + 1.99106145e+01, 1.98908026e+01, 1.98674024e+01, 1.98397642e+01, + 1.98071204e+01, 1.97685644e+01, 1.97230255e+01, 1.96692391e+01, + 1.96057118e+01, 1.95306797e+01, 1.94718373e+01, 1.94059212e+01, + 1.93320795e+01, 1.92032856e+01, 1.90926738e+01, 1.89670873e+01, + 1.88244968e+01, 1.86625984e+01, 1.83725820e+01, 1.80206118e+01, + 1.77263564e+01, 1.73888187e+01, 1.70016324e+01, 1.65575019e+01, + 1.60480674e+01, 1.54637476e+01, 1.47935622e+01, 1.40249334e+01, + 1.31434639e+01, 1.21326872e+01, 1.09737984e+01, 9.64537810e+00, + 8.12316056e+00, 6.89768289e+00, 5.54794333e+00, 4.65424794e+00, + 3.70748067e+00, 3.10742757e+00, 2.48732044e+00, 2.09460050e+00, + 1.69490993e+00, 1.43557553e+00, 1.17421288e+00, 9.99239999e-01, + 8.24141216e-01, 7.03239167e-01, 5.82976746e-01, 4.97594659e-01, + 4.13183443e-01, 3.51855523e-01, 2.91661405e-01, 2.33088690e-01, + 1.94711274e-01, 1.57767432e-01, 1.22762910e-01, 9.04242635e-02, + 6.17711687e-02, 4.66921849e-02, 3.69315576e-02, 2.84612066e-02, + 2.13439981e-02, 1.55784894e-02, 1.10855883e-02, 7.71437791e-03, + 5.26916061e-03, 3.54732671e-03, 2.36241878e-03, 1.55879567e-03, + 1.02032920e-03, 6.65870806e-04, 4.33724551e-04, 2.81344674e-04, + 1.81594318e-04, 1.17199486e-04, 7.64366916e-05, 5.06131384e-05, + 3.38327069e-05, 1.67743548e-05, 7.96307568e-06, 4.85831921e-06, + 4.17174086e-06, 3.45571364e-06, 2.40265760e-06, 7.42561334e-07, + -4.75957212e-07, -4.55116537e-08, 2.16928030e-07, 1.47280846e-07, + -3.21385469e-08, 8.25286825e-08, 8.91202734e-07, -1.13282919e-07, + -1.89058779e-07, 6.46350725e-08, 5.87083704e-08, -2.41520675e-08, + -1.80445478e-08, 8.23570977e-09, 2.19674270e-08, 6.37737076e-09, + -1.00863240e-09, -2.74105412e-09, -1.42426643e-09, -3.49341385e-10, + -1.08365230e-10, 2.39808967e-11, 1.21535023e-13], + "P_product": [0.00000000e+00, 2.27056932e-09, 1.51030213e-05, 5.57013969e-05, + 9.70268260e-05, 1.39152917e-04, 2.04608499e-04, 2.72061409e-04, + 3.93503192e-04, 5.21417081e-04, 6.56149542e-04, 8.86988753e-04, + 1.13789552e-03, 1.41061109e-03, 2.02851829e-03, 2.75849026e-03, + 3.62058068e-03, 4.63865076e-03, 5.84102933e-03, 7.26117506e-03, + 8.93855263e-03, 1.09197418e-02, 1.32597554e-02, 1.60235766e-02, + 1.92879608e-02, 2.31435633e-02, 2.76974534e-02, 3.30760868e-02, + 3.94288155e-02, 4.69320313e-02, 5.28162676e-02, 5.94078775e-02, + 6.67920534e-02, 7.96714350e-02, 9.07326183e-02, 1.03291267e-01, + 1.17550324e-01, 1.33740161e-01, 1.62741803e-01, 1.97938819e-01, + 2.27364358e-01, 2.61118134e-01, 2.99836765e-01, 3.44249815e-01, + 3.95193259e-01, 4.53625235e-01, 5.20643782e-01, 5.97506656e-01, + 6.85653614e-01, 7.86731278e-01, 9.02620156e-01, 1.03546219e+00, + 1.18768394e+00, 1.31023171e+00, 1.44520567e+00, 1.53457521e+00, + 1.62925193e+00, 1.68925724e+00, 1.75126796e+00, 1.79053995e+00, + 1.83050901e+00, 1.85644245e+00, 1.88257871e+00, 1.90007600e+00, + 1.91758588e+00, 1.92967608e+00, 1.94170233e+00, 1.95024053e+00, + 1.95868166e+00, 1.96481445e+00, 1.97083386e+00, 1.97669113e+00, + 1.98052887e+00, 1.98422326e+00, 1.98772371e+00, 1.99095757e+00, + 1.99382288e+00, 1.99533078e+00, 1.99630684e+00, 1.99715388e+00, + 1.99786560e+00, 1.99844215e+00, 1.99889144e+00, 1.99922856e+00, + 1.99947308e+00, 1.99964527e+00, 1.99976376e+00, 1.99984412e+00, + 1.99989797e+00, 1.99993341e+00, 1.99995663e+00, 1.99997187e+00, + 1.99998184e+00, 1.99998828e+00, 1.99999236e+00, 1.99999494e+00, + 1.99999662e+00, 1.99999832e+00, 1.99999920e+00, 1.99999951e+00, + 1.99999958e+00, 1.99999965e+00, 1.99999976e+00, 1.99999993e+00, + 2.00000005e+00, 2.00000000e+00, 1.99999998e+00, 1.99999999e+00, + 2.00000000e+00, 1.99999999e+00, 1.99999991e+00, 2.00000001e+00, + 2.00000002e+00, 1.99999999e+00, 1.99999999e+00, 2.00000000e+00, + 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, + 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, + 2.00000000e+00, 2.00000000e+00, 2.00000000e+00] + } + ) + + +@pytest.fixture +def monod_model_sds(): + return StandardDevs( + X=0.2, + S_substrate=0.2, + P_product=0.2 + ) + + @pytest.fixture def sds(): return StandardDevs( - X = 0.2, - Glucose = 0.5, - Acetate = 0.5 + X=0.2, + Glucose=0.5, + Acetate=0.5 ) From 1c75a8813c3d4f8b96f89484d62bf6b6c25e9fc2 Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 30 Apr 2024 10:32:57 +0200 Subject: [PATCH 008/114] PEP8 cleanup --- physiofit/base/fitter.py | 108 +++++++++++++++++++++++++-------------- 1 file changed, 69 insertions(+), 39 deletions(-) diff --git a/physiofit/base/fitter.py b/physiofit/base/fitter.py index 70f0d7c..36825a2 100644 --- a/physiofit/base/fitter.py +++ b/physiofit/base/fitter.py @@ -14,17 +14,18 @@ logger = logging.getLogger(f"physiofit.{__name__}") - -# TODO: add estimate deg function (eq 6) with plot of best fit and measured values +# TODO: add estimate deg function (eq 6) with plot of best fit and measured +# values class PhysioFitter: """ - This class is responsible for most of Physiofit's heavy lifting. Features included are: + This class is responsible for most of Physiofit's heavy lifting. + Features included are: - * loading of data from **csv** or **tsv** file - * **equation system initialization** using the following analytical functions (in absence of lag and - degradation: + * loading of data from **csv** or **tsv** file * **equation system + initialization** using the following analytical functions (in + absence of lag and degradation): X(t) = X0 * exp(mu * t) Mi(t) = qMi * (X0 / mu) * (exp(mu * t) - 1) + Mi0 @@ -34,23 +35,27 @@ class PhysioFitter: residuum = sum((sim - meas) / sd)² - * **optimization of the initial parameters** using `scipy.optimize.minimize ('Differential evolution', with polish with 'L-BFGS-B' method) `_ - * **sensitivity analysis, khi2 tests and plotting** + * **optimization of the initial parameters** using + `scipy.optimize.minimize ('Differential evolution', with polish with + 'L-BFGS-B' method) `_ * + **sensitivity analysis, khi2 tests and plotting** :param data: DataFrame containing data and passed by IOstream object - :type data: class: pandas.DataFrame - :param model: Model to initialize parameters and optimize - :type model: physiofit.models.base_model.Model - :param mc: Should Monte-Carlo sensitivity analysis be performed (default=True) - :type mc: Boolean - :param iterations: number of iterations for Monte-Carlo simulation (default=50) - :type iterations: int - :param sd: sd matrix used for residuum calculations. Can be: - - * a matrix with the same dimensions as the measurements matrix (but without the time column) - * a named vector containing sds for all the metabolites provided in the input file - * 0 in which case the matrix is automatically constructed from default values - * a dictionary with the data column headers as keys and the associated value as a scalar or list + :type data: class: pandas.DataFrame :param model: Model to initialize + parameters and optimize :type model: physiofit.models.base_model.Model + :param mc: Should Monte-Carlo sensitivity analysis be performed ( + default=True) :type mc: Boolean :param iterations: number of iterations + for Monte-Carlo simulation (default=50) :type iterations: int :param sd: + sd matrix used for residuum calculations. Can be: + + * a matrix with the same dimensions as the measurements + matrix (but without the time column) * a named vector + containing sds for all the metabolites provided in the input + file * 0 in which case the matrix is automatically + constructed from default values * a dictionary with the data + column headers as keys and the associated value as a scalar + or list :type sd: int, float, list, dict or ndarray """ @@ -168,8 +173,8 @@ def initialize_sd_matrix(self): if not isinstance(self.sd, np.ndarray) and not isinstance(self.sd, list): raise TypeError( - f"Cannot coerce SD to array. Please check that a list or array " - f"is given as input.\nCurrent input: \n{self.sd}" + f"Cannot coerce SD to array. Please check that a list or array" + f" is given as input.\nCurrent input: \n{self.sd}" ) else: self.sd = np.array(self.sd) @@ -249,8 +254,9 @@ def optimize(self): logger.info("\nRunning optimization...\n") bounds = self.model.bounds() - parameters = [param for param in self.model.parameters_to_estimate.values()] - logger.debug(f"Simulate function = {self.model.simulate}") + parameters = [ + param for param in self.model.parameters_to_estimate.values() + ] self.optimize_results = self._run_optimization( params=parameters, func=self.model.simulate, @@ -298,7 +304,12 @@ def _calculate_cost( simulated_matrix = func(params, exp_data_matrix, time_vector, non_opt_params) - cost_val = np.square((simulated_matrix - exp_data_matrix) / sd_matrix) + cost_val = np.square( + np.divide( + np.subtract(simulated_matrix, exp_data_matrix), + sd_matrix + ) + ) residuum = np.nansum(cost_val) return residuum @@ -323,14 +334,24 @@ def _run_optimization( optimize_results = differential_evolution( PhysioFitter._calculate_cost, bounds=bounds, args=( - func, exp_data_matrix, time_vector, non_opt_params, sd_matrix), + func, + exp_data_matrix, + time_vector, + non_opt_params, + sd_matrix + ), polish=True, x0=np.array(params) ) elif method == "L-BFGS-B": optimize_results = minimize( PhysioFitter._calculate_cost, x0=np.array(params), args=( - func, exp_data_matrix, time_vector, non_opt_params, sd_matrix), + func, + exp_data_matrix, + time_vector, + non_opt_params, + sd_matrix + ), method="L-BFGS-B", bounds=bounds, options={'maxcor': 30} ) else: @@ -362,13 +383,18 @@ def monte_carlo_analysis(self): opt_params_list = [] matrices = [] - for _ in range(self.iterations): + for i in range(self.iterations): new_matrix = self._apply_noise() - + logger.debug(f"Iteration {i + 1}:\n") + logger.debug(f"New matrix:\n{new_matrix}\n") # We optimise the parameters using the noisy matrix as input opt_res = PhysioFitter._run_optimization( - opt_res.x, self.model.simulate, new_matrix, self.model.time_vector, - self.model.fixed_parameters, self.sd, self.model.bounds(), + opt_res.x, + self.model.simulate, + new_matrix, + self.model.time_vector, + self.model.fixed_parameters, + self.sd, self.model.bounds(), "L-BFGS-B" ) @@ -449,8 +475,12 @@ def khi2_test(self): number_params = len(self.model.parameters_to_estimate) dof = number_measurements - number_params cost = self._calculate_cost( - self.optimize_results.x, self.model.simulate, self.experimental_matrix, - self.model.time_vector, self.model.fixed_parameters, self.sd + self.optimize_results.x, + self.model.simulate, + self.experimental_matrix, + self.model.time_vector, + self.model.fixed_parameters, + self.sd ) p_val = chi2.cdf(cost, dof) @@ -466,11 +496,11 @@ def khi2_test(self): ) logger.info(f"khi2 test results:\n" - f"khi2 value: {cost}\n" - f"Number of measurements: {number_measurements}\n" - f"Number of parameters to fit: {number_params}\n" - f"Degrees of freedom: {dof}\n" - f"p-value = {p_val}\n" + f"khi2 value: {cost}\n" + f"Number of measurements: {number_measurements}\n" + f"Number of parameters to fit: {number_params}\n" + f"Degrees of freedom: {dof}\n" + f"p-value = {p_val}\n" ) if p_val < 0.95: From 01b8bf5f56526bcbafb8f84c54eafaa1e0fa338a Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 30 Apr 2024 10:33:07 +0200 Subject: [PATCH 009/114] added logger --- physiofit/ui/gui.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 2ace01c..873b127 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -3,6 +3,7 @@ from tkinter import filedialog from pathlib import Path from copy import copy +import logging import pandas as pd import streamlit as st @@ -11,6 +12,7 @@ from physiofit.base.io import IoHandler, ConfigParser from physiofit.models.base_model import StandardDevs +logger = logging.getLogger(f"physiofit.{__name__}") class App: """ From 62ca0ac4fed2d24055da9ddcfe1f591e072a48bb Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 30 Apr 2024 10:33:34 +0200 Subject: [PATCH 010/114] Added np functions instead of python operators --- physiofit/models/model_5.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/physiofit/models/model_5.py b/physiofit/models/model_5.py index 48bc342..f9b5a48 100644 --- a/physiofit/models/model_5.py +++ b/physiofit/models/model_5.py @@ -104,9 +104,9 @@ def calculate_derivative(t, state, y_BM, y_P, km, qsmax): qp_t = y_P * qs_t # calculate derivatives - dx = mu_t * x_t - ds = -qs_t * x_t - dp = qp_t * x_t + dx = np.multiply(mu_t, x_t) + ds = np.multiply(-qs_t, x_t) + dp = np.multiply(qp_t, x_t) return dx, ds, dp From 1139570323ec04744a1bdcbb46a7b964c0bb8c65 Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 30 Apr 2024 10:33:53 +0200 Subject: [PATCH 011/114] added monod model test --- physiofit/tests/test_models.py | 64 ++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 physiofit/tests/test_models.py diff --git a/physiofit/tests/test_models.py b/physiofit/tests/test_models.py new file mode 100644 index 0000000..8f85079 --- /dev/null +++ b/physiofit/tests/test_models.py @@ -0,0 +1,64 @@ +""" +This module contains tests for the models module. +""" +import numpy as np +from physiofit.base.io import IoHandler + +def test_monod_model(monod_model_sds, monod_model_data): + """ + Test that the Monod model using pyFOOMB simulated data & parameters given as input. + """ + + io = IoHandler() + model = io.select_model("Dynamic Monod model (1 substrate, 1 product)", monod_model_data) + model.get_params() + fitter = io.initialize_fitter( + data=model.data, + model=model, + sd=monod_model_sds, + debug_mode=True + ) + fitter.optimize() + optimized_params = { + name: param for name, param in zip( + list(fitter.model.parameters_to_estimate.keys()), + fitter.parameter_stats["optimal"] + ) + } + + # X_0 + assert np.isclose( + a=optimized_params["X_0"], + b=0.01, + atol=0.0005 + ) + # y_BM + assert np.isclose( + a=optimized_params["y_BM"], + b=0.5, + atol=0.025 + ) + # S_substrate_km + assert np.isclose( + a=optimized_params["S_substrate_km"], + b=0.05, + atol=0.0025 + ) + # S_substrate_qsmax + assert np.isclose( + a=optimized_params["S_substrate_qsmax"], + b=0.8, + atol=0.04 + ) + # S_substrate_s_0 + assert np.isclose( + a=optimized_params["S_substrate_s_0"], + b=20, + atol=0.1 + ) + # P_product_y_P + assert np.isclose( + a=optimized_params["P_product_y_P"], + b=0.2, + atol=0.001 + ) From 4a15e6a957aff8e105329c616721b4c1b814f195 Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 30 Apr 2024 10:34:34 +0200 Subject: [PATCH 012/114] Updated lock file --- poetry.lock | 780 +++++++++++++++++++++++++--------------------------- 1 file changed, 378 insertions(+), 402 deletions(-) diff --git a/poetry.lock b/poetry.lock index 752eb52..81b7126 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. [[package]] name = "alabaster" @@ -13,13 +13,13 @@ files = [ [[package]] name = "altair" -version = "5.2.0" +version = "5.3.0" description = "Vega-Altair: A declarative statistical visualization library for Python." optional = false python-versions = ">=3.8" files = [ - {file = "altair-5.2.0-py3-none-any.whl", hash = "sha256:8c4888ad11db7c39f3f17aa7f4ea985775da389d79ac30a6c22856ab238df399"}, - {file = "altair-5.2.0.tar.gz", hash = "sha256:2ad7f0c8010ebbc46319cc30febfb8e59ccf84969a201541c207bc3a4fa6cf81"}, + {file = "altair-5.3.0-py3-none-any.whl", hash = "sha256:7084a1dab4d83c5e7e5246b92dc1b4451a6c68fd057f3716ee9d315c8980e59a"}, + {file = "altair-5.3.0.tar.gz", hash = "sha256:5a268b1a0983b23d8f9129f819f956174aa7aea2719ed55a52eba9979b9f6675"}, ] [package.dependencies] @@ -32,7 +32,8 @@ toolz = "*" typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] -dev = ["anywidget", "geopandas", "hatch", "ipython", "m2r", "mypy", "pandas-stubs", "pyarrow (>=11)", "pytest", "pytest-cov", "ruff (>=0.1.3)", "types-jsonschema", "types-setuptools", "vega-datasets", "vegafusion[embed] (>=1.4.0)", "vl-convert-python (>=1.1.0)"] +all = ["altair-tiles (>=0.3.0)", "anywidget (>=0.9.0)", "pyarrow (>=11)", "vega-datasets (>=0.9.0)", "vegafusion[embed] (>=1.6.6)", "vl-convert-python (>=1.3.0)"] +dev = ["geopandas", "hatch", "ipython", "m2r", "mypy", "pandas-stubs", "pytest", "pytest-cov", "ruff (>=0.3.0)", "types-jsonschema", "types-setuptools"] doc = ["docutils", "jinja2", "myst-parser", "numpydoc", "pillow (>=9,<10)", "pydata-sphinx-theme (>=0.14.1)", "scipy", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinxext-altair"] [[package]] @@ -111,34 +112,6 @@ files = [ {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, ] -[[package]] -name = "backports-zoneinfo" -version = "0.2.1" -description = "Backport of the standard library zoneinfo module" -optional = false -python-versions = ">=3.6" -files = [ - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:da6013fd84a690242c310d77ddb8441a559e9cb3d3d59ebac9aca1a57b2e18bc"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:89a48c0d158a3cc3f654da4c2de1ceba85263fafb861b98b59040a5086259722"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:1c5742112073a563c81f786e77514969acb58649bcdf6cdf0b4ed31a348d4546"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-win32.whl", hash = "sha256:e8236383a20872c0cdf5a62b554b27538db7fa1bbec52429d8d106effbaeca08"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8439c030a11780786a2002261569bdf362264f605dfa4d65090b64b05c9f79a7"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:f04e857b59d9d1ccc39ce2da1021d196e47234873820cbeaad210724b1ee28ac"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:17746bd546106fa389c51dbea67c8b7c8f0d14b5526a579ca6ccf5ed72c526cf"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5c144945a7752ca544b4b78c8c41544cdfaf9786f25fe5ffb10e838e19a27570"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-win32.whl", hash = "sha256:e55b384612d93be96506932a786bbcde5a2db7a9e6a4bb4bffe8b733f5b9036b"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a76b38c52400b762e48131494ba26be363491ac4f9a04c1b7e92483d169f6582"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:8961c0f32cd0336fb8e8ead11a1f8cd99ec07145ec2931122faaac1c8f7fd987"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e81b76cace8eda1fca50e345242ba977f9be6ae3945af8d46326d776b4cf78d1"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7b0a64cda4145548fed9efc10322770f929b944ce5cee6c0dfe0c87bf4c0c8c9"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-win32.whl", hash = "sha256:1b13e654a55cd45672cb54ed12148cd33628f672548f373963b0bff67b217328"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:4a0f800587060bf8880f954dbef70de6c11bbe59c673c3d818921f042f9954a6"}, - {file = "backports.zoneinfo-0.2.1.tar.gz", hash = "sha256:fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2"}, -] - -[package.extras] -tzdata = ["tzdata"] - [[package]] name = "beautifulsoup4" version = "4.12.3" @@ -180,13 +153,13 @@ css = ["tinycss2 (>=1.1.0,<1.3)"] [[package]] name = "blinker" -version = "1.7.0" +version = "1.8.1" description = "Fast, simple object-to-object and broadcast signaling" optional = false python-versions = ">=3.8" files = [ - {file = "blinker-1.7.0-py3-none-any.whl", hash = "sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9"}, - {file = "blinker-1.7.0.tar.gz", hash = "sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182"}, + {file = "blinker-1.8.1-py3-none-any.whl", hash = "sha256:5f1cdeff423b77c31b89de0565cd03e5275a03028f44b2b15f912632a58cced6"}, + {file = "blinker-1.8.1.tar.gz", hash = "sha256:da44ec748222dcd0105ef975eed946da197d5bdf8bafb6aa92f5bc89da63fa25"}, ] [[package]] @@ -412,13 +385,13 @@ files = [ [[package]] name = "comm" -version = "0.2.1" +version = "0.2.2" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." optional = false python-versions = ">=3.8" files = [ - {file = "comm-0.2.1-py3-none-any.whl", hash = "sha256:87928485c0dfc0e7976fd89fc1e187023cf587e7c353e4a9b417555b44adf021"}, - {file = "comm-0.2.1.tar.gz", hash = "sha256:0bc91edae1344d39d3661dcbc36937181fdaddb304790458f8b044dbc064b89a"}, + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, ] [package.dependencies] @@ -590,13 +563,13 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.2.0" +version = "1.2.1" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, - {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, + {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, + {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, ] [package.extras] @@ -632,69 +605,85 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.13.1" +version = "3.13.4" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, - {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, + {file = "filelock-3.13.4-py3-none-any.whl", hash = "sha256:404e5e9253aa60ad457cae1be07c0f0ca90a63931200a47d9b6a6af84fd7b45f"}, + {file = "filelock-3.13.4.tar.gz", hash = "sha256:d13f466618bfde72bd2c18255e269f72542c6e70e7bac83a0232d6b1cc5c8cf4"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] typing = ["typing-extensions (>=4.8)"] +[[package]] +name = "flake8" +version = "7.0.0" +description = "the modular source code checker: pep8 pyflakes and co" +optional = false +python-versions = ">=3.8.1" +files = [ + {file = "flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"}, + {file = "flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132"}, +] + +[package.dependencies] +mccabe = ">=0.7.0,<0.8.0" +pycodestyle = ">=2.11.0,<2.12.0" +pyflakes = ">=3.2.0,<3.3.0" + [[package]] name = "fonttools" -version = "4.49.0" +version = "4.51.0" description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" files = [ - {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d970ecca0aac90d399e458f0b7a8a597e08f95de021f17785fb68e2dc0b99717"}, - {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac9a745b7609f489faa65e1dc842168c18530874a5f5b742ac3dd79e26bca8bc"}, - {file = "fonttools-4.49.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ba0e00620ca28d4ca11fc700806fd69144b463aa3275e1b36e56c7c09915559"}, - {file = "fonttools-4.49.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdee3ab220283057e7840d5fb768ad4c2ebe65bdba6f75d5d7bf47f4e0ed7d29"}, - {file = "fonttools-4.49.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ce7033cb61f2bb65d8849658d3786188afd80f53dad8366a7232654804529532"}, - {file = "fonttools-4.49.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:07bc5ea02bb7bc3aa40a1eb0481ce20e8d9b9642a9536cde0218290dd6085828"}, - {file = "fonttools-4.49.0-cp310-cp310-win32.whl", hash = "sha256:86eef6aab7fd7c6c8545f3ebd00fd1d6729ca1f63b0cb4d621bccb7d1d1c852b"}, - {file = "fonttools-4.49.0-cp310-cp310-win_amd64.whl", hash = "sha256:1fac1b7eebfce75ea663e860e7c5b4a8831b858c17acd68263bc156125201abf"}, - {file = "fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e"}, - {file = "fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814"}, - {file = "fonttools-4.49.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36c8865bdb5cfeec88f5028e7e592370a0657b676c6f1d84a2108e0564f90e22"}, - {file = "fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942"}, - {file = "fonttools-4.49.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8fb022d799b96df3eaa27263e9eea306bd3d437cc9aa981820850281a02b6c9a"}, - {file = "fonttools-4.49.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33c584c0ef7dc54f5dd4f84082eabd8d09d1871a3d8ca2986b0c0c98165f8e86"}, - {file = "fonttools-4.49.0-cp311-cp311-win32.whl", hash = "sha256:cbe61b158deb09cffdd8540dc4a948d6e8f4d5b4f3bf5cd7db09bd6a61fee64e"}, - {file = "fonttools-4.49.0-cp311-cp311-win_amd64.whl", hash = "sha256:fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6"}, - {file = "fonttools-4.49.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d647a0e697e5daa98c87993726da8281c7233d9d4ffe410812a4896c7c57c075"}, - {file = "fonttools-4.49.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f3bbe672df03563d1f3a691ae531f2e31f84061724c319652039e5a70927167e"}, - {file = "fonttools-4.49.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bebd91041dda0d511b0d303180ed36e31f4f54b106b1259b69fade68413aa7ff"}, - {file = "fonttools-4.49.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4145f91531fd43c50f9eb893faa08399816bb0b13c425667c48475c9f3a2b9b5"}, - {file = "fonttools-4.49.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ea329dafb9670ffbdf4dbc3b0e5c264104abcd8441d56de77f06967f032943cb"}, - {file = "fonttools-4.49.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c076a9e548521ecc13d944b1d261ff3d7825048c338722a4bd126d22316087b7"}, - {file = "fonttools-4.49.0-cp312-cp312-win32.whl", hash = "sha256:b607ea1e96768d13be26d2b400d10d3ebd1456343eb5eaddd2f47d1c4bd00880"}, - {file = "fonttools-4.49.0-cp312-cp312-win_amd64.whl", hash = "sha256:a974c49a981e187381b9cc2c07c6b902d0079b88ff01aed34695ec5360767034"}, - {file = "fonttools-4.49.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b85ec0bdd7bdaa5c1946398cbb541e90a6dfc51df76dfa88e0aaa41b335940cb"}, - {file = "fonttools-4.49.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:af20acbe198a8a790618ee42db192eb128afcdcc4e96d99993aca0b60d1faeb4"}, - {file = "fonttools-4.49.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d418b1fee41a1d14931f7ab4b92dc0bc323b490e41d7a333eec82c9f1780c75"}, - {file = "fonttools-4.49.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b44a52b8e6244b6548851b03b2b377a9702b88ddc21dcaf56a15a0393d425cb9"}, - {file = "fonttools-4.49.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7c7125068e04a70739dad11857a4d47626f2b0bd54de39e8622e89701836eabd"}, - {file = "fonttools-4.49.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:29e89d0e1a7f18bc30f197cfadcbef5a13d99806447c7e245f5667579a808036"}, - {file = "fonttools-4.49.0-cp38-cp38-win32.whl", hash = "sha256:9d95fa0d22bf4f12d2fb7b07a46070cdfc19ef5a7b1c98bc172bfab5bf0d6844"}, - {file = "fonttools-4.49.0-cp38-cp38-win_amd64.whl", hash = "sha256:768947008b4dc552d02772e5ebd49e71430a466e2373008ce905f953afea755a"}, - {file = "fonttools-4.49.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:08877e355d3dde1c11973bb58d4acad1981e6d1140711230a4bfb40b2b937ccc"}, - {file = "fonttools-4.49.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fdb54b076f25d6b0f0298dc706acee5052de20c83530fa165b60d1f2e9cbe3cb"}, - {file = "fonttools-4.49.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0af65c720520710cc01c293f9c70bd69684365c6015cc3671db2b7d807fe51f2"}, - {file = "fonttools-4.49.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f255ce8ed7556658f6d23f6afd22a6d9bbc3edb9b96c96682124dc487e1bf42"}, - {file = "fonttools-4.49.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d00af0884c0e65f60dfaf9340e26658836b935052fdd0439952ae42e44fdd2be"}, - {file = "fonttools-4.49.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:263832fae27481d48dfafcc43174644b6706639661e242902ceb30553557e16c"}, - {file = "fonttools-4.49.0-cp39-cp39-win32.whl", hash = "sha256:0404faea044577a01bb82d47a8fa4bc7a54067fa7e324785dd65d200d6dd1133"}, - {file = "fonttools-4.49.0-cp39-cp39-win_amd64.whl", hash = "sha256:b050d362df50fc6e38ae3954d8c29bf2da52be384649ee8245fdb5186b620836"}, - {file = "fonttools-4.49.0-py3-none-any.whl", hash = "sha256:af281525e5dd7fa0b39fb1667b8d5ca0e2a9079967e14c4bfe90fd1cd13e0f18"}, - {file = "fonttools-4.49.0.tar.gz", hash = "sha256:ebf46e7f01b7af7861310417d7c49591a85d99146fc23a5ba82fdb28af156321"}, + {file = "fonttools-4.51.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:84d7751f4468dd8cdd03ddada18b8b0857a5beec80bce9f435742abc9a851a74"}, + {file = "fonttools-4.51.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8b4850fa2ef2cfbc1d1f689bc159ef0f45d8d83298c1425838095bf53ef46308"}, + {file = "fonttools-4.51.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5b48a1121117047d82695d276c2af2ee3a24ffe0f502ed581acc2673ecf1037"}, + {file = "fonttools-4.51.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:180194c7fe60c989bb627d7ed5011f2bef1c4d36ecf3ec64daec8302f1ae0716"}, + {file = "fonttools-4.51.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:96a48e137c36be55e68845fc4284533bda2980f8d6f835e26bca79d7e2006438"}, + {file = "fonttools-4.51.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:806e7912c32a657fa39d2d6eb1d3012d35f841387c8fc6cf349ed70b7c340039"}, + {file = "fonttools-4.51.0-cp310-cp310-win32.whl", hash = "sha256:32b17504696f605e9e960647c5f64b35704782a502cc26a37b800b4d69ff3c77"}, + {file = "fonttools-4.51.0-cp310-cp310-win_amd64.whl", hash = "sha256:c7e91abdfae1b5c9e3a543f48ce96013f9a08c6c9668f1e6be0beabf0a569c1b"}, + {file = "fonttools-4.51.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a8feca65bab31479d795b0d16c9a9852902e3a3c0630678efb0b2b7941ea9c74"}, + {file = "fonttools-4.51.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ac27f436e8af7779f0bb4d5425aa3535270494d3bc5459ed27de3f03151e4c2"}, + {file = "fonttools-4.51.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e19bd9e9964a09cd2433a4b100ca7f34e34731e0758e13ba9a1ed6e5468cc0f"}, + {file = "fonttools-4.51.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2b92381f37b39ba2fc98c3a45a9d6383bfc9916a87d66ccb6553f7bdd129097"}, + {file = "fonttools-4.51.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5f6bc991d1610f5c3bbe997b0233cbc234b8e82fa99fc0b2932dc1ca5e5afec0"}, + {file = "fonttools-4.51.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9696fe9f3f0c32e9a321d5268208a7cc9205a52f99b89479d1b035ed54c923f1"}, + {file = "fonttools-4.51.0-cp311-cp311-win32.whl", hash = "sha256:3bee3f3bd9fa1d5ee616ccfd13b27ca605c2b4270e45715bd2883e9504735034"}, + {file = "fonttools-4.51.0-cp311-cp311-win_amd64.whl", hash = "sha256:0f08c901d3866a8905363619e3741c33f0a83a680d92a9f0e575985c2634fcc1"}, + {file = "fonttools-4.51.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4060acc2bfa2d8e98117828a238889f13b6f69d59f4f2d5857eece5277b829ba"}, + {file = "fonttools-4.51.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1250e818b5f8a679ad79660855528120a8f0288f8f30ec88b83db51515411fcc"}, + {file = "fonttools-4.51.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76f1777d8b3386479ffb4a282e74318e730014d86ce60f016908d9801af9ca2a"}, + {file = "fonttools-4.51.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b5ad456813d93b9c4b7ee55302208db2b45324315129d85275c01f5cb7e61a2"}, + {file = "fonttools-4.51.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:68b3fb7775a923be73e739f92f7e8a72725fd333eab24834041365d2278c3671"}, + {file = "fonttools-4.51.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8e2f1a4499e3b5ee82c19b5ee57f0294673125c65b0a1ff3764ea1f9db2f9ef5"}, + {file = "fonttools-4.51.0-cp312-cp312-win32.whl", hash = "sha256:278e50f6b003c6aed19bae2242b364e575bcb16304b53f2b64f6551b9c000e15"}, + {file = "fonttools-4.51.0-cp312-cp312-win_amd64.whl", hash = "sha256:b3c61423f22165541b9403ee39874dcae84cd57a9078b82e1dce8cb06b07fa2e"}, + {file = "fonttools-4.51.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:1621ee57da887c17312acc4b0e7ac30d3a4fb0fec6174b2e3754a74c26bbed1e"}, + {file = "fonttools-4.51.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e9d9298be7a05bb4801f558522adbe2feea1b0b103d5294ebf24a92dd49b78e5"}, + {file = "fonttools-4.51.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee1af4be1c5afe4c96ca23badd368d8dc75f611887fb0c0dac9f71ee5d6f110e"}, + {file = "fonttools-4.51.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c18b49adc721a7d0b8dfe7c3130c89b8704baf599fb396396d07d4aa69b824a1"}, + {file = "fonttools-4.51.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:de7c29bdbdd35811f14493ffd2534b88f0ce1b9065316433b22d63ca1cd21f14"}, + {file = "fonttools-4.51.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cadf4e12a608ef1d13e039864f484c8a968840afa0258b0b843a0556497ea9ed"}, + {file = "fonttools-4.51.0-cp38-cp38-win32.whl", hash = "sha256:aefa011207ed36cd280babfaa8510b8176f1a77261833e895a9d96e57e44802f"}, + {file = "fonttools-4.51.0-cp38-cp38-win_amd64.whl", hash = "sha256:865a58b6e60b0938874af0968cd0553bcd88e0b2cb6e588727117bd099eef836"}, + {file = "fonttools-4.51.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:60a3409c9112aec02d5fb546f557bca6efa773dcb32ac147c6baf5f742e6258b"}, + {file = "fonttools-4.51.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f7e89853d8bea103c8e3514b9f9dc86b5b4120afb4583b57eb10dfa5afbe0936"}, + {file = "fonttools-4.51.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56fc244f2585d6c00b9bcc59e6593e646cf095a96fe68d62cd4da53dd1287b55"}, + {file = "fonttools-4.51.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d145976194a5242fdd22df18a1b451481a88071feadf251221af110ca8f00ce"}, + {file = "fonttools-4.51.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c5b8cab0c137ca229433570151b5c1fc6af212680b58b15abd797dcdd9dd5051"}, + {file = "fonttools-4.51.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:54dcf21a2f2d06ded676e3c3f9f74b2bafded3a8ff12f0983160b13e9f2fb4a7"}, + {file = "fonttools-4.51.0-cp39-cp39-win32.whl", hash = "sha256:0118ef998a0699a96c7b28457f15546815015a2710a1b23a7bf6c1be60c01636"}, + {file = "fonttools-4.51.0-cp39-cp39-win_amd64.whl", hash = "sha256:599bdb75e220241cedc6faebfafedd7670335d2e29620d207dd0378a4e9ccc5a"}, + {file = "fonttools-4.51.0-py3-none-any.whl", hash = "sha256:15c94eeef6b095831067f72c825eb0e2d48bb4cea0647c1b05c981ecba2bf39f"}, + {file = "fonttools-4.51.0.tar.gz", hash = "sha256:dc0673361331566d7a663d7ce0f6fdcbfbdc1f59c6e3ed1165ad7202ca183c68"}, ] [package.extras] @@ -727,30 +716,31 @@ smmap = ">=3.0.1,<6" [[package]] name = "gitpython" -version = "3.1.42" +version = "3.1.43" description = "GitPython is a Python library used to interact with Git repositories" optional = false python-versions = ">=3.7" files = [ - {file = "GitPython-3.1.42-py3-none-any.whl", hash = "sha256:1bf9cd7c9e7255f77778ea54359e54ac22a72a5b51288c457c881057b7bb9ecd"}, - {file = "GitPython-3.1.42.tar.gz", hash = "sha256:2d99869e0fef71a73cbd242528105af1d6c1b108c60dfabd994bf292f76c3ceb"}, + {file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"}, + {file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"}, ] [package.dependencies] gitdb = ">=4.0.1,<5" [package.extras] -test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar"] +doc = ["sphinx (==4.3.2)", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-applehelp (>=1.0.2,<=1.0.4)", "sphinxcontrib-devhelp (==1.0.2)", "sphinxcontrib-htmlhelp (>=2.0.0,<=2.0.1)", "sphinxcontrib-qthelp (==1.0.3)", "sphinxcontrib-serializinghtml (==1.1.5)"] +test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"] [[package]] name = "idna" -version = "3.6" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, - {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] @@ -766,32 +756,32 @@ files = [ [[package]] name = "importlib-metadata" -version = "7.0.1" +version = "7.1.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-7.0.1-py3-none-any.whl", hash = "sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e"}, - {file = "importlib_metadata-7.0.1.tar.gz", hash = "sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"}, + {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, + {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, ] [package.dependencies] zipp = ">=0.5" [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] [[package]] name = "importlib-resources" -version = "6.1.2" +version = "6.4.0" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_resources-6.1.2-py3-none-any.whl", hash = "sha256:9a0a862501dc38b68adebc82970140c9e4209fc99601782925178f8386339938"}, - {file = "importlib_resources-6.1.2.tar.gz", hash = "sha256:308abf8474e2dba5f867d279237cd4076482c3de7104a40b41426370e891549b"}, + {file = "importlib_resources-6.4.0-py3-none-any.whl", hash = "sha256:50d10f043df931902d4194ea07ec57960f66a80449ff867bfe782b4c486ba78c"}, + {file = "importlib_resources-6.4.0.tar.gz", hash = "sha256:cdb2b453b8046ca4e3798eb1d84f3cce1446a0e8e7b5ef4efb600f19fc398145"}, ] [package.dependencies] @@ -799,7 +789,7 @@ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] +testing = ["jaraco.test (>=5.4)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] [[package]] name = "iniconfig" @@ -814,13 +804,13 @@ files = [ [[package]] name = "ipykernel" -version = "6.29.3" +version = "6.29.4" description = "IPython Kernel for Jupyter" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.29.3-py3-none-any.whl", hash = "sha256:5aa086a4175b0229d4eca211e181fb473ea78ffd9869af36ba7694c947302a21"}, - {file = "ipykernel-6.29.3.tar.gz", hash = "sha256:e14c250d1f9ea3989490225cc1a542781b095a18a19447fcf2b5eaf7d0ac5bd2"}, + {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"}, + {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"}, ] [package.dependencies] @@ -960,13 +950,13 @@ referencing = ">=0.31.0" [[package]] name = "jupyter-client" -version = "8.6.0" +version = "8.6.1" description = "Jupyter protocol implementation and client libraries" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_client-8.6.0-py3-none-any.whl", hash = "sha256:909c474dbe62582ae62b758bca86d6518c85234bdee2d908c778db6d72f39d99"}, - {file = "jupyter_client-8.6.0.tar.gz", hash = "sha256:0642244bb83b4764ae60d07e010e15f0e2d275ec4e918a8f7b80fbbef3ca60c7"}, + {file = "jupyter_client-8.6.1-py3-none-any.whl", hash = "sha256:3b7bd22f058434e3b9a7ea4b1500ed47de2713872288c0d511d19926f99b459f"}, + {file = "jupyter_client-8.6.1.tar.gz", hash = "sha256:e842515e2bab8e19186d89fdfea7abd15e39dd581f94e399f00e2af5a1652d3f"}, ] [package.dependencies] @@ -983,13 +973,13 @@ test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pyt [[package]] name = "jupyter-core" -version = "5.7.1" +version = "5.7.2" description = "Jupyter core package. A base package on which Jupyter projects rely." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_core-5.7.1-py3-none-any.whl", hash = "sha256:c65c82126453a723a2804aa52409930434598fd9d35091d63dfb919d2b765bb7"}, - {file = "jupyter_core-5.7.1.tar.gz", hash = "sha256:de61a9d7fc71240f688b2fb5ab659fbb56979458dc66a71decd098e03c79e218"}, + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, ] [package.dependencies] @@ -999,7 +989,7 @@ traitlets = ">=5.3" [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] -test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] [[package]] name = "jupyterlab-pygments" @@ -1288,18 +1278,29 @@ python-dateutil = ">=2.7" [[package]] name = "matplotlib-inline" -version = "0.1.6" +version = "0.1.7" description = "Inline Matplotlib backend for Jupyter" optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, - {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, ] [package.dependencies] traitlets = "*" +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +optional = false +python-versions = ">=3.6" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] + [[package]] name = "mdurl" version = "0.1.2" @@ -1324,13 +1325,13 @@ files = [ [[package]] name = "nbclient" -version = "0.9.0" +version = "0.10.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." optional = false python-versions = ">=3.8.0" files = [ - {file = "nbclient-0.9.0-py3-none-any.whl", hash = "sha256:a3a1ddfb34d4a9d17fc744d655962714a866639acd30130e9be84191cd97cd15"}, - {file = "nbclient-0.9.0.tar.gz", hash = "sha256:4b28c207877cf33ef3a9838cdc7a54c5ceff981194a82eac59d558f05487295e"}, + {file = "nbclient-0.10.0-py3-none-any.whl", hash = "sha256:f13e3529332a1f1f81d82a53210322476a168bb7090a0289c795fe9cc11c9d3f"}, + {file = "nbclient-0.10.0.tar.gz", hash = "sha256:4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09"}, ] [package.dependencies] @@ -1342,17 +1343,17 @@ traitlets = ">=5.4" [package.extras] dev = ["pre-commit"] docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] -test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] [[package]] name = "nbconvert" -version = "7.16.1" +version = "7.16.4" description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." optional = false python-versions = ">=3.8" files = [ - {file = "nbconvert-7.16.1-py3-none-any.whl", hash = "sha256:3188727dffadfdc9c6a1c7250729063d7bc78b355ad7aa023138afa030d1cd07"}, - {file = "nbconvert-7.16.1.tar.gz", hash = "sha256:e79e6a074f49ba3ed29428ed86487bf51509d9aab613bd8522ac08f6d28fd7fd"}, + {file = "nbconvert-7.16.4-py3-none-any.whl", hash = "sha256:05873c620fe520b6322bf8a5ad562692343fe3452abda5765c7a34b7d1aa3eb3"}, + {file = "nbconvert-7.16.4.tar.gz", hash = "sha256:86ca91ba266b0a448dc96fa6c5b9d98affabde2867b363258703536807f9f7f4"}, ] [package.dependencies] @@ -1374,29 +1375,29 @@ tinycss2 = "*" traitlets = ">=5.1" [package.extras] -all = ["nbconvert[docs,qtpdf,serve,test,webpdf]"] +all = ["flaky", "ipykernel", "ipython", "ipywidgets (>=7.5)", "myst-parser", "nbsphinx (>=0.2.12)", "playwright", "pydata-sphinx-theme", "pyqtwebengine (>=5.15)", "pytest (>=7)", "sphinx (==5.0.2)", "sphinxcontrib-spelling", "tornado (>=6.1)"] docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] -qtpdf = ["nbconvert[qtpng]"] +qtpdf = ["pyqtwebengine (>=5.15)"] qtpng = ["pyqtwebengine (>=5.15)"] serve = ["tornado (>=6.1)"] -test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest"] +test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest (>=7)"] webpdf = ["playwright"] [[package]] name = "nbformat" -version = "5.9.2" +version = "5.10.4" description = "The Jupyter Notebook format" optional = false python-versions = ">=3.8" files = [ - {file = "nbformat-5.9.2-py3-none-any.whl", hash = "sha256:1c5172d786a41b82bcfd0c23f9e6b6f072e8fb49c39250219e4acfff1efe89e9"}, - {file = "nbformat-5.9.2.tar.gz", hash = "sha256:5f98b5ba1997dff175e77e0c17d5c10a96eaed2cbd1de3533d1fc35d5e111192"}, + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, ] [package.dependencies] -fastjsonschema = "*" +fastjsonschema = ">=2.15" jsonschema = ">=2.6" -jupyter-core = "*" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" traitlets = ">=5.1" [package.extras] @@ -1472,13 +1473,13 @@ files = [ [[package]] name = "packaging" -version = "23.2" +version = "24.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, ] [[package]] @@ -1575,18 +1576,18 @@ files = [ [[package]] name = "parso" -version = "0.8.3" +version = "0.8.4" description = "A Python Parser" optional = false python-versions = ">=3.6" files = [ - {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, - {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, ] [package.extras] -qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["docopt", "pytest (<6.0.0)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] [[package]] name = "pexpect" @@ -1615,79 +1616,80 @@ files = [ [[package]] name = "pillow" -version = "10.2.0" +version = "10.3.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.8" files = [ - {file = "pillow-10.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e"}, - {file = "pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2"}, - {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c"}, - {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0"}, - {file = "pillow-10.2.0-cp310-cp310-win32.whl", hash = "sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023"}, - {file = "pillow-10.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72"}, - {file = "pillow-10.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad"}, - {file = "pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5"}, - {file = "pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311"}, - {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1"}, - {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757"}, - {file = "pillow-10.2.0-cp311-cp311-win32.whl", hash = "sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068"}, - {file = "pillow-10.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56"}, - {file = "pillow-10.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1"}, - {file = "pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef"}, - {file = "pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04"}, - {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f"}, - {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb"}, - {file = "pillow-10.2.0-cp312-cp312-win32.whl", hash = "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f"}, - {file = "pillow-10.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9"}, - {file = "pillow-10.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48"}, - {file = "pillow-10.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9"}, - {file = "pillow-10.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d"}, - {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6"}, - {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe"}, - {file = "pillow-10.2.0-cp38-cp38-win32.whl", hash = "sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e"}, - {file = "pillow-10.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39"}, - {file = "pillow-10.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67"}, - {file = "pillow-10.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13"}, - {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7"}, - {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591"}, - {file = "pillow-10.2.0-cp39-cp39-win32.whl", hash = "sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516"}, - {file = "pillow-10.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8"}, - {file = "pillow-10.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6"}, - {file = "pillow-10.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868"}, - {file = "pillow-10.2.0.tar.gz", hash = "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e"}, + {file = "pillow-10.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45"}, + {file = "pillow-10.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf"}, + {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3"}, + {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5"}, + {file = "pillow-10.3.0-cp310-cp310-win32.whl", hash = "sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2"}, + {file = "pillow-10.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f"}, + {file = "pillow-10.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b"}, + {file = "pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795"}, + {file = "pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd"}, + {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad"}, + {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c"}, + {file = "pillow-10.3.0-cp311-cp311-win32.whl", hash = "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09"}, + {file = "pillow-10.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d"}, + {file = "pillow-10.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f"}, + {file = "pillow-10.3.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84"}, + {file = "pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a"}, + {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef"}, + {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3"}, + {file = "pillow-10.3.0-cp312-cp312-win32.whl", hash = "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d"}, + {file = "pillow-10.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b"}, + {file = "pillow-10.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a"}, + {file = "pillow-10.3.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b"}, + {file = "pillow-10.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd"}, + {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d"}, + {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3"}, + {file = "pillow-10.3.0-cp38-cp38-win32.whl", hash = "sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b"}, + {file = "pillow-10.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999"}, + {file = "pillow-10.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936"}, + {file = "pillow-10.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8"}, + {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9"}, + {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb"}, + {file = "pillow-10.3.0-cp39-cp39-win32.whl", hash = "sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572"}, + {file = "pillow-10.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb"}, + {file = "pillow-10.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591"}, + {file = "pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"}, ] [package.extras] @@ -1711,28 +1713,29 @@ files = [ [[package]] name = "platformdirs" -version = "4.2.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.2.1" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, - {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, + {file = "platformdirs-4.2.1-py3-none-any.whl", hash = "sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1"}, + {file = "platformdirs-4.2.1.tar.gz", hash = "sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf"}, ] [package.extras] docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] [[package]] name = "pluggy" -version = "1.4.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, - {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] @@ -1741,13 +1744,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "plumbum" -version = "1.8.2" +version = "1.8.3" description = "Plumbum: shell combinators library" optional = false python-versions = ">=3.6" files = [ - {file = "plumbum-1.8.2-py3-none-any.whl", hash = "sha256:3ad9e5f56c6ec98f6f7988f7ea8b52159662ea9e915868d369dbccbfca0e367e"}, - {file = "plumbum-1.8.2.tar.gz", hash = "sha256:9e6dc032f4af952665f32f3206567bc23b7858b1413611afe603a3f8ad9bfd75"}, + {file = "plumbum-1.8.3-py3-none-any.whl", hash = "sha256:8595d36dae2472587d6f59789c8d7b26250f45f6f6ed75ccb378de59ee7b9cf9"}, + {file = "plumbum-1.8.3.tar.gz", hash = "sha256:6092c85ab970b7a7a9d5d85c75200bc93be82b33c9bdf640ffa87d2d7c8709f0"}, ] [package.dependencies] @@ -1904,15 +1907,26 @@ files = [ [package.dependencies] numpy = ">=1.16.6" +[[package]] +name = "pycodestyle" +version = "2.11.1" +description = "Python style guide checker" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"}, + {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, +] + [[package]] name = "pycparser" -version = "2.21" +version = "2.22" description = "C parser in Python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] [[package]] @@ -1934,6 +1948,17 @@ numpy = ">=1.16.4" carto = ["pydeck-carto"] jupyter = ["ipykernel (>=5.1.2)", "ipython (>=5.8.0)", "ipywidgets (>=7,<8)", "traitlets (>=4.3.2)"] +[[package]] +name = "pyflakes" +version = "3.2.0" +description = "passive checker of Python programs" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"}, + {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, +] + [[package]] name = "pygments" version = "2.17.2" @@ -1951,13 +1976,13 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyparsing" -version = "3.1.1" +version = "3.1.2" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.6.8" files = [ - {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, - {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, + {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, + {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, ] [package.extras] @@ -2113,104 +2138,99 @@ files = [ [[package]] name = "pyzmq" -version = "25.1.2" +version = "26.0.2" description = "Python bindings for 0MQ" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "pyzmq-25.1.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:e624c789359f1a16f83f35e2c705d07663ff2b4d4479bad35621178d8f0f6ea4"}, - {file = "pyzmq-25.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:49151b0efece79f6a79d41a461d78535356136ee70084a1c22532fc6383f4ad0"}, - {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9a5f194cf730f2b24d6af1f833c14c10f41023da46a7f736f48b6d35061e76e"}, - {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:faf79a302f834d9e8304fafdc11d0d042266667ac45209afa57e5efc998e3872"}, - {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f51a7b4ead28d3fca8dda53216314a553b0f7a91ee8fc46a72b402a78c3e43d"}, - {file = "pyzmq-25.1.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:0ddd6d71d4ef17ba5a87becf7ddf01b371eaba553c603477679ae817a8d84d75"}, - {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:246747b88917e4867e2367b005fc8eefbb4a54b7db363d6c92f89d69abfff4b6"}, - {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:00c48ae2fd81e2a50c3485de1b9d5c7c57cd85dc8ec55683eac16846e57ac979"}, - {file = "pyzmq-25.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5a68d491fc20762b630e5db2191dd07ff89834086740f70e978bb2ef2668be08"}, - {file = "pyzmq-25.1.2-cp310-cp310-win32.whl", hash = "sha256:09dfe949e83087da88c4a76767df04b22304a682d6154de2c572625c62ad6886"}, - {file = "pyzmq-25.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:fa99973d2ed20417744fca0073390ad65ce225b546febb0580358e36aa90dba6"}, - {file = "pyzmq-25.1.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:82544e0e2d0c1811482d37eef297020a040c32e0687c1f6fc23a75b75db8062c"}, - {file = "pyzmq-25.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:01171fc48542348cd1a360a4b6c3e7d8f46cdcf53a8d40f84db6707a6768acc1"}, - {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc69c96735ab501419c432110016329bf0dea8898ce16fab97c6d9106dc0b348"}, - {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3e124e6b1dd3dfbeb695435dff0e383256655bb18082e094a8dd1f6293114642"}, - {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7598d2ba821caa37a0f9d54c25164a4fa351ce019d64d0b44b45540950458840"}, - {file = "pyzmq-25.1.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d1299d7e964c13607efd148ca1f07dcbf27c3ab9e125d1d0ae1d580a1682399d"}, - {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4e6f689880d5ad87918430957297c975203a082d9a036cc426648fcbedae769b"}, - {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cc69949484171cc961e6ecd4a8911b9ce7a0d1f738fcae717177c231bf77437b"}, - {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9880078f683466b7f567b8624bfc16cad65077be046b6e8abb53bed4eeb82dd3"}, - {file = "pyzmq-25.1.2-cp311-cp311-win32.whl", hash = "sha256:4e5837af3e5aaa99a091302df5ee001149baff06ad22b722d34e30df5f0d9097"}, - {file = "pyzmq-25.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:25c2dbb97d38b5ac9fd15586e048ec5eb1e38f3d47fe7d92167b0c77bb3584e9"}, - {file = "pyzmq-25.1.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:11e70516688190e9c2db14fcf93c04192b02d457b582a1f6190b154691b4c93a"}, - {file = "pyzmq-25.1.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:313c3794d650d1fccaaab2df942af9f2c01d6217c846177cfcbc693c7410839e"}, - {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b3cbba2f47062b85fe0ef9de5b987612140a9ba3a9c6d2543c6dec9f7c2ab27"}, - {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc31baa0c32a2ca660784d5af3b9487e13b61b3032cb01a115fce6588e1bed30"}, - {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02c9087b109070c5ab0b383079fa1b5f797f8d43e9a66c07a4b8b8bdecfd88ee"}, - {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f8429b17cbb746c3e043cb986328da023657e79d5ed258b711c06a70c2ea7537"}, - {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5074adeacede5f810b7ef39607ee59d94e948b4fd954495bdb072f8c54558181"}, - {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7ae8f354b895cbd85212da245f1a5ad8159e7840e37d78b476bb4f4c3f32a9fe"}, - {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b264bf2cc96b5bc43ce0e852be995e400376bd87ceb363822e2cb1964fcdc737"}, - {file = "pyzmq-25.1.2-cp312-cp312-win32.whl", hash = "sha256:02bbc1a87b76e04fd780b45e7f695471ae6de747769e540da909173d50ff8e2d"}, - {file = "pyzmq-25.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:ced111c2e81506abd1dc142e6cd7b68dd53747b3b7ae5edbea4578c5eeff96b7"}, - {file = "pyzmq-25.1.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:7b6d09a8962a91151f0976008eb7b29b433a560fde056ec7a3db9ec8f1075438"}, - {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967668420f36878a3c9ecb5ab33c9d0ff8d054f9c0233d995a6d25b0e95e1b6b"}, - {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5edac3f57c7ddaacdb4d40f6ef2f9e299471fc38d112f4bc6d60ab9365445fb0"}, - {file = "pyzmq-25.1.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:0dabfb10ef897f3b7e101cacba1437bd3a5032ee667b7ead32bbcdd1a8422fe7"}, - {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:2c6441e0398c2baacfe5ba30c937d274cfc2dc5b55e82e3749e333aabffde561"}, - {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:16b726c1f6c2e7625706549f9dbe9b06004dfbec30dbed4bf50cbdfc73e5b32a"}, - {file = "pyzmq-25.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:a86c2dd76ef71a773e70551a07318b8e52379f58dafa7ae1e0a4be78efd1ff16"}, - {file = "pyzmq-25.1.2-cp36-cp36m-win32.whl", hash = "sha256:359f7f74b5d3c65dae137f33eb2bcfa7ad9ebefd1cab85c935f063f1dbb245cc"}, - {file = "pyzmq-25.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:55875492f820d0eb3417b51d96fea549cde77893ae3790fd25491c5754ea2f68"}, - {file = "pyzmq-25.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b8c8a419dfb02e91b453615c69568442e897aaf77561ee0064d789705ff37a92"}, - {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8807c87fa893527ae8a524c15fc505d9950d5e856f03dae5921b5e9aa3b8783b"}, - {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5e319ed7d6b8f5fad9b76daa0a68497bc6f129858ad956331a5835785761e003"}, - {file = "pyzmq-25.1.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:3c53687dde4d9d473c587ae80cc328e5b102b517447456184b485587ebd18b62"}, - {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9add2e5b33d2cd765ad96d5eb734a5e795a0755f7fc49aa04f76d7ddda73fd70"}, - {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e690145a8c0c273c28d3b89d6fb32c45e0d9605b2293c10e650265bf5c11cfec"}, - {file = "pyzmq-25.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:00a06faa7165634f0cac1abb27e54d7a0b3b44eb9994530b8ec73cf52e15353b"}, - {file = "pyzmq-25.1.2-cp37-cp37m-win32.whl", hash = "sha256:0f97bc2f1f13cb16905a5f3e1fbdf100e712d841482b2237484360f8bc4cb3d7"}, - {file = "pyzmq-25.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6cc0020b74b2e410287e5942e1e10886ff81ac77789eb20bec13f7ae681f0fdd"}, - {file = "pyzmq-25.1.2-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:bef02cfcbded83473bdd86dd8d3729cd82b2e569b75844fb4ea08fee3c26ae41"}, - {file = "pyzmq-25.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e10a4b5a4b1192d74853cc71a5e9fd022594573926c2a3a4802020360aa719d8"}, - {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8c5f80e578427d4695adac6fdf4370c14a2feafdc8cb35549c219b90652536ae"}, - {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5dde6751e857910c1339890f3524de74007958557593b9e7e8c5f01cd919f8a7"}, - {file = "pyzmq-25.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea1608dd169da230a0ad602d5b1ebd39807ac96cae1845c3ceed39af08a5c6df"}, - {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0f513130c4c361201da9bc69df25a086487250e16b5571ead521b31ff6b02220"}, - {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:019744b99da30330798bb37df33549d59d380c78e516e3bab9c9b84f87a9592f"}, - {file = "pyzmq-25.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2e2713ef44be5d52dd8b8e2023d706bf66cb22072e97fc71b168e01d25192755"}, - {file = "pyzmq-25.1.2-cp38-cp38-win32.whl", hash = "sha256:07cd61a20a535524906595e09344505a9bd46f1da7a07e504b315d41cd42eb07"}, - {file = "pyzmq-25.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb7e49a17fb8c77d3119d41a4523e432eb0c6932187c37deb6fbb00cc3028088"}, - {file = "pyzmq-25.1.2-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:94504ff66f278ab4b7e03e4cba7e7e400cb73bfa9d3d71f58d8972a8dc67e7a6"}, - {file = "pyzmq-25.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6dd0d50bbf9dca1d0bdea219ae6b40f713a3fb477c06ca3714f208fd69e16fd8"}, - {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:004ff469d21e86f0ef0369717351073e0e577428e514c47c8480770d5e24a565"}, - {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c0b5ca88a8928147b7b1e2dfa09f3b6c256bc1135a1338536cbc9ea13d3b7add"}, - {file = "pyzmq-25.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c9a79f1d2495b167119d02be7448bfba57fad2a4207c4f68abc0bab4b92925b"}, - {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:518efd91c3d8ac9f9b4f7dd0e2b7b8bf1a4fe82a308009016b07eaa48681af82"}, - {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1ec23bd7b3a893ae676d0e54ad47d18064e6c5ae1fadc2f195143fb27373f7f6"}, - {file = "pyzmq-25.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db36c27baed588a5a8346b971477b718fdc66cf5b80cbfbd914b4d6d355e44e2"}, - {file = "pyzmq-25.1.2-cp39-cp39-win32.whl", hash = "sha256:39b1067f13aba39d794a24761e385e2eddc26295826530a8c7b6c6c341584289"}, - {file = "pyzmq-25.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:8e9f3fabc445d0ce320ea2c59a75fe3ea591fdbdeebec5db6de530dd4b09412e"}, - {file = "pyzmq-25.1.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a8c1d566344aee826b74e472e16edae0a02e2a044f14f7c24e123002dcff1c05"}, - {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:759cfd391a0996345ba94b6a5110fca9c557ad4166d86a6e81ea526c376a01e8"}, - {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c61e346ac34b74028ede1c6b4bcecf649d69b707b3ff9dc0fab453821b04d1e"}, - {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cb8fc1f8d69b411b8ec0b5f1ffbcaf14c1db95b6bccea21d83610987435f1a4"}, - {file = "pyzmq-25.1.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3c00c9b7d1ca8165c610437ca0c92e7b5607b2f9076f4eb4b095c85d6e680a1d"}, - {file = "pyzmq-25.1.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:df0c7a16ebb94452d2909b9a7b3337940e9a87a824c4fc1c7c36bb4404cb0cde"}, - {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:45999e7f7ed5c390f2e87ece7f6c56bf979fb213550229e711e45ecc7d42ccb8"}, - {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ac170e9e048b40c605358667aca3d94e98f604a18c44bdb4c102e67070f3ac9b"}, - {file = "pyzmq-25.1.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1b604734bec94f05f81b360a272fc824334267426ae9905ff32dc2be433ab96"}, - {file = "pyzmq-25.1.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:a793ac733e3d895d96f865f1806f160696422554e46d30105807fdc9841b9f7d"}, - {file = "pyzmq-25.1.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0806175f2ae5ad4b835ecd87f5f85583316b69f17e97786f7443baaf54b9bb98"}, - {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ef12e259e7bc317c7597d4f6ef59b97b913e162d83b421dd0db3d6410f17a244"}, - {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea253b368eb41116011add00f8d5726762320b1bda892f744c91997b65754d73"}, - {file = "pyzmq-25.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b9b1f2ad6498445a941d9a4fee096d387fee436e45cc660e72e768d3d8ee611"}, - {file = "pyzmq-25.1.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8b14c75979ce932c53b79976a395cb2a8cd3aaf14aef75e8c2cb55a330b9b49d"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:889370d5174a741a62566c003ee8ddba4b04c3f09a97b8000092b7ca83ec9c49"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a18fff090441a40ffda8a7f4f18f03dc56ae73f148f1832e109f9bffa85df15"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99a6b36f95c98839ad98f8c553d8507644c880cf1e0a57fe5e3a3f3969040882"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4345c9a27f4310afbb9c01750e9461ff33d6fb74cd2456b107525bbeebcb5be3"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3516e0b6224cf6e43e341d56da15fd33bdc37fa0c06af4f029f7d7dfceceabbc"}, - {file = "pyzmq-25.1.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:146b9b1f29ead41255387fb07be56dc29639262c0f7344f570eecdcd8d683314"}, - {file = "pyzmq-25.1.2.tar.gz", hash = "sha256:93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226"}, + {file = "pyzmq-26.0.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:1a60a03b01e8c9c58932ec0cca15b1712d911c2800eb82d4281bc1ae5b6dad50"}, + {file = "pyzmq-26.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:949067079e14ea1973bd740255e0840118c163d4bce8837f539d749f145cf5c3"}, + {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37e7edfa6cf96d036a403775c96afa25058d1bb940a79786a9a2fc94a783abe3"}, + {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:903cc7a84a7d4326b43755c368780800e035aa3d711deae84a533fdffa8755b0"}, + {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cb2e41af165e5f327d06fbdd79a42a4e930267fade4e9f92d17f3ccce03f3a7"}, + {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:55353b8189adcfc4c125fc4ce59d477744118e9c0ec379dd0999c5fa120ac4f5"}, + {file = "pyzmq-26.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f961423ff6236a752ced80057a20e623044df95924ed1009f844cde8b3a595f9"}, + {file = "pyzmq-26.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ba77fe84fe4f5f3dc0ef681a6d366685c8ffe1c8439c1d7530997b05ac06a04b"}, + {file = "pyzmq-26.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:52589f0a745ef61b9c75c872cf91f8c1f7c0668eb3dd99d7abd639d8c0fb9ca7"}, + {file = "pyzmq-26.0.2-cp310-cp310-win32.whl", hash = "sha256:b7b6d2a46c7afe2ad03ec8faf9967090c8ceae85c4d8934d17d7cae6f9062b64"}, + {file = "pyzmq-26.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:86531e20de249d9204cc6d8b13d5a30537748c78820215161d8a3b9ea58ca111"}, + {file = "pyzmq-26.0.2-cp310-cp310-win_arm64.whl", hash = "sha256:f26a05029ecd2bd306b941ff8cb80f7620b7901421052bc429d238305b1cbf2f"}, + {file = "pyzmq-26.0.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:70770e296a9cb03d955540c99360aab861cbb3cba29516abbd106a15dbd91268"}, + {file = "pyzmq-26.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2740fd7161b39e178554ebf21aa5667a1c9ef0cd2cb74298fd4ef017dae7aec4"}, + {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5e3706c32dea077faa42b1c92d825b7f86c866f72532d342e0be5e64d14d858"}, + {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fa1416876194927f7723d6b7171b95e1115602967fc6bfccbc0d2d51d8ebae1"}, + {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ef9a79a48794099c57dc2df00340b5d47c5caa1792f9ddb8c7a26b1280bd575"}, + {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1c60fcdfa3229aeee4291c5d60faed3a813b18bdadb86299c4bf49e8e51e8605"}, + {file = "pyzmq-26.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e943c39c206b04df2eb5d71305761d7c3ca75fd49452115ea92db1b5b98dbdef"}, + {file = "pyzmq-26.0.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8da0ed8a598693731c76659880a668f4748b59158f26ed283a93f7f04d47447e"}, + {file = "pyzmq-26.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7bf51970b11d67096bede97cdbad0f4333f7664f4708b9b2acb352bf4faa3140"}, + {file = "pyzmq-26.0.2-cp311-cp311-win32.whl", hash = "sha256:6f8e6bd5d066be605faa9fe5ec10aa1a46ad9f18fc8646f2b9aaefc8fb575742"}, + {file = "pyzmq-26.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:6d03da3a0ae691b361edcb39530075461202f699ce05adbb15055a0e1c9bcaa4"}, + {file = "pyzmq-26.0.2-cp311-cp311-win_arm64.whl", hash = "sha256:f84e33321b68ff00b60e9dbd1a483e31ab6022c577c8de525b8e771bd274ce68"}, + {file = "pyzmq-26.0.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:44c33ebd1c62a01db7fbc24e18bdda569d6639217d13d5929e986a2b0f69070d"}, + {file = "pyzmq-26.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ac04f904b4fce4afea9cdccbb78e24d468cb610a839d5a698853e14e2a3f9ecf"}, + {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2133de5ba9adc5f481884ccb699eac9ce789708292945c05746880f95b241c0"}, + {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7753c67c570d7fc80c2dc59b90ca1196f1224e0e2e29a548980c95fe0fe27fc1"}, + {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d4e51632e6b12e65e8d9d7612446ecda2eda637a868afa7bce16270194650dd"}, + {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d6c38806f6ecd0acf3104b8d7e76a206bcf56dadd6ce03720d2fa9d9157d5718"}, + {file = "pyzmq-26.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:48f496bbe14686b51cec15406323ae6942851e14022efd7fc0e2ecd092c5982c"}, + {file = "pyzmq-26.0.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e84a3161149c75bb7a7dc8646384186c34033e286a67fec1ad1bdedea165e7f4"}, + {file = "pyzmq-26.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:dabf796c67aa9f5a4fcc956d47f0d48b5c1ed288d628cf53aa1cf08e88654343"}, + {file = "pyzmq-26.0.2-cp312-cp312-win32.whl", hash = "sha256:3eee4c676af1b109f708d80ef0cf57ecb8aaa5900d1edaf90406aea7e0e20e37"}, + {file = "pyzmq-26.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:26721fec65846b3e4450dad050d67d31b017f97e67f7e0647b5f98aa47f828cf"}, + {file = "pyzmq-26.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:653955c6c233e90de128a1b8e882abc7216f41f44218056bd519969c8c413a15"}, + {file = "pyzmq-26.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:becd8d8fb068fbb5a52096efd83a2d8e54354383f691781f53a4c26aee944542"}, + {file = "pyzmq-26.0.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7a15e5465e7083c12517209c9dd24722b25e9b63c49a563922922fc03554eb35"}, + {file = "pyzmq-26.0.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e8158ac8616941f874841f9fa0f6d2f1466178c2ff91ea08353fdc19de0d40c2"}, + {file = "pyzmq-26.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea2c6a53e28c7066ea7db86fcc0b71d78d01b818bb11d4a4341ec35059885295"}, + {file = "pyzmq-26.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:bdbc7dab0b0e9c62c97b732899c4242e3282ba803bad668e03650b59b165466e"}, + {file = "pyzmq-26.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e74b6d5ef57bb65bf1b4a37453d8d86d88550dde3fb0f23b1f1a24e60c70af5b"}, + {file = "pyzmq-26.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ed4c6ee624ecbc77b18aeeb07bf0700d26571ab95b8f723f0d02e056b5bce438"}, + {file = "pyzmq-26.0.2-cp37-cp37m-win32.whl", hash = "sha256:8a98b3cb0484b83c19d8fb5524c8a469cd9f10e743f5904ac285d92678ee761f"}, + {file = "pyzmq-26.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:aa5f95d71b6eca9cec28aa0a2f8310ea53dea313b63db74932879ff860c1fb8d"}, + {file = "pyzmq-26.0.2-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:5ff56c76ce77b9805378a7a73032c17cbdb1a5b84faa1df03c5d3e306e5616df"}, + {file = "pyzmq-26.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bab697fc1574fee4b81da955678708567c43c813c84c91074e452bda5346c921"}, + {file = "pyzmq-26.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0c0fed8aa9ba0488ee1cbdaa304deea92d52fab43d373297002cfcc69c0a20c5"}, + {file = "pyzmq-26.0.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:606b922699fcec472ed814dda4dc3ff7c748254e0b26762a0ba21a726eb1c107"}, + {file = "pyzmq-26.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45f0fd82bad4d199fa993fbf0ac586a7ac5879addbe436a35a389df7e0eb4c91"}, + {file = "pyzmq-26.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:166c5e41045939a52c01e6f374e493d9a6a45dfe677360d3e7026e38c42e8906"}, + {file = "pyzmq-26.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d566e859e8b8d5bca08467c093061774924b3d78a5ba290e82735b2569edc84b"}, + {file = "pyzmq-26.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:264ee0e72b72ca59279dc320deab5ae0fac0d97881aed1875ce4bde2e56ffde0"}, + {file = "pyzmq-26.0.2-cp38-cp38-win32.whl", hash = "sha256:3152bbd3a4744cbdd83dfb210ed701838b8b0c9065cef14671d6d91df12197d0"}, + {file = "pyzmq-26.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:bf77601d75ca692c179154b7e5943c286a4aaffec02c491afe05e60493ce95f2"}, + {file = "pyzmq-26.0.2-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:c770a7545b3deca2db185b59175e710a820dd4ed43619f4c02e90b0e227c6252"}, + {file = "pyzmq-26.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d47175f0a380bfd051726bc5c0054036ae4a5d8caf922c62c8a172ccd95c1a2a"}, + {file = "pyzmq-26.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9bce298c1ce077837e110367c321285dc4246b531cde1abfc27e4a5bbe2bed4d"}, + {file = "pyzmq-26.0.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c40b09b7e184d6e3e1be1c8af2cc320c0f9f610d8a5df3dd866e6e6e4e32b235"}, + {file = "pyzmq-26.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d420d856bf728713874cefb911398efe69e1577835851dd297a308a78c14c249"}, + {file = "pyzmq-26.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d792d3cab987058451e55c70c5926e93e2ceb68ca5a2334863bb903eb860c9cb"}, + {file = "pyzmq-26.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:83ec17729cf6d3464dab98a11e98294fcd50e6b17eaabd3d841515c23f6dbd3a"}, + {file = "pyzmq-26.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47c17d5ebfa88ae90f08960c97b49917098665b8cd8be31f2c24e177bcf37a0f"}, + {file = "pyzmq-26.0.2-cp39-cp39-win32.whl", hash = "sha256:d509685d1cd1d018705a811c5f9d5bc237790936ead6d06f6558b77e16cc7235"}, + {file = "pyzmq-26.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:c7cc8cc009e8f6989a6d86c96f87dae5f5fb07d6c96916cdc7719d546152c7db"}, + {file = "pyzmq-26.0.2-cp39-cp39-win_arm64.whl", hash = "sha256:3ada31cb879cd7532f4a85b501f4255c747d4813ab76b35c49ed510ce4865b45"}, + {file = "pyzmq-26.0.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0a6ceaddc830dd3ca86cb8451cf373d1f05215368e11834538c2902ed5205139"}, + {file = "pyzmq-26.0.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a967681463aa7a99eb9a62bb18229b653b45c10ff0947b31cc0837a83dfb86f"}, + {file = "pyzmq-26.0.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6472a73bc115bc40a2076609a90894775abe6faf19a78375675a2f889a613071"}, + {file = "pyzmq-26.0.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d6aea92bcccfe5e5524d3c70a6f16ffdae548390ddad26f4207d55c55a40593"}, + {file = "pyzmq-26.0.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e025f6351e49d48a5aa2f5a09293aa769b0ee7369c25bed551647234b7fa0c75"}, + {file = "pyzmq-26.0.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:40bd7ebe4dbb37d27f0c56e2a844f360239343a99be422085e13e97da13f73f9"}, + {file = "pyzmq-26.0.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1dd40d586ad6f53764104df6e01810fe1b4e88fd353774629a5e6fe253813f79"}, + {file = "pyzmq-26.0.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f2aca15e9ad8c8657b5b3d7ae3d1724dc8c1c1059c06b4b674c3aa36305f4930"}, + {file = "pyzmq-26.0.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:450ec234736732eb0ebeffdb95a352450d4592f12c3e087e2a9183386d22c8bf"}, + {file = "pyzmq-26.0.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:f43be2bebbd09360a2f23af83b243dc25ffe7b583ea8c722e6df03e03a55f02f"}, + {file = "pyzmq-26.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:867f55e54aff254940bcec5eec068e7c0ac1e6bf360ab91479394a8bf356b0e6"}, + {file = "pyzmq-26.0.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b4dbc033c5ad46f8c429bf238c25a889b8c1d86bfe23a74e1031a991cb3f0000"}, + {file = "pyzmq-26.0.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6e8dd2961462e337e21092ec2da0c69d814dcb1b6e892955a37444a425e9cfb8"}, + {file = "pyzmq-26.0.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35391e72df6c14a09b697c7b94384947c1dd326aca883ff98ff137acdf586c33"}, + {file = "pyzmq-26.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:1c3d3c92fa54eda94ab369ca5b8d35059987c326ba5e55326eb068862f64b1fc"}, + {file = "pyzmq-26.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e7aa61a9cc4f0523373e31fc9255bf4567185a099f85ca3598e64de484da3ab2"}, + {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee53a8191271f144cc20b12c19daa9f1546adc84a2f33839e3338039b55c373c"}, + {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac60a980f07fa988983f7bfe6404ef3f1e4303f5288a01713bc1266df6d18783"}, + {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88896b1b4817d7b2fe1ec7205c4bbe07bf5d92fb249bf2d226ddea8761996068"}, + {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:18dfffe23751edee917764ffa133d5d3fef28dfd1cf3adebef8c90bc854c74c4"}, + {file = "pyzmq-26.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6926dd14cfe6967d3322640b6d5c3c3039db71716a5e43cca6e3b474e73e0b36"}, + {file = "pyzmq-26.0.2.tar.gz", hash = "sha256:f0f9bb370449158359bb72a3e12c658327670c0ffe6fbcd1af083152b64f9df0"}, ] [package.dependencies] @@ -2218,13 +2238,13 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "referencing" -version = "0.33.0" +version = "0.35.0" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.33.0-py3-none-any.whl", hash = "sha256:39240f2ecc770258f28b642dd47fd74bc8b02484de54e1882b74b35ebd779bd5"}, - {file = "referencing-0.33.0.tar.gz", hash = "sha256:c775fedf74bc0f9189c2a3be1c12fd03e8c23f4d371dce795df44e06c5b412f7"}, + {file = "referencing-0.35.0-py3-none-any.whl", hash = "sha256:8080727b30e364e5783152903672df9b6b091c926a146a759080b62ca3126cd6"}, + {file = "referencing-0.35.0.tar.gz", hash = "sha256:191e936b0c696d0af17ad7430a3dc68e88bc11be6514f4757dc890f04ab05889"}, ] [package.dependencies] @@ -2656,13 +2676,13 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "streamlit" -version = "1.31.1" +version = "1.33.0" description = "A faster way to build and share data apps" optional = false -python-versions = ">=3.8, !=3.9.7" +python-versions = "!=3.9.7,>=3.8" files = [ - {file = "streamlit-1.31.1-py2.py3-none-any.whl", hash = "sha256:a1a84249f7a9b854fe356db06c85dc03c3f9da4df06a33aa5a922647b955e8c8"}, - {file = "streamlit-1.31.1.tar.gz", hash = "sha256:dfc43ca85b4b4c31d097c27b983b8ccc960222ad907862b2b2fb4ddf04c50fdc"}, + {file = "streamlit-1.33.0-py2.py3-none-any.whl", hash = "sha256:bfacb5d1edefcf803c2040b051a21b4c81317a9865448e6767d0a0c6aae7edae"}, + {file = "streamlit-1.33.0.tar.gz", hash = "sha256:a8da8ff46f5b948c56d2dc7aca7a61cf8d995f4f21744cf82258ae75e63004ba"}, ] [package.dependencies] @@ -2671,23 +2691,19 @@ blinker = ">=1.0.0,<2" cachetools = ">=4.0,<6" click = ">=7.0,<9" gitpython = ">=3.0.7,<3.1.19 || >3.1.19,<4" -importlib-metadata = ">=1.4,<8" numpy = ">=1.19.3,<2" -packaging = ">=16.8,<24" +packaging = ">=16.8,<25" pandas = ">=1.3.0,<3" pillow = ">=7.1.0,<11" protobuf = ">=3.20,<5" pyarrow = ">=7.0" pydeck = ">=0.8.0b4,<1" -python-dateutil = ">=2.7.3,<3" requests = ">=2.27,<3" rich = ">=10.14.0,<14" tenacity = ">=8.1.0,<9" toml = ">=0.10.1,<2" tornado = ">=6.0.3,<7" typing-extensions = ">=4.3.0,<5" -tzlocal = ">=1.1,<6" -validators = ">=0.2,<1" watchdog = {version = ">=2.1.5", markers = "platform_system != \"Darwin\""} [package.extras] @@ -2709,13 +2725,13 @@ doc = ["reno", "sphinx", "tornado (>=4.5)"] [[package]] name = "tinycss2" -version = "1.2.1" +version = "1.3.0" description = "A tiny CSS parser" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, - {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, + {file = "tinycss2-1.3.0-py3-none-any.whl", hash = "sha256:54a8dbdffb334d536851be0226030e9505965bb2f30f21a4a82c55fb2a80fae7"}, + {file = "tinycss2-1.3.0.tar.gz", hash = "sha256:152f9acabd296a8375fbca5b84c961ff95971fcfc32e79550c8df8e29118c54d"}, ] [package.dependencies] @@ -2723,7 +2739,7 @@ webencodings = ">=0.4" [package.extras] doc = ["sphinx", "sphinx_rtd_theme"] -test = ["flake8", "isort", "pytest"] +test = ["pytest", "ruff"] [[package]] name = "toml" @@ -2780,13 +2796,13 @@ files = [ [[package]] name = "tox" -version = "4.13.0" +version = "4.15.0" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.8" files = [ - {file = "tox-4.13.0-py3-none-any.whl", hash = "sha256:1143c7e2489c68026a55d3d4ae84c02c449f073b28e62f80e3e440a3b72a4afa"}, - {file = "tox-4.13.0.tar.gz", hash = "sha256:dd789a554c16c4b532924ba393c92fc8991323c4b3d466712bfecc8c9b9f24f7"}, + {file = "tox-4.15.0-py3-none-any.whl", hash = "sha256:300055f335d855b2ab1b12c5802de7f62a36d4fd53f30bd2835f6a201dda46ea"}, + {file = "tox-4.15.0.tar.gz", hash = "sha256:7a0beeef166fbe566f54f795b4906c31b428eddafc0102ac00d20998dd1933f6"}, ] [package.dependencies] @@ -2807,28 +2823,28 @@ testing = ["build[virtualenv] (>=1.0.3)", "covdefaults (>=2.3)", "detect-test-po [[package]] name = "traitlets" -version = "5.14.1" +version = "5.14.3" description = "Traitlets Python configuration system" optional = false python-versions = ">=3.8" files = [ - {file = "traitlets-5.14.1-py3-none-any.whl", hash = "sha256:2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74"}, - {file = "traitlets-5.14.1.tar.gz", hash = "sha256:8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e"}, + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, ] [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<7.5)", "pytest-mock", "pytest-mypy-testing"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] [[package]] name = "typing-extensions" -version = "4.10.0" +version = "4.11.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, - {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, + {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, + {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, ] [[package]] @@ -2842,24 +2858,6 @@ files = [ {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, ] -[[package]] -name = "tzlocal" -version = "5.2" -description = "tzinfo object for the local timezone" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tzlocal-5.2-py3-none-any.whl", hash = "sha256:49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8"}, - {file = "tzlocal-5.2.tar.gz", hash = "sha256:8d399205578f1a9342816409cc1e46a93ebd5755e39ea2d85334bea911bf0e6e"}, -] - -[package.dependencies] -"backports.zoneinfo" = {version = "*", markers = "python_version < \"3.9\""} -tzdata = {version = "*", markers = "platform_system == \"Windows\""} - -[package.extras] -devenv = ["check-manifest", "pytest (>=4.3)", "pytest-cov", "pytest-mock (>=3.3)", "zest.releaser"] - [[package]] name = "urllib3" version = "2.2.1" @@ -2877,37 +2875,15 @@ h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] -[[package]] -name = "validators" -version = "0.22.0" -description = "Python Data Validation for Humans™" -optional = false -python-versions = ">=3.8" -files = [ - {file = "validators-0.22.0-py3-none-any.whl", hash = "sha256:61cf7d4a62bbae559f2e54aed3b000cea9ff3e2fdbe463f51179b92c58c9585a"}, - {file = "validators-0.22.0.tar.gz", hash = "sha256:77b2689b172eeeb600d9605ab86194641670cdb73b60afd577142a9397873370"}, -] - -[package.extras] -docs-offline = ["myst-parser (>=2.0.0)", "pypandoc-binary (>=1.11)", "sphinx (>=7.1.1)"] -docs-online = ["mkdocs (>=1.5.2)", "mkdocs-git-revision-date-localized-plugin (>=1.2.0)", "mkdocs-material (>=9.2.6)", "mkdocstrings[python] (>=0.22.0)", "pyaml (>=23.7.0)"] -hooks = ["pre-commit (>=3.3.3)"] -package = ["build (>=1.0.0)", "twine (>=4.0.2)"] -runner = ["tox (>=4.11.1)"] -sast = ["bandit[toml] (>=1.7.5)"] -testing = ["pytest (>=7.4.0)"] -tooling = ["black (>=23.7.0)", "pyright (>=1.1.325)", "ruff (>=0.0.287)"] -tooling-extras = ["pyaml (>=23.7.0)", "pypandoc-binary (>=1.11)", "pytest (>=7.4.0)"] - [[package]] name = "virtualenv" -version = "20.25.1" +version = "20.26.0" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.25.1-py3-none-any.whl", hash = "sha256:961c026ac520bac5f69acb8ea063e8a4f071bcc9457b9c1f28f6b085c511583a"}, - {file = "virtualenv-20.25.1.tar.gz", hash = "sha256:e08e13ecdca7a0bd53798f356d5831434afa5b07b93f0abdf0797b7a06ffe197"}, + {file = "virtualenv-20.26.0-py3-none-any.whl", hash = "sha256:0846377ea76e818daaa3e00a4365c018bc3ac9760cbb3544de542885aad61fb3"}, + {file = "virtualenv-20.26.0.tar.gz", hash = "sha256:ec25a9671a5102c8d2657f62792a27b48f016664c6873f6beed3800008577210"}, ] [package.dependencies] @@ -2916,7 +2892,7 @@ filelock = ">=3.12.2,<4" platformdirs = ">=3.9.1,<5" [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] @@ -2984,20 +2960,20 @@ files = [ [[package]] name = "zipp" -version = "3.17.0" +version = "3.18.1" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, - {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, + {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"}, + {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [metadata] lock-version = "2.0" -python-versions = ">=3.8,<3.9.7 || >3.9.7,<3.12" -content-hash = "31de9eeb3d22fe50589b7d15c16ca8f6998d57bd4f50008e50a4903a65665c22" +python-versions = ">=3.8.1,<3.9.7 || >3.9.7,<3.12" +content-hash = "66907ecbc40bf1b1fa8efd592c61fc85cc15e3ecc6367175fedf8e9d496a9471" From 05607b635b47a7a14db53722216606d9f389b67a Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 30 Apr 2024 10:34:56 +0200 Subject: [PATCH 013/114] Changed python minimum version to 3.8.1 to handle flake8 version --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 893c3d9..2ded746 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ readme = "README.md" physiofit = 'physiofit.__main__:main' [tool.poetry.dependencies] -python = ">=3.8,<3.9.7 || >3.9.7,<3.12" +python = ">=3.8.1,<3.9.7 || >3.9.7,<3.12" pandas = "^2.0.1" numpy = "^1.24.2" scipy = "^1.10.1" @@ -32,6 +32,7 @@ sphinx-rtd-theme = "^1.2.0" [tool.poetry.group.test.dependencies] pytest = "^7.3.1" tox = "^4.5.1" +flake8 = "^7.0.0" [build-system] requires = ["poetry-core"] From 1ba82cfbc9e879466fef57ac92283cda21fd788a Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 30 Apr 2024 10:35:44 +0200 Subject: [PATCH 014/114] Added flake8 testing on the 3.11 python env. --- tox.ini | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tox.ini b/tox.ini index 1441a13..de94e56 100644 --- a/tox.ini +++ b/tox.ini @@ -1,14 +1,15 @@ [tox] minversion = 3.8.0 -envlist = py38, py39, py310, py11, flake8 +envlist = py38, py39, py310, py11, py12, flake8 isolated_build = true [gh-actions] python = - 3.8: py38, flake8 + 3.8: py38 3.9: py39 3.10: py310 - 3.11: py311 + 3.11: py311, flake8 + 3.12: py312 [testenv] setenv = From 3293cd4ffe058e89b9056c3e03f34c9656c2911d Mon Sep 17 00:00:00 2001 From: llegregam Date: Mon, 6 May 2024 16:19:06 +0200 Subject: [PATCH 015/114] Refactoring --- physiofit/models/model_4.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/physiofit/models/model_4.py b/physiofit/models/model_4.py index af82a4d..76d2c36 100644 --- a/physiofit/models/model_4.py +++ b/physiofit/models/model_4.py @@ -53,15 +53,17 @@ def simulate( ): # Get end shape simulated_matrix = np.empty_like(data_matrix) - x_0 = params_opti[0] - mu = params_opti[1] + + # Get parameters + x_0, mu = params_opti[:2] + + # Build matrix exp_mu_t = np.exp(mu * time_vector) simulated_matrix[:, 0] = x_0 * exp_mu_t - for i in range(1, int(len(params_opti) / 2)): - q = params_opti[i * 2] - m_0 = params_opti[i * 2 + 1] + for i in range(1, len(params_opti) // 2): + q, m_0 = params_opti[i*2:i*2+2] simulated_matrix[:, i] = q * (x_0 / mu) \ * (exp_mu_t - 1) \ + m_0 - return simulated_matrix + return np.clip(simulated_matrix, a_min=0) From 3bad2b2305dbb8591568d6a0c45b071bf542d11c Mon Sep 17 00:00:00 2001 From: llegregam Date: Mon, 6 May 2024 16:27:44 +0200 Subject: [PATCH 016/114] Refactoring --- physiofit/models/model_5.py | 49 ++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/physiofit/models/model_5.py b/physiofit/models/model_5.py index f9b5a48..3c209de 100644 --- a/physiofit/models/model_5.py +++ b/physiofit/models/model_5.py @@ -8,6 +8,7 @@ from physiofit.models.base_model import Model, Bounds + class ChildModel(Model): def __init__(self, data): @@ -25,8 +26,8 @@ def get_params(self): } self.bounds = Bounds( - X_0=(1e-3, 10), - y_BM=(1e-3, 3) + X_0=(1e-3, 1), + y_BM=(1e-3, 1) ) for metabolite in self.metabolites: @@ -41,12 +42,12 @@ def get_params(self): self.bounds.update( { f"{metabolite}_km": (1e-6, 100), - f"{metabolite}_qsmax": (1e-6, 100), + f"{metabolite}_qsmax": (1e-6, 20), f"{metabolite}_s_0": (1e-6, 100) } ) break - + for metabolite in self.metabolites: if metabolite.startswith("P_"): self.parameters_to_estimate.update( @@ -58,7 +59,7 @@ def get_params(self): ) self.bounds.update( { - f"{metabolite}_y_P": (1e-6, 100), + f"{metabolite}_y_P": (1e-6, 2), f"{metabolite}_p_0": (1e-6, 100) } ) @@ -66,11 +67,11 @@ def get_params(self): if len(self.parameters_to_estimate) != 7: raise ValueError( - "This model expects 2 metabolites in the data file (1 substrate with name starting with 'S_' and 1 " - "product with name starting with 'P_')." + "This model expects 2 metabolites in the data file (1 " + "substrate with name starting with 'S_' and 1 product with " + "name starting with 'P_')." ) - @staticmethod def simulate( params_opti: list, @@ -80,23 +81,14 @@ def simulate( ): # Get parameters - x_0 = params_opti[0] - y_BM = params_opti[1] - km = params_opti[2] - qsmax = params_opti[3] - s_0 = params_opti[4] - y_P = params_opti[5] - p_0 = params_opti[6] - params = (y_BM, y_P, km, qsmax) + x_0, y_BM, km, qsmax, s_0, y_P, p_0 = params_opti # initialize variables at t=0 state = [x_0, s_0, p_0] - + def calculate_derivative(t, state, y_BM, y_P, km, qsmax): - # get substrate and biomass concentrations - x_t = state[0] - s_t = state[1] + x_t, s_t = state[0], state[1] # calculate fluxes qs_t = qsmax * (s_t / (km + s_t)) @@ -104,9 +96,9 @@ def calculate_derivative(t, state, y_BM, y_P, km, qsmax): qp_t = y_P * qs_t # calculate derivatives - dx = np.multiply(mu_t, x_t) - ds = np.multiply(-qs_t, x_t) - dp = np.multiply(qp_t, x_t) + dx = mu_t * x_t + ds = -qs_t * x_t + dp = qp_t * x_t return dx, ds, dp @@ -114,20 +106,21 @@ def calculate_derivative(t, state, y_BM, y_P, km, qsmax): sol = solve_ivp( fun=calculate_derivative, t_span=(np.min(time_vector), np.max(time_vector)), - y0 = state, - args=params, + y0=state, + args=(y_BM, y_P, km, qsmax), method="LSODA", - t_eval = list(time_vector) + t_eval=list(time_vector) ) return sol.y.T -if __name__ == "__main__": +if __name__ == "__main__": from physiofit.base.io import IoHandler io = IoHandler() - data = io.read_data(r"C:\Users\legregam\PycharmProjects\PhysioFit\data\KEIO_test_data\ode_test\KEIO_ROBOT6_1.tsv") + data = io.read_data( + r"C:\Users\legregam\PycharmProjects\PhysioFit\data\KEIO_test_data\ode_test\KEIO_ROBOT6_1.tsv") data = data.sort_values("time") model = ChildModel(data) From 9ec6ea20eab994b86944093b2f6fa66b05aeee19 Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 7 May 2024 11:04:15 +0200 Subject: [PATCH 017/114] IMPORTANT: Changed names "parameters_to_estimate" to "parameters" Changed "fixed_parameters" to "args" --- physiofit/base/fitter.py | 25 +++++++++++++----------- physiofit/base/io.py | 6 +++--- physiofit/models/model_1.py | 39 ++++++++++++++----------------------- physiofit/models/model_2.py | 8 ++++---- physiofit/models/model_3.py | 12 ++++++------ physiofit/models/model_4.py | 22 ++++++++++----------- physiofit/models/model_5.py | 12 ++++++------ physiofit/ui/gui.py | 34 ++++++++++++++++---------------- 8 files changed, 75 insertions(+), 83 deletions(-) diff --git a/physiofit/base/fitter.py b/physiofit/base/fitter.py index 36825a2..02f4683 100644 --- a/physiofit/base/fitter.py +++ b/physiofit/base/fitter.py @@ -255,14 +255,14 @@ def optimize(self): logger.info("\nRunning optimization...\n") bounds = self.model.bounds() parameters = [ - param for param in self.model.parameters_to_estimate.values() + param for param in self.model.parameters.values() ] self.optimize_results = self._run_optimization( params=parameters, func=self.model.simulate, exp_data_matrix=self.experimental_matrix, time_vector=self.model.time_vector, - non_opt_params=self.model.fixed_parameters, + non_opt_params=self.model.args, sd_matrix=self.sd, bounds=bounds, method="differential_evolution" @@ -272,14 +272,14 @@ def optimize(self): } logger.info(f"Optimization results: \n{self.optimize_results}\n") for i, param in zip( - self.model.parameters_to_estimate, self.optimize_results.x + self.model.parameters, self.optimize_results.x ): logger.info(f"\n{i} = {param}\n") self.simulated_matrix = self.model.simulate( self.optimize_results.x, self.experimental_matrix, self.model.time_vector, - self.model.fixed_parameters + self.model.args ) logger.debug(f"simulated_matrix:\n{self.simulated_matrix}") nan_sim_mat = np.copy(self.simulated_matrix) @@ -352,7 +352,7 @@ def _run_optimization( non_opt_params, sd_matrix ), - method="L-BFGS-B", bounds=bounds, options={'maxcor': 30} + method="L-BFGS-B", bounds=bounds ) else: raise ValueError(f"{method} is not implemented") @@ -387,13 +387,15 @@ def monte_carlo_analysis(self): new_matrix = self._apply_noise() logger.debug(f"Iteration {i + 1}:\n") logger.debug(f"New matrix:\n{new_matrix}\n") + logger.debug(f"Sd matrix:\n{self.sd}\n") + logger.debug(f"time vector:\n{self.model.time_vector}\n") # We optimise the parameters using the noisy matrix as input opt_res = PhysioFitter._run_optimization( opt_res.x, self.model.simulate, new_matrix, self.model.time_vector, - self.model.fixed_parameters, + self.model.args, self.sd, self.model.bounds(), "L-BFGS-B" ) @@ -402,7 +404,7 @@ def monte_carlo_analysis(self): matrices.append( self.model.simulate( opt_res.x, new_matrix, self.model.time_vector, - self.model.fixed_parameters + self.model.args ) ) @@ -472,14 +474,14 @@ def khi2_test(self): number_measurements = np.count_nonzero( ~np.isnan(self.experimental_matrix) ) - number_params = len(self.model.parameters_to_estimate) + number_params = len(self.model.parameters) dof = number_measurements - number_params cost = self._calculate_cost( self.optimize_results.x, self.model.simulate, self.experimental_matrix, self.model.time_vector, - self.model.fixed_parameters, + self.model.args, self.sd ) p_val = chi2.cdf(cost, dof) @@ -540,8 +542,9 @@ def _apply_noise(self): parameters. SDs are obtained from the sd matrix """ - new_matrix = np.array([ + noisy_matrix = np.array([ PhysioFitter._add_noise(self.simulated_matrix[idx, :], sd) for idx, sd in enumerate(self.sd) ]) - return new_matrix + noisy_matrix[noisy_matrix < 0] = 0 + return noisy_matrix diff --git a/physiofit/base/io.py b/physiofit/base/io.py index f7c05a6..9ab6f2f 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -372,7 +372,7 @@ def output_report(self, fitter, export_path: str | list = None): orient="columns") # Use IDs to clarify which parameter is described on each line - opt_data.index = [param for param in fitter.model.parameters_to_estimate.keys()] + opt_data.index = [param for param in fitter.model.parameters.keys()] opt_data.to_csv(flux_path, sep="\t") if isinstance(fitter.khi2_res, DataFrame): @@ -615,7 +615,7 @@ def get_kwargs(self): def update_model(self, model): if self.model["parameters_to_estimate"] is not None: - model.parameters_to_estimate.update(self.model["parameters_to_estimate"]) + model.parameters.update(self.model["parameters_to_estimate"]) if self.model["bounds"] is not None: model.bounds.update(Bounds(self.model["bounds"])) return model @@ -626,7 +626,7 @@ def export_config(self, export_path): data = { "model": { "model_name": self.model.model_name, - "parameters_to_estimate": self.model.parameters_to_estimate, + "parameters_to_estimate": self.model.parameters, "bounds": {name: f"{bounds[0], bounds[1]}" for name, bounds in self.model.bounds.items()} }, "sds": dict(self.sds), diff --git a/physiofit/models/model_1.py b/physiofit/models/model_1.py index 98730e0..1ac3533 100644 --- a/physiofit/models/model_1.py +++ b/physiofit/models/model_1.py @@ -8,6 +8,7 @@ from physiofit.models.base_model import Model, Bounds + class ChildModel(Model): def __init__(self, data): @@ -16,26 +17,26 @@ def __init__(self, data): self.model_name = "Steady-state batch model with lag phase and " \ "degradation of metabolites " self.vini = 1 - self.parameters_to_estimate = None - self.fixed_parameters = None + self.parameters = None + self.args = None def get_params(self): - self.parameters_to_estimate = { - "X_0" : self.vini, - "growth_rate" : self.vini, - "t_lag" : self.vini + self.parameters = { + "X_0": self.vini, + "growth_rate": self.vini, + "t_lag": self.vini } self.bounds = Bounds( X_0=(1e-3, 10), growth_rate=(1e-3, 3), - t_lag = (0, 0.5*self.time_vector.max()) + t_lag=(0, 0.5 * self.time_vector.max()) ) for metabolite in self.metabolites: - self.parameters_to_estimate.update( + self.parameters.update( { - f"{metabolite}_q" : self.vini, - f"{metabolite}_M0" : self.vini + f"{metabolite}_q": self.vini, + f"{metabolite}_M0": self.vini } ) self.bounds.update( @@ -45,9 +46,9 @@ def get_params(self): } ) - self.fixed_parameters = {"Degradation": { + self.args = {"Degradation": { met: 0 for met in self.metabolites - } + } } @staticmethod @@ -75,7 +76,8 @@ def simulate( mult_by_time = x_0 * np.exp(mu * (time_vector[len(idx) - 1:] - t_lag)) simulated_matrix[:, 0] = np.concatenate((x_t_lag, mult_by_time), axis=None) - fixed_params = [value for value in params_non_opti["Degradation"].values()] + fixed_params = [value for value in + params_non_opti["Degradation"].values()] for i in range(1, int(len(params_opti) / 2)): q = params_opti[i * 2 + 1] @@ -93,14 +95,3 @@ def simulate( ) return simulated_matrix - -# TODO: Handle this - -if __name__ == "__main__": - model = ChildModel( - pd.read_csv( - r"C:\Users\legregam\Documents\Projets\PhysioFit\data" - r"\KEIO_test_data\KEIO_ROBOT6_1\KEIO_ROBOT6_1.tsv", - sep='\t') - ) - print(type(model)) diff --git a/physiofit/models/model_2.py b/physiofit/models/model_2.py index a01c717..52278a4 100644 --- a/physiofit/models/model_2.py +++ b/physiofit/models/model_2.py @@ -15,12 +15,12 @@ def __init__(self, data): super().__init__(data) self.model_name = "Steady-state batch model with lag phase" self.vini = 1 - self.parameters_to_estimate = None - self.fixed_parameters = None + self.parameters = None + self.args = None def get_params(self): - self.parameters_to_estimate = { + self.parameters = { "X_0" : self.vini, "growth_rate" : self.vini, "t_lag" : self.vini @@ -31,7 +31,7 @@ def get_params(self): "t_lag": (0, 0.5 * self.time_vector.max()), }) for metabolite in self.metabolites: - self.parameters_to_estimate.update( + self.parameters.update( { f"{metabolite}_q" : 1, f"{metabolite}_M0" : 1 diff --git a/physiofit/models/model_3.py b/physiofit/models/model_3.py index 110cf16..86133ba 100644 --- a/physiofit/models/model_3.py +++ b/physiofit/models/model_3.py @@ -15,16 +15,16 @@ def __init__(self, data): super().__init__(data) self.model_name = "Steady-state batch model with degradation of metabolites" self.vini = 1 - self.parameters_to_estimate = None - self.fixed_parameters = None + self.parameters = None + self.args = None def get_params(self): - self.parameters_to_estimate = { + self.parameters = { "X_0" : self.vini, "growth_rate" : self.vini } - self.fixed_parameters = {"Degradation": { + self.args = {"Degradation": { met: 0 for met in self.metabolites } } @@ -33,7 +33,7 @@ def get_params(self): "growth_rate": (1e-3, 3), }) for metabolite in self.metabolites: - self.parameters_to_estimate.update( + self.parameters.update( { f"{metabolite}_q": self.vini, f"{metabolite}_M0": self.vini @@ -45,7 +45,7 @@ def get_params(self): f"{metabolite}_M0": (1e-6, 50) } ) - self.fixed_parameters = {"Degradation": { + self.args = {"Degradation": { met: 0 for met in self.metabolites } } diff --git a/physiofit/models/model_4.py b/physiofit/models/model_4.py index 76d2c36..3c814ff 100644 --- a/physiofit/models/model_4.py +++ b/physiofit/models/model_4.py @@ -15,14 +15,14 @@ def __init__(self, data): super().__init__(data) self.model_name = "Steady-state batch model" self.vini = 1 - self.parameters_to_estimate = None - self.fixed_parameters = None + self.parameters = None + self.args = None def get_params(self): - self.parameters_to_estimate = { - "X_0" : self.vini, - "growth_rate" : self.vini + self.parameters = { + "X_0": self.vini, + "growth_rate": self.vini } self.bounds = Bounds( { @@ -31,10 +31,10 @@ def get_params(self): } ) for metabolite in self.metabolites: - self.parameters_to_estimate.update( + self.parameters.update( { - f"{metabolite}_q" : self.vini, - f"{metabolite}_M0" : self.vini + f"{metabolite}_q": self.vini, + f"{metabolite}_M0": self.vini } ) self.bounds.update( @@ -61,9 +61,7 @@ def simulate( exp_mu_t = np.exp(mu * time_vector) simulated_matrix[:, 0] = x_0 * exp_mu_t for i in range(1, len(params_opti) // 2): - q, m_0 = params_opti[i*2:i*2+2] - simulated_matrix[:, i] = q * (x_0 / mu) \ - * (exp_mu_t - 1) \ - + m_0 + q, m_0 = params_opti[i * 2:i * 2 + 2] + simulated_matrix[:, i] = q * (x_0 / mu) * (exp_mu_t - 1) + m_0 return np.clip(simulated_matrix, a_min=0) diff --git a/physiofit/models/model_5.py b/physiofit/models/model_5.py index 3c209de..abf5615 100644 --- a/physiofit/models/model_5.py +++ b/physiofit/models/model_5.py @@ -16,11 +16,11 @@ def __init__(self, data): super().__init__(data) self.model_name = "Dynamic Monod model (1 substrate, 1 product)" self.vini = 1 - self.parameters_to_estimate = None + self.parameters = None def get_params(self): - self.parameters_to_estimate = { + self.parameters = { "X_0": self.vini, "y_BM": self.vini } @@ -32,7 +32,7 @@ def get_params(self): for metabolite in self.metabolites: if metabolite.startswith("S_"): - self.parameters_to_estimate.update( + self.parameters.update( { f"{metabolite}_km": self.vini, f"{metabolite}_qsmax": self.vini, @@ -50,7 +50,7 @@ def get_params(self): for metabolite in self.metabolites: if metabolite.startswith("P_"): - self.parameters_to_estimate.update( + self.parameters.update( { f"{metabolite}_y_P": self.vini, f"{metabolite}_p_0": 100 @@ -65,7 +65,7 @@ def get_params(self): ) break - if len(self.parameters_to_estimate) != 7: + if len(self.parameters) != 7: raise ValueError( "This model expects 2 metabolites in the data file (1 " "substrate with name starting with 'S_' and 1 product with " @@ -125,7 +125,7 @@ def calculate_derivative(t, state, y_BM, y_P, km, qsmax): model = ChildModel(data) model.get_params() - params = [param for param in model.parameters_to_estimate.values()] + params = [param for param in model.parameters.values()] sol = ChildModel.simulate( params, model.data, diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 873b127..bec0ef2 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -188,7 +188,7 @@ def _initialize_opt_menu(self): orient="columns" ) df.index = [ - f"{experiment} {param}" for param in fitter.model.parameters_to_estimate.keys() + f"{experiment} {param}" for param in fitter.model.parameters.keys() ] st.write(df) self.io.multiple_experiments.append(df) @@ -211,10 +211,10 @@ def _initialize_opt_menu(self): def silent_sim(self): self.model.simulate( - [param for param in self.model.parameters_to_estimate.values()], + [param for param in self.model.parameters.values()], self.model.experimental_matrix, self.model.time_vector, - self.model.fixed_parameters + self.model.args ) def _initialize_opt_menu_widgets(self, file_extension): @@ -298,7 +298,7 @@ def _initialize_opt_menu_widgets(self, file_extension): col1, col2, col3, col4 = st.columns(4) with col1: st.write("Parameter Name") - for key in self.model.parameters_to_estimate: + for key in self.model.parameters: st.text_input( label="label", # Unused label_visibility="collapsed", @@ -308,7 +308,7 @@ def _initialize_opt_menu_widgets(self, file_extension): ) with col2: st.write("Parameter Value") - for key, value in self.model.parameters_to_estimate.items(): + for key, value in self.model.parameters.items(): st.text_input( label="label", # Unused label_visibility = "collapsed", @@ -337,13 +337,13 @@ def _initialize_opt_menu_widgets(self, file_extension): key=f"Parameter_upper_{key}" ) - if self.model.fixed_parameters is not None: - for param in self.model.fixed_parameters.keys(): + if self.model.args is not None: + for param in self.model.args.keys(): st.subheader(f"Fixed parameters: {param}") col1, col2 = st.columns(2) with col1: st.write("Parameter Name") - for key in self.model.fixed_parameters[param].keys(): + for key in self.model.args[param].keys(): st.text_input( label="label", # Unused label_visibility="collapsed", @@ -353,7 +353,7 @@ def _initialize_opt_menu_widgets(self, file_extension): ) with col2: st.write("Parameter Value") - for key, value in self.model.fixed_parameters[param].items(): + for key, value in self.model.args[param].items(): st.text_input( label="label", # Unused label_visibility="collapsed", @@ -399,14 +399,14 @@ def _get_data_from_session_state(self): # Start with estimable parameters # Get order of parameter names to build dict - estimable_parameter_name_order = [key for key in self.model.parameters_to_estimate.keys()] + estimable_parameter_name_order = [key for key in self.model.parameters.keys()] for name in estimable_parameter_name_order: try: # Get values from widgets if st.session_state[f"Parameter_value_{name}"] == "0": - self.model.parameters_to_estimate[name] = 0 + self.model.parameters[name] = 0 else: - self.model.parameters_to_estimate[name] = literal_eval( + self.model.parameters[name] = literal_eval( st.session_state[f"Parameter_value_{name}"].lstrip("0") # Strip leading zeroes to stop eval errors ) # Get bounds @@ -438,15 +438,15 @@ def _get_data_from_session_state(self): raise # Do the same for each fixed parameter class - if self.model.fixed_parameters is not None: - fixed_parameter_classes = [param for param in self.model.fixed_parameters] + if self.model.args is not None: + fixed_parameter_classes = [param for param in self.model.args] for param in fixed_parameter_classes: - for key in self.model.fixed_parameters[param].keys(): + for key in self.model.args[param].keys(): try: if st.session_state[f"Fixed_{param}_value_{key}"] == "0": - self.model.fixed_parameters[param][key] = 0 + self.model.args[param][key] = 0 else: - self.model.fixed_parameters[param][key] = literal_eval( + self.model.args[param][key] = literal_eval( st.session_state[f"Fixed_{param}_value_{key}"].lstrip("0") ) except ValueError: From 5425ad2daf8984c1070c23ba424bf0800547a932 Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 7 May 2024 11:04:41 +0200 Subject: [PATCH 018/114] IMPORTANT: Changed names "parameters_to_estimate" to "parameters" Changed "fixed_parameters" to "args" --- physiofit/models/base_model.py | 24 ++++++++++++++---------- physiofit/tests/test_base.py | 4 ++-- physiofit/tests/test_models.py | 13 +++++++++---- physiofit/ui/cli.py | 5 +++-- 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/physiofit/models/base_model.py b/physiofit/models/base_model.py index 0f42b12..b239022 100644 --- a/physiofit/models/base_model.py +++ b/physiofit/models/base_model.py @@ -23,21 +23,23 @@ def __init__(self, data: pd.DataFrame): self.data = data self.time_vector = self.data.time.to_numpy() if "time" in self.data.columns and "experiments" in self.data.columns: - self.name_vector = self.data.drop(["time", "experiments"], axis=1).columns.to_list() + self.name_vector = self.data.drop(["time", "experiments"], + axis=1).columns.to_list() elif "time" in self.data.columns: - self.name_vector = self.data.drop(["time"], axis=1).columns.to_list() + self.name_vector = self.data.drop(["time"], + axis=1).columns.to_list() else: raise ValueError( - "Couldn't get column names from data. Is data loaded in properly and well formatted?" + "Couldn't get column names from data. Is data loaded in " + "properly and well formatted?" ) self.experimental_matrix = self.data.drop("time", axis=1).to_numpy() self.metabolites = self.name_vector[1:] self.model_name = None - self.parameters_to_estimate = None - self.fixed_parameters = None + self.parameters = None + self.args = None self.bounds = None - def __repr__(self): return f"Selected model: {self.model_name}\n" \ f"Model data: \n{self.data}\n" \ @@ -45,8 +47,8 @@ def __repr__(self): f"Time vector: {self.time_vector}\n" \ f"Name vector: {self.name_vector}\n" \ f"Biomass & Metabolites: {self.metabolites}\n" \ - f"Parameters to estimate: {self.parameters_to_estimate}\n" \ - f"Fixed parameters: {self.fixed_parameters}\n" \ + f"Parameters to estimate: {self.parameters}\n" \ + f"Fixed parameters: {self.args}\n" \ f"Bounds: {self.bounds}\n" def __setattr__(self, key, value): @@ -54,12 +56,13 @@ def __setattr__(self, key, value): self.__dict__["data"] = value self.time_vector = self.data.time.to_numpy() self.name_vector = self.data.drop("time", axis=1).columns.to_list() - self.experimental_matrix = self.data.drop("time", axis=1).to_numpy() + self.experimental_matrix = self.data.drop("time", + axis=1).to_numpy() self.metabolites = self.name_vector[1:] else: self.__dict__[key] = value - @ abstractmethod + @abstractmethod def get_params(self): """ @@ -191,6 +194,7 @@ def vector(self): self._vector = np.array([value for value in self.values]) return self._vector + class ModelError(Exception): pass diff --git a/physiofit/tests/test_base.py b/physiofit/tests/test_base.py index 97074ee..4a2b6b7 100644 --- a/physiofit/tests/test_base.py +++ b/physiofit/tests/test_base.py @@ -30,10 +30,10 @@ def test_simulation(data, sds): model = io.select_model("Steady-state batch model", data) model.get_params() sim_mat = model.simulate( - [param for param in model.parameters_to_estimate.values()], + [param for param in model.parameters.values()], model.experimental_matrix, model.time_vector, - model.fixed_parameters + model.args ) assert isinstance(sim_mat, np.ndarray) diff --git a/physiofit/tests/test_models.py b/physiofit/tests/test_models.py index 8f85079..37d28f4 100644 --- a/physiofit/tests/test_models.py +++ b/physiofit/tests/test_models.py @@ -4,13 +4,18 @@ import numpy as np from physiofit.base.io import IoHandler + def test_monod_model(monod_model_sds, monod_model_data): """ - Test that the Monod model using pyFOOMB simulated data & parameters given as input. + Test that the Monod model using pyFOOMB simulated data & parameters given + as input. """ io = IoHandler() - model = io.select_model("Dynamic Monod model (1 substrate, 1 product)", monod_model_data) + model = io.select_model( + "Dynamic Monod model (1 substrate, 1 product)", + monod_model_data + ) model.get_params() fitter = io.initialize_fitter( data=model.data, @@ -21,7 +26,7 @@ def test_monod_model(monod_model_sds, monod_model_data): fitter.optimize() optimized_params = { name: param for name, param in zip( - list(fitter.model.parameters_to_estimate.keys()), + list(fitter.model.parameters.keys()), fitter.parameter_stats["optimal"] ) } @@ -59,6 +64,6 @@ def test_monod_model(monod_model_sds, monod_model_data): # P_product_y_P assert np.isclose( a=optimized_params["P_product_y_P"], - b=0.2, + b=0.1, atol=0.001 ) diff --git a/physiofit/ui/cli.py b/physiofit/ui/cli.py index 64720ae..1fd68d6 100644 --- a/physiofit/ui/cli.py +++ b/physiofit/ui/cli.py @@ -126,7 +126,7 @@ def run(data, args, logger, experiments): orient="columns" ) df.index = [ - f"{exp} {param}" for param in fitter.model.parameters_to_estimate.keys() + f"{exp} {param}" for param in fitter.model.parameters.keys() ] if not io.multiple_experiments: io.multiple_experiments = [] @@ -154,7 +154,8 @@ def run(data, args, logger, experiments): # args.output_zip, # format='zip', # root_dir=str(io.home_path / (io.home_path.name + "_res")) - # ) + # )physiofit + if args.galaxy: io.output_recap(export_path=args.output_recap, galaxy=args.galaxy) else: From 49ba17ac1037d4b76e213f64432c395bd163d406 Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 7 May 2024 11:20:19 +0200 Subject: [PATCH 019/114] refactoring --- physiofit/models/model_1.py | 39 +++++++++++++------------------------ 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/physiofit/models/model_1.py b/physiofit/models/model_1.py index 1ac3533..050fb22 100644 --- a/physiofit/models/model_1.py +++ b/physiofit/models/model_1.py @@ -4,7 +4,6 @@ from __future__ import annotations import numpy as np -import pandas as pd from physiofit.models.base_model import Model, Bounds @@ -53,18 +52,16 @@ def get_params(self): @staticmethod def simulate( - params_opti: list, + parameters: list, data_matrix: np.ndarray, time_vector: np.ndarray, - params_non_opti: dict + args: dict ): # Get end shape simulated_matrix = np.empty_like(data_matrix) # Get initial params - x_0 = params_opti[0] - mu = params_opti[1] - t_lag = params_opti[2] + x_0, mu, t_lag = parameters[:3] # We get indices in time vector where time < t_lag idx = np.nonzero(time_vector < t_lag) @@ -74,24 +71,16 @@ def simulate( # The rest of the biomass points are calculated as usual mult_by_time = x_0 * np.exp(mu * (time_vector[len(idx) - 1:] - t_lag)) - simulated_matrix[:, 0] = np.concatenate((x_t_lag, mult_by_time), - axis=None) - fixed_params = [value for value in - params_non_opti["Degradation"].values()] - - for i in range(1, int(len(params_opti) / 2)): - q = params_opti[i * 2 + 1] - m_0 = params_opti[i * 2 + 2] - k = fixed_params[i - 1] - m_t_lag = np.full((len(idx) - 1,), m_0) - mult_by_time = q * (x_0 / (mu + k)) * (np.exp( - mu * (time_vector - t_lag) - ) - np.exp(-k * (time_vector - t_lag))) + (m_0 * np.exp( - -k * time_vector) - ) - simulated_matrix[:, i] = np.concatenate( - (m_t_lag, mult_by_time), - axis=None - ) + simulated_matrix[:, 0] = np.concatenate((x_t_lag, mult_by_time)) + arg_values = [value for value in args["Degradation"].values()] + + for i in range(1, len(parameters) // 2): + q, m_0 = parameters[i * 2 + 1:i * 2 + 3] + k = arg_values[i - 1] + m_t_lag = np.full(len(idx) - 1, m_0) + mult_by_time = q * (x_0 / (mu + k)) * ( + np.exp(mu * (time_vector - t_lag)) - np.exp( + -k * time_vector)) + m_0 * np.exp(-k * time_vector) + simulated_matrix[:, i] = np.concatenate((m_t_lag, mult_by_time)) return simulated_matrix From ed52b899c3c70e6d2f9ff51734a3765460c1b840 Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 7 May 2024 11:20:56 +0200 Subject: [PATCH 020/114] changed "params_opti" to "parameters" & "params_not_opti" to "args" --- physiofit/models/base_model.py | 4 ++-- physiofit/models/model_2.py | 16 ++++++++-------- physiofit/models/model_3.py | 16 ++++++++-------- physiofit/models/model_4.py | 12 ++++++------ physiofit/models/model_5.py | 6 +++--- 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/physiofit/models/base_model.py b/physiofit/models/base_model.py index b239022..65a9c8d 100644 --- a/physiofit/models/base_model.py +++ b/physiofit/models/base_model.py @@ -77,10 +77,10 @@ def get_params(self): @staticmethod @abstractmethod def simulate( - params_opti: list, + parameters: list, data_matrix: np.ndarray, time_vector: np.ndarray, - params_non_opti: dict | list + args: dict | list ): pass diff --git a/physiofit/models/model_2.py b/physiofit/models/model_2.py index 52278a4..a1e96a8 100644 --- a/physiofit/models/model_2.py +++ b/physiofit/models/model_2.py @@ -46,16 +46,16 @@ def get_params(self): @staticmethod def simulate( - params_opti: list, + parameters: list, data_matrix: np.ndarray, time_vector: np.ndarray, - params_non_opti: dict | list + args: dict | list ): # Get end shape simulated_matrix = np.empty_like(data_matrix) - x_0 = params_opti[0] - mu = params_opti[1] - t_lag = params_opti[2] + x_0 = parameters[0] + mu = parameters[1] + t_lag = parameters[2] # We get indices in time vector where time < t_lag idx = np.nonzero(time_vector < t_lag) @@ -74,9 +74,9 @@ def simulate( ) exp_mu_t_lag = np.exp(mu * (time_vector - t_lag)) - 1 - for i in range(1, int(len(params_opti) / 2)): - q = params_opti[i * 2 + 1] - m_0 = params_opti[i * 2 + 2] + for i in range(1, int(len(parameters) / 2)): + q = parameters[i * 2 + 1] + m_0 = parameters[i * 2 + 2] m_t_lag = np.full((len(idx) - 1,), m_0) mult_by_time = q * (x_0 / mu) * exp_mu_t_lag + m_0 simulated_matrix[:, i] = np.concatenate( diff --git a/physiofit/models/model_3.py b/physiofit/models/model_3.py index 86133ba..ce393f4 100644 --- a/physiofit/models/model_3.py +++ b/physiofit/models/model_3.py @@ -52,26 +52,26 @@ def get_params(self): @staticmethod def simulate( - params_opti: list, + parameters: list, data_matrix: np.ndarray, time_vector: np.ndarray, - params_non_opti: dict | list + args: dict | list ): # Get end shape simulated_matrix = np.empty_like(data_matrix) # Get initial params - x_0 = params_opti[0] - mu = params_opti[1] + x_0 = parameters[0] + mu = parameters[1] # Get X_0 values exp_mu_t = np.exp(mu * time_vector) simulated_matrix[:, 0] = x_0 * exp_mu_t - fixed_params = [value for value in params_non_opti["Degradation"].values()] + fixed_params = [value for value in args["Degradation"].values()] - for i in range(1, int(len(params_opti) / 2)): - q = params_opti[i * 2] - m_0 = params_opti[i * 2 + 1] + for i in range(1, int(len(parameters) / 2)): + q = parameters[i * 2] + m_0 = parameters[i * 2 + 1] k = fixed_params[i - 1] exp_k_t = np.exp(-k * time_vector) simulated_matrix[:, i] = q * (x_0 / (mu + k)) \ diff --git a/physiofit/models/model_4.py b/physiofit/models/model_4.py index 3c814ff..63bdd6f 100644 --- a/physiofit/models/model_4.py +++ b/physiofit/models/model_4.py @@ -46,22 +46,22 @@ def get_params(self): @staticmethod def simulate( - params_opti: list, + parameters: list, data_matrix: np.ndarray, time_vector: np.ndarray, - params_non_opti: dict | list + args: dict | list ): # Get end shape simulated_matrix = np.empty_like(data_matrix) # Get parameters - x_0, mu = params_opti[:2] + x_0, mu = parameters[:2] # Build matrix exp_mu_t = np.exp(mu * time_vector) simulated_matrix[:, 0] = x_0 * exp_mu_t - for i in range(1, len(params_opti) // 2): - q, m_0 = params_opti[i * 2:i * 2 + 2] + for i in range(1, len(parameters) // 2): + q, m_0 = parameters[i * 2:i * 2 + 2] simulated_matrix[:, i] = q * (x_0 / mu) * (exp_mu_t - 1) + m_0 - return np.clip(simulated_matrix, a_min=0) + return np.clip(simulated_matrix, a_min=0, a_max=None) diff --git a/physiofit/models/model_5.py b/physiofit/models/model_5.py index abf5615..db2d167 100644 --- a/physiofit/models/model_5.py +++ b/physiofit/models/model_5.py @@ -74,14 +74,14 @@ def get_params(self): @staticmethod def simulate( - params_opti: list, + parameters: list, data_matrix: np.ndarray, time_vector: np.ndarray, - params_non_opti: dict + args: dict ): # Get parameters - x_0, y_BM, km, qsmax, s_0, y_P, p_0 = params_opti + x_0, y_BM, km, qsmax, s_0, y_P, p_0 = parameters # initialize variables at t=0 state = [x_0, s_0, p_0] From 0eeda1f733f8a6f15dea021814cef4777db6f3ea Mon Sep 17 00:00:00 2001 From: legregam Date: Tue, 14 May 2024 09:35:46 +0200 Subject: [PATCH 021/114] changed "model_name" attr to "name" --- physiofit/models/base_model.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/physiofit/models/base_model.py b/physiofit/models/base_model.py index 65a9c8d..f2ff9cb 100644 --- a/physiofit/models/base_model.py +++ b/physiofit/models/base_model.py @@ -35,13 +35,13 @@ def __init__(self, data: pd.DataFrame): ) self.experimental_matrix = self.data.drop("time", axis=1).to_numpy() self.metabolites = self.name_vector[1:] - self.model_name = None + self.name = None self.parameters = None self.args = None self.bounds = None def __repr__(self): - return f"Selected model: {self.model_name}\n" \ + return f"Selected model: {self.name}\n" \ f"Model data: \n{self.data}\n" \ f"Experimental matrix: \n{self.experimental_matrix}\n" \ f"Time vector: {self.time_vector}\n" \ From 4a369c3e3f0ae04cf61f1a143b0b48be533ec4ea Mon Sep 17 00:00:00 2001 From: legregam Date: Tue, 14 May 2024 09:36:29 +0200 Subject: [PATCH 022/114] Added data for model tests --- physiofit/tests/conftest.py | 516 +++++++++++++++++++++++++----------- 1 file changed, 365 insertions(+), 151 deletions(-) diff --git a/physiofit/tests/conftest.py b/physiofit/tests/conftest.py index 8d81c21..a567c8c 100644 --- a/physiofit/tests/conftest.py +++ b/physiofit/tests/conftest.py @@ -6,177 +6,391 @@ parameter for all test functions. The test's parameter name must be the same as the fixture function's name. """ - +import numpy as np import pandas as pd import pytest -from numpy import nan + from physiofit.models.base_model import StandardDevs +from physiofit.base.io import IoHandler @pytest.fixture -def data(): - """Test data to use in tests (taken from Bergès et al., 2021 --> KEIO_ROBOT1_1)""" +def placeholder_data(): + return pd.DataFrame( + { + "time": np.arange(6, step=0.2), + "X": np.arange(6, step=0.2), + "Glucose": np.arange(6, step=0.2), + "Acetate": np.arange(6, step=0.2), + "Glutamate": np.arange(6, step=0.2), + } + ) + +@pytest.fixture +def base_test_data(): + """Test data to use in tests + (taken from Bergès et al., 2021 --> KEIO_ROBOT1_1)""" return pd.DataFrame.from_dict( { - "time": [0, 1.18, 2.27, 3.13, 3.77, 4.42, 4.82, 0.67, 1.72, 2.8, 3.63, 4.27, 4.88], - "X": [0.03, 0.05, 0.08, 0.13, 0.18, 0.24, 0.34, nan, nan, nan, nan, nan, nan], - "Glucose": [nan, nan, nan, nan, nan, nan, nan, 14, 15.30, 13.68, 12.81, 12.15, 10.93], - "Acetate": [nan, nan, nan, nan, nan, nan, nan, 0.01, 0.33, 0.72, 1.17, 1.63, 2.14] + "time": [0, 1.18, 2.27, 3.13, 3.77, 4.42, + 4.82, 0.67, 1.72, 2.8, 3.63, 4.27, 4.88], + "X": [0.03, 0.05, 0.08, 0.13, 0.18, 0.24, 0.34, + np.nan, np.nan, np.nan, np.nan, np.nan, np.nan], + "Glucose": [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, + 14, 15.30, 13.68, 12.81, 12.15, 10.93], + "Acetate": [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, + 0.01, 0.33, 0.72, 1.17, 1.63, 2.14] } ) +@pytest.fixture +def parameters(): + return { + "t_lag": 1.4, + "X_0": 0.02, + "growth_rate": 0.8, + "Glucose_q": -8, + "Glucose_M0": 20, + "Acetate_q": 3, + "Acetate_M0": 0.01, + "Glutamate_q": 2, + "Glutamate_M0": 0.01 + } + + +@pytest.fixture +def model_1_data(placeholder_data, parameters): + """ Test data to use in tests for the model_1: Steady-state batch model + with lag phase and degradation of metabolites. Data is simulated using + synthetic parameters""" + + io = IoHandler() + model = io.select_model( + name="Steady-state batch model with lag phase and degradation of " + "metabolites", + data=placeholder_data + ) + model.get_params() + model.parameters.update(parameters) + model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamate": 1}} + sim_data = model.simulate( + list(model.parameters.values()), + model.data.drop("time", axis=1), + model.time_vector, + model.args + ) + df = pd.DataFrame( + data=sim_data, + index=model.time_vector, + columns=model.name_vector + ) + df.index.name = "time" + return df.reset_index() + + +@pytest.fixture +def model_2_data(placeholder_data, parameters): + """ Test data to use in tests for the model_2: Steady-state batch model + with lag phase. Data is simulated using synthetic parameters""" + + io = IoHandler() + model = io.select_model( + name="Steady-state batch model with lag phase", + data=placeholder_data + ) + model.get_params() + model.parameters.update(parameters) + sim_data = model.simulate( + list(model.parameters.values()), + model.data.drop("time", axis=1), + model.time_vector, + model.args + ) + df = pd.DataFrame( + data=sim_data, + index=model.time_vector, + columns=model.name_vector + ) + df.index.name = "time" + return df.reset_index() + +@pytest.fixture +def model_4_data(placeholder_data, parameters): + """ Test data to use in tests for the model_2: Steady-state batch model + with lag phase. Data is simulated using synthetic parameters""" + + io = IoHandler() + model = io.select_model( + name="Steady-state batch model", + data=placeholder_data + ) + model.get_params() + del parameters["t_lag"] + model.parameters.update(parameters) + sim_data = model.simulate( + list(model.parameters.values()), + model.data.drop("time", axis=1), + model.time_vector, + model.args + ) + df = pd.DataFrame( + data=sim_data, + index=model.time_vector, + columns=model.name_vector + ) + df.index.name = "time" + return df.reset_index() -# time X Glc Ace -# 0 0.031752 NA NA -# 1.18888888888889 0.05292 NA NA -# 2.27694444444444 0.084672 NA NA -# 3.12833333333333 0.134568 NA NA -# 3.77138888888889 0.175392 NA NA -# 4.41555555555556 0.244944 NA NA -# 4.82277777777778 0.337176 NA NA -# 0.0666666666666667 NA 14.0042771787617 0.0130592124021829 -# 1.71666666666667 NA 15.3032563161238 0.325073443768164 -# 2.8 NA 13.6751055268759 0.722570137805818 -# 3.63333333333333 NA 12.8110643342243 1.16940283499877 -# 4.26666666666667 NA 12.1520761714542 1.62777664140305 -# 4.88333333333333 NA 10.9297935900362 2.13639255382759 @pytest.fixture def monod_model_data(): """ - Test data to use in tests for the Monod model. Data was simulated using the pyFOOMB package (see the `example 6 - notebook `_). + Test data to use in tests for the Monod model. Data was simulated using + the pyFOOMB package (see the `example 6 notebook `_). """ return pd.DataFrame.from_dict( { - "time": [0.00000000e+00, 2.84530395e-06, 1.87841467e-02, 6.86084776e-02, - 1.18432808e-01, 1.68257139e-01, 2.43764260e-01, 3.19271381e-01, - 4.49726191e-01, 5.80181002e-01, 7.10635813e-01, 9.19477706e-01, - 1.12831960e+00, 1.33716149e+00, 1.75431493e+00, 2.17146836e+00, - 2.58862180e+00, 3.00577523e+00, 3.42292866e+00, 3.84008210e+00, - 4.25723553e+00, 4.67438897e+00, 5.09154240e+00, 5.50869584e+00, - 5.92584927e+00, 6.34300270e+00, 6.76015614e+00, 7.17730957e+00, - 7.59446301e+00, 8.01161644e+00, 8.29621850e+00, 8.58082057e+00, - 8.86542263e+00, 9.29555394e+00, 9.61391297e+00, 9.93227199e+00, - 1.02506310e+01, 1.05689900e+01, 1.10543781e+01, 1.15397661e+01, - 1.18839716e+01, 1.22281772e+01, 1.25723827e+01, 1.29165883e+01, - 1.32607938e+01, 1.36049994e+01, 1.39492049e+01, 1.42934105e+01, - 1.46376160e+01, 1.49818216e+01, 1.53260271e+01, 1.56702327e+01, - 1.60144382e+01, 1.62611781e+01, 1.65079181e+01, 1.66591950e+01, - 1.68104719e+01, 1.69021125e+01, 1.69937532e+01, 1.70503459e+01, - 1.71069386e+01, 1.71431957e+01, 1.71794528e+01, 1.72036226e+01, - 1.72277924e+01, 1.72445191e+01, 1.72612458e+01, 1.72732201e+01, - 1.72851944e+01, 1.72940250e+01, 1.73028555e+01, 1.73116860e+01, - 1.73176659e+01, 1.73236458e+01, 1.73296257e+01, 1.73356056e+01, - 1.73415855e+01, 1.73452250e+01, 1.73479133e+01, 1.73506016e+01, - 1.73532900e+01, 1.73559783e+01, 1.73586666e+01, 1.73613549e+01, - 1.73640432e+01, 1.73667316e+01, 1.73694199e+01, 1.73721082e+01, - 1.73747965e+01, 1.73774848e+01, 1.73801731e+01, 1.73828615e+01, - 1.73855498e+01, 1.73882381e+01, 1.73909264e+01, 1.73936147e+01, - 1.73963031e+01, 1.74007815e+01, 1.74052600e+01, 1.74097384e+01, - 1.74142169e+01, 1.74186953e+01, 1.74231738e+01, 1.74276522e+01, - 1.74399174e+01, 1.74521827e+01, 1.74644479e+01, 1.74767132e+01, - 1.75064657e+01, 1.75362183e+01, 1.75967028e+01, 1.76313304e+01, - 1.76659580e+01, 1.77005856e+01, 1.77352132e+01, 1.77698407e+01, - 1.78044683e+01, 1.78390959e+01, 1.78990820e+01, 1.79590681e+01, - 1.80190541e+01, 1.81378620e+01, 1.83754877e+01, 1.87462973e+01, + "time": [0.00000000e+00, 2.84530395e-06, 1.87841467e-02, + 6.86084776e-02, 1.18432808e-01, 1.68257139e-01, + 2.43764260e-01, 3.19271381e-01, 4.49726191e-01, + 5.80181002e-01, 7.10635813e-01, 9.19477706e-01, + 1.12831960e+00, 1.33716149e+00, 1.75431493e+00, + 2.17146836e+00, 2.58862180e+00, 3.00577523e+00, + 3.42292866e+00, 3.84008210e+00, 4.25723553e+00, + 4.67438897e+00, 5.09154240e+00, 5.50869584e+00, + 5.92584927e+00, 6.34300270e+00, 6.76015614e+00, + 7.17730957e+00, 7.59446301e+00, 8.01161644e+00, + 8.29621850e+00, 8.58082057e+00, 8.86542263e+00, + 9.29555394e+00, 9.61391297e+00, 9.93227199e+00, + 1.02506310e+01, 1.05689900e+01, 1.10543781e+01, + 1.15397661e+01, 1.18839716e+01, 1.22281772e+01, + 1.25723827e+01, 1.29165883e+01, 1.32607938e+01, + 1.36049994e+01, 1.39492049e+01, 1.42934105e+01, + 1.46376160e+01, 1.49818216e+01, 1.53260271e+01, + 1.56702327e+01, 1.60144382e+01, 1.62611781e+01, + 1.65079181e+01, 1.66591950e+01, 1.68104719e+01, + 1.69021125e+01, 1.69937532e+01, 1.70503459e+01, + 1.71069386e+01, 1.71431957e+01, 1.71794528e+01, + 1.72036226e+01, 1.72277924e+01, 1.72445191e+01, + 1.72612458e+01, 1.72732201e+01, 1.72851944e+01, + 1.72940250e+01, 1.73028555e+01, 1.73116860e+01, + 1.73176659e+01, 1.73236458e+01, 1.73296257e+01, + 1.73356056e+01, + 1.73415855e+01, 1.73452250e+01, 1.73479133e+01, + 1.73506016e+01, + 1.73532900e+01, 1.73559783e+01, 1.73586666e+01, + 1.73613549e+01, + 1.73640432e+01, 1.73667316e+01, 1.73694199e+01, + 1.73721082e+01, + 1.73747965e+01, 1.73774848e+01, 1.73801731e+01, + 1.73828615e+01, + 1.73855498e+01, 1.73882381e+01, 1.73909264e+01, + 1.73936147e+01, + 1.73963031e+01, 1.74007815e+01, 1.74052600e+01, + 1.74097384e+01, + 1.74142169e+01, 1.74186953e+01, 1.74231738e+01, + 1.74276522e+01, + 1.74399174e+01, 1.74521827e+01, 1.74644479e+01, + 1.74767132e+01, + 1.75064657e+01, 1.75362183e+01, 1.75967028e+01, + 1.76313304e+01, + 1.76659580e+01, 1.77005856e+01, 1.77352132e+01, + 1.77698407e+01, + 1.78044683e+01, 1.78390959e+01, 1.78990820e+01, + 1.79590681e+01, + 1.80190541e+01, 1.81378620e+01, 1.83754877e+01, + 1.87462973e+01, 1.93988066e+01, 2.22020563e+01, 2.40000000e+01], - "X": [1.00000000e-02, 1.00000114e-02, 1.00755151e-02, 1.02785070e-02, - 1.04851341e-02, 1.06957646e-02, 1.10230425e-02, 1.13603070e-02, - 1.19675160e-02, 1.26070854e-02, 1.32807477e-02, 1.44349438e-02, - 1.56894776e-02, 1.70530554e-02, 2.01425914e-02, 2.37924513e-02, - 2.81029034e-02, 3.31932538e-02, 3.92051466e-02, 4.63058753e-02, - 5.46927632e-02, 6.45987091e-02, 7.62987771e-02, 9.01178828e-02, - 1.06439804e-01, 1.25717816e-01, 1.48487267e-01, 1.75380434e-01, - 2.07144077e-01, 2.44660157e-01, 2.74081338e-01, 3.07039387e-01, - 3.43960267e-01, 4.08357175e-01, 4.63663091e-01, 5.26456335e-01, - 5.97751620e-01, 6.78700806e-01, 8.23709014e-01, 9.99694095e-01, - 1.14682179e+00, 1.31559067e+00, 1.50918382e+00, 1.73124907e+00, - 1.98596629e+00, 2.27812618e+00, 2.61321891e+00, 2.99753328e+00, - 3.43826807e+00, 3.94365639e+00, 4.52310078e+00, 5.18731095e+00, - 5.94841972e+00, 6.56115855e+00, 7.23602834e+00, 7.68287603e+00, - 8.15625966e+00, 8.45628622e+00, 8.76633978e+00, 8.96269975e+00, - 9.16254503e+00, 9.29221224e+00, 9.42289356e+00, 9.51038000e+00, - 9.59792939e+00, 9.65838042e+00, 9.71851163e+00, 9.76120267e+00, - 9.80340828e+00, 9.83407224e+00, 9.86416930e+00, 9.89345565e+00, - 9.91264436e+00, 9.93111628e+00, 9.94861855e+00, 9.96478787e+00, - 9.97911442e+00, 9.98665391e+00, 9.99153422e+00, 9.99576940e+00, - 9.99932800e+00, 1.00022108e+01, 1.00044572e+01, 1.00061428e+01, - 1.00073654e+01, 1.00082263e+01, 1.00088188e+01, 1.00092206e+01, - 1.00094898e+01, 1.00096671e+01, 1.00097831e+01, 1.00098593e+01, - 1.00099092e+01, 1.00099414e+01, 1.00099618e+01, 1.00099747e+01, - 1.00099831e+01, 1.00099916e+01, 1.00099960e+01, 1.00099976e+01, - 1.00099979e+01, 1.00099983e+01, 1.00099988e+01, 1.00099996e+01, - 1.00100002e+01, 1.00100000e+01, 1.00099999e+01, 1.00099999e+01, - 1.00100000e+01, 1.00100000e+01, 1.00099996e+01, 1.00100001e+01, - 1.00100001e+01, 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, - 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, - 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, + "X": [1.00000000e-02, 1.00000114e-02, 1.00755151e-02, + 1.02785070e-02, + 1.04851341e-02, 1.06957646e-02, 1.10230425e-02, + 1.13603070e-02, + 1.19675160e-02, 1.26070854e-02, 1.32807477e-02, + 1.44349438e-02, + 1.56894776e-02, 1.70530554e-02, 2.01425914e-02, + 2.37924513e-02, + 2.81029034e-02, 3.31932538e-02, 3.92051466e-02, + 4.63058753e-02, + 5.46927632e-02, 6.45987091e-02, 7.62987771e-02, + 9.01178828e-02, + 1.06439804e-01, 1.25717816e-01, 1.48487267e-01, + 1.75380434e-01, + 2.07144077e-01, 2.44660157e-01, 2.74081338e-01, + 3.07039387e-01, + 3.43960267e-01, 4.08357175e-01, 4.63663091e-01, + 5.26456335e-01, + 5.97751620e-01, 6.78700806e-01, 8.23709014e-01, + 9.99694095e-01, + 1.14682179e+00, 1.31559067e+00, 1.50918382e+00, + 1.73124907e+00, + 1.98596629e+00, 2.27812618e+00, 2.61321891e+00, + 2.99753328e+00, + 3.43826807e+00, 3.94365639e+00, 4.52310078e+00, + 5.18731095e+00, + 5.94841972e+00, 6.56115855e+00, 7.23602834e+00, + 7.68287603e+00, + 8.15625966e+00, 8.45628622e+00, 8.76633978e+00, + 8.96269975e+00, + 9.16254503e+00, 9.29221224e+00, 9.42289356e+00, + 9.51038000e+00, + 9.59792939e+00, 9.65838042e+00, 9.71851163e+00, + 9.76120267e+00, + 9.80340828e+00, 9.83407224e+00, 9.86416930e+00, + 9.89345565e+00, + 9.91264436e+00, 9.93111628e+00, 9.94861855e+00, + 9.96478787e+00, + 9.97911442e+00, 9.98665391e+00, 9.99153422e+00, + 9.99576940e+00, + 9.99932800e+00, 1.00022108e+01, 1.00044572e+01, + 1.00061428e+01, + 1.00073654e+01, 1.00082263e+01, 1.00088188e+01, + 1.00092206e+01, + 1.00094898e+01, 1.00096671e+01, 1.00097831e+01, + 1.00098593e+01, + 1.00099092e+01, 1.00099414e+01, 1.00099618e+01, + 1.00099747e+01, + 1.00099831e+01, 1.00099916e+01, 1.00099960e+01, + 1.00099976e+01, + 1.00099979e+01, 1.00099983e+01, 1.00099988e+01, + 1.00099996e+01, + 1.00100002e+01, 1.00100000e+01, 1.00099999e+01, + 1.00099999e+01, + 1.00100000e+01, 1.00100000e+01, 1.00099996e+01, + 1.00100001e+01, + 1.00100001e+01, 1.00100000e+01, 1.00100000e+01, + 1.00100000e+01, + 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, + 1.00100000e+01, + 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, + 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, 1.00100000e+01], - "S_substrate": [2.00000000e+01, 2.00000000e+01, 1.99998490e+01, 1.99994430e+01, - 1.99990297e+01, 1.99986085e+01, 1.99979539e+01, 1.99972794e+01, - 1.99960650e+01, 1.99947858e+01, 1.99934385e+01, 1.99911301e+01, - 1.99886210e+01, 1.99858939e+01, 1.99797148e+01, 1.99724151e+01, - 1.99637942e+01, 1.99536135e+01, 1.99415897e+01, 1.99273882e+01, - 1.99106145e+01, 1.98908026e+01, 1.98674024e+01, 1.98397642e+01, - 1.98071204e+01, 1.97685644e+01, 1.97230255e+01, 1.96692391e+01, - 1.96057118e+01, 1.95306797e+01, 1.94718373e+01, 1.94059212e+01, - 1.93320795e+01, 1.92032856e+01, 1.90926738e+01, 1.89670873e+01, - 1.88244968e+01, 1.86625984e+01, 1.83725820e+01, 1.80206118e+01, - 1.77263564e+01, 1.73888187e+01, 1.70016324e+01, 1.65575019e+01, - 1.60480674e+01, 1.54637476e+01, 1.47935622e+01, 1.40249334e+01, - 1.31434639e+01, 1.21326872e+01, 1.09737984e+01, 9.64537810e+00, - 8.12316056e+00, 6.89768289e+00, 5.54794333e+00, 4.65424794e+00, - 3.70748067e+00, 3.10742757e+00, 2.48732044e+00, 2.09460050e+00, - 1.69490993e+00, 1.43557553e+00, 1.17421288e+00, 9.99239999e-01, - 8.24141216e-01, 7.03239167e-01, 5.82976746e-01, 4.97594659e-01, - 4.13183443e-01, 3.51855523e-01, 2.91661405e-01, 2.33088690e-01, - 1.94711274e-01, 1.57767432e-01, 1.22762910e-01, 9.04242635e-02, - 6.17711687e-02, 4.66921849e-02, 3.69315576e-02, 2.84612066e-02, - 2.13439981e-02, 1.55784894e-02, 1.10855883e-02, 7.71437791e-03, - 5.26916061e-03, 3.54732671e-03, 2.36241878e-03, 1.55879567e-03, - 1.02032920e-03, 6.65870806e-04, 4.33724551e-04, 2.81344674e-04, - 1.81594318e-04, 1.17199486e-04, 7.64366916e-05, 5.06131384e-05, - 3.38327069e-05, 1.67743548e-05, 7.96307568e-06, 4.85831921e-06, - 4.17174086e-06, 3.45571364e-06, 2.40265760e-06, 7.42561334e-07, - -4.75957212e-07, -4.55116537e-08, 2.16928030e-07, 1.47280846e-07, - -3.21385469e-08, 8.25286825e-08, 8.91202734e-07, -1.13282919e-07, - -1.89058779e-07, 6.46350725e-08, 5.87083704e-08, -2.41520675e-08, - -1.80445478e-08, 8.23570977e-09, 2.19674270e-08, 6.37737076e-09, - -1.00863240e-09, -2.74105412e-09, -1.42426643e-09, -3.49341385e-10, + "S_substrate": [2.00000000e+01, 2.00000000e+01, 1.99998490e+01, + 1.99994430e+01, + 1.99990297e+01, 1.99986085e+01, 1.99979539e+01, + 1.99972794e+01, + 1.99960650e+01, 1.99947858e+01, 1.99934385e+01, + 1.99911301e+01, + 1.99886210e+01, 1.99858939e+01, 1.99797148e+01, + 1.99724151e+01, + 1.99637942e+01, 1.99536135e+01, 1.99415897e+01, + 1.99273882e+01, + 1.99106145e+01, 1.98908026e+01, 1.98674024e+01, + 1.98397642e+01, + 1.98071204e+01, 1.97685644e+01, 1.97230255e+01, + 1.96692391e+01, + 1.96057118e+01, 1.95306797e+01, 1.94718373e+01, + 1.94059212e+01, + 1.93320795e+01, 1.92032856e+01, 1.90926738e+01, + 1.89670873e+01, + 1.88244968e+01, 1.86625984e+01, 1.83725820e+01, + 1.80206118e+01, + 1.77263564e+01, 1.73888187e+01, 1.70016324e+01, + 1.65575019e+01, + 1.60480674e+01, 1.54637476e+01, 1.47935622e+01, + 1.40249334e+01, + 1.31434639e+01, 1.21326872e+01, 1.09737984e+01, + 9.64537810e+00, + 8.12316056e+00, 6.89768289e+00, 5.54794333e+00, + 4.65424794e+00, + 3.70748067e+00, 3.10742757e+00, 2.48732044e+00, + 2.09460050e+00, + 1.69490993e+00, 1.43557553e+00, 1.17421288e+00, + 9.99239999e-01, + 8.24141216e-01, 7.03239167e-01, 5.82976746e-01, + 4.97594659e-01, + 4.13183443e-01, 3.51855523e-01, 2.91661405e-01, + 2.33088690e-01, + 1.94711274e-01, 1.57767432e-01, 1.22762910e-01, + 9.04242635e-02, + 6.17711687e-02, 4.66921849e-02, 3.69315576e-02, + 2.84612066e-02, + 2.13439981e-02, 1.55784894e-02, 1.10855883e-02, + 7.71437791e-03, + 5.26916061e-03, 3.54732671e-03, 2.36241878e-03, + 1.55879567e-03, + 1.02032920e-03, 6.65870806e-04, 4.33724551e-04, + 2.81344674e-04, + 1.81594318e-04, 1.17199486e-04, 7.64366916e-05, + 5.06131384e-05, + 3.38327069e-05, 1.67743548e-05, 7.96307568e-06, + 4.85831921e-06, + 4.17174086e-06, 3.45571364e-06, 2.40265760e-06, + 7.42561334e-07, + -4.75957212e-07, -4.55116537e-08, 2.16928030e-07, + 1.47280846e-07, + -3.21385469e-08, 8.25286825e-08, 8.91202734e-07, + -1.13282919e-07, + -1.89058779e-07, 6.46350725e-08, 5.87083704e-08, + -2.41520675e-08, + -1.80445478e-08, 8.23570977e-09, 2.19674270e-08, + 6.37737076e-09, + -1.00863240e-09, -2.74105412e-09, -1.42426643e-09, + -3.49341385e-10, -1.08365230e-10, 2.39808967e-11, 1.21535023e-13], - "P_product": [0.00000000e+00, 2.27056932e-09, 1.51030213e-05, 5.57013969e-05, - 9.70268260e-05, 1.39152917e-04, 2.04608499e-04, 2.72061409e-04, - 3.93503192e-04, 5.21417081e-04, 6.56149542e-04, 8.86988753e-04, - 1.13789552e-03, 1.41061109e-03, 2.02851829e-03, 2.75849026e-03, - 3.62058068e-03, 4.63865076e-03, 5.84102933e-03, 7.26117506e-03, - 8.93855263e-03, 1.09197418e-02, 1.32597554e-02, 1.60235766e-02, - 1.92879608e-02, 2.31435633e-02, 2.76974534e-02, 3.30760868e-02, - 3.94288155e-02, 4.69320313e-02, 5.28162676e-02, 5.94078775e-02, - 6.67920534e-02, 7.96714350e-02, 9.07326183e-02, 1.03291267e-01, - 1.17550324e-01, 1.33740161e-01, 1.62741803e-01, 1.97938819e-01, - 2.27364358e-01, 2.61118134e-01, 2.99836765e-01, 3.44249815e-01, - 3.95193259e-01, 4.53625235e-01, 5.20643782e-01, 5.97506656e-01, - 6.85653614e-01, 7.86731278e-01, 9.02620156e-01, 1.03546219e+00, - 1.18768394e+00, 1.31023171e+00, 1.44520567e+00, 1.53457521e+00, - 1.62925193e+00, 1.68925724e+00, 1.75126796e+00, 1.79053995e+00, - 1.83050901e+00, 1.85644245e+00, 1.88257871e+00, 1.90007600e+00, - 1.91758588e+00, 1.92967608e+00, 1.94170233e+00, 1.95024053e+00, - 1.95868166e+00, 1.96481445e+00, 1.97083386e+00, 1.97669113e+00, - 1.98052887e+00, 1.98422326e+00, 1.98772371e+00, 1.99095757e+00, - 1.99382288e+00, 1.99533078e+00, 1.99630684e+00, 1.99715388e+00, - 1.99786560e+00, 1.99844215e+00, 1.99889144e+00, 1.99922856e+00, - 1.99947308e+00, 1.99964527e+00, 1.99976376e+00, 1.99984412e+00, - 1.99989797e+00, 1.99993341e+00, 1.99995663e+00, 1.99997187e+00, - 1.99998184e+00, 1.99998828e+00, 1.99999236e+00, 1.99999494e+00, - 1.99999662e+00, 1.99999832e+00, 1.99999920e+00, 1.99999951e+00, - 1.99999958e+00, 1.99999965e+00, 1.99999976e+00, 1.99999993e+00, - 2.00000005e+00, 2.00000000e+00, 1.99999998e+00, 1.99999999e+00, - 2.00000000e+00, 1.99999999e+00, 1.99999991e+00, 2.00000001e+00, - 2.00000002e+00, 1.99999999e+00, 1.99999999e+00, 2.00000000e+00, - 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, - 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, + "P_product": [0.00000000e+00, 2.27056932e-09, 1.51030213e-05, + 5.57013969e-05, + 9.70268260e-05, 1.39152917e-04, 2.04608499e-04, + 2.72061409e-04, + 3.93503192e-04, 5.21417081e-04, 6.56149542e-04, + 8.86988753e-04, + 1.13789552e-03, 1.41061109e-03, 2.02851829e-03, + 2.75849026e-03, + 3.62058068e-03, 4.63865076e-03, 5.84102933e-03, + 7.26117506e-03, + 8.93855263e-03, 1.09197418e-02, 1.32597554e-02, + 1.60235766e-02, + 1.92879608e-02, 2.31435633e-02, 2.76974534e-02, + 3.30760868e-02, + 3.94288155e-02, 4.69320313e-02, 5.28162676e-02, + 5.94078775e-02, + 6.67920534e-02, 7.96714350e-02, 9.07326183e-02, + 1.03291267e-01, + 1.17550324e-01, 1.33740161e-01, 1.62741803e-01, + 1.97938819e-01, + 2.27364358e-01, 2.61118134e-01, 2.99836765e-01, + 3.44249815e-01, + 3.95193259e-01, 4.53625235e-01, 5.20643782e-01, + 5.97506656e-01, + 6.85653614e-01, 7.86731278e-01, 9.02620156e-01, + 1.03546219e+00, + 1.18768394e+00, 1.31023171e+00, 1.44520567e+00, + 1.53457521e+00, + 1.62925193e+00, 1.68925724e+00, 1.75126796e+00, + 1.79053995e+00, + 1.83050901e+00, 1.85644245e+00, 1.88257871e+00, + 1.90007600e+00, + 1.91758588e+00, 1.92967608e+00, 1.94170233e+00, + 1.95024053e+00, + 1.95868166e+00, 1.96481445e+00, 1.97083386e+00, + 1.97669113e+00, + 1.98052887e+00, 1.98422326e+00, 1.98772371e+00, + 1.99095757e+00, + 1.99382288e+00, 1.99533078e+00, 1.99630684e+00, + 1.99715388e+00, + 1.99786560e+00, 1.99844215e+00, 1.99889144e+00, + 1.99922856e+00, + 1.99947308e+00, 1.99964527e+00, 1.99976376e+00, + 1.99984412e+00, + 1.99989797e+00, 1.99993341e+00, 1.99995663e+00, + 1.99997187e+00, + 1.99998184e+00, 1.99998828e+00, 1.99999236e+00, + 1.99999494e+00, + 1.99999662e+00, 1.99999832e+00, 1.99999920e+00, + 1.99999951e+00, + 1.99999958e+00, 1.99999965e+00, 1.99999976e+00, + 1.99999993e+00, + 2.00000005e+00, 2.00000000e+00, 1.99999998e+00, + 1.99999999e+00, + 2.00000000e+00, 1.99999999e+00, 1.99999991e+00, + 2.00000001e+00, + 2.00000002e+00, 1.99999999e+00, 1.99999999e+00, + 2.00000000e+00, + 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, + 2.00000000e+00, + 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, + 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, 2.00000000e+00] } ) @@ -195,7 +409,7 @@ def monod_model_sds(): def sds(): return StandardDevs( X=0.2, - Glucose=0.5, - Acetate=0.5 + Glucose=0.2, + Acetate=0.2, + Glutamate=0.2 ) - From d704381ed0dd30bbc3d698edaa5f60188574801f Mon Sep 17 00:00:00 2001 From: legregam Date: Tue, 14 May 2024 09:37:05 +0200 Subject: [PATCH 023/114] changed "model_name" to "name" --- physiofit/ui/gui.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index bec0ef2..ce1f925 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -221,7 +221,7 @@ def _initialize_opt_menu_widgets(self, file_extension): # Get model names and give as options to user model_options = [ - model.model_name for model in self.io.models + model.name for model in self.io.models ] if self.config_parser: if self.config_parser.model: From 2e3bbfaf0645ca7853bc92bbc58728929c3a55a2 Mon Sep 17 00:00:00 2001 From: legregam Date: Tue, 14 May 2024 09:37:19 +0200 Subject: [PATCH 024/114] changed "model_name" to "name" --- physiofit/base/io.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/physiofit/base/io.py b/physiofit/base/io.py index 9ab6f2f..432bb35 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -94,14 +94,14 @@ def read_data(data: str) -> DataFrame: IoHandler._verify_data(data) return data - def select_model(self, model_name, data=None): + def select_model(self, name, data=None): """ Select a model from the list of models in the model folder of the package src directory """ self.get_models(data) for x in self.models: - if x.model_name == model_name: + if x.name == name: model = x return model @@ -182,7 +182,7 @@ def get_model_list(): ) model_class = getattr(module, "ChildModel") model = model_class(df) - print(model.model_name) + print(model.name) return def get_models(self, data=None): @@ -625,7 +625,7 @@ def export_config(self, export_path): with open(fr"{export_path}/config_file.yml", "w") as file: data = { "model": { - "model_name": self.model.model_name, + "model_name": self.model.name, "parameters_to_estimate": self.model.parameters, "bounds": {name: f"{bounds[0], bounds[1]}" for name, bounds in self.model.bounds.items()} }, From a1f4734b496330e949657aecd0d5801cfd48bfd3 Mon Sep 17 00:00:00 2001 From: legregam Date: Tue, 14 May 2024 09:38:32 +0200 Subject: [PATCH 025/114] Fixed bug where t_lag wasn't actually being used in simulation. Made code clearer. Added clip on values beneath zero. --- physiofit/models/model_1.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/physiofit/models/model_1.py b/physiofit/models/model_1.py index 050fb22..8f5b67d 100644 --- a/physiofit/models/model_1.py +++ b/physiofit/models/model_1.py @@ -13,8 +13,8 @@ class ChildModel(Model): def __init__(self, data): super().__init__(data) - self.model_name = "Steady-state batch model with lag phase and " \ - "degradation of metabolites " + self.name = "Steady-state batch model with lag phase and " \ + "degradation of metabolites" self.vini = 1 self.parameters = None self.args = None @@ -47,7 +47,7 @@ def get_params(self): self.args = {"Degradation": { met: 0 for met in self.metabolites - } + } } @staticmethod @@ -64,23 +64,33 @@ def simulate( x_0, mu, t_lag = parameters[:3] # We get indices in time vector where time < t_lag - idx = np.nonzero(time_vector < t_lag) + idx = np.nonzero(time_vector < t_lag)[0] # Fill at those indices with x_0 - x_t_lag = np.full((len(idx) - 1,), x_0) + x_t_lag = np.full(shape=(len(idx)), fill_value=x_0) + + # Get time vector from length of t_lag to end + time_vector = time_vector[len(idx):] # The rest of the biomass points are calculated as usual - mult_by_time = x_0 * np.exp(mu * (time_vector[len(idx) - 1:] - t_lag)) + mult_by_time = x_0 * np.exp(mu * (time_vector - t_lag)) + + # Concatenate both vectors and transfer to X_t column of the + # simulated matrix simulated_matrix[:, 0] = np.concatenate((x_t_lag, mult_by_time)) + + # Get extra arguments arg_values = [value for value in args["Degradation"].values()] + # optimize some calculations + exp_mu_t_lag = np.exp(mu * (time_vector - t_lag)) + for i in range(1, len(parameters) // 2): q, m_0 = parameters[i * 2 + 1:i * 2 + 3] k = arg_values[i - 1] - m_t_lag = np.full(len(idx) - 1, m_0) - mult_by_time = q * (x_0 / (mu + k)) * ( - np.exp(mu * (time_vector - t_lag)) - np.exp( + m_t_lag = np.full(len(idx), fill_value=m_0) + mult_by_time = q * (x_0 / (mu + k)) * (exp_mu_t_lag - np.exp( -k * time_vector)) + m_0 * np.exp(-k * time_vector) simulated_matrix[:, i] = np.concatenate((m_t_lag, mult_by_time)) - return simulated_matrix + return np.clip(simulated_matrix, a_min=0, a_max=None) From 6310dd86a2a26db77e0c535d8d3064221ec440bd Mon Sep 17 00:00:00 2001 From: legregam Date: Tue, 14 May 2024 09:39:26 +0200 Subject: [PATCH 026/114] Fixed bug where t_lag wasn't actually being used in simulation. Made code clearer. Added clip on values beneath zero. --- physiofit/models/model_2.py | 41 +++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/physiofit/models/model_2.py b/physiofit/models/model_2.py index a1e96a8..60afe48 100644 --- a/physiofit/models/model_2.py +++ b/physiofit/models/model_2.py @@ -13,7 +13,7 @@ class ChildModel(Model): def __init__(self, data): super().__init__(data) - self.model_name = "Steady-state batch model with lag phase" + self.name = "Steady-state batch model with lag phase" self.vini = 1 self.parameters = None self.args = None @@ -21,9 +21,9 @@ def __init__(self, data): def get_params(self): self.parameters = { - "X_0" : self.vini, - "growth_rate" : self.vini, - "t_lag" : self.vini + "X_0": self.vini, + "growth_rate": self.vini, + "t_lag": self.vini } self.bounds = Bounds({ "X_0": (1e-3, 10), @@ -33,8 +33,8 @@ def get_params(self): for metabolite in self.metabolites: self.parameters.update( { - f"{metabolite}_q" : 1, - f"{metabolite}_M0" : 1 + f"{metabolite}_q": 1, + f"{metabolite}_M0": 1 } ) self.bounds.update( @@ -53,35 +53,32 @@ def simulate( ): # Get end shape simulated_matrix = np.empty_like(data_matrix) - x_0 = parameters[0] - mu = parameters[1] - t_lag = parameters[2] + x_0, mu, t_lag = parameters[:3] # We get indices in time vector where time < t_lag - idx = np.nonzero(time_vector < t_lag) + idx = np.nonzero(time_vector < t_lag)[0] # Fill at those indices with x_0 - x_t_lag = np.full((len(idx) - 1,), x_0) + x_t_lag = np.full(shape=(len(idx)), fill_value=x_0) + + # Get time vector from length of t_lag to end + time_vector = time_vector[len(idx):] # The rest of the biomass points are calculated as usual - mult_by_time = x_0 * np.exp(mu * (time_vector[len(idx) - 1:] - t_lag)) + mult_by_time = x_0 * np.exp(mu * (time_vector - t_lag)) # Concatenate both vectors and transfer to X_t column of the # simulated matrix - simulated_matrix[:, 0] = np.concatenate( - (x_t_lag, mult_by_time), - axis=None - ) + simulated_matrix[:, 0] = np.concatenate((x_t_lag, mult_by_time)) + + # optimize some calculations exp_mu_t_lag = np.exp(mu * (time_vector - t_lag)) - 1 for i in range(1, int(len(parameters) / 2)): q = parameters[i * 2 + 1] m_0 = parameters[i * 2 + 2] - m_t_lag = np.full((len(idx) - 1,), m_0) + m_t_lag = np.full(shape=(len(idx)), fill_value=m_0) mult_by_time = q * (x_0 / mu) * exp_mu_t_lag + m_0 - simulated_matrix[:, i] = np.concatenate( - (m_t_lag, mult_by_time), - axis=None - ) + simulated_matrix[:, i] = np.concatenate((m_t_lag, mult_by_time)) - return simulated_matrix + return np.clip(simulated_matrix, a_min=0, a_max=None) From 8a756f9bd5fb17aa50dab87fb6b3244a5db305e6 Mon Sep 17 00:00:00 2001 From: legregam Date: Tue, 14 May 2024 09:39:37 +0200 Subject: [PATCH 027/114] Added clip on values beneath zero. --- physiofit/models/model_4.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/physiofit/models/model_4.py b/physiofit/models/model_4.py index 63bdd6f..f4672fb 100644 --- a/physiofit/models/model_4.py +++ b/physiofit/models/model_4.py @@ -13,7 +13,7 @@ class ChildModel(Model): def __init__(self, data): super().__init__(data) - self.model_name = "Steady-state batch model" + self.name = "Steady-state batch model" self.vini = 1 self.parameters = None self.args = None From 9e89f3120aaa8640566f9a45915cc6a12b0976ab Mon Sep 17 00:00:00 2001 From: legregam Date: Tue, 14 May 2024 09:40:00 +0200 Subject: [PATCH 028/114] "model_name" to "name" --- physiofit/models/model_5.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/physiofit/models/model_5.py b/physiofit/models/model_5.py index db2d167..9599253 100644 --- a/physiofit/models/model_5.py +++ b/physiofit/models/model_5.py @@ -14,7 +14,7 @@ class ChildModel(Model): def __init__(self, data): super().__init__(data) - self.model_name = "Dynamic Monod model (1 substrate, 1 product)" + self.name = "Dynamic Monod model (1 substrate, 1 product)" self.vini = 1 self.parameters = None From 000b744f9a806801eb94477f3d26b0a2baf8a81b Mon Sep 17 00:00:00 2001 From: legregam Date: Tue, 14 May 2024 09:40:24 +0200 Subject: [PATCH 029/114] Updated max version to 4.0.0 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2ded746..95d7417 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ readme = "README.md" physiofit = 'physiofit.__main__:main' [tool.poetry.dependencies] -python = ">=3.8.1,<3.9.7 || >3.9.7,<3.12" +python = ">=3.8.1,<3.9.7 || >3.9.7,<4.0.0" pandas = "^2.0.1" numpy = "^1.24.2" scipy = "^1.10.1" From 11a2a0b78a85b999fdd2e38508a958ca118c0c26 Mon Sep 17 00:00:00 2001 From: legregam Date: Tue, 14 May 2024 09:41:12 +0200 Subject: [PATCH 030/114] Modified test data. Put all sds to 0.2 as default for tests. --- physiofit/tests/test_base.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/physiofit/tests/test_base.py b/physiofit/tests/test_base.py index 4a2b6b7..d1f4f84 100644 --- a/physiofit/tests/test_base.py +++ b/physiofit/tests/test_base.py @@ -7,27 +7,27 @@ import physiofit -def test_physiofitter(data, sds): +def test_physiofitter(base_test_data): """ Test that the model and PhysioFitter can be safely instanciated from IoHandler """ io = physiofit.base.io.IoHandler() - model = io.select_model("Steady-state batch model", data) + model = io.select_model("Steady-state batch model", base_test_data) assert isinstance(model, physiofit.models.base_model.Model) model.get_params() fitter = io.initialize_fitter( model.data, model=model, - sd=sds, + sd=0.2, debug_mode=True ) assert isinstance(fitter, physiofit.base.fitter.PhysioFitter) -def test_simulation(data, sds): +def test_simulation(base_test_data): io = physiofit.base.io.IoHandler() - model = io.select_model("Steady-state batch model", data) + model = io.select_model("Steady-state batch model", base_test_data) model.get_params() sim_mat = model.simulate( [param for param in model.parameters.values()], @@ -37,7 +37,7 @@ def test_simulation(data, sds): ) assert isinstance(sim_mat, np.ndarray) -def test_wrong_entry_for_model_data(data, sds): +def test_wrong_entry_for_model_data(base_test_data): with pytest.raises(AttributeError): io = physiofit.base.io.IoHandler() @@ -55,15 +55,15 @@ def test_wrong_entry_for_model_data(data, sds): "Hello world this is an error" ) -def test_optimization_process(data, sds): +def test_optimization_process(base_test_data): io = physiofit.base.io.IoHandler() - model = io.select_model("Steady-state batch model", data) + model = io.select_model("Steady-state batch model", base_test_data) model.get_params() fitter = io.initialize_fitter( model.data, model=model, - sd=sds, + sd=0.2, debug_mode=True ) fitter.optimize() @@ -71,14 +71,14 @@ def test_optimization_process(data, sds): for col in ["X", "Glucose", "Acetate"]: assert col in fitter.simulated_data.columns -def test_monte_carlo(data, sds): +def test_monte_carlo(base_test_data): io = physiofit.base.io.IoHandler() - model = io.select_model("Steady-state batch model", data) + model = io.select_model("Steady-state batch model", base_test_data) model.get_params() fitter = io.initialize_fitter( model.data, model=model, - sd=sds, + sd=0.2, debug_mode=True ) fitter.optimize() @@ -90,14 +90,14 @@ def test_monte_carlo(data, sds): assert hasattr(fitter, "parameter_stats") assert isinstance(fitter.parameter_stats, dict) -def test_that_simulated_and_experimental_matrices_are_close(data, sds): +def test_that_simulated_and_experimental_matrices_are_close(base_test_data): io = physiofit.base.io.IoHandler() - model = io.select_model("Steady-state batch model", data) + model = io.select_model("Steady-state batch model", base_test_data) model.get_params() fitter = io.initialize_fitter( model.data, model=model, - sd=sds, + sd=0.2, debug_mode=True ) fitter.optimize() From 1ebb39f3f61309bc3b31ee0d69f1e8d30735852c Mon Sep 17 00:00:00 2001 From: legregam Date: Tue, 14 May 2024 09:41:41 +0200 Subject: [PATCH 031/114] Added unit tests for all models --- physiofit/tests/test_models.py | 236 +++++++++++++++++++++++++++++++++ 1 file changed, 236 insertions(+) diff --git a/physiofit/tests/test_models.py b/physiofit/tests/test_models.py index 37d28f4..b379f37 100644 --- a/physiofit/tests/test_models.py +++ b/physiofit/tests/test_models.py @@ -2,7 +2,243 @@ This module contains tests for the models module. """ import numpy as np +import pandas as pd + from physiofit.base.io import IoHandler +import physiofit.models.base_model + + +def test_steady_state_batch_model_with_lag_phase_and_degradation_of_metabolites( + model_1_data: pd.DataFrame, + sds: physiofit.models.base_model.StandardDevs +): + io = IoHandler() + model = io.select_model( + name="Steady-state batch model with lag phase and " + "degradation of metabolites", + data=model_1_data + ) + model.get_params() + fitter = io.initialize_fitter( + data=model.data, + model=model, + sd=sds, + debug_mode=True + ) + fitter.optimize() + optimized_params = { + name: param for name, param in zip( + list(fitter.model.parameters.keys()), + fitter.parameter_stats["optimal"] + ) + } + + # t_lag + assert np.isclose( + a=optimized_params["t_lag"], + b=1.4, + rtol=0.2 + ) + # X_0 + assert np.isclose( + a=optimized_params["X_0"], + b=0.02, + rtol=0.02 + ) + # growth_rate + assert np.isclose( + a=optimized_params["growth_rate"], + b=0.8, + rtol=0.02 + ) + # Glucose_q + assert np.isclose( + a=optimized_params["Glucose_q"], + b=-8, + rtol=0.02 + ) + # Glucose_M0 + assert np.isclose( + a=optimized_params["Glucose_M0"], + b=20, + rtol=0.02 + ) + # Acetate_q + assert np.isclose( + a=optimized_params["Acetate_q"], + b=3, + rtol=0.02 + ) + # Acetate_M0 + assert np.isclose( + a=optimized_params["Acetate_M0"], + b=0.01, + rtol=0.02 + ) + # Glutamate_q + assert np.isclose( + a=optimized_params["Glutamate_q"], + b=0.05, + rtol=0.02 + ) + # Glutamate_M0 + assert np.isclose( + a=optimized_params["Glutamate_M0"], + b=0.01, + rtol=0.02 + ) + + +def test_steady_state_batch_model_with_lag_phase( + model_2_data: pd.DataFrame, + sds: physiofit.models.base_model.StandardDevs +): + io = IoHandler() + model = io.select_model( + name="Steady-state batch model with lag phase", + data=model_2_data + ) + model.get_params() + fitter = io.initialize_fitter( + data=model.data, + model=model, + sd=sds, + debug_mode=True + ) + fitter.optimize() + optimized_params = { + name: param for name, param in zip( + list(fitter.model.parameters.keys()), + fitter.parameter_stats["optimal"] + ) + } + + # t_lag + assert np.isclose( + a=optimized_params["t_lag"], + b=1.4, + rtol=0.01 + ) + # X_0 + assert np.isclose( + a=optimized_params["X_0"], + b=0.02, + rtol=0.01 + ) + # growth_rate + assert np.isclose( + a=optimized_params["growth_rate"], + b=0.8, + rtol=0.01 + ) + # Glucose_q + assert np.isclose( + a=optimized_params["Glucose_q"], + b=-8, + rtol=0.01 + ) + # Glucose_M0 + assert np.isclose( + a=optimized_params["Glucose_M0"], + b=20, + rtol=0.01 + ) + # Acetate_q + assert np.isclose( + a=optimized_params["Acetate_q"], + b=3, + rtol=0.01 + ) + # Acetate_M0 + assert np.isclose( + a=optimized_params["Acetate_M0"], + b=0.01, + rtol=0.01 + ) + # Glutamate_q + assert np.isclose( + a=optimized_params["Glutamate_q"], + b=2, + rtol=0.01 + ) + # Glutamate_M0 + assert np.isclose( + a=optimized_params["Glutamate_M0"], + b=0.01, + rtol=0.01 + ) + +def test_steady_state_batch_model( + model_4_data: pd.DataFrame, + sds: physiofit.models.base_model.StandardDevs +): + io = IoHandler() + model = io.select_model( + "Steady-state batch model", + model_4_data + ) + model.get_params() + fitter = io.initialize_fitter( + data=model.data, + model=model, + sd=sds, + debug_mode=True + ) + fitter.optimize() + optimized_params = { + name: param for name, param in zip( + list(fitter.model.parameters.keys()), + fitter.parameter_stats["optimal"] + ) + } + # X_0 + assert np.isclose( + a=optimized_params["X_0"], + b=0.02, + rtol=0.01 + ) + # growth_rate + assert np.isclose( + a=optimized_params["growth_rate"], + b=0.8, + rtol=0.01 + ) + # Glucose_q + assert np.isclose( + a=optimized_params["Glucose_q"], + b=-8, + rtol=0.01 + ) + # Glucose_M0 + assert np.isclose( + a=optimized_params["Glucose_M0"], + b=20, + rtol=0.01 + ) + # Acetate_q + assert np.isclose( + a=optimized_params["Acetate_q"], + b=3, + rtol=0.01 + ) + # Acetate_M0 + assert np.isclose( + a=optimized_params["Acetate_M0"], + b=0.01, + rtol=0.01 + ) + # Glutamate_q + assert np.isclose( + a=optimized_params["Glutamate_q"], + b=2, + rtol=0.01 + ) + # Glutamate_M0 + assert np.isclose( + a=optimized_params["Glutamate_M0"], + b=0.01, + rtol=0.01 + ) def test_monod_model(monod_model_sds, monod_model_data): From 8135088fd368dc5873e377cacdc6b63912529c70 Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 09:52:52 +0200 Subject: [PATCH 032/114] refactoring --- physiofit/ui/gui.py | 120 +++++++++++++++++++++++++++----------------- 1 file changed, 75 insertions(+), 45 deletions(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index ce1f925..6e032a8 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -14,6 +14,7 @@ logger = logging.getLogger(f"physiofit.{__name__}") + class App: """ Physiofit Graphical User Interface @@ -22,9 +23,9 @@ class App: def __init__(self): self.defaults = { - "iterations" : 100, - "sd" : StandardDevs(), - "mc" : True + "iterations": 100, + "sd": StandardDevs(), + "mc": True } self.select_menu = None self.io = None @@ -36,7 +37,8 @@ def start_app(self): st.set_page_config(page_title=f"PhysioFit (v{physiofit.__version__})") st.title(f"Welcome to PhysioFit (v{physiofit.__version__})") - st.write("Documentation available at [https://physiofit.readthedocs.io](https://physiofit.readthedocs.io).") + st.write( + "Documentation available at [https://physiofit.readthedocs.io](https://physiofit.readthedocs.io).") self.update_info = st.empty() self.check_uptodate() self.select_menu = st.selectbox( @@ -92,9 +94,11 @@ def _initialize_opt_menu(self): # Get parameters from yaml file self.config_parser = self.io.read_yaml(self.data_file) # Load data into io_handler - self.io.data = self.io.read_data(self.config_parser.path_to_data) + self.io.data = self.io.read_data( + self.config_parser.path_to_data) except Exception: - st.error("An error has occurred when reading the yaml configuration file.") + st.error( + "An error has occurred when reading the yaml configuration file.") raise elif file_extension in ["tsv", "txt"]: try: @@ -127,9 +131,10 @@ def _initialize_opt_menu(self): # Initialize the list of available models self.io.get_models() except Exception: - st.error(f"An error has occurred when listing models from the models folder: " - f"\n{Path(__file__).parent / 'models'}. Please correct the model or submit an issue at " - f"github.com/MetaSys-LISBP/PhysioFit/issues") + st.error( + f"An error has occurred when listing models from the models folder: " + f"\n{Path(__file__).parent / 'models'}. Please correct the model or submit an issue at " + f"github.com/MetaSys-LISBP/PhysioFit/issues") raise # Build menu @@ -146,11 +151,11 @@ def _initialize_opt_menu(self): if not self.io.wkdir: raise ValueError("No output directory selected") self.config_parser = ConfigParser( - path_to_data =self.io.wkdir / self.data_file.name, - selected_model= self.model, - sds = self.sd, - mc = self.mc, - iterations = self.iterations + path_to_data=self.io.wkdir / self.data_file.name, + selected_model=self.model, + sds=self.sd, + mc=self.mc, + iterations=self.iterations ) full_dataframe = self.io.data.copy() @@ -162,7 +167,7 @@ def _initialize_opt_menu(self): # final_table_dict = {} self.model.data = full_dataframe[ full_dataframe["experiments"] == experiment - ].drop("experiments", axis=1).copy() + ].drop("experiments", axis=1).copy() self.io.res_path = results_path / str(experiment) if not self.io.res_path.is_dir(): @@ -188,7 +193,8 @@ def _initialize_opt_menu(self): orient="columns" ) df.index = [ - f"{experiment} {param}" for param in fitter.model.parameters.keys() + f"{experiment} {param}" for param in + fitter.model.parameters.keys() ] st.write(df) self.io.multiple_experiments.append(df) @@ -223,15 +229,19 @@ def _initialize_opt_menu_widgets(self, file_extension): model_options = [ model.name for model in self.io.models ] + idx = None if self.config_parser: if self.config_parser.model: try: - idx = model_options.index(self.config_parser.model["model_name"]) + idx = model_options.index( + self.config_parser.model["model_name"]) except Exception: - st.error("Error while reading model name from configuration file") + st.error( + "Error while reading model name from configuration " + "file" + ) raise - else: - idx = None + model_name = st.selectbox( label="Model", options=model_options, @@ -249,7 +259,8 @@ def _initialize_opt_menu_widgets(self, file_extension): self.model.get_params() self.silent_sim() except Exception as e: - st.error(f"The following error occurred with the selected model: {e}") + st.error( + f"The following error occurred with the selected model: {e}") raise else: st.success("Model successfully initialized") @@ -268,13 +279,15 @@ def _initialize_opt_menu_widgets(self, file_extension): enable_mc = False if self.mc else True self.iterations = st.number_input( "Number of iterations", - value=self.defaults["iterations"] if self.config_parser is None - else self.config_parser.iterations , + value=self.defaults[ + "iterations"] if self.config_parser is None + else self.config_parser.iterations, help="Number of iterations for Monte Carlo analysis.", disabled=enable_mc ) if self.iterations < 0: - st.error("ERROR: Number of Monte-Carlo iterations must be a positive integer") + st.error( + "ERROR: Number of Monte-Carlo iterations must be a positive integer") self.debug_mode = st.checkbox( "Verbose logs", help="Useful in case of trouble. Join it to the " @@ -286,8 +299,10 @@ def _initialize_opt_menu_widgets(self, file_extension): self._output_directory_selector() else: - self.io.wkdir = Path(self.config_parser.path_to_data).resolve().parent - self.io.res_path = self.io.wkdir / (self.io.wkdir.name + "_res") + self.io.wkdir = Path( + self.config_parser.path_to_data).resolve().parent + self.io.res_path = self.io.wkdir / ( + self.io.wkdir.name + "_res") # Build the form for advanced parameters form = st.form("Parameter_form") @@ -300,7 +315,7 @@ def _initialize_opt_menu_widgets(self, file_extension): st.write("Parameter Name") for key in self.model.parameters: st.text_input( - label="label", # Unused + label="label", # Unused label_visibility="collapsed", value=key, key=f"Parameter_name_{key}", @@ -310,10 +325,11 @@ def _initialize_opt_menu_widgets(self, file_extension): st.write("Parameter Value") for key, value in self.model.parameters.items(): st.text_input( - label="label", # Unused - label_visibility = "collapsed", + label="label", # Unused + label_visibility="collapsed", value=value if self.config_parser is None - else self.config_parser.model["parameters_to_estimate"][key], + else self.config_parser.model[ + "parameters_to_estimate"][key], key=f"Parameter_value_{key}" ) with col3: @@ -323,7 +339,9 @@ def _initialize_opt_menu_widgets(self, file_extension): label="label", # Unused label_visibility="collapsed", value=bound[0] if self.config_parser is None - else literal_eval(self.config_parser.model["bounds"][key])[0], + else literal_eval( + self.config_parser.model["bounds"][key])[ + 0], key=f"Parameter_lower_{key}" ) with col4: @@ -333,7 +351,9 @@ def _initialize_opt_menu_widgets(self, file_extension): label="label", # Unused label_visibility="collapsed", value=bound[1] if self.config_parser is None - else literal_eval(self.config_parser.model["bounds"][key])[1], + else literal_eval( + self.config_parser.model["bounds"][key])[ + 1], key=f"Parameter_upper_{key}" ) @@ -345,7 +365,7 @@ def _initialize_opt_menu_widgets(self, file_extension): st.write("Parameter Name") for key in self.model.args[param].keys(): st.text_input( - label="label", # Unused + label="label", # Unused label_visibility="collapsed", value=key, key=f"Fixed_{param}_{key}", @@ -353,12 +373,14 @@ def _initialize_opt_menu_widgets(self, file_extension): ) with col2: st.write("Parameter Value") - for key, value in self.model.args[param].items(): + for key, value in self.model.args[ + param].items(): st.text_input( - label="label", # Unused + label="label", # Unused label_visibility="collapsed", value=value if self.config_parser is None - else self.config_parser.model["fixed_parameters"][key], + else self.config_parser.model[ + "fixed_parameters"][key], key=f"Fixed_{param}_value_{key}" ) @@ -399,7 +421,8 @@ def _get_data_from_session_state(self): # Start with estimable parameters # Get order of parameter names to build dict - estimable_parameter_name_order = [key for key in self.model.parameters.keys()] + estimable_parameter_name_order = [key for key in + self.model.parameters.keys()] for name in estimable_parameter_name_order: try: # Get values from widgets @@ -407,7 +430,8 @@ def _get_data_from_session_state(self): self.model.parameters[name] = 0 else: self.model.parameters[name] = literal_eval( - st.session_state[f"Parameter_value_{name}"].lstrip("0") # Strip leading zeroes to stop eval errors + st.session_state[f"Parameter_value_{name}"].lstrip("0") + # Strip leading zeroes to stop eval errors ) # Get bounds if st.session_state[f"Parameter_lower_{name}"] == "0": @@ -417,7 +441,9 @@ def _get_data_from_session_state(self): ) lower_bound = 0 else: - lower_bound = literal_eval(st.session_state[f"Parameter_lower_{name}"].lstrip("0")) + lower_bound = literal_eval( + st.session_state[f"Parameter_lower_{name}"].lstrip( + "0")) if st.session_state[f"Parameter_upper_{name}"] == "0": st.warning( f"WARNING: {name} has an upper bound at 0. Sometimes this might confuse the optimizer. We " @@ -425,7 +451,9 @@ def _get_data_from_session_state(self): ) upper_bound = 0 else: - upper_bound = literal_eval(st.session_state[f"Parameter_upper_{name}"].lstrip("0")) + upper_bound = literal_eval( + st.session_state[f"Parameter_upper_{name}"].lstrip( + "0")) self.model.bounds[name] = ( lower_bound, upper_bound @@ -443,11 +471,13 @@ def _get_data_from_session_state(self): for param in fixed_parameter_classes: for key in self.model.args[param].keys(): try: - if st.session_state[f"Fixed_{param}_value_{key}"] == "0": + if st.session_state[ + f"Fixed_{param}_value_{key}"] == "0": self.model.args[param][key] = 0 else: self.model.args[param][key] = literal_eval( - st.session_state[f"Fixed_{param}_value_{key}"].lstrip("0") + st.session_state[ + f"Fixed_{param}_value_{key}"].lstrip("0") ) except ValueError: st.error( @@ -461,11 +491,12 @@ def _get_data_from_session_state(self): for name in sd_name_order: try: if st.session_state[f"Fixed_{name}_sd_value"] == "0": - self.sd[name] = 0 # will raise Value Error as expected + self.sd[name] = 0 # will raise Value Error as expected else: # Get values from widgets self.sd[name] = literal_eval( - st.session_state[f"Fixed_{name}_sd_value"].lstrip("0") # Strip leading zeroes to stop eval errors + st.session_state[f"Fixed_{name}_sd_value"].lstrip("0") + # Strip leading zeroes to stop eval errors ) except ValueError: st.error( @@ -529,7 +560,6 @@ def _output_directory_selector(self): self.io.res_path.mkdir() - if __name__ == "__main__": physiofit_app = App() physiofit_app.start_app() From ad17060fbbfab3f723dc319b2025b10752d1f9db Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 09:55:19 +0200 Subject: [PATCH 033/114] removed clipping of simulated dataframe. Fixed bug in model name attribute --- physiofit/models/model_1.py | 2 +- physiofit/models/model_2.py | 2 +- physiofit/models/model_3.py | 9 +++++---- physiofit/models/model_4.py | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/physiofit/models/model_1.py b/physiofit/models/model_1.py index 8f5b67d..5e7558a 100644 --- a/physiofit/models/model_1.py +++ b/physiofit/models/model_1.py @@ -93,4 +93,4 @@ def simulate( -k * time_vector)) + m_0 * np.exp(-k * time_vector) simulated_matrix[:, i] = np.concatenate((m_t_lag, mult_by_time)) - return np.clip(simulated_matrix, a_min=0, a_max=None) + return simulated_matrix diff --git a/physiofit/models/model_2.py b/physiofit/models/model_2.py index 60afe48..17a61e7 100644 --- a/physiofit/models/model_2.py +++ b/physiofit/models/model_2.py @@ -81,4 +81,4 @@ def simulate( mult_by_time = q * (x_0 / mu) * exp_mu_t_lag + m_0 simulated_matrix[:, i] = np.concatenate((m_t_lag, mult_by_time)) - return np.clip(simulated_matrix, a_min=0, a_max=None) + return simulated_matrix diff --git a/physiofit/models/model_3.py b/physiofit/models/model_3.py index ce393f4..f2b6393 100644 --- a/physiofit/models/model_3.py +++ b/physiofit/models/model_3.py @@ -13,7 +13,8 @@ class ChildModel(Model): def __init__(self, data): super().__init__(data) - self.model_name = "Steady-state batch model with degradation of metabolites" + self.name = ("Steady-state batch model with degradation of " + "metabolites") self.vini = 1 self.parameters = None self.args = None @@ -21,8 +22,8 @@ def __init__(self, data): def get_params(self): self.parameters = { - "X_0" : self.vini, - "growth_rate" : self.vini + "X_0": self.vini, + "growth_rate": self.vini } self.args = {"Degradation": { met: 0 for met in self.metabolites @@ -47,7 +48,7 @@ def get_params(self): ) self.args = {"Degradation": { met: 0 for met in self.metabolites - } + } } @staticmethod diff --git a/physiofit/models/model_4.py b/physiofit/models/model_4.py index f4672fb..7faf6d9 100644 --- a/physiofit/models/model_4.py +++ b/physiofit/models/model_4.py @@ -64,4 +64,4 @@ def simulate( q, m_0 = parameters[i * 2:i * 2 + 2] simulated_matrix[:, i] = q * (x_0 / mu) * (exp_mu_t - 1) + m_0 - return np.clip(simulated_matrix, a_min=0, a_max=None) + return simulated_matrix From f58a4547437f6bc3142d09eba88f7a62c8a552a3 Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 09:55:42 +0200 Subject: [PATCH 034/114] split model tests into different files --- physiofit/tests/test_base.py | 14 ++-- physiofit/tests/test_model_1.py | 138 +++++++++++++++++++++++++++++++ physiofit/tests/test_model_2.py | 134 ++++++++++++++++++++++++++++++ physiofit/tests/test_model_4.py | 141 ++++++++++++++++++++++++++++++++ 4 files changed, 421 insertions(+), 6 deletions(-) create mode 100644 physiofit/tests/test_model_1.py create mode 100644 physiofit/tests/test_model_2.py create mode 100644 physiofit/tests/test_model_4.py diff --git a/physiofit/tests/test_base.py b/physiofit/tests/test_base.py index d1f4f84..b83996e 100644 --- a/physiofit/tests/test_base.py +++ b/physiofit/tests/test_base.py @@ -24,8 +24,8 @@ def test_physiofitter(base_test_data): ) assert isinstance(fitter, physiofit.base.fitter.PhysioFitter) -def test_simulation(base_test_data): +def test_simulation(base_test_data): io = physiofit.base.io.IoHandler() model = io.select_model("Steady-state batch model", base_test_data) model.get_params() @@ -37,8 +37,8 @@ def test_simulation(base_test_data): ) assert isinstance(sim_mat, np.ndarray) -def test_wrong_entry_for_model_data(base_test_data): +def test_wrong_entry_for_model_data(base_test_data): with pytest.raises(AttributeError): io = physiofit.base.io.IoHandler() model = io.select_model("Steady-state batch model", None) @@ -46,7 +46,7 @@ def test_wrong_entry_for_model_data(base_test_data): model = io.select_model( "Steady-state batch model", np.array( - [[0, 1, 2],[0, 1, 2]] + [[0, 1, 2], [0, 1, 2]] ) ) with pytest.raises(AttributeError): @@ -55,8 +55,8 @@ def test_wrong_entry_for_model_data(base_test_data): "Hello world this is an error" ) -def test_optimization_process(base_test_data): +def test_optimization_process(base_test_data): io = physiofit.base.io.IoHandler() model = io.select_model("Steady-state batch model", base_test_data) model.get_params() @@ -71,6 +71,7 @@ def test_optimization_process(base_test_data): for col in ["X", "Glucose", "Acetate"]: assert col in fitter.simulated_data.columns + def test_monte_carlo(base_test_data): io = physiofit.base.io.IoHandler() model = io.select_model("Steady-state batch model", base_test_data) @@ -86,10 +87,12 @@ def test_monte_carlo(base_test_data): assert hasattr(fitter, "matrices_ci") assert isinstance(fitter.matrices_ci["lower_ci"], np.ndarray) assert isinstance(fitter.matrices_ci["higher_ci"], np.ndarray) - assert np.subtract(fitter.matrices_ci["higher_ci"], fitter.matrices_ci["lower_ci"]).all() > 0 + assert np.subtract(fitter.matrices_ci["higher_ci"], + fitter.matrices_ci["lower_ci"]).all() > 0 assert hasattr(fitter, "parameter_stats") assert isinstance(fitter.parameter_stats, dict) + def test_that_simulated_and_experimental_matrices_are_close(base_test_data): io = physiofit.base.io.IoHandler() model = io.select_model("Steady-state batch model", base_test_data) @@ -107,4 +110,3 @@ def test_that_simulated_and_experimental_matrices_are_close(base_test_data): rtol=1, equal_nan=True ) - diff --git a/physiofit/tests/test_model_1.py b/physiofit/tests/test_model_1.py new file mode 100644 index 0000000..3612ece --- /dev/null +++ b/physiofit/tests/test_model_1.py @@ -0,0 +1,138 @@ +import logging + +import numpy as np +import pandas as pd +import pytest + +import physiofit +from physiofit.base.io import IoHandler + +logger = logging.getLogger(f"physiofit.{__name__}") +logger.setLevel(logging.CRITICAL) + + +@pytest.fixture +def model_1_data(): + """ Test data to use in tests for the model_1: Steady-state batch model + with lag phase and degradation of metabolites. Data is simulated using + synthetic parameters""" + + return pd.DataFrame({ + 'time': + {0: 0.0, 1: 0.2, 2: 0.4, 3: 0.6000000000000001, 4: 0.8, 5: 1.0, + 6: 1.2000000000000002, 7: 1.4000000000000001, 8: 1.6, 9: 1.8, + 10: 2.0, 11: 2.2, 12: 2.4000000000000004, 13: 2.6, + 14: 2.8000000000000003, 15: 3.0, 16: 3.2, 17: 3.4000000000000004, + 18: 3.6, 19: 3.8000000000000003, 20: 4.0, 21: 4.2, 22: 4.4, + 23: 4.6000000000000005, 24: 4.800000000000001, 25: 5.0, 26: 5.2, + 27: 5.4, 28: 5.6000000000000005, 29: 5.800000000000001}, + 'X': {0: 0.02, 1: 0.02, 2: 0.02, 3: 0.02, 4: 0.02, 5: 0.02, 6: 0.02, + 7: 0.020000000000000004, 8: 0.02347021741983621, + 9: 0.027542555286719145, 10: 0.03232148804385787, + 11: 0.037929617586099036, 12: 0.04451081856984937, + 13: 0.052233929468462365, 14: 0.061297084065860055, + 15: 0.07193279451138565, 16: 0.08441391633993109, + 17: 0.09906064848790236, 18: 0.1162487478880518, + 19: 0.13641916938581505, 20: 0.16008937828592706, + 21: 0.18786662574885568, 22: 0.2204635276128321, + 23: 0.25871634631086166, 24: 0.3036064448990781, + 25: 0.3562854635922441, 26: 0.4181048647018553, + 27: 0.49065060394218707, 28: 0.5757838175848543, + 29: 0.6756885692769915}, + 'Glucose': {0: 20.0, 1: 20.0, 2: 20.0, 3: 20.0, 4: 20.0, 5: 20.0, + 6: 20.0, 7: 20.0, 8: 19.96529782580164, + 9: 19.92457444713281, 10: 19.876785119561422, + 11: 19.82070382413901, 12: 19.754891814301505, + 13: 19.677660705315375, 14: 19.587029159341398, + 15: 19.480672054886142, 16: 19.35586083660069, + 17: 19.209393515120976, 18: 19.03751252111948, + 19: 18.83580830614185, 20: 18.59910621714073, + 21: 18.32133374251144, 22: 17.99536472387168, + 23: 17.612836536891383, 24: 17.163935551009217, + 25: 16.63714536407756, 26: 16.018951352981446, + 27: 15.293493960578129, 28: 14.442161824151459, + 29: 13.443114307230086}, + 'Acetate': {0: 0.01, 1: 0.01, 2: 0.01, 3: 0.01, 4: 0.01, 5: 0.01, + 6: 0.01, 7: 0.010000000000000018, 8: 0.02301331532438579, + 9: 0.03828458232519679, 10: 0.05620558016446701, + 11: 0.07723606594787139, 12: 0.10191556963693511, + 13: 0.13087723550673386, 14: 0.16486406524697522, + 15: 0.2047479794176962, 16: 0.2515521862747415, + 17: 0.30647743182963383, 18: 0.37093280458019423, + 19: 0.4465718851968064, 20: 0.5353351685722265, + 21: 0.6394998465582088, 22: 0.7617382285481203, + 23: 0.9051862986657312, 24: 1.0735241683715429, + 25: 1.2710704884709152, 26: 1.5028932426319574, + 27: 1.7749397647832015, 28: 2.0941893159432032, + 29: 2.4688321347887174}, + 'Glutamate': {0: 0.01, 1: 0.01, 2: 0.01, 3: 0.01, 4: 0.01, 5: 0.01, + 6: 0.01, 7: 0.019208259329602594, + 8: 0.023610395246550005, 9: 0.028582519462535216, + 10: 0.03425866658695014, 11: 0.040789758715681516, + 12: 0.04834769009296203, 13: 0.05712991123122743, + 14: 0.06736463708553629, 15: 0.07931681862148794, + 16: 0.09329503566241006, 17: 0.10965949168704309, + 18: 0.12883131882347953, 19: 0.15130343432821913, + 20: 0.17765322917572332, 21: 0.20855741600425604, + 22: 0.24480941874877596, 23: 0.28733975124185634, + 24: 0.33723990853504326, 25: 0.3957903846391713, + 26: 0.4644935361035855, 27: 0.5451121350575759, + 28: 0.6397146012044144, 29: 0.7507280735275471} + }) + + +def test_model_1_estimation( + model_1_data: pd.DataFrame, + sds: physiofit.models.base_model.StandardDevs +): + io = IoHandler() + model = io.select_model( + name="Steady-state batch model with lag phase and " + "degradation of metabolites", + data=model_1_data + ) + model.get_params() + model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamate": 1}} + fitter = io.initialize_fitter( + data=model.data, + model=model, + sd=sds, + debug_mode=False + ) + fitter.optimize() + + assert np.allclose( + a=fitter.parameter_stats["optimal"], + b=[0.02, 0.8, 1.4, -8, 20, 3, 0.01, 2, 0.01], + rtol=1e-3 + ) + + +def test_model_1_simulation( + placeholder_data, + parameters, + model_1_data +): + io = IoHandler() + model = io.select_model( + name="Steady-state batch model with lag phase and degradation of " + "metabolites", + data=placeholder_data + ) + model.get_params() + model.parameters.update(parameters) + model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamate": 1}} + sim_data = model.simulate( + list(model.parameters.values()), + model.data.drop("time", axis=1), + model.time_vector, + model.args + ) + df = pd.DataFrame( + data=sim_data, + index=model.time_vector, + columns=model.name_vector + ) + df.index.name = "time" + + pd.testing.assert_frame_equal(df.reset_index(), model_1_data) diff --git a/physiofit/tests/test_model_2.py b/physiofit/tests/test_model_2.py new file mode 100644 index 0000000..3c4b002 --- /dev/null +++ b/physiofit/tests/test_model_2.py @@ -0,0 +1,134 @@ +import logging + +import numpy as np +import pandas as pd +import pytest + +import physiofit +from physiofit.base.io import IoHandler + +logger = logging.getLogger(f"physiofit.{__name__}") +logger.setLevel(logging.CRITICAL) + + +@pytest.fixture +def model_2_data(): + """ Test data to use in tests for the model_1: Steady-state batch model + with lag phase and degradation of metabolites. Data is simulated using + synthetic parameters""" + + return pd.DataFrame( + {'time': {0: 0.0, 1: 0.2, 2: 0.4, 3: 0.6000000000000001, 4: 0.8, + 5: 1.0, 6: 1.2000000000000002, 7: 1.4000000000000001, 8: 1.6, + 9: 1.8, 10: 2.0, 11: 2.2, 12: 2.4000000000000004, 13: 2.6, + 14: 2.8000000000000003, 15: 3.0, 16: 3.2, + 17: 3.4000000000000004, 18: 3.6, 19: 3.8000000000000003, + 20: 4.0, 21: 4.2, 22: 4.4, 23: 4.6000000000000005, + 24: 4.800000000000001, 25: 5.0, 26: 5.2, 27: 5.4, + 28: 5.6000000000000005, 29: 5.800000000000001}, + 'X': {0: 0.02, 1: 0.02, 2: 0.02, 3: 0.02, 4: 0.02, 5: 0.02, 6: 0.02, + 7: 0.020000000000000004, 8: 0.02347021741983621, + 9: 0.027542555286719145, 10: 0.03232148804385787, + 11: 0.037929617586099036, 12: 0.04451081856984937, + 13: 0.052233929468462365, 14: 0.061297084065860055, + 15: 0.07193279451138565, 16: 0.08441391633993109, + 17: 0.09906064848790236, 18: 0.1162487478880518, + 19: 0.13641916938581505, 20: 0.16008937828592706, + 21: 0.18786662574885568, 22: 0.2204635276128321, + 23: 0.25871634631086166, 24: 0.3036064448990781, + 25: 0.3562854635922441, 26: 0.4181048647018553, + 27: 0.49065060394218707, 28: 0.5757838175848543, + 29: 0.6756885692769915}, + 'Glucose': {0: 20.0, 1: 20.0, 2: 20.0, 3: 20.0, 4: 20.0, 5: 20.0, + 6: 20.0, 7: 20.0, 8: 19.96529782580164, + 9: 19.92457444713281, 10: 19.876785119561422, + 11: 19.82070382413901, 12: 19.754891814301505, + 13: 19.677660705315375, 14: 19.587029159341398, + 15: 19.480672054886142, 16: 19.35586083660069, + 17: 19.209393515120976, 18: 19.03751252111948, + 19: 18.83580830614185, 20: 18.59910621714073, + 21: 18.32133374251144, 22: 17.99536472387168, + 23: 17.612836536891383, 24: 17.163935551009217, + 25: 16.63714536407756, 26: 16.018951352981446, + 27: 15.293493960578129, 28: 14.442161824151459, + 29: 13.443114307230086}, + 'Acetate': {0: 0.01, 1: 0.01, 2: 0.01, 3: 0.01, 4: 0.01, 5: 0.01, + 6: 0.01, 7: 0.010000000000000018, 8: 0.02301331532438579, + 9: 0.03828458232519679, 10: 0.05620558016446701, + 11: 0.07723606594787139, 12: 0.10191556963693511, + 13: 0.13087723550673386, 14: 0.16486406524697522, + 15: 0.2047479794176962, 16: 0.2515521862747415, + 17: 0.30647743182963383, 18: 0.37093280458019423, + 19: 0.4465718851968064, 20: 0.5353351685722265, + 21: 0.6394998465582088, 22: 0.7617382285481203, + 23: 0.9051862986657312, 24: 1.0735241683715429, + 25: 1.2710704884709152, 26: 1.5028932426319574, + 27: 1.7749397647832015, 28: 2.0941893159432032, + 29: 2.4688321347887174}, + 'Glutamate': {0: 0.01, 1: 0.01, 2: 0.01, 3: 0.01, 4: 0.01, 5: 0.01, + 6: 0.01, 7: 0.01000000000000001, + 8: 0.018675543549590525, 9: 0.02885638821679786, + 10: 0.04080372010964467, 11: 0.05482404396524759, + 12: 0.0712770464246234, 13: 0.0905848236711559, + 14: 0.11324271016465012, 15: 0.13983198627846413, + 16: 0.1710347908498277, 17: 0.20765162121975586, + 18: 0.25062186972012945, 19: 0.30104792346453757, + 20: 0.3602234457148176, 21: 0.4296665643721392, + 22: 0.5111588190320802, 23: 0.6067908657771541, + 24: 0.7190161122476952, 25: 0.8507136589806101, + 26: 1.0052621617546382, 27: 1.1866265098554676, + 28: 1.3994595439621356, 29: 1.6492214231924784}} + ) + + +def test_model_2_estimation( + model_2_data: pd.DataFrame, + sds: physiofit.models.base_model.StandardDevs +): + io = IoHandler() + model = io.select_model( + name="Steady-state batch model with lag phase", + data=model_2_data + ) + model.get_params() + fitter = io.initialize_fitter( + data=model.data, + model=model, + sd=sds, + debug_mode=False + ) + fitter.optimize() + + assert np.allclose( + a=fitter.parameter_stats["optimal"], + b=[0.02, 0.8, 1.4, -8, 20, 3, 0.01, 2, 0.01], + rtol=1e-3 + ) + + +def test_model_2_simulation( + placeholder_data, + parameters, + model_2_data +): + io = IoHandler() + model = io.select_model( + name="Steady-state batch model with lag phase", + data=placeholder_data + ) + model.get_params() + model.parameters.update(parameters) + sim_data = model.simulate( + list(model.parameters.values()), + model.data.drop("time", axis=1), + model.time_vector, + model.args + ) + df = pd.DataFrame( + data=sim_data, + index=model.time_vector, + columns=model.name_vector + ) + df.index.name = "time" + + pd.testing.assert_frame_equal(df.reset_index(), model_2_data) diff --git a/physiofit/tests/test_model_4.py b/physiofit/tests/test_model_4.py new file mode 100644 index 0000000..82200e6 --- /dev/null +++ b/physiofit/tests/test_model_4.py @@ -0,0 +1,141 @@ +import logging + +import numpy as np +import pandas as pd +import pytest + +import physiofit +from physiofit.base.io import IoHandler + +logger = logging.getLogger(f"physiofit.{__name__}") +logger.setLevel(logging.CRITICAL) + + +@pytest.fixture +def model_2_data(): + """ Test data to use in tests for the model_1: Steady-state batch model + with lag phase and degradation of metabolites. Data is simulated using + synthetic parameters""" + + return pd.DataFrame( + {'time': {0: 0.0, 1: 0.2, 2: 0.4, 3: 0.6000000000000001, 4: 0.8, + 5: 1.0, 6: 1.2000000000000002, 7: 1.4000000000000001, 8: 1.6, + 9: 1.8, 10: 2.0, 11: 2.2, 12: 2.4000000000000004, 13: 2.6, + 14: 2.8000000000000003, 15: 3.0, 16: 3.2, + 17: 3.4000000000000004, 18: 3.6, 19: 3.8000000000000003, + 20: 4.0, 21: 4.2, 22: 4.4, 23: 4.6000000000000005, + 24: 4.800000000000001, 25: 5.0, 26: 5.2, 27: 5.4, + 28: 5.6000000000000005, 29: 5.800000000000001}, + 'X': {0: 0.02, 1: 0.023470217419836206, 2: 0.027542555286719145, + 3: 0.03232148804385787, 4: 0.037929617586099036, + 5: 0.044510818569849356, 6: 0.052233929468462365, + 7: 0.06129708406586005, 8: 0.07193279451138565, + 9: 0.08441391633993106, 10: 0.0990606484879023, + 11: 0.1162487478880518, 12: 0.13641916938581505, + 13: 0.16008937828592706, 14: 0.18786662574885568, + 15: 0.2204635276128321, 16: 0.25871634631086166, + 17: 0.3036064448990781, 18: 0.3562854635922441, + 19: 0.4181048647018553, 20: 0.49065060394218707, + 21: 0.5757838175848538, 22: 0.6756885692769915, + 23: 0.7929278814514524, 24: 0.9305094887957849, + 25: 1.0919630006628847, 26: 1.281430451998733, + 27: 1.5037725658404621, 28: 1.7646934535130303, + 29: 2.070886951665622}, + 'Glucose': {0: 20.0, 1: 19.96529782580164, 2: 19.92457444713281, + 3: 19.876785119561422, 4: 19.82070382413901, + 5: 19.754891814301505, 6: 19.677660705315375, + 7: 19.587029159341398, 8: 19.480672054886142, + 9: 19.35586083660069, 10: 19.209393515120976, + 11: 19.03751252111948, 12: 18.83580830614185, + 13: 18.59910621714073, 14: 18.32133374251144, + 15: 17.99536472387168, 16: 17.612836536891383, + 17: 17.163935551009217, 18: 16.63714536407756, + 19: 16.018951352981446, 20: 15.293493960578129, + 21: 14.442161824151462, 22: 13.443114307230086, + 23: 12.270721185485478, 24: 10.894905112042153, + 25: 9.280369993371155, 26: 7.385695480012673, + 27: 5.16227434159538, 28: 2.5530654648697, 29: 0.0}, + 'Acetate': {0: 0.01, 1: 0.02301331532438577, 2: 0.03828458232519679, + 3: 0.05620558016446701, 4: 0.07723606594787137, + 5: 0.10191556963693509, 6: 0.13087723550673386, + 7: 0.1648640652469752, 8: 0.2047479794176962, + 9: 0.25155218627474146, 10: 0.3064774318296336, + 11: 0.37093280458019423, 12: 0.4465718851968064, + 13: 0.5353351685722265, 14: 0.6394998465582088, + 15: 0.7617382285481203, 16: 0.9051862986657312, + 17: 1.0735241683715429, 18: 1.2710704884709152, + 19: 1.5028932426319574, 20: 1.7749397647832015, + 21: 2.094189315943201, 22: 2.4688321347887174, + 23: 2.908479555442946, 24: 3.424410582984193, + 25: 4.0298612524858175, 26: 4.740364194995248, + 27: 5.574147121901733, 28: 6.552600450673863, + 29: 7.700826068746083}, + 'Glutamate': {0: 0.01, 1: 0.018675543549590515, + 2: 0.02885638821679786, 3: 0.04080372010964467, + 4: 0.05482404396524758, 5: 0.07127704642462339, + 6: 0.0905848236711559, 7: 0.11324271016465011, + 8: 0.13983198627846413, 9: 0.17103479084982764, + 10: 0.20765162121975575, 11: 0.25062186972012945, + 12: 0.30104792346453757, 13: 0.3602234457148176, + 14: 0.4296665643721392, 15: 0.5111588190320802, + 16: 0.6067908657771541, 17: 0.7190161122476952, + 18: 0.8507136589806101, 19: 1.0052621617546382, + 20: 1.1866265098554676, 21: 1.3994595439621342, + 22: 1.6492214231924784, 23: 1.9423197036286308, + 24: 2.2862737219894615, 25: 2.689907501657211, + 26: 3.1635761299968315, 27: 3.719431414601155, + 28: 4.371733633782575, 29: 5.1372173791640545}} + ) + + +def test_model_4_estimation( + model_4_data: pd.DataFrame, + sds: physiofit.models.base_model.StandardDevs +): + io = IoHandler() + model = io.select_model( + name="Steady-state batch model", + data=model_4_data + ) + model.get_params() + fitter = io.initialize_fitter( + data=model.data, + model=model, + sd=sds, + debug_mode=False + ) + fitter.optimize() + + assert np.allclose( + a=fitter.parameter_stats["optimal"], + b=[0.02, 0.8, -8, 20, 3, 0.01, 2, 0.01], + rtol=1e-3 + ) + + +def test_model_4_simulation( + placeholder_data, + parameters, + model_4_data +): + io = IoHandler() + model = io.select_model( + name="Steady-state batch model", + data=placeholder_data + ) + model.get_params() + model.parameters.update(parameters) + sim_data = model.simulate( + list(model.parameters.values()), + model.data.drop("time", axis=1), + model.time_vector, + model.args + ) + df = pd.DataFrame( + data=sim_data, + index=model.time_vector, + columns=model.name_vector + ) + df.index.name = "time" + + pd.testing.assert_frame_equal(df.reset_index(), model_4_data) From ac24491257c4b63cca004e34042b28d3b904c293 Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 09:55:49 +0200 Subject: [PATCH 035/114] split model tests into different files --- physiofit/tests/test_monod_model.py | 312 ++++++++++++++++++++++++++++ 1 file changed, 312 insertions(+) create mode 100644 physiofit/tests/test_monod_model.py diff --git a/physiofit/tests/test_monod_model.py b/physiofit/tests/test_monod_model.py new file mode 100644 index 0000000..cd0d063 --- /dev/null +++ b/physiofit/tests/test_monod_model.py @@ -0,0 +1,312 @@ +""" +This module contains tests for the models module. +""" +import numpy as np +import pandas as pd +import pytest +from numpy import array + +from physiofit.base.io import IoHandler + + +@pytest.fixture +def this_model_data(): + """ + Test data to use in tests for the Monod model. Data was simulated using + the pyFOOMB package (see the `example 6 notebook `_). + """ + return pd.DataFrame.from_dict( + { + 'time': array([0.00000000e+00, 1.60350555e-06, 1.29272201e-02, + 4.73210593e-02, + 8.17148984e-02, 1.16108738e-01, 1.68220493e-01, + 2.20332247e-01, + 3.10246576e-01, 4.00160904e-01, 4.90075232e-01, + 6.34757887e-01, + 7.79440543e-01, 9.24123199e-01, 1.21353541e+00, + 1.50294763e+00, + 1.79235984e+00, 2.08177205e+00, 2.37118427e+00, + 2.66059648e+00, + 2.95000869e+00, 3.23942091e+00, 3.52883312e+00, + 3.81824533e+00, + 4.10765755e+00, 4.39706976e+00, 4.68648197e+00, + 4.97589419e+00, + 5.26530640e+00, 5.55471861e+00, 5.75429441e+00, + 5.95387020e+00, + 6.15344600e+00, 6.46543931e+00, 6.69021058e+00, + 6.91498185e+00, + 7.13975312e+00, 7.36452439e+00, 7.58929566e+00, + 7.81406694e+00, + 8.03883821e+00, 8.26360948e+00, 8.48838075e+00, + 8.71315202e+00, + 8.93792329e+00, 9.29231855e+00, 9.64671381e+00, + 9.87042767e+00, + 1.00941415e+01, 1.03178554e+01, 1.04707829e+01, + 1.06237105e+01, + 1.07766381e+01, 1.08876690e+01, 1.09986998e+01, + 1.11097307e+01, + 1.11913085e+01, 1.12728862e+01, 1.13544640e+01, + 1.14360417e+01, + 1.14912119e+01, 1.15463820e+01, 1.16015522e+01, + 1.16567224e+01, + 1.17118925e+01, 1.17670627e+01, 1.18060238e+01, + 1.18344243e+01, + 1.18628249e+01, 1.18912255e+01, 1.19196261e+01, + 1.19480267e+01, + 1.19764272e+01, 1.20048278e+01, 1.20247743e+01, + 1.20447208e+01, + 1.20646672e+01, 1.20846137e+01, 1.21045602e+01, + 1.21245066e+01, + 1.21444531e+01, 1.21685210e+01, 1.21859235e+01, + 1.22033260e+01, + 1.22207286e+01, 1.22381311e+01, 1.22555336e+01, + 1.22729361e+01, + 1.22903386e+01, 1.23166077e+01, 1.23428768e+01, + 1.23691459e+01, + 1.23954150e+01, 1.24216840e+01, 1.24479531e+01, + 1.24742222e+01, + 1.25004913e+01, 1.25267604e+01, 1.25530294e+01, + 1.25792985e+01, + 1.26055676e+01, 1.26318367e+01, 1.26581058e+01, + 1.26843748e+01, + 1.27106439e+01, 1.27369130e+01, 1.27631821e+01, + 1.27894512e+01, + 1.28157202e+01, 1.28419893e+01, 1.28682584e+01, + 1.28945275e+01, + 1.29207966e+01, 1.29470656e+01, 1.29733347e+01, + 1.29996038e+01, + 1.30434980e+01, 1.30873922e+01, 1.31312864e+01, + 1.31751806e+01, + 1.32190748e+01, 1.33125773e+01, 1.34060797e+01, + 1.34995821e+01, + 1.35930846e+01, 1.36865870e+01, 1.38890130e+01, + 1.40914391e+01, + 1.42938651e+01, 1.44962911e+01, 1.48659380e+01, + 1.52355849e+01, + 1.72063049e+01, 1.91770248e+01, 2.11477447e+01, + 2.40000000e+01]), + 'X': array([0.01, 0.01000001, 0.01007442, 0.01027505, 0.01047923, + 0.01068731, 0.01101048, 0.01134339, 0.01194165, + 0.01257137, + 0.01323421, 0.01437495, 0.01561403, 0.01695993, + 0.02001104, + 0.02361154, 0.02785903, 0.03286946, 0.03878035, + 0.04575387, + 0.05398109, 0.06368717, 0.07513765, 0.08864571, + 0.10458067, + 0.12337794, 0.14555081, 0.17170425, 0.20255118, + 0.23893152, + 0.26775043, 0.30003795, 0.33621059, 0.40167063, + 0.45656932, + 0.51894332, 0.58980393, 0.67029632, 0.76171532, + 0.86552457, + 0.98337771, 1.1171406, 1.26891467, 1.44106161, + 1.63622853, + 1.99798087, 2.43767005, 2.7622085, 3.12812855, + 3.53985117, + 3.84993488, 4.18478847, 4.54549087, 4.82397847, + 5.11648553, + 5.42271114, 5.65601237, 5.89573243, 6.14096851, + 6.39034286, + 6.56033205, 6.73039381, 6.89934182, 7.06561194, + 7.22714514, + 7.38125988, 7.48380463, 7.5543561, 7.6207073, + 7.68225962, + 7.73844325, 7.78877027, 7.832898, 7.87069075, + 7.89349971, + 7.91335326, 7.93042318, 7.94492736, 7.95711585, + 7.96725552, + 7.97561473, 7.98369653, 7.98839427, 7.99229022, + 7.99550949, + 7.99816155, 8.00034043, 8.00212643, 8.00358754, + 8.00530201, + 8.00656218, 8.00748644, 8.00816315, 8.00865792, + 8.00901952, + 8.00928373, 8.0094769, 8.009618, 8.00972111, 8.0097963, + 8.00985127, 8.00989131, 8.0099207, 8.00994203, + 8.00995777, + 8.00996906, 8.00997753, 8.00998398, 8.00998881, + 8.00999209, + 8.0099942, 8.00999568, 8.00999685, 8.00999776, + 8.00999839, + 8.0099988, 8.00999914, 8.00999925, 8.00999936, + 8.00999958, + 8.00999978, 8.01000023, 8.01000049, 8.01000039, + 8.01000014, + 8.00999999, 8.00999983, 8.00999989, 8.00999998, + 8.01000001, + 8.01000002, 8.01000001, 8.01000001, 8.01, 8.01, + 8.01]), + 'S_substrate': array([2.00000000e+01, 2.00000000e+01, + 1.99998140e+01, 1.99993124e+01, + 1.99988019e+01, 1.99982817e+01, + 1.99974738e+01, 1.99966415e+01, + 1.99951459e+01, 1.99935716e+01, + 1.99919145e+01, 1.99890626e+01, + 1.99859649e+01, 1.99826002e+01, + 1.99749724e+01, 1.99659711e+01, + 1.99553524e+01, 1.99428263e+01, + 1.99280491e+01, 1.99106153e+01, + 1.98900473e+01, 1.98657821e+01, + 1.98371559e+01, 1.98033857e+01, + 1.97635483e+01, 1.97165551e+01, + 1.96611230e+01, 1.95957394e+01, + 1.95186221e+01, 1.94276712e+01, + 1.93556239e+01, 1.92749051e+01, + 1.91844735e+01, 1.90208234e+01, + 1.88835767e+01, 1.87276417e+01, + 1.85504902e+01, 1.83492592e+01, + 1.81207117e+01, 1.78611886e+01, + 1.75665557e+01, 1.72321485e+01, + 1.68527133e+01, 1.64223460e+01, + 1.59344287e+01, 1.50300478e+01, + 1.39308249e+01, 1.31194788e+01, + 1.22046786e+01, 1.11753721e+01, + 1.04001628e+01, 9.56302883e+00, + 8.66127282e+00, 7.96505382e+00, + 7.23378617e+00, 6.46822216e+00, + 5.88496908e+00, 5.28566893e+00, + 4.67257871e+00, 4.04914285e+00, + 3.62416986e+00, 3.19901547e+00, + 2.77664545e+00, 2.36097015e+00, + 1.95713716e+00, 1.57185031e+00, + 1.31548844e+00, 1.13910974e+00, + 9.73231747e-01, 8.19350947e-01, + 6.78891873e-01, 5.53074324e-01, + 4.42754998e-01, 3.48273128e-01, + 2.91250720e-01, 2.41616847e-01, + 1.98942058e-01, 1.62681603e-01, + 1.32210371e-01, 1.06861209e-01, + 8.59631646e-02, 6.57586866e-02, + 5.40143186e-02, 4.42744583e-02, + 3.62262631e-02, 2.95961315e-02, + 2.41489235e-02, 1.96839254e-02, + 1.60311546e-02, 1.17449793e-02, + 8.59454568e-03, 6.28390615e-03, + 4.59212605e-03, 3.35519709e-03, + 2.45120231e-03, 1.79067835e-03, + 1.30776192e-03, 9.55007216e-04, + 6.97213900e-04, 5.09252537e-04, + 3.71823858e-04, 2.71722143e-04, + 1.98247751e-04, 1.44928061e-04, + 1.05565573e-04, 7.73542359e-05, + 5.61825443e-05, 4.00431335e-05, + 2.79801017e-05, 1.97696425e-05, + 1.44933367e-05, 1.07997649e-05, + 7.87411266e-06, 5.60487745e-06, + 4.03634962e-06, 3.00250108e-06, + 2.14584915e-06, 1.88743404e-06, + 1.59825382e-06, 1.06207944e-06, + 5.43902318e-07, -5.74527374e-07, + -1.22798991e-06, -9.68733873e-07, + -3.40860531e-07, 1.53153067e-08, + 4.18994832e-07, 2.87157290e-07, + 5.58479234e-08, -2.89640501e-08, + -5.52070633e-08, -1.66479591e-08, + -1.30759119e-08, -7.30389711e-10, + 2.00891153e-10, 5.95679793e-12]), + 'P_product': array([0.00000000e+00, 2.74886917e-09, + 2.23258390e-05, 8.25140254e-05, + 1.43767584e-04, 2.06194151e-04, 3.03143993e-04, + 4.03017093e-04, + 5.82495354e-04, 7.71411381e-04, 9.70263731e-04, + 1.31248487e-03, + 1.68421018e-03, 2.08797802e-03, 3.00331127e-03, + 4.08346290e-03, + 5.35770852e-03, 6.86083829e-03, 8.63410359e-03, + 1.07261620e-02, + 1.31943273e-02, 1.61061506e-02, 1.95412948e-02, + 2.35937144e-02, + 2.83742018e-02, 3.40133825e-02, 4.06652418e-02, + 4.85112736e-02, + 5.77653536e-02, 6.86794565e-02, 7.73251291e-02, + 8.70113850e-02, + 9.78631769e-02, 1.17501188e-01, 1.33970795e-01, + 1.52682996e-01, + 1.73941180e-01, 1.98088897e-01, 2.25514595e-01, + 2.56657370e-01, + 2.92013313e-01, 3.32142179e-01, 3.77674401e-01, + 4.29318484e-01, + 4.87868560e-01, 5.96394260e-01, 7.28301016e-01, + 8.25662550e-01, + 9.35438564e-01, 1.05895535e+00, 1.15198046e+00, + 1.25243654e+00, + 1.36064726e+00, 1.44419354e+00, 1.53194566e+00, + 1.62381334e+00, + 1.69380371e+00, 1.76571973e+00, 1.83929055e+00, + 1.91410286e+00, + 1.96509962e+00, 2.01611814e+00, 2.06680255e+00, + 2.11668358e+00, + 2.16514354e+00, 2.21137796e+00, 2.24214139e+00, + 2.26330683e+00, + 2.28321219e+00, 2.30167789e+00, 2.31853298e+00, + 2.33363108e+00, + 2.34686940e+00, 2.35820722e+00, 2.36504991e+00, + 2.37100598e+00, + 2.37612695e+00, 2.38047821e+00, 2.38413476e+00, + 2.38717665e+00, + 2.38968442e+00, 2.39210896e+00, 2.39351828e+00, + 2.39468707e+00, + 2.39565285e+00, 2.39644846e+00, 2.39710213e+00, + 2.39763793e+00, + 2.39807626e+00, 2.39859060e+00, 2.39896865e+00, + 2.39924593e+00, + 2.39944894e+00, 2.39959738e+00, 2.39970586e+00, + 2.39978512e+00, + 2.39984307e+00, 2.39988540e+00, 2.39991633e+00, + 2.39993889e+00, + 2.39995538e+00, 2.39996739e+00, 2.39997621e+00, + 2.39998261e+00, + 2.39998733e+00, 2.39999072e+00, 2.39999326e+00, + 2.39999519e+00, + 2.39999664e+00, 2.39999763e+00, 2.39999826e+00, + 2.39999870e+00, + 2.39999906e+00, 2.39999933e+00, 2.39999952e+00, + 2.39999964e+00, + 2.39999974e+00, 2.39999977e+00, 2.39999981e+00, + 2.39999987e+00, + 2.39999993e+00, 2.40000007e+00, 2.40000015e+00, + 2.40000012e+00, + 2.40000004e+00, 2.40000000e+00, 2.39999995e+00, + 2.39999997e+00, + 2.39999999e+00, 2.40000000e+00, 2.40000001e+00, + 2.40000000e+00, + 2.40000000e+00, 2.40000000e+00, 2.40000000e+00, + 2.40000000e+00])}) + + +def test_monod_model(monod_model_sds, this_model_data): + """ + Test that the Monod model using pyFOOMB simulated data & parameters given + as input. + """ + + io = IoHandler() + model = io.select_model( + "Dynamic Monod model (1 substrate, 1 product)", + this_model_data + ) + model.get_params() + fitter = io.initialize_fitter( + data=model.data, + model=model, + sd=monod_model_sds, + debug_mode=True + ) + fitter.optimize() + optimized_params = { + name: param for name, param in zip( + list(fitter.model.parameters.keys()), + fitter.parameter_stats["optimal"] + ) + } + + assert np.allclose( + b=list(optimized_params.values()), + a=[0.01, 0.4, 1, 1.5, 20, 0.12, 0], + rtol=1e-2, + atol=1e-3 + ) + + From 4e10007f25ed3b6c1add7dd52cb585dfb837dd67 Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 09:57:25 +0200 Subject: [PATCH 036/114] Removed fold test_models file --- physiofit/tests/test_models.py | 305 --------------------------------- 1 file changed, 305 deletions(-) delete mode 100644 physiofit/tests/test_models.py diff --git a/physiofit/tests/test_models.py b/physiofit/tests/test_models.py deleted file mode 100644 index b379f37..0000000 --- a/physiofit/tests/test_models.py +++ /dev/null @@ -1,305 +0,0 @@ -""" -This module contains tests for the models module. -""" -import numpy as np -import pandas as pd - -from physiofit.base.io import IoHandler -import physiofit.models.base_model - - -def test_steady_state_batch_model_with_lag_phase_and_degradation_of_metabolites( - model_1_data: pd.DataFrame, - sds: physiofit.models.base_model.StandardDevs -): - io = IoHandler() - model = io.select_model( - name="Steady-state batch model with lag phase and " - "degradation of metabolites", - data=model_1_data - ) - model.get_params() - fitter = io.initialize_fitter( - data=model.data, - model=model, - sd=sds, - debug_mode=True - ) - fitter.optimize() - optimized_params = { - name: param for name, param in zip( - list(fitter.model.parameters.keys()), - fitter.parameter_stats["optimal"] - ) - } - - # t_lag - assert np.isclose( - a=optimized_params["t_lag"], - b=1.4, - rtol=0.2 - ) - # X_0 - assert np.isclose( - a=optimized_params["X_0"], - b=0.02, - rtol=0.02 - ) - # growth_rate - assert np.isclose( - a=optimized_params["growth_rate"], - b=0.8, - rtol=0.02 - ) - # Glucose_q - assert np.isclose( - a=optimized_params["Glucose_q"], - b=-8, - rtol=0.02 - ) - # Glucose_M0 - assert np.isclose( - a=optimized_params["Glucose_M0"], - b=20, - rtol=0.02 - ) - # Acetate_q - assert np.isclose( - a=optimized_params["Acetate_q"], - b=3, - rtol=0.02 - ) - # Acetate_M0 - assert np.isclose( - a=optimized_params["Acetate_M0"], - b=0.01, - rtol=0.02 - ) - # Glutamate_q - assert np.isclose( - a=optimized_params["Glutamate_q"], - b=0.05, - rtol=0.02 - ) - # Glutamate_M0 - assert np.isclose( - a=optimized_params["Glutamate_M0"], - b=0.01, - rtol=0.02 - ) - - -def test_steady_state_batch_model_with_lag_phase( - model_2_data: pd.DataFrame, - sds: physiofit.models.base_model.StandardDevs -): - io = IoHandler() - model = io.select_model( - name="Steady-state batch model with lag phase", - data=model_2_data - ) - model.get_params() - fitter = io.initialize_fitter( - data=model.data, - model=model, - sd=sds, - debug_mode=True - ) - fitter.optimize() - optimized_params = { - name: param for name, param in zip( - list(fitter.model.parameters.keys()), - fitter.parameter_stats["optimal"] - ) - } - - # t_lag - assert np.isclose( - a=optimized_params["t_lag"], - b=1.4, - rtol=0.01 - ) - # X_0 - assert np.isclose( - a=optimized_params["X_0"], - b=0.02, - rtol=0.01 - ) - # growth_rate - assert np.isclose( - a=optimized_params["growth_rate"], - b=0.8, - rtol=0.01 - ) - # Glucose_q - assert np.isclose( - a=optimized_params["Glucose_q"], - b=-8, - rtol=0.01 - ) - # Glucose_M0 - assert np.isclose( - a=optimized_params["Glucose_M0"], - b=20, - rtol=0.01 - ) - # Acetate_q - assert np.isclose( - a=optimized_params["Acetate_q"], - b=3, - rtol=0.01 - ) - # Acetate_M0 - assert np.isclose( - a=optimized_params["Acetate_M0"], - b=0.01, - rtol=0.01 - ) - # Glutamate_q - assert np.isclose( - a=optimized_params["Glutamate_q"], - b=2, - rtol=0.01 - ) - # Glutamate_M0 - assert np.isclose( - a=optimized_params["Glutamate_M0"], - b=0.01, - rtol=0.01 - ) - -def test_steady_state_batch_model( - model_4_data: pd.DataFrame, - sds: physiofit.models.base_model.StandardDevs -): - io = IoHandler() - model = io.select_model( - "Steady-state batch model", - model_4_data - ) - model.get_params() - fitter = io.initialize_fitter( - data=model.data, - model=model, - sd=sds, - debug_mode=True - ) - fitter.optimize() - optimized_params = { - name: param for name, param in zip( - list(fitter.model.parameters.keys()), - fitter.parameter_stats["optimal"] - ) - } - # X_0 - assert np.isclose( - a=optimized_params["X_0"], - b=0.02, - rtol=0.01 - ) - # growth_rate - assert np.isclose( - a=optimized_params["growth_rate"], - b=0.8, - rtol=0.01 - ) - # Glucose_q - assert np.isclose( - a=optimized_params["Glucose_q"], - b=-8, - rtol=0.01 - ) - # Glucose_M0 - assert np.isclose( - a=optimized_params["Glucose_M0"], - b=20, - rtol=0.01 - ) - # Acetate_q - assert np.isclose( - a=optimized_params["Acetate_q"], - b=3, - rtol=0.01 - ) - # Acetate_M0 - assert np.isclose( - a=optimized_params["Acetate_M0"], - b=0.01, - rtol=0.01 - ) - # Glutamate_q - assert np.isclose( - a=optimized_params["Glutamate_q"], - b=2, - rtol=0.01 - ) - # Glutamate_M0 - assert np.isclose( - a=optimized_params["Glutamate_M0"], - b=0.01, - rtol=0.01 - ) - - -def test_monod_model(monod_model_sds, monod_model_data): - """ - Test that the Monod model using pyFOOMB simulated data & parameters given - as input. - """ - - io = IoHandler() - model = io.select_model( - "Dynamic Monod model (1 substrate, 1 product)", - monod_model_data - ) - model.get_params() - fitter = io.initialize_fitter( - data=model.data, - model=model, - sd=monod_model_sds, - debug_mode=True - ) - fitter.optimize() - optimized_params = { - name: param for name, param in zip( - list(fitter.model.parameters.keys()), - fitter.parameter_stats["optimal"] - ) - } - - # X_0 - assert np.isclose( - a=optimized_params["X_0"], - b=0.01, - atol=0.0005 - ) - # y_BM - assert np.isclose( - a=optimized_params["y_BM"], - b=0.5, - atol=0.025 - ) - # S_substrate_km - assert np.isclose( - a=optimized_params["S_substrate_km"], - b=0.05, - atol=0.0025 - ) - # S_substrate_qsmax - assert np.isclose( - a=optimized_params["S_substrate_qsmax"], - b=0.8, - atol=0.04 - ) - # S_substrate_s_0 - assert np.isclose( - a=optimized_params["S_substrate_s_0"], - b=20, - atol=0.1 - ) - # P_product_y_P - assert np.isclose( - a=optimized_params["P_product_y_P"], - b=0.1, - atol=0.001 - ) From e92b75c09b7ccbb36fecd9a4a2b73e7b451aa8d9 Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 09:59:14 +0200 Subject: [PATCH 037/114] Changed some methods to static refactoring --- physiofit/base/io.py | 156 +++++++++++++++++++++---------------------- 1 file changed, 75 insertions(+), 81 deletions(-) diff --git a/physiofit/base/io.py b/physiofit/base/io.py index 432bb35..a6c996a 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -10,14 +10,14 @@ import matplotlib.pyplot as plt import numpy as np - +import pandas as pd from matplotlib.backends.backend_pdf import PdfPages from pandas import DataFrame, read_csv, concat import yaml from physiofit import __file__ from physiofit.base.fitter import PhysioFitter -from physiofit.models.base_model import StandardDevs, Bounds +from physiofit.models.base_model import StandardDevs, Bounds, Model # Switch matplotlib logger to higher level to not get debug logs in root logger logging.getLogger("matplotlib").setLevel(logging.WARNING) @@ -84,44 +84,55 @@ def read_data(data: str) -> DataFrame: elif issubclass(type(data), BytesIO): data = read_csv(data, sep="\t") else: - raise TypeError(f"Input data file is not of right type. Accepted types: file-like (bytes) or string") + raise TypeError(f"Input data file is not of right type. " + f"Accepted types: file-like (bytes) or string") except Exception: logger.exception("There was an error while reading the data") raise IOError( - "Error while reading data. Please ensure you have the right file format (txt, tsv or bytes)" + "Error while reading data. Please ensure you have the right " + "file format (txt, tsv or bytes)" ) IoHandler._verify_data(data) return data - def select_model(self, name, data=None): + def select_model( + self, name: str, + data: pd.DataFrame = None + ) -> Model: """ - Select a model from the list of models in the model folder of the package src directory + Select a model from the list of models in the model folder of the + package src directory """ self.get_models(data) - for x in self.models: - if x.name == name: - model = x - return model + for model in self.models: + if model.name == name: + return model - def read_model(self, model_file): + @staticmethod + def read_model( + model_file: str + ): """ Import and return the model class from .py file containing the model. - .. warning: ONLY USE THIS FUNCTION ON TRUSTED PYTHON FILES. Reading code from untrusted sources can lead to - propagation of viruses and compromised security. + .. warning: ONLY USE THIS FUNCTION ON TRUSTED PYTHON FILES. Reading + code from untrusted sources can lead to propagation of viruses and + compromised security. :param model_file: path to the model.py file to import """ if not Path(model_file).is_file() or Path(model_file).suffix != ".py": raise ValueError( - "The given path is not valid. The path must point to a .py file containing the module " - "from which the model will be loaded." + "The given path is not valid. The path must point to a .py " + "file containing the module from which the model will be " + "loaded." ) - spec = importlib.util.spec_from_file_location("module_to_import", fr"{model_file}") + spec = importlib.util.spec_from_file_location("module_to_import", + fr"{model_file}") module = importlib.util.module_from_spec(spec) sys.modules["module_to_import"] = module spec.loader.exec_module(module) @@ -130,7 +141,9 @@ def read_model(self, model_file): return model_class @staticmethod - def _verify_data(data: DataFrame): + def _verify_data( + data: DataFrame + ): """ Perform checks on DataFrame returned by the _read_data function @@ -156,7 +169,8 @@ def _verify_data(data: DataFrame): raise ValueError(f"Data does not contain any metabolite columns") for x in data.columns: - if x != "experiments" and data[x].dtypes != np.int64 and data[x].dtypes != np.float64: + if x != "experiments" and data[x].dtypes != np.int64 and data[ + x].dtypes != np.float64: raise ValueError( f"Column {x} has values that are not of numeric type" ) @@ -166,7 +180,8 @@ def _verify_data(data: DataFrame): ) # To avoid errors when concatenating dataframes for the final summary - data["experiments"] = data["experiments"].str.replace(pat=" ", repl="_") + data["experiments"] = data["experiments"].str.replace(pat=" ", + repl="_") @staticmethod def get_model_list(): @@ -185,9 +200,13 @@ def get_model_list(): print(model.name) return - def get_models(self, data=None): + def get_models( + self, + data: pd.DataFrame = None + ): """ - Read modules containing the different models and add them to models attribute + Read modules containing the different models and add them to models + attribute :return: list containing the different model objects """ @@ -204,7 +223,8 @@ def get_models(self, data=None): else: self.models.append(model_class(self.data)) - def get_local_model_folder(self) -> str: + @staticmethod + def get_local_model_folder() -> str: """ Return the path towards the actual environment's used models folder """ @@ -212,7 +232,8 @@ def get_local_model_folder(self) -> str: model_dir = Path(__file__).parent / "models" return str(model_dir) - # TODO: Implement this function to add model to model folder and add button to GUI + # TODO: Implement this function to add model to model folder and add + # button to GUI @staticmethod def add_model(model_file): pass @@ -223,17 +244,20 @@ def read_yaml(yaml_file: str | bytes) -> ConfigParser: """ Import yaml configuration file and parse keyword arguments - :param yaml_file: path to the yaml file or json file - :return config_parser: Dictionary containing arguments parsed from yaml file + :param yaml_file: path to the yaml file or json file :return + config_parser: Dictionary containing arguments parsed from yaml file + """ # Load config file try: - if isinstance(yaml_file, str) or issubclass(type(yaml_file), BytesIO): + if isinstance(yaml_file, str) or issubclass(type(yaml_file), + BytesIO): config_parser = ConfigParser.from_file(yaml_file) else: raise TypeError( - f"Trying to read object that is not a file or path to file: {yaml_file}" + f"Trying to read object that is not a file or path to " + f"file: {yaml_file}" ) except Exception as e: raise IOError( @@ -260,7 +284,8 @@ def initialize_fitter(self, data: pd.DataFrame, **kwargs) -> PhysioFitter: mc=kwargs["mc"] if "mc" in kwargs else True, iterations=kwargs["iterations"] if "iterations" in kwargs else 100, sd=kwargs["sd"] if "sd" in kwargs else StandardDevs(), - debug_mode=kwargs["debug_mode"] if "debug_mode" in kwargs else False + debug_mode=kwargs[ + "debug_mode"] if "debug_mode" in kwargs else False ) if "sd" not in kwargs: @@ -323,17 +348,20 @@ def output_recap(self, export_path: str, galaxy=False): ) if not self.multiple_experiments: raise ValueError( - f"It seems that the multiple experiments list is empty: {self.multiple_experiments}" + f"It seems that the multiple experiments list is empty: " + f"{self.multiple_experiments}" ) for idx, element in enumerate(self.multiple_experiments): if not isinstance(element, DataFrame): raise TypeError( - f"All the elements of multiple_experiments must be DataFrames. Wrong element type" + f"All the elements of multiple_experiments must be " + f"DataFrames. Wrong element type" f"detected at indice {idx}" ) final_df = concat(self.multiple_experiments) final_df = final_df.reset_index() - final_df[["experiments", "parameter name"]] = final_df["index"].str.split(" ", expand=True) + final_df[["experiments", "parameter name"]] = final_df[ + "index"].str.split(" ", expand=True) final_df.set_index(["experiments", "parameter name"], inplace=True) final_df.drop("index", axis=1, inplace=True) if galaxy: @@ -346,9 +374,9 @@ def output_report(self, fitter, export_path: str | list = None): Handle creation and export of the report containing stats from monte carlo analysis of optimization parameters - :param fitter: PhysioFitter object containing results from the optimization of parameters - :param export_path: list of paths to export the stats and fluxes. [0] - is for stats and [1] for fluxes. + :param fitter: PhysioFitter object containing results from the + optimization of parameters :param export_path: list of paths to + export the stats and fluxes. [0] is for stats and [1] for fluxes. """ if isinstance(export_path, list): @@ -457,8 +485,8 @@ def plot_data(self, fitter, display: bool = False): """ Plot the data - :param fitter: PhysioFitter object after optimization of parameters has been executed - :param display: should plots be displayed + :param fitter: PhysioFitter object after optimization of parameters + has been executed :param display: should plots be displayed """ self._get_plot_data(fitter) @@ -536,9 +564,11 @@ def _add_sd_area(self, element: str, ax: plt.Axes): class ConfigParser: """ - The ConfigParser class is used to parse configuration files for the PhysioFit package. It reads a YAML file and - extracts the necessary parameters for the model fitting process. It also includes methods to update the model - with the parsed parameters and export the run parameters back to a yaml config file. + The ConfigParser class is used to parse configuration files for the + PhysioFit package. It reads a YAML file and extracts the necessary + parameters for the model fitting process. It also includes methods to + update the model with the parsed parameters and export the run + parameters back to a yaml config file. """ allowed_keys = ["model", "sds", "mc", "iterations"] @@ -560,12 +590,14 @@ def __init__( if not isinstance(self.mc, bool): raise TypeError( - f"The MonteCarlo option must be given as a boolean (True or False). Detected input: {self.mc}, " + f"The MonteCarlo option must be given as a boolean (True or " + f"False). Detected input: {self.mc}," f"type: {type(self.mc)}" ) if not isinstance(self.iterations, int): raise TypeError( - f"Number of iterations must be an integer: Detected input: {self.mc}, type: {type(self.iterations)}" + f"Number of iterations must be an integer: Detected input: " + f"{self.mc}, type: {type(self.iterations)}" ) @classmethod @@ -627,7 +659,8 @@ def export_config(self, export_path): "model": { "model_name": self.model.name, "parameters_to_estimate": self.model.parameters, - "bounds": {name: f"{bounds[0], bounds[1]}" for name, bounds in self.model.bounds.items()} + "bounds": {name: f"{bounds[0], bounds[1]}" for name, bounds + in self.model.bounds.items()} }, "sds": dict(self.sds), "mc": self.mc, @@ -638,42 +671,3 @@ def export_config(self, export_path): data, file ) - - -if __name__ == "__main__": - import pandas as pd - - io_handler = IoHandler() - data_file = pd.read_csv( - r"C:\Users\legregam\Documents\Projets\PhysioFit\data\KEIO_test_data" - r"\KEIO_ROBOT6_1\KEIO_ROBOT6_1.tsv", - sep="\t" - ) - io_handler.data = data_file - io_handler.data = io_handler.data.sort_values( - "time", - ignore_index=True - ) - io_handler.get_models() - try: - sd = {"X": 0.} - for col in io_handler.data.columns[2:]: - sd.update({col: 0.5}) - except Exception: - raise - io_handler.names = io_handler.data.columns[1:].to_list() - model = io_handler.models[-1] - model.get_params() - print(model) - keywargs = { - "sd": sd, - "model": model, - "mc": True, - "iterations": 100, - "debug_mode": True, - } - io_handler.res_path = Path( - r"C:\Users\legregam\Documents\Projets\PhysioFit\data\KEIO_test_data" - r"\KEIO_ROBOT6_1") - io_handler.initialize_fitter(kwargs=keywargs) - io_handler.fitter.optimize() From 48b01696236353575d477b4fd640ce1d29a60ed2 Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 10:10:09 +0200 Subject: [PATCH 038/114] shifted datasets to test individual test files --- physiofit/tests/conftest.py | 287 +----------------------------------- 1 file changed, 4 insertions(+), 283 deletions(-) diff --git a/physiofit/tests/conftest.py b/physiofit/tests/conftest.py index a567c8c..486ff06 100644 --- a/physiofit/tests/conftest.py +++ b/physiofit/tests/conftest.py @@ -7,6 +7,7 @@ the fixture function's name. """ import numpy as np +from numpy import array import pandas as pd import pytest @@ -26,6 +27,7 @@ def placeholder_data(): } ) + @pytest.fixture def base_test_data(): """Test data to use in tests @@ -44,6 +46,7 @@ def base_test_data(): } ) + @pytest.fixture def parameters(): return { @@ -59,36 +62,6 @@ def parameters(): } -@pytest.fixture -def model_1_data(placeholder_data, parameters): - """ Test data to use in tests for the model_1: Steady-state batch model - with lag phase and degradation of metabolites. Data is simulated using - synthetic parameters""" - - io = IoHandler() - model = io.select_model( - name="Steady-state batch model with lag phase and degradation of " - "metabolites", - data=placeholder_data - ) - model.get_params() - model.parameters.update(parameters) - model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamate": 1}} - sim_data = model.simulate( - list(model.parameters.values()), - model.data.drop("time", axis=1), - model.time_vector, - model.args - ) - df = pd.DataFrame( - data=sim_data, - index=model.time_vector, - columns=model.name_vector - ) - df.index.name = "time" - return df.reset_index() - - @pytest.fixture def model_2_data(placeholder_data, parameters): """ Test data to use in tests for the model_2: Steady-state batch model @@ -115,6 +88,7 @@ def model_2_data(placeholder_data, parameters): df.index.name = "time" return df.reset_index() + @pytest.fixture def model_4_data(placeholder_data, parameters): """ Test data to use in tests for the model_2: Steady-state batch model @@ -143,259 +117,6 @@ def model_4_data(placeholder_data, parameters): return df.reset_index() -@pytest.fixture -def monod_model_data(): - """ - Test data to use in tests for the Monod model. Data was simulated using - the pyFOOMB package (see the `example 6 notebook `_). - """ - return pd.DataFrame.from_dict( - { - "time": [0.00000000e+00, 2.84530395e-06, 1.87841467e-02, - 6.86084776e-02, 1.18432808e-01, 1.68257139e-01, - 2.43764260e-01, 3.19271381e-01, 4.49726191e-01, - 5.80181002e-01, 7.10635813e-01, 9.19477706e-01, - 1.12831960e+00, 1.33716149e+00, 1.75431493e+00, - 2.17146836e+00, 2.58862180e+00, 3.00577523e+00, - 3.42292866e+00, 3.84008210e+00, 4.25723553e+00, - 4.67438897e+00, 5.09154240e+00, 5.50869584e+00, - 5.92584927e+00, 6.34300270e+00, 6.76015614e+00, - 7.17730957e+00, 7.59446301e+00, 8.01161644e+00, - 8.29621850e+00, 8.58082057e+00, 8.86542263e+00, - 9.29555394e+00, 9.61391297e+00, 9.93227199e+00, - 1.02506310e+01, 1.05689900e+01, 1.10543781e+01, - 1.15397661e+01, 1.18839716e+01, 1.22281772e+01, - 1.25723827e+01, 1.29165883e+01, 1.32607938e+01, - 1.36049994e+01, 1.39492049e+01, 1.42934105e+01, - 1.46376160e+01, 1.49818216e+01, 1.53260271e+01, - 1.56702327e+01, 1.60144382e+01, 1.62611781e+01, - 1.65079181e+01, 1.66591950e+01, 1.68104719e+01, - 1.69021125e+01, 1.69937532e+01, 1.70503459e+01, - 1.71069386e+01, 1.71431957e+01, 1.71794528e+01, - 1.72036226e+01, 1.72277924e+01, 1.72445191e+01, - 1.72612458e+01, 1.72732201e+01, 1.72851944e+01, - 1.72940250e+01, 1.73028555e+01, 1.73116860e+01, - 1.73176659e+01, 1.73236458e+01, 1.73296257e+01, - 1.73356056e+01, - 1.73415855e+01, 1.73452250e+01, 1.73479133e+01, - 1.73506016e+01, - 1.73532900e+01, 1.73559783e+01, 1.73586666e+01, - 1.73613549e+01, - 1.73640432e+01, 1.73667316e+01, 1.73694199e+01, - 1.73721082e+01, - 1.73747965e+01, 1.73774848e+01, 1.73801731e+01, - 1.73828615e+01, - 1.73855498e+01, 1.73882381e+01, 1.73909264e+01, - 1.73936147e+01, - 1.73963031e+01, 1.74007815e+01, 1.74052600e+01, - 1.74097384e+01, - 1.74142169e+01, 1.74186953e+01, 1.74231738e+01, - 1.74276522e+01, - 1.74399174e+01, 1.74521827e+01, 1.74644479e+01, - 1.74767132e+01, - 1.75064657e+01, 1.75362183e+01, 1.75967028e+01, - 1.76313304e+01, - 1.76659580e+01, 1.77005856e+01, 1.77352132e+01, - 1.77698407e+01, - 1.78044683e+01, 1.78390959e+01, 1.78990820e+01, - 1.79590681e+01, - 1.80190541e+01, 1.81378620e+01, 1.83754877e+01, - 1.87462973e+01, - 1.93988066e+01, 2.22020563e+01, 2.40000000e+01], - "X": [1.00000000e-02, 1.00000114e-02, 1.00755151e-02, - 1.02785070e-02, - 1.04851341e-02, 1.06957646e-02, 1.10230425e-02, - 1.13603070e-02, - 1.19675160e-02, 1.26070854e-02, 1.32807477e-02, - 1.44349438e-02, - 1.56894776e-02, 1.70530554e-02, 2.01425914e-02, - 2.37924513e-02, - 2.81029034e-02, 3.31932538e-02, 3.92051466e-02, - 4.63058753e-02, - 5.46927632e-02, 6.45987091e-02, 7.62987771e-02, - 9.01178828e-02, - 1.06439804e-01, 1.25717816e-01, 1.48487267e-01, - 1.75380434e-01, - 2.07144077e-01, 2.44660157e-01, 2.74081338e-01, - 3.07039387e-01, - 3.43960267e-01, 4.08357175e-01, 4.63663091e-01, - 5.26456335e-01, - 5.97751620e-01, 6.78700806e-01, 8.23709014e-01, - 9.99694095e-01, - 1.14682179e+00, 1.31559067e+00, 1.50918382e+00, - 1.73124907e+00, - 1.98596629e+00, 2.27812618e+00, 2.61321891e+00, - 2.99753328e+00, - 3.43826807e+00, 3.94365639e+00, 4.52310078e+00, - 5.18731095e+00, - 5.94841972e+00, 6.56115855e+00, 7.23602834e+00, - 7.68287603e+00, - 8.15625966e+00, 8.45628622e+00, 8.76633978e+00, - 8.96269975e+00, - 9.16254503e+00, 9.29221224e+00, 9.42289356e+00, - 9.51038000e+00, - 9.59792939e+00, 9.65838042e+00, 9.71851163e+00, - 9.76120267e+00, - 9.80340828e+00, 9.83407224e+00, 9.86416930e+00, - 9.89345565e+00, - 9.91264436e+00, 9.93111628e+00, 9.94861855e+00, - 9.96478787e+00, - 9.97911442e+00, 9.98665391e+00, 9.99153422e+00, - 9.99576940e+00, - 9.99932800e+00, 1.00022108e+01, 1.00044572e+01, - 1.00061428e+01, - 1.00073654e+01, 1.00082263e+01, 1.00088188e+01, - 1.00092206e+01, - 1.00094898e+01, 1.00096671e+01, 1.00097831e+01, - 1.00098593e+01, - 1.00099092e+01, 1.00099414e+01, 1.00099618e+01, - 1.00099747e+01, - 1.00099831e+01, 1.00099916e+01, 1.00099960e+01, - 1.00099976e+01, - 1.00099979e+01, 1.00099983e+01, 1.00099988e+01, - 1.00099996e+01, - 1.00100002e+01, 1.00100000e+01, 1.00099999e+01, - 1.00099999e+01, - 1.00100000e+01, 1.00100000e+01, 1.00099996e+01, - 1.00100001e+01, - 1.00100001e+01, 1.00100000e+01, 1.00100000e+01, - 1.00100000e+01, - 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, - 1.00100000e+01, - 1.00100000e+01, 1.00100000e+01, 1.00100000e+01, - 1.00100000e+01, - 1.00100000e+01, 1.00100000e+01, 1.00100000e+01], - "S_substrate": [2.00000000e+01, 2.00000000e+01, 1.99998490e+01, - 1.99994430e+01, - 1.99990297e+01, 1.99986085e+01, 1.99979539e+01, - 1.99972794e+01, - 1.99960650e+01, 1.99947858e+01, 1.99934385e+01, - 1.99911301e+01, - 1.99886210e+01, 1.99858939e+01, 1.99797148e+01, - 1.99724151e+01, - 1.99637942e+01, 1.99536135e+01, 1.99415897e+01, - 1.99273882e+01, - 1.99106145e+01, 1.98908026e+01, 1.98674024e+01, - 1.98397642e+01, - 1.98071204e+01, 1.97685644e+01, 1.97230255e+01, - 1.96692391e+01, - 1.96057118e+01, 1.95306797e+01, 1.94718373e+01, - 1.94059212e+01, - 1.93320795e+01, 1.92032856e+01, 1.90926738e+01, - 1.89670873e+01, - 1.88244968e+01, 1.86625984e+01, 1.83725820e+01, - 1.80206118e+01, - 1.77263564e+01, 1.73888187e+01, 1.70016324e+01, - 1.65575019e+01, - 1.60480674e+01, 1.54637476e+01, 1.47935622e+01, - 1.40249334e+01, - 1.31434639e+01, 1.21326872e+01, 1.09737984e+01, - 9.64537810e+00, - 8.12316056e+00, 6.89768289e+00, 5.54794333e+00, - 4.65424794e+00, - 3.70748067e+00, 3.10742757e+00, 2.48732044e+00, - 2.09460050e+00, - 1.69490993e+00, 1.43557553e+00, 1.17421288e+00, - 9.99239999e-01, - 8.24141216e-01, 7.03239167e-01, 5.82976746e-01, - 4.97594659e-01, - 4.13183443e-01, 3.51855523e-01, 2.91661405e-01, - 2.33088690e-01, - 1.94711274e-01, 1.57767432e-01, 1.22762910e-01, - 9.04242635e-02, - 6.17711687e-02, 4.66921849e-02, 3.69315576e-02, - 2.84612066e-02, - 2.13439981e-02, 1.55784894e-02, 1.10855883e-02, - 7.71437791e-03, - 5.26916061e-03, 3.54732671e-03, 2.36241878e-03, - 1.55879567e-03, - 1.02032920e-03, 6.65870806e-04, 4.33724551e-04, - 2.81344674e-04, - 1.81594318e-04, 1.17199486e-04, 7.64366916e-05, - 5.06131384e-05, - 3.38327069e-05, 1.67743548e-05, 7.96307568e-06, - 4.85831921e-06, - 4.17174086e-06, 3.45571364e-06, 2.40265760e-06, - 7.42561334e-07, - -4.75957212e-07, -4.55116537e-08, 2.16928030e-07, - 1.47280846e-07, - -3.21385469e-08, 8.25286825e-08, 8.91202734e-07, - -1.13282919e-07, - -1.89058779e-07, 6.46350725e-08, 5.87083704e-08, - -2.41520675e-08, - -1.80445478e-08, 8.23570977e-09, 2.19674270e-08, - 6.37737076e-09, - -1.00863240e-09, -2.74105412e-09, -1.42426643e-09, - -3.49341385e-10, - -1.08365230e-10, 2.39808967e-11, 1.21535023e-13], - "P_product": [0.00000000e+00, 2.27056932e-09, 1.51030213e-05, - 5.57013969e-05, - 9.70268260e-05, 1.39152917e-04, 2.04608499e-04, - 2.72061409e-04, - 3.93503192e-04, 5.21417081e-04, 6.56149542e-04, - 8.86988753e-04, - 1.13789552e-03, 1.41061109e-03, 2.02851829e-03, - 2.75849026e-03, - 3.62058068e-03, 4.63865076e-03, 5.84102933e-03, - 7.26117506e-03, - 8.93855263e-03, 1.09197418e-02, 1.32597554e-02, - 1.60235766e-02, - 1.92879608e-02, 2.31435633e-02, 2.76974534e-02, - 3.30760868e-02, - 3.94288155e-02, 4.69320313e-02, 5.28162676e-02, - 5.94078775e-02, - 6.67920534e-02, 7.96714350e-02, 9.07326183e-02, - 1.03291267e-01, - 1.17550324e-01, 1.33740161e-01, 1.62741803e-01, - 1.97938819e-01, - 2.27364358e-01, 2.61118134e-01, 2.99836765e-01, - 3.44249815e-01, - 3.95193259e-01, 4.53625235e-01, 5.20643782e-01, - 5.97506656e-01, - 6.85653614e-01, 7.86731278e-01, 9.02620156e-01, - 1.03546219e+00, - 1.18768394e+00, 1.31023171e+00, 1.44520567e+00, - 1.53457521e+00, - 1.62925193e+00, 1.68925724e+00, 1.75126796e+00, - 1.79053995e+00, - 1.83050901e+00, 1.85644245e+00, 1.88257871e+00, - 1.90007600e+00, - 1.91758588e+00, 1.92967608e+00, 1.94170233e+00, - 1.95024053e+00, - 1.95868166e+00, 1.96481445e+00, 1.97083386e+00, - 1.97669113e+00, - 1.98052887e+00, 1.98422326e+00, 1.98772371e+00, - 1.99095757e+00, - 1.99382288e+00, 1.99533078e+00, 1.99630684e+00, - 1.99715388e+00, - 1.99786560e+00, 1.99844215e+00, 1.99889144e+00, - 1.99922856e+00, - 1.99947308e+00, 1.99964527e+00, 1.99976376e+00, - 1.99984412e+00, - 1.99989797e+00, 1.99993341e+00, 1.99995663e+00, - 1.99997187e+00, - 1.99998184e+00, 1.99998828e+00, 1.99999236e+00, - 1.99999494e+00, - 1.99999662e+00, 1.99999832e+00, 1.99999920e+00, - 1.99999951e+00, - 1.99999958e+00, 1.99999965e+00, 1.99999976e+00, - 1.99999993e+00, - 2.00000005e+00, 2.00000000e+00, 1.99999998e+00, - 1.99999999e+00, - 2.00000000e+00, 1.99999999e+00, 1.99999991e+00, - 2.00000001e+00, - 2.00000002e+00, 1.99999999e+00, 1.99999999e+00, - 2.00000000e+00, - 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, - 2.00000000e+00, - 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, - 2.00000000e+00, - 2.00000000e+00, 2.00000000e+00, 2.00000000e+00] - } - ) - - @pytest.fixture def monod_model_sds(): return StandardDevs( From 3b7050fa023ca81a805926c2128388411a8e52b4 Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 10:10:39 +0200 Subject: [PATCH 039/114] type-hint --- physiofit/models/base_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/physiofit/models/base_model.py b/physiofit/models/base_model.py index f2ff9cb..0930be1 100644 --- a/physiofit/models/base_model.py +++ b/physiofit/models/base_model.py @@ -78,7 +78,7 @@ def get_params(self): @abstractmethod def simulate( parameters: list, - data_matrix: np.ndarray, + data_matrix: np.ndarray | pd.DataFrame, time_vector: np.ndarray, args: dict | list ): From 52e6ce5f41bf59e17b6e3869ea2466b978f7f1c9 Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 14:20:05 +0200 Subject: [PATCH 040/114] finished tests --- physiofit/base/fitter.py | 84 +---- physiofit/tests/test_base.py | 3 +- physiofit/tests/test_model_1.py | 10 +- physiofit/tests/test_model_2.py | 9 +- physiofit/tests/test_model_3.py | 129 ++++++++ physiofit/tests/test_model_4.py | 6 +- physiofit/tests/test_monod_model.py | 479 +++++++++++++--------------- 7 files changed, 384 insertions(+), 336 deletions(-) create mode 100644 physiofit/tests/test_model_3.py diff --git a/physiofit/base/fitter.py b/physiofit/base/fitter.py index 02f4683..97f5afd 100644 --- a/physiofit/base/fitter.py +++ b/physiofit/base/fitter.py @@ -138,9 +138,6 @@ def _sd_dict_to_matrix(self): matrix = np.column_stack(columns) self.sd = matrix - logger.debug(f"SD object type: {type(self.sd)}") - logger.debug(f"Array built from dict:\n{self.sd}") - def initialize_sd_matrix(self): """ Initialize the sd matrix from different types of inputs: single value, @@ -149,63 +146,25 @@ def initialize_sd_matrix(self): :return: None """ - # This function can be optimized, if the input is a matrix we should - # detect it directly logger.info("Initializing sd matrix...\n") - # If sd is None, we generate the default matrix if self.sd is None or self.sd == {}: - try: - self.sd = {"X": 0.2} - for col in self.data.columns[2:]: - self.sd.update({col: 0.5}) - except Exception: - raise + self.sd = {"X": 0.2} + self.sd.update({col: 0.5} for col in self.data.columns[2:]) if isinstance(self.sd, dict): self._sd_dict_to_matrix() - # When sd is a single value, we build a sd matrix containing the value - # in all positions - if isinstance(self.sd, int) or isinstance(self.sd, float): + elif isinstance(self.sd, (int, float)): self._build_sd_matrix() - logger.debug(f"SD matrix: {self.sd}\n") - return - if not isinstance(self.sd, np.ndarray) and not isinstance(self.sd, - list): - raise TypeError( - f"Cannot coerce SD to array. Please check that a list or array" - f" is given as input.\nCurrent input: \n{self.sd}" - ) - else: - self.sd = np.array(self.sd) - if not np.issubdtype(self.sd.dtype, np.number): - try: - self.sd = self.sd.astype(float) - except ValueError: - raise ValueError( - f"The sd vector/matrix contains values that are not " - f"numeric. \nCurrent sd vector/matrix: \n{self.sd}" - ) - except Exception as e: - raise RuntimeError(f"Unknown error: {e}") + elif isinstance(self.sd, (np.ndarray, list)): + self.sd = np.array(self.sd).astype(float) + if self.sd.shape != self.experimental_matrix.shape: + self._build_sd_matrix() else: - # If the array is not the right shape, we assume it is a vector - # that needs to be tiled into a matrix - - logger.debug(f"SD matrix: {self.sd}\n") - logger.debug(f"Type of SD matrix: {type(self.sd)}") + raise TypeError( + "Cannot coerce SD to array. Please check that a list or array is given as input.") - if self.sd.shape != self.experimental_matrix.shape: - try: - self._build_sd_matrix() - except ValueError: - raise - except RuntimeError: - raise - else: - logger.debug(f"sd matrix: {self.sd}\n") - return - logger.info(f"sd Matrix:\n{self.sd}\n") + logger.info(f"SDs:\n{self.sd}\n") def _build_sd_matrix(self): """ @@ -214,23 +173,14 @@ def _build_sd_matrix(self): :return: None """ - # First condition: the sds are in a 1D array - if isinstance(self.sd, np.ndarray): - # We first check that the sd vector is as long as the - # experimental matrix on the row axis - if self.sd.size != self.experimental_matrix[0].size: - raise ValueError("sd vector not of right size") - else: - # We duplicate the vector column-wise to build a matrix of - # duplicated sd vectors + def _build_sd_matrix(self): + if isinstance(self.sd, np.ndarray) and self.sd.size == \ + self.experimental_matrix[0].size: self.sd = np.tile(self.sd, (len(self.experimental_matrix), 1)) - - # Second condition: the sd is a scalar and must be broadcast to a - # matrix with same shape as the data - elif isinstance(self.sd, int) or isinstance(self.sd, float): - self.sd = np.full(self.experimental_matrix.shape, self.sd) - else: - raise RuntimeError("Unknown error") + elif isinstance(self.sd, (int, float)): + self.sd = np.full(self.experimental_matrix.shape, self.sd) + else: + raise RuntimeError("Unknown error") def _get_default_sds(self): """ diff --git a/physiofit/tests/test_base.py b/physiofit/tests/test_base.py index b83996e..d87fbbb 100644 --- a/physiofit/tests/test_base.py +++ b/physiofit/tests/test_base.py @@ -9,7 +9,8 @@ def test_physiofitter(base_test_data): """ - Test that the model and PhysioFitter can be safely instanciated from IoHandler + Test that the model and PhysioFitter can be safely instantiated from + IoHandler """ io = physiofit.base.io.IoHandler() diff --git a/physiofit/tests/test_model_1.py b/physiofit/tests/test_model_1.py index 3612ece..7d48863 100644 --- a/physiofit/tests/test_model_1.py +++ b/physiofit/tests/test_model_1.py @@ -92,7 +92,7 @@ def test_model_1_estimation( data=model_1_data ) model.get_params() - model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamate": 1}} + model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamine": 1}} fitter = io.initialize_fitter( data=model.data, model=model, @@ -121,7 +121,7 @@ def test_model_1_simulation( ) model.get_params() model.parameters.update(parameters) - model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamate": 1}} + model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamine": 1}} sim_data = model.simulate( list(model.parameters.values()), model.data.drop("time", axis=1), @@ -135,4 +135,8 @@ def test_model_1_simulation( ) df.index.name = "time" - pd.testing.assert_frame_equal(df.reset_index(), model_1_data) + pd.testing.assert_frame_equal( + df.reset_index(), + model_1_data, + atol=1e-6 + ) diff --git a/physiofit/tests/test_model_2.py b/physiofit/tests/test_model_2.py index 3c4b002..6d33218 100644 --- a/physiofit/tests/test_model_2.py +++ b/physiofit/tests/test_model_2.py @@ -13,9 +13,6 @@ @pytest.fixture def model_2_data(): - """ Test data to use in tests for the model_1: Steady-state batch model - with lag phase and degradation of metabolites. Data is simulated using - synthetic parameters""" return pd.DataFrame( {'time': {0: 0.0, 1: 0.2, 2: 0.4, 3: 0.6000000000000001, 4: 0.8, @@ -131,4 +128,8 @@ def test_model_2_simulation( ) df.index.name = "time" - pd.testing.assert_frame_equal(df.reset_index(), model_2_data) + pd.testing.assert_frame_equal( + df.reset_index(), + model_2_data, + atol=1e-6 + ) diff --git a/physiofit/tests/test_model_3.py b/physiofit/tests/test_model_3.py new file mode 100644 index 0000000..7f6c7d6 --- /dev/null +++ b/physiofit/tests/test_model_3.py @@ -0,0 +1,129 @@ +import logging + +import numpy as np +import pandas as pd +import pytest + +import physiofit +from physiofit.base.io import IoHandler + +logger = logging.getLogger(f"physiofit.{__name__}") +logger.setLevel(logging.CRITICAL) + +@pytest.fixture +def model_3_data(): + + return pd.DataFrame( + {'time': {0: 0.0, 1: 0.2, 2: 0.4, 3: 0.6000000000000001, 4: 0.8, + 5: 1.0, 6: 1.2000000000000002, 7: 1.4000000000000001, 8: 1.6, + 9: 1.8, 10: 2.0, 11: 2.2, 12: 2.4000000000000004, 13: 2.6, + 14: 2.8000000000000003, 15: 3.0, 16: 3.2, + 17: 3.4000000000000004, 18: 3.6, 19: 3.8000000000000003, + 20: 4.0, 21: 4.2, 22: 4.4, 23: 4.6000000000000005, + 24: 4.800000000000001, 25: 5.0, 26: 5.2, 27: 5.4, + 28: 5.6000000000000005, 29: 5.800000000000001}, + 'X': {0: 0.02, 1: 0.023470217419836206, 2: 0.027542555286719145, + 3: 0.03232148804385787, 4: 0.037929617586099036, + 5: 0.044510818569849356, 6: 0.052233929468462365, + 7: 0.06129708406586005, 8: 0.07193279451138565, + 9: 0.08441391633993106, 10: 0.0990606484879023, + 11: 0.1162487478880518, 12: 0.13641916938581505, + 13: 0.16008937828592706, 14: 0.18786662574885568, + 15: 0.2204635276128321, 16: 0.25871634631086166, + 17: 0.3036064448990781, 18: 0.3562854635922441, + 19: 0.4181048647018553, 20: 0.49065060394218707, + 21: 0.5757838175848538, 22: 0.6756885692769915, + 23: 0.7929278814514524, 24: 0.9305094887957849, + 25: 1.0919630006628847, 26: 1.281430451998733, + 27: 1.5037725658404621, 28: 1.7646934535130303, + 29: 2.070886951665622}, + 'Glucose': {0: 20.0, 1: 19.96529782580164, 2: 19.92457444713281, + 3: 19.876785119561422, 4: 19.82070382413901, + 5: 19.754891814301505, 6: 19.677660705315375, + 7: 19.587029159341398, 8: 19.480672054886142, + 9: 19.35586083660069, 10: 19.209393515120976, + 11: 19.03751252111948, 12: 18.83580830614185, + 13: 18.59910621714073, 14: 18.32133374251144, + 15: 17.99536472387168, 16: 17.612836536891383, + 17: 17.163935551009217, 18: 16.63714536407756, + 19: 16.018951352981446, 20: 15.293493960578129, + 21: 14.442161824151462, 22: 13.443114307230086, + 23: 12.270721185485478, 24: 10.894905112042153, + 25: 9.280369993371155, 26: 7.385695480012673, + 27: 5.16227434159538, 28: 2.5530654648697, + 29: -0.5088695166562189}, + 'Acetate': {0: 0.01, 1: 0.02301331532438577, 2: 0.03828458232519679, + 3: 0.05620558016446701, 4: 0.07723606594787137, + 5: 0.10191556963693509, 6: 0.13087723550673386, + 7: 0.1648640652469752, 8: 0.2047479794176962, + 9: 0.25155218627474146, 10: 0.3064774318296336, + 11: 0.37093280458019423, 12: 0.4465718851968064, + 13: 0.5353351685722265, 14: 0.6394998465582088, + 15: 0.7617382285481203, 16: 0.9051862986657312, + 17: 1.0735241683715429, 18: 1.2710704884709152, + 19: 1.5028932426319574, 20: 1.7749397647832015, + 21: 2.094189315943201, 22: 2.4688321347887174, + 23: 2.908479555442946, 24: 3.424410582984193, + 25: 4.0298612524858175, 26: 4.740364194995248, + 27: 5.574147121901733, 28: 6.552600450673863, + 29: 7.700826068746083}, + 'Glutamate': {0: 0.01, 1: 0.01607131015108712, 2: 0.0224100386448079, + 3: 0.029205066718692864, 4: 0.036652221089788446, + 5: 0.044960160796626104, 6: 0.054356436819364605, + 7: 0.0650939082916693, 8: 0.07745770312604938, + 9: 0.09177292063277068, 10: 0.10841328930255507, + 11: 0.12781101460674013, 12: 0.15046807988847946, + 13: 0.17696929880618822, 14: 0.20799746117775364, + 15: 0.244350966511984, 16: 0.2869644022967774, + 17: 0.3369325988105717, 18: 0.39553878071702653, + 19: 0.4642875402349305, 20: 0.5449434799049011, + 21: 0.6395765180442539, 22: 0.750615020597842, + 23: 0.8809081236202905, 24: 1.0337988461980507, + 25: 1.2132098702732164, 26: 1.4237441886556716, + 27: 1.6708032038334373, 28: 1.9607253077912765, + 29: 2.3009484984038036}} + ) + +def test_model_3_estimation( + model_3_data: pd.DataFrame, + sds: physiofit.models.base_model.StandardDevs +): + io = IoHandler() + model = io.select_model( + name="Steady-state batch model with degradation of metabolites", + data=model_3_data + ) + model.get_params() + model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamine": 1}} + fitter = io.initialize_fitter( + data=model.data, + model=model, + sd=sds, + debug_mode=False + ) + fitter.optimize() + + assert np.allclose( + a=fitter.parameter_stats["optimal"], + b=[0.02, 0.8, -8, 20, 3, 0.01, 2, 0.01], + rtol=1e-3 + ) + +def test_model_3_simulation( + placeholder_data, + parameters, + model_3_data +): + io = IoHandler() + model = io.select_model( + name="Steady-state batch model with degradation of metabolites", + data=placeholder_data + ) + model.get_params() + model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamine": 1}} + sim_data = model.simulate( + list(model.parameters.values()), + model.data.drop("time", axis=1), + model.time_vector, + model.args + ) diff --git a/physiofit/tests/test_model_4.py b/physiofit/tests/test_model_4.py index 82200e6..8d56a5c 100644 --- a/physiofit/tests/test_model_4.py +++ b/physiofit/tests/test_model_4.py @@ -138,4 +138,8 @@ def test_model_4_simulation( ) df.index.name = "time" - pd.testing.assert_frame_equal(df.reset_index(), model_4_data) + pd.testing.assert_frame_equal( + df.reset_index(), + model_4_data, + atol=1e-6 + ) diff --git a/physiofit/tests/test_monod_model.py b/physiofit/tests/test_monod_model.py index cd0d063..393477a 100644 --- a/physiofit/tests/test_monod_model.py +++ b/physiofit/tests/test_monod_model.py @@ -10,273 +10,205 @@ @pytest.fixture -def this_model_data(): +def pyfoomb_simulated_data(): """ Test data to use in tests for the Monod model. Data was simulated using the pyFOOMB package (see the `example 6 notebook `_). """ return pd.DataFrame.from_dict( - { - 'time': array([0.00000000e+00, 1.60350555e-06, 1.29272201e-02, - 4.73210593e-02, - 8.17148984e-02, 1.16108738e-01, 1.68220493e-01, - 2.20332247e-01, - 3.10246576e-01, 4.00160904e-01, 4.90075232e-01, - 6.34757887e-01, - 7.79440543e-01, 9.24123199e-01, 1.21353541e+00, - 1.50294763e+00, - 1.79235984e+00, 2.08177205e+00, 2.37118427e+00, - 2.66059648e+00, - 2.95000869e+00, 3.23942091e+00, 3.52883312e+00, - 3.81824533e+00, - 4.10765755e+00, 4.39706976e+00, 4.68648197e+00, - 4.97589419e+00, - 5.26530640e+00, 5.55471861e+00, 5.75429441e+00, - 5.95387020e+00, - 6.15344600e+00, 6.46543931e+00, 6.69021058e+00, - 6.91498185e+00, - 7.13975312e+00, 7.36452439e+00, 7.58929566e+00, - 7.81406694e+00, - 8.03883821e+00, 8.26360948e+00, 8.48838075e+00, - 8.71315202e+00, - 8.93792329e+00, 9.29231855e+00, 9.64671381e+00, - 9.87042767e+00, - 1.00941415e+01, 1.03178554e+01, 1.04707829e+01, - 1.06237105e+01, - 1.07766381e+01, 1.08876690e+01, 1.09986998e+01, - 1.11097307e+01, - 1.11913085e+01, 1.12728862e+01, 1.13544640e+01, - 1.14360417e+01, - 1.14912119e+01, 1.15463820e+01, 1.16015522e+01, - 1.16567224e+01, - 1.17118925e+01, 1.17670627e+01, 1.18060238e+01, - 1.18344243e+01, - 1.18628249e+01, 1.18912255e+01, 1.19196261e+01, - 1.19480267e+01, - 1.19764272e+01, 1.20048278e+01, 1.20247743e+01, - 1.20447208e+01, - 1.20646672e+01, 1.20846137e+01, 1.21045602e+01, - 1.21245066e+01, - 1.21444531e+01, 1.21685210e+01, 1.21859235e+01, - 1.22033260e+01, - 1.22207286e+01, 1.22381311e+01, 1.22555336e+01, - 1.22729361e+01, - 1.22903386e+01, 1.23166077e+01, 1.23428768e+01, - 1.23691459e+01, - 1.23954150e+01, 1.24216840e+01, 1.24479531e+01, - 1.24742222e+01, - 1.25004913e+01, 1.25267604e+01, 1.25530294e+01, - 1.25792985e+01, - 1.26055676e+01, 1.26318367e+01, 1.26581058e+01, - 1.26843748e+01, - 1.27106439e+01, 1.27369130e+01, 1.27631821e+01, - 1.27894512e+01, - 1.28157202e+01, 1.28419893e+01, 1.28682584e+01, - 1.28945275e+01, - 1.29207966e+01, 1.29470656e+01, 1.29733347e+01, - 1.29996038e+01, - 1.30434980e+01, 1.30873922e+01, 1.31312864e+01, - 1.31751806e+01, - 1.32190748e+01, 1.33125773e+01, 1.34060797e+01, - 1.34995821e+01, - 1.35930846e+01, 1.36865870e+01, 1.38890130e+01, - 1.40914391e+01, - 1.42938651e+01, 1.44962911e+01, 1.48659380e+01, - 1.52355849e+01, - 1.72063049e+01, 1.91770248e+01, 2.11477447e+01, - 2.40000000e+01]), - 'X': array([0.01, 0.01000001, 0.01007442, 0.01027505, 0.01047923, - 0.01068731, 0.01101048, 0.01134339, 0.01194165, - 0.01257137, - 0.01323421, 0.01437495, 0.01561403, 0.01695993, - 0.02001104, - 0.02361154, 0.02785903, 0.03286946, 0.03878035, - 0.04575387, - 0.05398109, 0.06368717, 0.07513765, 0.08864571, - 0.10458067, - 0.12337794, 0.14555081, 0.17170425, 0.20255118, - 0.23893152, - 0.26775043, 0.30003795, 0.33621059, 0.40167063, - 0.45656932, - 0.51894332, 0.58980393, 0.67029632, 0.76171532, - 0.86552457, - 0.98337771, 1.1171406, 1.26891467, 1.44106161, - 1.63622853, - 1.99798087, 2.43767005, 2.7622085, 3.12812855, - 3.53985117, - 3.84993488, 4.18478847, 4.54549087, 4.82397847, - 5.11648553, - 5.42271114, 5.65601237, 5.89573243, 6.14096851, - 6.39034286, - 6.56033205, 6.73039381, 6.89934182, 7.06561194, - 7.22714514, - 7.38125988, 7.48380463, 7.5543561, 7.6207073, - 7.68225962, - 7.73844325, 7.78877027, 7.832898, 7.87069075, - 7.89349971, - 7.91335326, 7.93042318, 7.94492736, 7.95711585, - 7.96725552, - 7.97561473, 7.98369653, 7.98839427, 7.99229022, - 7.99550949, - 7.99816155, 8.00034043, 8.00212643, 8.00358754, - 8.00530201, - 8.00656218, 8.00748644, 8.00816315, 8.00865792, - 8.00901952, - 8.00928373, 8.0094769, 8.009618, 8.00972111, 8.0097963, - 8.00985127, 8.00989131, 8.0099207, 8.00994203, - 8.00995777, - 8.00996906, 8.00997753, 8.00998398, 8.00998881, - 8.00999209, - 8.0099942, 8.00999568, 8.00999685, 8.00999776, - 8.00999839, - 8.0099988, 8.00999914, 8.00999925, 8.00999936, - 8.00999958, - 8.00999978, 8.01000023, 8.01000049, 8.01000039, - 8.01000014, - 8.00999999, 8.00999983, 8.00999989, 8.00999998, - 8.01000001, - 8.01000002, 8.01000001, 8.01000001, 8.01, 8.01, - 8.01]), - 'S_substrate': array([2.00000000e+01, 2.00000000e+01, - 1.99998140e+01, 1.99993124e+01, - 1.99988019e+01, 1.99982817e+01, - 1.99974738e+01, 1.99966415e+01, - 1.99951459e+01, 1.99935716e+01, - 1.99919145e+01, 1.99890626e+01, - 1.99859649e+01, 1.99826002e+01, - 1.99749724e+01, 1.99659711e+01, - 1.99553524e+01, 1.99428263e+01, - 1.99280491e+01, 1.99106153e+01, - 1.98900473e+01, 1.98657821e+01, - 1.98371559e+01, 1.98033857e+01, - 1.97635483e+01, 1.97165551e+01, - 1.96611230e+01, 1.95957394e+01, - 1.95186221e+01, 1.94276712e+01, - 1.93556239e+01, 1.92749051e+01, - 1.91844735e+01, 1.90208234e+01, - 1.88835767e+01, 1.87276417e+01, - 1.85504902e+01, 1.83492592e+01, - 1.81207117e+01, 1.78611886e+01, - 1.75665557e+01, 1.72321485e+01, - 1.68527133e+01, 1.64223460e+01, - 1.59344287e+01, 1.50300478e+01, - 1.39308249e+01, 1.31194788e+01, - 1.22046786e+01, 1.11753721e+01, - 1.04001628e+01, 9.56302883e+00, - 8.66127282e+00, 7.96505382e+00, - 7.23378617e+00, 6.46822216e+00, - 5.88496908e+00, 5.28566893e+00, - 4.67257871e+00, 4.04914285e+00, - 3.62416986e+00, 3.19901547e+00, - 2.77664545e+00, 2.36097015e+00, - 1.95713716e+00, 1.57185031e+00, - 1.31548844e+00, 1.13910974e+00, - 9.73231747e-01, 8.19350947e-01, - 6.78891873e-01, 5.53074324e-01, - 4.42754998e-01, 3.48273128e-01, - 2.91250720e-01, 2.41616847e-01, - 1.98942058e-01, 1.62681603e-01, - 1.32210371e-01, 1.06861209e-01, - 8.59631646e-02, 6.57586866e-02, - 5.40143186e-02, 4.42744583e-02, - 3.62262631e-02, 2.95961315e-02, - 2.41489235e-02, 1.96839254e-02, - 1.60311546e-02, 1.17449793e-02, - 8.59454568e-03, 6.28390615e-03, - 4.59212605e-03, 3.35519709e-03, - 2.45120231e-03, 1.79067835e-03, - 1.30776192e-03, 9.55007216e-04, - 6.97213900e-04, 5.09252537e-04, - 3.71823858e-04, 2.71722143e-04, - 1.98247751e-04, 1.44928061e-04, - 1.05565573e-04, 7.73542359e-05, - 5.61825443e-05, 4.00431335e-05, - 2.79801017e-05, 1.97696425e-05, - 1.44933367e-05, 1.07997649e-05, - 7.87411266e-06, 5.60487745e-06, - 4.03634962e-06, 3.00250108e-06, - 2.14584915e-06, 1.88743404e-06, - 1.59825382e-06, 1.06207944e-06, - 5.43902318e-07, -5.74527374e-07, - -1.22798991e-06, -9.68733873e-07, - -3.40860531e-07, 1.53153067e-08, - 4.18994832e-07, 2.87157290e-07, - 5.58479234e-08, -2.89640501e-08, - -5.52070633e-08, -1.66479591e-08, - -1.30759119e-08, -7.30389711e-10, - 2.00891153e-10, 5.95679793e-12]), - 'P_product': array([0.00000000e+00, 2.74886917e-09, - 2.23258390e-05, 8.25140254e-05, - 1.43767584e-04, 2.06194151e-04, 3.03143993e-04, - 4.03017093e-04, - 5.82495354e-04, 7.71411381e-04, 9.70263731e-04, - 1.31248487e-03, - 1.68421018e-03, 2.08797802e-03, 3.00331127e-03, - 4.08346290e-03, - 5.35770852e-03, 6.86083829e-03, 8.63410359e-03, - 1.07261620e-02, - 1.31943273e-02, 1.61061506e-02, 1.95412948e-02, - 2.35937144e-02, - 2.83742018e-02, 3.40133825e-02, 4.06652418e-02, - 4.85112736e-02, - 5.77653536e-02, 6.86794565e-02, 7.73251291e-02, - 8.70113850e-02, - 9.78631769e-02, 1.17501188e-01, 1.33970795e-01, - 1.52682996e-01, - 1.73941180e-01, 1.98088897e-01, 2.25514595e-01, - 2.56657370e-01, - 2.92013313e-01, 3.32142179e-01, 3.77674401e-01, - 4.29318484e-01, - 4.87868560e-01, 5.96394260e-01, 7.28301016e-01, - 8.25662550e-01, - 9.35438564e-01, 1.05895535e+00, 1.15198046e+00, - 1.25243654e+00, - 1.36064726e+00, 1.44419354e+00, 1.53194566e+00, - 1.62381334e+00, - 1.69380371e+00, 1.76571973e+00, 1.83929055e+00, - 1.91410286e+00, - 1.96509962e+00, 2.01611814e+00, 2.06680255e+00, - 2.11668358e+00, - 2.16514354e+00, 2.21137796e+00, 2.24214139e+00, - 2.26330683e+00, - 2.28321219e+00, 2.30167789e+00, 2.31853298e+00, - 2.33363108e+00, - 2.34686940e+00, 2.35820722e+00, 2.36504991e+00, - 2.37100598e+00, - 2.37612695e+00, 2.38047821e+00, 2.38413476e+00, - 2.38717665e+00, - 2.38968442e+00, 2.39210896e+00, 2.39351828e+00, - 2.39468707e+00, - 2.39565285e+00, 2.39644846e+00, 2.39710213e+00, - 2.39763793e+00, - 2.39807626e+00, 2.39859060e+00, 2.39896865e+00, - 2.39924593e+00, - 2.39944894e+00, 2.39959738e+00, 2.39970586e+00, - 2.39978512e+00, - 2.39984307e+00, 2.39988540e+00, 2.39991633e+00, - 2.39993889e+00, - 2.39995538e+00, 2.39996739e+00, 2.39997621e+00, - 2.39998261e+00, - 2.39998733e+00, 2.39999072e+00, 2.39999326e+00, - 2.39999519e+00, - 2.39999664e+00, 2.39999763e+00, 2.39999826e+00, - 2.39999870e+00, - 2.39999906e+00, 2.39999933e+00, 2.39999952e+00, - 2.39999964e+00, - 2.39999974e+00, 2.39999977e+00, 2.39999981e+00, - 2.39999987e+00, - 2.39999993e+00, 2.40000007e+00, 2.40000015e+00, - 2.40000012e+00, - 2.40000004e+00, 2.40000000e+00, 2.39999995e+00, - 2.39999997e+00, - 2.39999999e+00, 2.40000000e+00, 2.40000001e+00, - 2.40000000e+00, - 2.40000000e+00, 2.40000000e+00, 2.40000000e+00, - 2.40000000e+00])}) + {'time': array( + [0.00000000e+00, 1.60350555e-06, 1.29272201e-02, 4.73210593e-02, + 8.17148984e-02, 1.16108738e-01, 1.68220493e-01, 2.20332247e-01, + 3.10246576e-01, 4.00160904e-01, 4.90075232e-01, 6.34757887e-01, + 7.79440543e-01, 9.24123199e-01, 1.21353541e+00, 1.50294763e+00, + 1.79235984e+00, 2.08177205e+00, 2.37118427e+00, 2.66059648e+00, + 2.95000869e+00, 3.23942091e+00, 3.52883312e+00, 3.81824533e+00, + 4.10765755e+00, 4.39706976e+00, 4.68648197e+00, 4.97589419e+00, + 5.26530640e+00, 5.55471861e+00, 5.75429441e+00, 5.95387020e+00, + 6.15344600e+00, 6.46543931e+00, 6.69021058e+00, 6.91498185e+00, + 7.13975312e+00, 7.36452439e+00, 7.58929566e+00, 7.81406694e+00, + 8.03883821e+00, 8.26360948e+00, 8.48838075e+00, 8.71315202e+00, + 8.93792329e+00, 9.29231855e+00, 9.64671381e+00, 9.87042767e+00, + 1.00941415e+01, 1.03178554e+01, 1.04707829e+01, 1.06237105e+01, + 1.07766381e+01, 1.08876690e+01, 1.09986998e+01, 1.11097307e+01, + 1.11913085e+01, 1.12728862e+01, 1.13544640e+01, 1.14360417e+01, + 1.14912119e+01, 1.15463820e+01, 1.16015522e+01, 1.16567224e+01, + 1.17118925e+01, 1.17670627e+01, 1.18060238e+01, 1.18344243e+01, + 1.18628249e+01, 1.18912255e+01, 1.19196261e+01, 1.19480267e+01, + 1.19764272e+01, 1.20048278e+01, 1.20247743e+01, 1.20447208e+01, + 1.20646672e+01, 1.20846137e+01, 1.21045602e+01, 1.21245066e+01, + 1.21444531e+01, 1.21685210e+01, 1.21859235e+01, 1.22033260e+01, + 1.22207286e+01, 1.22381311e+01, 1.22555336e+01, 1.22729361e+01, + 1.22903386e+01, 1.23166077e+01, 1.23428768e+01, 1.23691459e+01, + 1.23954150e+01, 1.24216840e+01, 1.24479531e+01, 1.24742222e+01, + 1.25004913e+01, 1.25267604e+01, 1.25530294e+01, 1.25792985e+01, + 1.26055676e+01, 1.26318367e+01, 1.26581058e+01, 1.26843748e+01, + 1.27106439e+01, 1.27369130e+01, 1.27631821e+01, 1.27894512e+01, + 1.28157202e+01, 1.28419893e+01, 1.28682584e+01, 1.28945275e+01, + 1.29207966e+01, 1.29470656e+01, 1.29733347e+01, 1.29996038e+01, + 1.30434980e+01, 1.30873922e+01, 1.31312864e+01, 1.31751806e+01, + 1.32190748e+01, 1.33125773e+01, 1.34060797e+01, 1.34995821e+01, + 1.35930846e+01, 1.36865870e+01, 1.38890130e+01, 1.40914391e+01, + 1.42938651e+01, 1.44962911e+01, 1.48659380e+01, 1.52355849e+01, + 1.72063049e+01, 1.91770248e+01, 2.11477447e+01, + 2.40000000e+01]), 'X': array( + [0.01, 0.01000001, 0.01007442, 0.01027505, 0.01047923, + 0.01068731, 0.01101048, 0.01134339, 0.01194165, 0.01257137, + 0.01323421, 0.01437495, 0.01561403, 0.01695993, 0.02001104, + 0.02361154, 0.02785903, 0.03286946, 0.03878035, 0.04575387, + 0.05398109, 0.06368717, 0.07513765, 0.08864571, 0.10458067, + 0.12337794, 0.14555081, 0.17170425, 0.20255118, 0.23893152, + 0.26775043, 0.30003795, 0.33621059, 0.40167063, 0.45656932, + 0.51894332, 0.58980393, 0.67029632, 0.76171532, 0.86552457, + 0.98337771, 1.1171406, 1.26891467, 1.44106161, 1.63622853, + 1.99798087, 2.43767005, 2.7622085, 3.12812855, 3.53985117, + 3.84993488, 4.18478847, 4.54549087, 4.82397847, 5.11648553, + 5.42271114, 5.65601237, 5.89573243, 6.14096851, 6.39034286, + 6.56033205, 6.73039381, 6.89934182, 7.06561194, 7.22714514, + 7.38125988, 7.48380463, 7.5543561, 7.6207073, 7.68225962, + 7.73844325, 7.78877027, 7.832898, 7.87069075, 7.89349971, + 7.91335326, 7.93042318, 7.94492736, 7.95711585, 7.96725552, + 7.97561473, 7.98369653, 7.98839427, 7.99229022, 7.99550949, + 7.99816155, 8.00034043, 8.00212643, 8.00358754, 8.00530201, + 8.00656218, 8.00748644, 8.00816315, 8.00865792, 8.00901952, + 8.00928373, 8.0094769, 8.009618, 8.00972111, 8.0097963, + 8.00985127, 8.00989131, 8.0099207, 8.00994203, 8.00995777, + 8.00996906, 8.00997753, 8.00998398, 8.00998881, 8.00999209, + 8.0099942, 8.00999568, 8.00999685, 8.00999776, 8.00999839, + 8.0099988, 8.00999914, 8.00999925, 8.00999936, 8.00999958, + 8.00999978, 8.01000023, 8.01000049, 8.01000039, 8.01000014, + 8.00999999, 8.00999983, 8.00999989, 8.00999998, 8.01000001, + 8.01000002, 8.01000001, 8.01000001, 8.01, 8.01, + 8.01]), 'S_substrate': array( + [2.00000000e+01, 2.00000000e+01, 1.99998140e+01, 1.99993124e+01, + 1.99988019e+01, 1.99982817e+01, 1.99974738e+01, 1.99966415e+01, + 1.99951459e+01, 1.99935716e+01, 1.99919145e+01, 1.99890626e+01, + 1.99859649e+01, 1.99826002e+01, 1.99749724e+01, 1.99659711e+01, + 1.99553524e+01, 1.99428263e+01, 1.99280491e+01, 1.99106153e+01, + 1.98900473e+01, 1.98657821e+01, 1.98371559e+01, 1.98033857e+01, + 1.97635483e+01, 1.97165551e+01, 1.96611230e+01, 1.95957394e+01, + 1.95186221e+01, 1.94276712e+01, 1.93556239e+01, 1.92749051e+01, + 1.91844735e+01, 1.90208234e+01, 1.88835767e+01, 1.87276417e+01, + 1.85504902e+01, 1.83492592e+01, 1.81207117e+01, 1.78611886e+01, + 1.75665557e+01, 1.72321485e+01, 1.68527133e+01, 1.64223460e+01, + 1.59344287e+01, 1.50300478e+01, 1.39308249e+01, 1.31194788e+01, + 1.22046786e+01, 1.11753721e+01, 1.04001628e+01, 9.56302883e+00, + 8.66127282e+00, 7.96505382e+00, 7.23378617e+00, 6.46822216e+00, + 5.88496908e+00, 5.28566893e+00, 4.67257871e+00, 4.04914285e+00, + 3.62416986e+00, 3.19901547e+00, 2.77664545e+00, 2.36097015e+00, + 1.95713716e+00, 1.57185031e+00, 1.31548844e+00, 1.13910974e+00, + 9.73231747e-01, 8.19350947e-01, 6.78891873e-01, 5.53074324e-01, + 4.42754998e-01, 3.48273128e-01, 2.91250720e-01, 2.41616847e-01, + 1.98942058e-01, 1.62681603e-01, 1.32210371e-01, 1.06861209e-01, + 8.59631646e-02, 6.57586866e-02, 5.40143186e-02, 4.42744583e-02, + 3.62262631e-02, 2.95961315e-02, 2.41489235e-02, 1.96839254e-02, + 1.60311546e-02, 1.17449793e-02, 8.59454568e-03, 6.28390615e-03, + 4.59212605e-03, 3.35519709e-03, 2.45120231e-03, 1.79067835e-03, + 1.30776192e-03, 9.55007216e-04, 6.97213900e-04, 5.09252537e-04, + 3.71823858e-04, 2.71722143e-04, 1.98247751e-04, 1.44928061e-04, + 1.05565573e-04, 7.73542359e-05, 5.61825443e-05, 4.00431335e-05, + 2.79801017e-05, 1.97696425e-05, 1.44933367e-05, 1.07997649e-05, + 7.87411266e-06, 5.60487745e-06, 4.03634962e-06, 3.00250108e-06, + 2.14584915e-06, 1.88743404e-06, 1.59825382e-06, 1.06207944e-06, + 5.43902318e-07, -5.74527374e-07, -1.22798991e-06, -9.68733873e-07, + -3.40860531e-07, 1.53153067e-08, 4.18994832e-07, 2.87157290e-07, + 5.58479234e-08, -2.89640501e-08, -5.52070633e-08, -1.66479591e-08, + -1.30759119e-08, -7.30389711e-10, 2.00891153e-10, + 5.95679793e-12]), 'P_product': array( + [0.00000000e+00, 2.74886917e-09, 2.23258390e-05, 8.25140254e-05, + 1.43767584e-04, 2.06194151e-04, 3.03143993e-04, 4.03017093e-04, + 5.82495354e-04, 7.71411381e-04, 9.70263731e-04, 1.31248487e-03, + 1.68421018e-03, 2.08797802e-03, 3.00331127e-03, 4.08346290e-03, + 5.35770852e-03, 6.86083829e-03, 8.63410359e-03, 1.07261620e-02, + 1.31943273e-02, 1.61061506e-02, 1.95412948e-02, 2.35937144e-02, + 2.83742018e-02, 3.40133825e-02, 4.06652418e-02, 4.85112736e-02, + 5.77653536e-02, 6.86794565e-02, 7.73251291e-02, 8.70113850e-02, + 9.78631769e-02, 1.17501188e-01, 1.33970795e-01, 1.52682996e-01, + 1.73941180e-01, 1.98088897e-01, 2.25514595e-01, 2.56657370e-01, + 2.92013313e-01, 3.32142179e-01, 3.77674401e-01, 4.29318484e-01, + 4.87868560e-01, 5.96394260e-01, 7.28301016e-01, 8.25662550e-01, + 9.35438564e-01, 1.05895535e+00, 1.15198046e+00, 1.25243654e+00, + 1.36064726e+00, 1.44419354e+00, 1.53194566e+00, 1.62381334e+00, + 1.69380371e+00, 1.76571973e+00, 1.83929055e+00, 1.91410286e+00, + 1.96509962e+00, 2.01611814e+00, 2.06680255e+00, 2.11668358e+00, + 2.16514354e+00, 2.21137796e+00, 2.24214139e+00, 2.26330683e+00, + 2.28321219e+00, 2.30167789e+00, 2.31853298e+00, 2.33363108e+00, + 2.34686940e+00, 2.35820722e+00, 2.36504991e+00, 2.37100598e+00, + 2.37612695e+00, 2.38047821e+00, 2.38413476e+00, 2.38717665e+00, + 2.38968442e+00, 2.39210896e+00, 2.39351828e+00, 2.39468707e+00, + 2.39565285e+00, 2.39644846e+00, 2.39710213e+00, 2.39763793e+00, + 2.39807626e+00, 2.39859060e+00, 2.39896865e+00, 2.39924593e+00, + 2.39944894e+00, 2.39959738e+00, 2.39970586e+00, 2.39978512e+00, + 2.39984307e+00, 2.39988540e+00, 2.39991633e+00, 2.39993889e+00, + 2.39995538e+00, 2.39996739e+00, 2.39997621e+00, 2.39998261e+00, + 2.39998733e+00, 2.39999072e+00, 2.39999326e+00, 2.39999519e+00, + 2.39999664e+00, 2.39999763e+00, 2.39999826e+00, 2.39999870e+00, + 2.39999906e+00, 2.39999933e+00, 2.39999952e+00, 2.39999964e+00, + 2.39999974e+00, 2.39999977e+00, 2.39999981e+00, 2.39999987e+00, + 2.39999993e+00, 2.40000007e+00, 2.40000015e+00, 2.40000012e+00, + 2.40000004e+00, 2.40000000e+00, 2.39999995e+00, 2.39999997e+00, + 2.39999999e+00, 2.40000000e+00, 2.40000001e+00, 2.40000000e+00, + 2.40000000e+00, 2.40000000e+00, 2.40000000e+00, 2.40000000e+00])} + ) +@pytest.fixture +def placeholder_data(): + return pd.DataFrame({ + "time": [0.00000000e+00, 1.60350555e-06, 1.29272201e-02, 4.73210593e-02, + 8.17148984e-02, 1.16108738e-01, 1.68220493e-01, 2.20332247e-01, + 3.10246576e-01, 4.00160904e-01, 4.90075232e-01, 6.34757887e-01, + 7.79440543e-01, 9.24123199e-01, 1.21353541e+00, 1.50294763e+00, + 1.79235984e+00, 2.08177205e+00, 2.37118427e+00, 2.66059648e+00, + 2.95000869e+00, 3.23942091e+00, 3.52883312e+00, 3.81824533e+00, + 4.10765755e+00, 4.39706976e+00, 4.68648197e+00, 4.97589419e+00, + 5.26530640e+00, 5.55471861e+00, 5.75429441e+00, 5.95387020e+00, + 6.15344600e+00, 6.46543931e+00, 6.69021058e+00, 6.91498185e+00, + 7.13975312e+00, 7.36452439e+00, 7.58929566e+00, 7.81406694e+00, + 8.03883821e+00, 8.26360948e+00, 8.48838075e+00, 8.71315202e+00, + 8.93792329e+00, 9.29231855e+00, 9.64671381e+00, 9.87042767e+00, + 1.00941415e+01, 1.03178554e+01, 1.04707829e+01, 1.06237105e+01, + 1.07766381e+01, 1.08876690e+01, 1.09986998e+01, 1.11097307e+01, + 1.11913085e+01, 1.12728862e+01, 1.13544640e+01, 1.14360417e+01, + 1.14912119e+01, 1.15463820e+01, 1.16015522e+01, 1.16567224e+01, + 1.17118925e+01, 1.17670627e+01, 1.18060238e+01, 1.18344243e+01, + 1.18628249e+01, 1.18912255e+01, 1.19196261e+01, 1.19480267e+01, + 1.19764272e+01, 1.20048278e+01, 1.20247743e+01, 1.20447208e+01, + 1.20646672e+01, 1.20846137e+01, 1.21045602e+01, 1.21245066e+01, + 1.21444531e+01, 1.21685210e+01, 1.21859235e+01, 1.22033260e+01, + 1.22207286e+01, 1.22381311e+01, 1.22555336e+01, 1.22729361e+01, + 1.22903386e+01, 1.23166077e+01, 1.23428768e+01, 1.23691459e+01, + 1.23954150e+01, 1.24216840e+01, 1.24479531e+01, 1.24742222e+01, + 1.25004913e+01, 1.25267604e+01, 1.25530294e+01, 1.25792985e+01, + 1.26055676e+01, 1.26318367e+01, 1.26581058e+01, 1.26843748e+01, + 1.27106439e+01, 1.27369130e+01, 1.27631821e+01, 1.27894512e+01, + 1.28157202e+01, 1.28419893e+01, 1.28682584e+01, 1.28945275e+01, + 1.29207966e+01, 1.29470656e+01, 1.29733347e+01, 1.29996038e+01, + 1.30434980e+01, 1.30873922e+01, 1.31312864e+01, 1.31751806e+01, + 1.32190748e+01, 1.33125773e+01, 1.34060797e+01, 1.34995821e+01, + 1.35930846e+01, 1.36865870e+01, 1.38890130e+01, 1.40914391e+01, + 1.42938651e+01, 1.44962911e+01, 1.48659380e+01, 1.52355849e+01, + 1.72063049e+01, 1.91770248e+01, 2.11477447e+01, + 2.40000000e+01], + "X": np.arange(136), + "S_substrate": np.arange(136), + "P_product": np.arange(136) +}) -def test_monod_model(monod_model_sds, this_model_data): +@pytest.fixture +def parameters(): + return { + "X_0": 0.01, + "y_BM": 0.4, + "S_substrate_km": 1, + "S_substrate_qsmax": 1.5, + "S_substrate_s_0": 20, + "P_product_y_P": 0.12, + "P_product_p_0": 0 + } + + +def test_monod_model(monod_model_sds, pyfoomb_simulated_data): """ Test that the Monod model using pyFOOMB simulated data & parameters given as input. @@ -285,7 +217,7 @@ def test_monod_model(monod_model_sds, this_model_data): io = IoHandler() model = io.select_model( "Dynamic Monod model (1 substrate, 1 product)", - this_model_data + pyfoomb_simulated_data ) model.get_params() fitter = io.initialize_fitter( @@ -309,4 +241,31 @@ def test_monod_model(monod_model_sds, this_model_data): atol=1e-3 ) +def test_physiofit_simulations(parameters, placeholder_data, + pyfoomb_simulated_data): + io = IoHandler() + model = io.select_model("Dynamic Monod model (1 substrate, 1 product)", + placeholder_data) + model.get_params() + model.parameters.update(parameters) + sim_data = model.simulate( + list(model.parameters.values()), + model.data.drop("time", axis=1), + model.time_vector, + model.args + ) + df = pd.DataFrame( + data=sim_data, + index=model.time_vector, + columns=model.name_vector + ) + df.index.name = "time" + df = df.reset_index() + + pd.testing.assert_frame_equal( + df, + pyfoomb_simulated_data, + rtol=1e-2, + atol=1e-3 + ) \ No newline at end of file From 47d06e2f52343f0e02a7f631bb42a30628d3b6ba Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 16:28:01 +0200 Subject: [PATCH 041/114] Added more data points to simulated matrixes for plotting --- physiofit/base/fitter.py | 116 ++++++++++++++++++++++++++++++--------- physiofit/base/io.py | 18 +++--- 2 files changed, 101 insertions(+), 33 deletions(-) diff --git a/physiofit/base/fitter.py b/physiofit/base/fitter.py index 97f5afd..eec6530 100644 --- a/physiofit/base/fitter.py +++ b/physiofit/base/fitter.py @@ -10,6 +10,7 @@ from scipy.stats import chi2 from physiofit.models.base_model import Model +# import physiofit # To get debug logs from the module logger = logging.getLogger(f"physiofit.{__name__}") @@ -138,6 +139,9 @@ def _sd_dict_to_matrix(self): matrix = np.column_stack(columns) self.sd = matrix + logger.debug(f"SD object type: {type(self.sd)}") + logger.debug(f"Array built from dict:\n{self.sd}") + def initialize_sd_matrix(self): """ Initialize the sd matrix from different types of inputs: single value, @@ -146,25 +150,63 @@ def initialize_sd_matrix(self): :return: None """ + # This function can be optimized, if the input is a matrix we should + # detect it directly logger.info("Initializing sd matrix...\n") + # If sd is None, we generate the default matrix if self.sd is None or self.sd == {}: - self.sd = {"X": 0.2} - self.sd.update({col: 0.5} for col in self.data.columns[2:]) + try: + self.sd = {"X": 0.2} + for col in self.data.columns[2:]: + self.sd.update({col: 0.5}) + except Exception: + raise if isinstance(self.sd, dict): self._sd_dict_to_matrix() - elif isinstance(self.sd, (int, float)): + # When sd is a single value, we build a sd matrix containing the value + # in all positions + if isinstance(self.sd, int) or isinstance(self.sd, float): self._build_sd_matrix() - elif isinstance(self.sd, (np.ndarray, list)): - self.sd = np.array(self.sd).astype(float) - if self.sd.shape != self.experimental_matrix.shape: - self._build_sd_matrix() - else: + logger.debug(f"SD matrix: {self.sd}\n") + return + if not isinstance(self.sd, np.ndarray) and not isinstance(self.sd, + list): raise TypeError( - "Cannot coerce SD to array. Please check that a list or array is given as input.") + f"Cannot coerce SD to array. Please check that a list or array " + f"is given as input.\nCurrent input: \n{self.sd}" + ) + else: + self.sd = np.array(self.sd) + if not np.issubdtype(self.sd.dtype, np.number): + try: + self.sd = self.sd.astype(float) + except ValueError: + raise ValueError( + f"The sd vector/matrix contains values that are not " + f"numeric. \nCurrent sd vector/matrix: \n{self.sd}" + ) + except Exception as e: + raise RuntimeError(f"Unknown error: {e}") + else: + # If the array is not the right shape, we assume it is a vector + # that needs to be tiled into a matrix + + logger.debug(f"SD matrix: {self.sd}\n") + logger.debug(f"Type of SD matrix: {type(self.sd)}") - logger.info(f"SDs:\n{self.sd}\n") + if self.sd.shape != self.experimental_matrix.shape: + try: + self._build_sd_matrix() + except ValueError: + raise + except RuntimeError: + raise + else: + logger.debug(f"sd matrix: {self.sd}\n") + return + logger.info(f"sd Matrix:\n{self.sd}\n") def _build_sd_matrix(self): """ @@ -173,14 +215,23 @@ def _build_sd_matrix(self): :return: None """ - def _build_sd_matrix(self): - if isinstance(self.sd, np.ndarray) and self.sd.size == \ - self.experimental_matrix[0].size: - self.sd = np.tile(self.sd, (len(self.experimental_matrix), 1)) - elif isinstance(self.sd, (int, float)): - self.sd = np.full(self.experimental_matrix.shape, self.sd) + # First condition: the sds are in a 1D array + if isinstance(self.sd, np.ndarray): + # We first check that the sd vector is as long as the + # experimental matrix on the row axis + if self.sd.size != self.experimental_matrix[0].size: + raise ValueError("sd vector not of right size") else: - raise RuntimeError("Unknown error") + # We duplicate the vector column-wise to build a matrix of + # duplicated sd vectors + self.sd = np.tile(self.sd, (len(self.experimental_matrix), 1)) + + # Second condition: the sd is a scalar and must be broadcast to a + # matrix with same shape as the data + elif isinstance(self.sd, int) or isinstance(self.sd, float): + self.sd = np.full(self.experimental_matrix.shape, self.sd) + else: + raise RuntimeError("Unknown error") def _get_default_sds(self): """ @@ -226,10 +277,20 @@ def optimize(self): ): logger.info(f"\n{i} = {param}\n") self.simulated_matrix = self.model.simulate( - self.optimize_results.x, - self.experimental_matrix, - self.model.time_vector, - self.model.args + parameters=self.optimize_results.x, + data_matrix=self.experimental_matrix, + time_vector=self.model.time_vector, + args=self.model.args + ) + self.large_time_vector = np.arange(start=0, stop=max( + self.model.time_vector), + step=(max(self.model.time_vector) / 100) + ) + self.large_matrix = self.model.simulate( + parameters=self.optimize_results.x, + data_matrix=np.ones(shape=(100, self.experimental_matrix.shape[1])), + time_vector=self.large_time_vector, + args=self.model.args ) logger.debug(f"simulated_matrix:\n{self.simulated_matrix}") nan_sim_mat = np.copy(self.simulated_matrix) @@ -239,6 +300,11 @@ def optimize(self): index=self.model.time_vector, columns=self.model.name_vector ) + self.large_simulated_data = DataFrame( + data=self.large_matrix, + index=self.large_time_vector, + columns=self.model.name_vector + ) self.simulated_data.index.name = "Time" logger.info(f"Final Simulated Data: \n{self.simulated_data}\n") @@ -353,7 +419,7 @@ def monte_carlo_analysis(self): # Store the new simulated matrix in list for later use matrices.append( self.model.simulate( - opt_res.x, new_matrix, self.model.time_vector, + opt_res.x, self.large_matrix, self.large_time_vector, self.model.args ) ) @@ -379,13 +445,11 @@ def monte_carlo_analysis(self): # Apply nan mask to be coherent with the experimental matrix nan_lower_ci = np.copy(self.matrices_ci['lower_ci']) nan_higher_ci = np.copy(self.matrices_ci['higher_ci']) - nan_lower_ci[np.isnan(self.experimental_matrix)] = np.nan - nan_higher_ci[np.isnan(self.experimental_matrix)] = np.nan - logger.info( + logger.debug( f"Simulated matrix lower confidence interval:\n{nan_lower_ci}\n" ) - logger.info( + logger.debug( f"Simulated matrix higher confidence interval:\n{nan_higher_ci}\n" ) return diff --git a/physiofit/base/io.py b/physiofit/base/io.py index a6c996a..fd56c0a 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -310,6 +310,7 @@ def output_pdf(self, fitter: PhysioFitter, export_path: str | Path = None): Handle the creation and output of a pdf file containing fit results as a plot + :param fitter: :param export_path: Path to exported pdf. In local mode, it is sent to the _res directory :return: None @@ -369,11 +370,13 @@ def output_recap(self, export_path: str, galaxy=False): else: final_df.to_csv(f"{str(Path(export_path))}/summary.csv") - def output_report(self, fitter, export_path: str | list = None): + @staticmethod + def output_report(fitter, export_path: str | list = None): """ Handle creation and export of the report containing stats from monte carlo analysis of optimization parameters + :param export_path: Path to export the report :param fitter: PhysioFitter object containing results from the optimization of parameters :param export_path: list of paths to export the stats and fluxes. [0] is for stats and [1] for fluxes. @@ -435,8 +438,8 @@ def _get_plot_data(self, fitter): """ # Initialize vectors and data for plotting - if fitter.model.time_vector is not None: - x = fitter.model.time_vector + if fitter.large_time_vector is not None: + x = fitter.large_time_vector else: raise ValueError( "PhysioFitter model time_vector has not been initialized. " @@ -448,8 +451,8 @@ def _get_plot_data(self, fitter): raise ValueError( "PhysioFitter object does not have experimental data loaded in" ) - if fitter.simulated_matrix is not None: - sim_mat = fitter.simulated_matrix + if fitter.large_matrix is not None: + sim_mat = fitter.large_matrix else: raise ValueError("PhysioFitter simulated data does not exist yet") if fitter.matrices_ci is not None: @@ -472,7 +475,7 @@ def _get_plot_data(self, fitter): self.experimental_data = DataFrame( columns=fitter.model.name_vector, - index=x, + index=fitter.model.time_vector, data=exp_mat ).sort_index(level=0) self.simulated_data = DataFrame( @@ -485,8 +488,9 @@ def plot_data(self, fitter, display: bool = False): """ Plot the data + :param display: Should plots be displayed or not on creation :param fitter: PhysioFitter object after optimization of parameters - has been executed :param display: should plots be displayed + has been executed """ self._get_plot_data(fitter) From e14a6c28e3e247e2419ced18751cca505bf75595 Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 16:37:01 +0200 Subject: [PATCH 042/114] Added args (fixed parameters) --- physiofit/base/io.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/physiofit/base/io.py b/physiofit/base/io.py index fd56c0a..88e8f94 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -664,7 +664,8 @@ def export_config(self, export_path): "model_name": self.model.name, "parameters_to_estimate": self.model.parameters, "bounds": {name: f"{bounds[0], bounds[1]}" for name, bounds - in self.model.bounds.items()} + in self.model.bounds.items()}, + "args": self.model.args, }, "sds": dict(self.sds), "mc": self.mc, From bd496225e16f762581f9100e6612ceaa14bb1229 Mon Sep 17 00:00:00 2001 From: legregam Date: Wed, 15 May 2024 16:48:22 +0200 Subject: [PATCH 043/114] Added args (fixed parameters) --- physiofit/ui/gui.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 6e032a8..68b0d71 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -380,7 +380,7 @@ def _initialize_opt_menu_widgets(self, file_extension): label_visibility="collapsed", value=value if self.config_parser is None else self.config_parser.model[ - "fixed_parameters"][key], + "args"][key], key=f"Fixed_{param}_value_{key}" ) From 0d2377334a2a777ae9088a0b28cce2e10753dff5 Mon Sep 17 00:00:00 2001 From: pierremillard Date: Wed, 15 May 2024 23:30:55 +0200 Subject: [PATCH 044/114] fix model 1 --- .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 640 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 0 -> 2024 bytes .../base/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 185 bytes .../base/__pycache__/fitter.cpython-312.pyc | Bin 0 -> 24922 bytes physiofit/base/__pycache__/io.cpython-312.pyc | Bin 0 -> 28273 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 187 bytes .../__pycache__/base_model.cpython-312.pyc | Bin 0 -> 9411 bytes .../__pycache__/model_1.cpython-312.pyc | Bin 0 -> 3854 bytes .../__pycache__/model_2.cpython-312.pyc | Bin 0 -> 3352 bytes .../__pycache__/model_3.cpython-312.pyc | Bin 0 -> 3233 bytes .../__pycache__/model_4.cpython-312.pyc | Bin 0 -> 2565 bytes .../__pycache__/model_5.cpython-312.pyc | Bin 0 -> 4694 bytes physiofit/models/model_1.py | 26 ++++++++++-------- .../ui/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 183 bytes physiofit/ui/__pycache__/cli.cpython-312.pyc | Bin 0 -> 11903 bytes 15 files changed, 14 insertions(+), 12 deletions(-) create mode 100644 physiofit/__pycache__/__init__.cpython-312.pyc create mode 100644 physiofit/__pycache__/__main__.cpython-312.pyc create mode 100644 physiofit/base/__pycache__/__init__.cpython-312.pyc create mode 100644 physiofit/base/__pycache__/fitter.cpython-312.pyc create mode 100644 physiofit/base/__pycache__/io.cpython-312.pyc create mode 100644 physiofit/models/__pycache__/__init__.cpython-312.pyc create mode 100644 physiofit/models/__pycache__/base_model.cpython-312.pyc create mode 100644 physiofit/models/__pycache__/model_1.cpython-312.pyc create mode 100644 physiofit/models/__pycache__/model_2.cpython-312.pyc create mode 100644 physiofit/models/__pycache__/model_3.cpython-312.pyc create mode 100644 physiofit/models/__pycache__/model_4.cpython-312.pyc create mode 100644 physiofit/models/__pycache__/model_5.cpython-312.pyc create mode 100644 physiofit/ui/__pycache__/__init__.cpython-312.pyc create mode 100644 physiofit/ui/__pycache__/cli.cpython-312.pyc diff --git a/physiofit/__pycache__/__init__.cpython-312.pyc b/physiofit/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..369ae9a7ca32ff1c7b3037bbf0ec7471883be758 GIT binary patch literal 640 zcmX@j%ge<81c3*g)2;*Q#~=<2us|7~p8y%t8B!Qh7;_k+7{N4C6jLf=78^_{g3jVZ zuwkqerqzrPb`&cULn>1i4@?F@BdK9eWzP~s$iP@YeL^rcf`*yQ$NxUT$hhVoG93;w?_N z*e&*){Pgt9y!2Zfa9Q@U)FPnvyj$Gy@la-b{4LJ()Dj<{+SH<3Y#=>Anxhyflvv@#X$38ax-&s5{pt| zT=J7kb5rw5ieub8Lt@}AH%2gH0>IvJ%Pc_>i;vID%PfhH*DI*}#bJ}1pHiBWYF8u- zv;!1Z#j!x*12ZEd<821X+YEdU_{6XCDO}`JxX!0>kxyfV^kqKN2JRc2QXS&gIi)Ug zO3kpo%&FeMc7uVfoxhQP0{e8{iM&@BQjHolsT3)xQmJ|9L#y$e-@bAQMP-RB#zl)CWf3lJ_N0~y#xIh@9r%aSdnCE&6x=ajVK z=@i?SQ`2hw+@JP)_q4R;@c?k&rzjmXRG=X73AZEsxt($pF0}9EZNAG}>%P4?o-5Eku5*M=~ zU7-Lj9?hzIlyz|x(SXoqy&{TTjT=~4ui_P)jXZtIcOo@I>VTagbGj)1-g7Yr>=nJLA&C@r9CW73M6OIBOD+@&n8L3zRzU;Z({g zIo3dd%zHx05jRs=w~%Lwm7gmxf8A<1%Dw5r2VJ5JFHR*xgnu0tXxK7M*XJzT)ODsh z8Di!s(};PdXu8y8^1MlzQuAJL%si7_N|Jx0Ys2heCu&h54O1-GRp8#;#My zyC!S0GZegt5E!0w`P&ItPu?FtJoAAI`OV}k+s+VU=4fHIn1k2dnTfZjXBy!R?}{_E z${e%k9-Xe|GFD#K2b>a%LbUqctO;*~F#O%~K+d6UMe{|rT4R?=8|}$Td$QX4@+3`Z_ZtW8{;x*hI&EQ9JX*Z;}M-w#6jb`bVOe$~R; zGVmwvAO!UBn+L{X=;u`HSWsTa8p!KG-&mV}y;+61e$C)P_$C>MT<9G01#nja<)YY{~S}vW+vMnQc5mU;QCp@XBv}=7L#Xf ziz(bO@qx~3Pv&#MDfM7UAYepz!+O35A6rQYUiBt13vqzyw4i4k$K|6dksv&I(kBSt zxdg~L^p}dX(D~sDht>{#vU>5%Eq{DVYq=0!3vX!giWc9{x+_}u9j)gr{OX)l#$a^R5aZv?9R~ui!}uQR zyo-YOQ2clF{9V+1A4Tt?_8m2dBRlaResw#JlyG_ZmfW$agwKtCHu=%y+Vtli-cj~# K%Sh?;9{C4bi?}QR literal 0 HcmV?d00001 diff --git a/physiofit/base/__pycache__/__init__.cpython-312.pyc b/physiofit/base/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2ded5a50794cae930c4484ca2ac96a3ce8385846 GIT binary patch literal 185 zcmX@j%ge<81osa(r-A6lAOanHW&w&!XQ*V*Wb|9fP{ah}eFmxd72#|Z6Iz^FR2-9= znUj-PloI2TpIn-onpaXBvh(1ma>4<0CU8BV!RWkOcrQ5;IKz literal 0 HcmV?d00001 diff --git a/physiofit/base/__pycache__/fitter.cpython-312.pyc b/physiofit/base/__pycache__/fitter.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b33fe3d016b97b8f99bae343de29bfd9a2439236 GIT binary patch literal 24922 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 literal 0 HcmV?d00001 diff --git a/physiofit/base/__pycache__/io.cpython-312.pyc b/physiofit/base/__pycache__/io.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9b7673503a9adba37210a99cbe2ef4dda905f934 GIT binary patch literal 28273 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 literal 0 HcmV?d00001 diff --git a/physiofit/models/__pycache__/__init__.cpython-312.pyc b/physiofit/models/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..12a2bb68cda0a97f7279748ce688659fcb835678 GIT binary patch literal 187 zcmX@j%ge<81osa(r-A6lAOanHW&w&!XQ*V*Wb|9fP{ah}eFmxd73FLd6Iz^FR2-9= znUj-PloI2TpIn-onpaXBThi1Cq`k&&^88OQ;l=uH60D}p3Ru?jQ71a z;F+3;jc7a05@D2XZJI{FDlJB26;`UciFT{awyO$htIEbu&%UzSNLy)}|0dX#64XC> z&V3&^L{Xjq^i1{pMoAxMRpc^L(si$O$rh%r)d@$@4@K&J)QYb2mAo&mj*j zErC*}?6pgMwA2Nq?t;=%TIzvPuUux!mdk$0cdCsLrIsbKPb!tlJ}kei*PSc@j&YLL~rzWoRE((nmYQ^FB#T-Ht|B#`pP zqMEFPVz^h?Pnt<~%>dN$hzt#7i8cg6xp^^Te9b zP>Jl69WJu=KgkJu#alAgd&re?1YNptI3dZgh`C66c-T~CD>rtmteBTQ9?Ca0n zWsL=^Ew%Fbx5P=L9<(e(od}jo_+^huzr2<_{j$%4e%XDdNYF8;^ICLV);;p%gsea= zuBo4++1_AuK0Fy!(?<>@k})aXs)?hrCPosmG`9pWLCX2e(` zEXk4>jf)dX0(y+4#Bf{^&&aWuIFeAt!Ca1f*h7Rnt8SGJ+)%HGR+uk>E-U2b@CvEj+3hNm+8U1x39pSp22ka5jh5C1g1z;txHUox~YOuGwl-H=^FQdZSvumXqXFD zl)8_C6^e!x(uRXzE&1*4LQQ>5VK;-b=Ni5+@HW#doUZ^u^jAM4E8Ow z?T3N`OcN;ma#QDGQ|H3wolx?`h61C_-o@bFg|;q`cy@bsd&fteH#!%B^s^-k8h_~8 zp{vhAWoLc1e)E;~%k6WUuAa#Go#oqe#Od0uh%mQ^jrZ_@nnyMGuV8)1FeHZ3t{+W3 z0^22~8=8P#6w&5ldOT*MFf=ot0*tmb{}DafXk)bn6k5v*is> z{hA7KwTSg>#MKme)NW7F-3I&=1`T~h+g5PN3Sw>0gSse1BjDEy>Tys*snJ0x6_`|F zLUo*~JSuvSqnfRAr{t6_0QXJGD(Z$PntJXDg;cORO+!`pTd-jl?FL!(14uyIJ*6|- z-tNh^1T*~?4^JPS+qUT4QsBpzn|3cY?Otlylj*ftGbhu0$Gh23{X*vr6E{>Jb#RuXm>?VO0RgugHh?}|imW9SU>N9Z z)DZB3yrX#;7=oA>DeyCej%Y&{Bj}Vug-!`i4LgXy-9!t=wSt~Dv^H2nmuR&~P5|Sf zd?%JT139C9Lo-Pp2`6Kk0sO}Knti~aS{V31d{i`rfJsHQDEMbX4mp(FpS2&w-p1b8 zqJuYx(hU1q=q}yB=ZvMR>2gDh@+EyJjP`VnRJFy)1g>E5TwSumWCTRYu z49R)2!Uu$g2isl3_6OB2p*2@c9FYmIA z@Xk3%eM_zcb50W2{J;e{+7y$DFL?MgW`Ki7;Lm>0xxmA$?1S{r!RGAyw2&bq06phj z)}5MubLX8K@6{PH$qYGxd^mK6f$D3n%s4232D1Xe3i3S$A?+L+C1;r_R@pVhjIH+o zAU?&8nKOeA`>_C{pIqcF@)0gdBJ6SKeHei6EO(Zl;->g_*$ZwS0QD??mb+>8%)p3W z-`{aKP`ejW>~fBMTNhtjl85U*hv0i*3r{qg7)}EjdY7(3ZRkj-r0~kui!xIzWBXq~9GkASbTA?GQ z4HDfI3PoZ-%>W^ACTM5kIYZ}AUDIX8(b%_)At+S;43aO;kG5a1 zfs2FFgV~O!K8oFl-Hb1n_gr&d<*pu^3Czfs>X*uURymdu`i8Anc3j@^UgrbCy0%Qe zm^m<0m95*fT-Ux>*FJyXR@GA7GiGUnn0bEYz}qk91dv>H5?AST$)dA%uI8R|%U3I9 z#NVr;5&f;NugATH&toZdH3uOxOEg0%_AO)K3vI zFA)Yw7dZ}lh~j_A%rXqQ;N(e){D3>d(33NK9jmh)JL%q=_eHwd4_)1(avZLsN^g3r zz2%W`EEWoNbjK2qQ+qpXnNu*PitOM&@f_|{@3~s_7s$KaLTjLw}OVG z8w3Z)V9uU0v_vzaOaBnGu2A=;nEcYLMXQZ@-GqAFHu_lg ziq}Ono2BMm11ecRISvj1Hq6%UDOR&twA}-9p>mCceM2mecuWIVYdn(e0N-MG*m{Y_ zOBTEZe4iSIEia62IV>xAi_rpR7X>a%DmnEGw5TbFhdGPMy+__>3wp}0h-};w)l)EA zSH9I0j61>}AoX&liVBR3=?z@ru{T_B|@+n_?)an zWHIdpMg><>APV3?)2)Z%QuK6G0#rBHn#HrmlfWZS$Rfn0PC)EOL6x8cKi&Cqp4*8L z8p%e%lhM(WK>4(j;kan`e*#pduEbz-?%h+$J2DbqA^?E z2Vxjq0x*K1y=9r?cf02NZ$C#X2k!@}XOi!B%{-pt7{8bgL;?E1ESvvYy<66NzoH>q z{zSeTAX4RlnSo4t!CCj^>JC!741+FD^K8w`-z}MI9UZV^MgK)&m%63qO zHNZ-W0BgNwAC$xtK&bs2Bf`KG0pQ{D5K;h?O#WCbpj-#m7{Z~CU5{XmR!yJ$AtG2y z{3!@WDt^rlX+iLpLecs;q!7St7zY4r007Icg)3N#eN!m578}+agX!Hz`spt);z(4E zNqI~$!v`j~sU2d!2_d2eZeL6b7(Niw+o3td7#l{yCeE#E(IrycOYhv!fL=2AK z&Vp97+b$7q_?+=fd5Ng8)yy ziu<*j=H&OhGlGFMeQ$RmhE(kT^yyDqZ&%$`Z_5kiNAn#)kjq>B<*JKRZUTIO<^WpN z`+i>esr*k3pZabeTR8IC!Z*LQQ29DEv2ct7xrZuh!_T~)z7F!Uj+XruT=B>+`sM!} z)dq#K8SC#N*|@8QL!tQd5_}fp(zR>%9pjA#qy88hh>)O1ae6P7PM6N8a|3ssTZ=Mj zoB2Ttn@M9Ic)c2f_xk5M-s0s)h-TwKv3NGL!v5DifCx;49mNmr!3shnR+O${&Y&aM z4-RENrlK$_XdL+n6h?n_^Waws`Ct2QUNMI#i zkH;a%8VUv3-~RWFFYX*Z@#=G*yP*co?vlPMsZ31}iZLIFf{zGXwz@ ztkt>jiHHI!WrY3U6Uep$D;yKZeN>&DkaU6msI7!i3`qg}kPX3QO2z0#8cvW-n69Z2 zWrPX1m}u()h7XW)%2pRI;O!^L2_e)#fduDpv)r a)N$_M7fvF$r?-8#?N49Hc?fUN$^QWY+|DNe literal 0 HcmV?d00001 diff --git a/physiofit/models/__pycache__/model_1.cpython-312.pyc b/physiofit/models/__pycache__/model_1.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..101fdb980addea098f99bea18ce65b11aabf9bc4 GIT binary patch literal 3854 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 literal 0 HcmV?d00001 diff --git a/physiofit/models/__pycache__/model_2.cpython-312.pyc b/physiofit/models/__pycache__/model_2.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..afed17dd7a9b7ec96997f9929ad13b8fb3abccfe GIT binary patch literal 3352 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 literal 0 HcmV?d00001 diff --git a/physiofit/models/__pycache__/model_3.cpython-312.pyc b/physiofit/models/__pycache__/model_3.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..66744b36630fb8582695c03a6a5eab0118ccfc51 GIT binary patch literal 3233 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 literal 0 HcmV?d00001 diff --git a/physiofit/models/__pycache__/model_4.cpython-312.pyc b/physiofit/models/__pycache__/model_4.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..054772ed6fa31296770da55c555756804763f7a0 GIT binary patch literal 2565 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 literal 0 HcmV?d00001 diff --git a/physiofit/models/model_1.py b/physiofit/models/model_1.py index 5e7558a..846a93f 100644 --- a/physiofit/models/model_1.py +++ b/physiofit/models/model_1.py @@ -64,16 +64,21 @@ def simulate( x_0, mu, t_lag = parameters[:3] # We get indices in time vector where time < t_lag - idx = np.nonzero(time_vector < t_lag)[0] - - # Fill at those indices with x_0 - x_t_lag = np.full(shape=(len(idx)), fill_value=x_0) + mask = (time_vector < t_lag) # Get time vector from length of t_lag to end - time_vector = time_vector[len(idx):] + time_vector_lag = time_vector[mask] + time_vector_growth = time_vector[np.logical_not(mask)] + time_vector_diff = time_vector_growth - t_lag + + # optimize some calculations + exp_mu_t_lag = np.exp(mu * time_vector_diff) + + # Fill at those indices with x_0 + x_t_lag = np.repeat(x_0, len(time_vector_lag)) # The rest of the biomass points are calculated as usual - mult_by_time = x_0 * np.exp(mu * (time_vector - t_lag)) + mult_by_time = x_0 * exp_mu_t_lag # Concatenate both vectors and transfer to X_t column of the # simulated matrix @@ -81,16 +86,13 @@ def simulate( # Get extra arguments arg_values = [value for value in args["Degradation"].values()] - - # optimize some calculations - exp_mu_t_lag = np.exp(mu * (time_vector - t_lag)) - + for i in range(1, len(parameters) // 2): q, m_0 = parameters[i * 2 + 1:i * 2 + 3] k = arg_values[i - 1] - m_t_lag = np.full(len(idx), fill_value=m_0) + m_t_lag = m_0 * np.exp(-k * time_vector_lag) mult_by_time = q * (x_0 / (mu + k)) * (exp_mu_t_lag - np.exp( - -k * time_vector)) + m_0 * np.exp(-k * time_vector) + -k * time_vector_diff)) + m_0 * np.exp(-k * time_vector_growth) simulated_matrix[:, i] = np.concatenate((m_t_lag, mult_by_time)) return simulated_matrix diff --git a/physiofit/ui/__pycache__/__init__.cpython-312.pyc b/physiofit/ui/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6e56dc102823062f2f5c407a5fdefe123b725aa9 GIT binary patch literal 183 zcmX@j%ge<81osa(r-A6lAOanHW&w&!XQ*V*Wb|9fP{ah}eFmxd73ORe6Iz^FR2-9= znUj-PloI2TpIn-onpaXBVi4maGb1Bo5i^hl0K675jsO4v literal 0 HcmV?d00001 diff --git a/physiofit/ui/__pycache__/cli.cpython-312.pyc b/physiofit/ui/__pycache__/cli.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..06f67b48b625fd71edac15ae28027dea4997c081 GIT binary patch literal 11903 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 literal 0 HcmV?d00001 From b3ddf502aa0b7776291cc4bb3500948e78867250 Mon Sep 17 00:00:00 2001 From: legregam Date: Thu, 16 May 2024 11:01:52 +0200 Subject: [PATCH 045/114] Refactoring --- physiofit/models/model_1.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/physiofit/models/model_1.py b/physiofit/models/model_1.py index 846a93f..9ce15e5 100644 --- a/physiofit/models/model_1.py +++ b/physiofit/models/model_1.py @@ -14,7 +14,7 @@ def __init__(self, data): super().__init__(data) self.name = "Steady-state batch model with lag phase and " \ - "degradation of metabolites" + "degradation of metabolites" self.vini = 1 self.parameters = None self.args = None @@ -47,7 +47,7 @@ def get_params(self): self.args = {"Degradation": { met: 0 for met in self.metabolites - } + } } @staticmethod @@ -59,16 +59,23 @@ def simulate( ): # Get end shape simulated_matrix = np.empty_like(data_matrix) + # print("simulated_matrix", simulated_matrix) + # print("simulated_matrix.shape", simulated_matrix.shape) # Get initial params x_0, mu, t_lag = parameters[:3] # We get indices in time vector where time < t_lag mask = (time_vector < t_lag) + # print("mask", mask) # Get time vector from length of t_lag to end time_vector_lag = time_vector[mask] + # print("len(time_vector_lag)", len(time_vector_lag)) + # print("time_vector_lag", time_vector_lag) time_vector_growth = time_vector[np.logical_not(mask)] + # print("len(time_vector_growth)", len(time_vector_growth)) + # print("time_vector_growth", time_vector_growth) time_vector_diff = time_vector_growth - t_lag # optimize some calculations @@ -86,13 +93,14 @@ def simulate( # Get extra arguments arg_values = [value for value in args["Degradation"].values()] - + for i in range(1, len(parameters) // 2): q, m_0 = parameters[i * 2 + 1:i * 2 + 3] k = arg_values[i - 1] m_t_lag = m_0 * np.exp(-k * time_vector_lag) mult_by_time = q * (x_0 / (mu + k)) * (exp_mu_t_lag - np.exp( - -k * time_vector_diff)) + m_0 * np.exp(-k * time_vector_growth) + -k * time_vector_diff)) + m_0 * np.exp(-k * + time_vector_growth) simulated_matrix[:, i] = np.concatenate((m_t_lag, mult_by_time)) return simulated_matrix From 5392d1753ce97607932d49a50c8abd6c0c007b76 Mon Sep 17 00:00:00 2001 From: legregam Date: Thu, 16 May 2024 11:03:05 +0200 Subject: [PATCH 046/114] Made large matrix be created with shape defined by length of the time vector Fixed bug where log level was not being taken into account --- physiofit/base/fitter.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/physiofit/base/fitter.py b/physiofit/base/fitter.py index eec6530..6ec00ed 100644 --- a/physiofit/base/fitter.py +++ b/physiofit/base/fitter.py @@ -76,7 +76,7 @@ def __init__( self.mc = mc self.iterations = iterations self.sd = sd - self.debug_mode = debug_mode + self.debug_mode = logging.DEBUG if debug_mode else logging.INFO self.experimental_matrix = self.data.drop("time", axis=1).to_numpy() self.simulated_matrix = None @@ -89,6 +89,8 @@ def __init__( self.opt_conf_ints = None self.khi2_res = None + logger.setLevel(self.debug_mode) + def verify_attrs(self): """Check that attributes are valid""" @@ -288,7 +290,9 @@ def optimize(self): ) self.large_matrix = self.model.simulate( parameters=self.optimize_results.x, - data_matrix=np.ones(shape=(100, self.experimental_matrix.shape[1])), + data_matrix=np.ones(shape=(len(self.large_time_vector), + self.experimental_matrix.shape[ + 1])), time_vector=self.large_time_vector, args=self.model.args ) From 8892ed052536231225c8f913f6210e2efbdf4c8c Mon Sep 17 00:00:00 2001 From: legregam Date: Thu, 16 May 2024 11:17:13 +0200 Subject: [PATCH 047/114] Fixed test data --- physiofit/tests/test_model_1.py | 130 ++++++++++++++++---------------- 1 file changed, 66 insertions(+), 64 deletions(-) diff --git a/physiofit/tests/test_model_1.py b/physiofit/tests/test_model_1.py index 7d48863..643b05d 100644 --- a/physiofit/tests/test_model_1.py +++ b/physiofit/tests/test_model_1.py @@ -17,68 +17,70 @@ def model_1_data(): with lag phase and degradation of metabolites. Data is simulated using synthetic parameters""" - return pd.DataFrame({ - 'time': - {0: 0.0, 1: 0.2, 2: 0.4, 3: 0.6000000000000001, 4: 0.8, 5: 1.0, - 6: 1.2000000000000002, 7: 1.4000000000000001, 8: 1.6, 9: 1.8, - 10: 2.0, 11: 2.2, 12: 2.4000000000000004, 13: 2.6, - 14: 2.8000000000000003, 15: 3.0, 16: 3.2, 17: 3.4000000000000004, - 18: 3.6, 19: 3.8000000000000003, 20: 4.0, 21: 4.2, 22: 4.4, - 23: 4.6000000000000005, 24: 4.800000000000001, 25: 5.0, 26: 5.2, - 27: 5.4, 28: 5.6000000000000005, 29: 5.800000000000001}, - 'X': {0: 0.02, 1: 0.02, 2: 0.02, 3: 0.02, 4: 0.02, 5: 0.02, 6: 0.02, - 7: 0.020000000000000004, 8: 0.02347021741983621, - 9: 0.027542555286719145, 10: 0.03232148804385787, - 11: 0.037929617586099036, 12: 0.04451081856984937, - 13: 0.052233929468462365, 14: 0.061297084065860055, - 15: 0.07193279451138565, 16: 0.08441391633993109, - 17: 0.09906064848790236, 18: 0.1162487478880518, - 19: 0.13641916938581505, 20: 0.16008937828592706, - 21: 0.18786662574885568, 22: 0.2204635276128321, - 23: 0.25871634631086166, 24: 0.3036064448990781, - 25: 0.3562854635922441, 26: 0.4181048647018553, - 27: 0.49065060394218707, 28: 0.5757838175848543, - 29: 0.6756885692769915}, - 'Glucose': {0: 20.0, 1: 20.0, 2: 20.0, 3: 20.0, 4: 20.0, 5: 20.0, - 6: 20.0, 7: 20.0, 8: 19.96529782580164, - 9: 19.92457444713281, 10: 19.876785119561422, - 11: 19.82070382413901, 12: 19.754891814301505, - 13: 19.677660705315375, 14: 19.587029159341398, - 15: 19.480672054886142, 16: 19.35586083660069, - 17: 19.209393515120976, 18: 19.03751252111948, - 19: 18.83580830614185, 20: 18.59910621714073, - 21: 18.32133374251144, 22: 17.99536472387168, - 23: 17.612836536891383, 24: 17.163935551009217, - 25: 16.63714536407756, 26: 16.018951352981446, - 27: 15.293493960578129, 28: 14.442161824151459, - 29: 13.443114307230086}, - 'Acetate': {0: 0.01, 1: 0.01, 2: 0.01, 3: 0.01, 4: 0.01, 5: 0.01, - 6: 0.01, 7: 0.010000000000000018, 8: 0.02301331532438579, - 9: 0.03828458232519679, 10: 0.05620558016446701, - 11: 0.07723606594787139, 12: 0.10191556963693511, - 13: 0.13087723550673386, 14: 0.16486406524697522, - 15: 0.2047479794176962, 16: 0.2515521862747415, - 17: 0.30647743182963383, 18: 0.37093280458019423, - 19: 0.4465718851968064, 20: 0.5353351685722265, - 21: 0.6394998465582088, 22: 0.7617382285481203, - 23: 0.9051862986657312, 24: 1.0735241683715429, - 25: 1.2710704884709152, 26: 1.5028932426319574, - 27: 1.7749397647832015, 28: 2.0941893159432032, - 29: 2.4688321347887174}, - 'Glutamate': {0: 0.01, 1: 0.01, 2: 0.01, 3: 0.01, 4: 0.01, 5: 0.01, - 6: 0.01, 7: 0.019208259329602594, - 8: 0.023610395246550005, 9: 0.028582519462535216, - 10: 0.03425866658695014, 11: 0.040789758715681516, - 12: 0.04834769009296203, 13: 0.05712991123122743, - 14: 0.06736463708553629, 15: 0.07931681862148794, - 16: 0.09329503566241006, 17: 0.10965949168704309, - 18: 0.12883131882347953, 19: 0.15130343432821913, - 20: 0.17765322917572332, 21: 0.20855741600425604, - 22: 0.24480941874877596, 23: 0.28733975124185634, - 24: 0.33723990853504326, 25: 0.3957903846391713, - 26: 0.4644935361035855, 27: 0.5451121350575759, - 28: 0.6397146012044144, 29: 0.7507280735275471} - }) + return pd.DataFrame( + {'time': {0: 0.0, 1: 0.2, 2: 0.4, 3: 0.6000000000000001, 4: 0.8, + 5: 1.0, 6: 1.2000000000000002, 7: 1.4000000000000001, 8: 1.6, + 9: 1.8, 10: 2.0, 11: 2.2, 12: 2.4000000000000004, 13: 2.6, + 14: 2.8000000000000003, 15: 3.0, 16: 3.2, + 17: 3.4000000000000004, 18: 3.6, 19: 3.8000000000000003, + 20: 4.0, 21: 4.2, 22: 4.4, 23: 4.6000000000000005, + 24: 4.800000000000001, 25: 5.0, 26: 5.2, 27: 5.4, + 28: 5.6000000000000005, 29: 5.800000000000001}, + 'X': {0: 0.02, 1: 0.02, 2: 0.02, 3: 0.02, 4: 0.02, 5: 0.02, 6: 0.02, + 7: 0.020000000000000004, 8: 0.02347021741983621, + 9: 0.027542555286719145, 10: 0.03232148804385787, + 11: 0.037929617586099036, 12: 0.04451081856984937, + 13: 0.052233929468462365, 14: 0.061297084065860055, + 15: 0.07193279451138565, 16: 0.08441391633993109, + 17: 0.09906064848790236, 18: 0.1162487478880518, + 19: 0.13641916938581505, 20: 0.16008937828592706, + 21: 0.18786662574885568, 22: 0.2204635276128321, + 23: 0.25871634631086166, 24: 0.3036064448990781, + 25: 0.3562854635922441, 26: 0.4181048647018553, + 27: 0.49065060394218707, 28: 0.5757838175848543, + 29: 0.6756885692769915}, + 'Glucose': {0: 20.0, 1: 20.0, 2: 20.0, 3: 20.0, 4: 20.0, 5: 20.0, + 6: 20.0, 7: 20.0, 8: 19.96529782580164, + 9: 19.92457444713281, 10: 19.876785119561422, + 11: 19.82070382413901, 12: 19.754891814301505, + 13: 19.677660705315375, 14: 19.587029159341398, + 15: 19.480672054886142, 16: 19.35586083660069, + 17: 19.209393515120976, 18: 19.03751252111948, + 19: 18.83580830614185, 20: 18.59910621714073, + 21: 18.32133374251144, 22: 17.99536472387168, + 23: 17.612836536891383, 24: 17.163935551009217, + 25: 16.63714536407756, 26: 16.018951352981446, + 27: 15.293493960578129, 28: 14.442161824151459, + 29: 13.443114307230086}, + 'Acetate': {0: 0.01, 1: 0.01, 2: 0.01, 3: 0.01, 4: 0.01, 5: 0.01, + 6: 0.01, 7: 0.010000000000000018, 8: 0.02301331532438579, + 9: 0.03828458232519679, 10: 0.05620558016446701, + 11: 0.07723606594787139, 12: 0.10191556963693511, + 13: 0.13087723550673386, 14: 0.16486406524697522, + 15: 0.2047479794176962, 16: 0.2515521862747415, + 17: 0.30647743182963383, 18: 0.37093280458019423, + 19: 0.4465718851968064, 20: 0.5353351685722265, + 21: 0.6394998465582088, 22: 0.7617382285481203, + 23: 0.9051862986657312, 24: 1.0735241683715429, + 25: 1.2710704884709152, 26: 1.5028932426319574, + 27: 1.7749397647832015, 28: 2.0941893159432032, + 29: 2.4688321347887174}, + 'Glutamate': {0: 0.01, 1: 0.008187307530779819, + 2: 0.006703200460356393, 3: 0.005488116360940264, + 4: 0.004493289641172216, 5: 0.0036787944117144234, + 6: 0.0030119421191220205, 7: 0.0024659696394160745, + 8: 0.00990296780025386, 9: 0.017359827066667374, + 10: 0.025070303190118725, 11: 0.03326696303223957, + 12: 0.04218854591780582, 13: 0.05208723048238592, + 14: 0.06323603927850543, 15: 0.07593660862978147, + 16: 0.09052755379033849, 17: 0.10739366916979227, + 18: 0.12697622024758973, 19: 0.14978460807414698, + 20: 0.1764097194129322, 21: 0.20753931631970624, + 22: 0.24397586922733605, 23: 0.28665729861444006, + 24: 0.33668116358145866, 25: 0.39533292296254446, + 26: 0.46411899816057645, 27: 0.5448054893254399, + 28: 0.6394635409132144, 29: 0.7505225227462651}} + ) def test_model_1_estimation( @@ -92,7 +94,7 @@ def test_model_1_estimation( data=model_1_data ) model.get_params() - model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamine": 1}} + model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamate": 1}} fitter = io.initialize_fitter( data=model.data, model=model, @@ -121,7 +123,7 @@ def test_model_1_simulation( ) model.get_params() model.parameters.update(parameters) - model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamine": 1}} + model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamate": 1}} sim_data = model.simulate( list(model.parameters.values()), model.data.drop("time", axis=1), From 9e57b2d517cebbe1f4571be1f6c50f750857cbcf Mon Sep 17 00:00:00 2001 From: legregam Date: Thu, 16 May 2024 11:17:40 +0200 Subject: [PATCH 048/114] refactored --- physiofit/tests/test_monod_model.py | 117 ++++++++++++++++++---------- 1 file changed, 76 insertions(+), 41 deletions(-) diff --git a/physiofit/tests/test_monod_model.py b/physiofit/tests/test_monod_model.py index 393477a..15eb67a 100644 --- a/physiofit/tests/test_monod_model.py +++ b/physiofit/tests/test_monod_model.py @@ -152,48 +152,83 @@ def pyfoomb_simulated_data(): 2.40000000e+00, 2.40000000e+00, 2.40000000e+00, 2.40000000e+00])} ) + @pytest.fixture def placeholder_data(): return pd.DataFrame({ - "time": [0.00000000e+00, 1.60350555e-06, 1.29272201e-02, 4.73210593e-02, - 8.17148984e-02, 1.16108738e-01, 1.68220493e-01, 2.20332247e-01, - 3.10246576e-01, 4.00160904e-01, 4.90075232e-01, 6.34757887e-01, - 7.79440543e-01, 9.24123199e-01, 1.21353541e+00, 1.50294763e+00, - 1.79235984e+00, 2.08177205e+00, 2.37118427e+00, 2.66059648e+00, - 2.95000869e+00, 3.23942091e+00, 3.52883312e+00, 3.81824533e+00, - 4.10765755e+00, 4.39706976e+00, 4.68648197e+00, 4.97589419e+00, - 5.26530640e+00, 5.55471861e+00, 5.75429441e+00, 5.95387020e+00, - 6.15344600e+00, 6.46543931e+00, 6.69021058e+00, 6.91498185e+00, - 7.13975312e+00, 7.36452439e+00, 7.58929566e+00, 7.81406694e+00, - 8.03883821e+00, 8.26360948e+00, 8.48838075e+00, 8.71315202e+00, - 8.93792329e+00, 9.29231855e+00, 9.64671381e+00, 9.87042767e+00, - 1.00941415e+01, 1.03178554e+01, 1.04707829e+01, 1.06237105e+01, - 1.07766381e+01, 1.08876690e+01, 1.09986998e+01, 1.11097307e+01, - 1.11913085e+01, 1.12728862e+01, 1.13544640e+01, 1.14360417e+01, - 1.14912119e+01, 1.15463820e+01, 1.16015522e+01, 1.16567224e+01, - 1.17118925e+01, 1.17670627e+01, 1.18060238e+01, 1.18344243e+01, - 1.18628249e+01, 1.18912255e+01, 1.19196261e+01, 1.19480267e+01, - 1.19764272e+01, 1.20048278e+01, 1.20247743e+01, 1.20447208e+01, - 1.20646672e+01, 1.20846137e+01, 1.21045602e+01, 1.21245066e+01, - 1.21444531e+01, 1.21685210e+01, 1.21859235e+01, 1.22033260e+01, - 1.22207286e+01, 1.22381311e+01, 1.22555336e+01, 1.22729361e+01, - 1.22903386e+01, 1.23166077e+01, 1.23428768e+01, 1.23691459e+01, - 1.23954150e+01, 1.24216840e+01, 1.24479531e+01, 1.24742222e+01, - 1.25004913e+01, 1.25267604e+01, 1.25530294e+01, 1.25792985e+01, - 1.26055676e+01, 1.26318367e+01, 1.26581058e+01, 1.26843748e+01, - 1.27106439e+01, 1.27369130e+01, 1.27631821e+01, 1.27894512e+01, - 1.28157202e+01, 1.28419893e+01, 1.28682584e+01, 1.28945275e+01, - 1.29207966e+01, 1.29470656e+01, 1.29733347e+01, 1.29996038e+01, - 1.30434980e+01, 1.30873922e+01, 1.31312864e+01, 1.31751806e+01, - 1.32190748e+01, 1.33125773e+01, 1.34060797e+01, 1.34995821e+01, - 1.35930846e+01, 1.36865870e+01, 1.38890130e+01, 1.40914391e+01, - 1.42938651e+01, 1.44962911e+01, 1.48659380e+01, 1.52355849e+01, - 1.72063049e+01, 1.91770248e+01, 2.11477447e+01, - 2.40000000e+01], - "X": np.arange(136), - "S_substrate": np.arange(136), - "P_product": np.arange(136) -}) + "time": [0.00000000e+00, 1.60350555e-06, 1.29272201e-02, + 4.73210593e-02, + 8.17148984e-02, 1.16108738e-01, 1.68220493e-01, + 2.20332247e-01, + 3.10246576e-01, 4.00160904e-01, 4.90075232e-01, + 6.34757887e-01, + 7.79440543e-01, 9.24123199e-01, 1.21353541e+00, + 1.50294763e+00, + 1.79235984e+00, 2.08177205e+00, 2.37118427e+00, + 2.66059648e+00, + 2.95000869e+00, 3.23942091e+00, 3.52883312e+00, + 3.81824533e+00, + 4.10765755e+00, 4.39706976e+00, 4.68648197e+00, + 4.97589419e+00, + 5.26530640e+00, 5.55471861e+00, 5.75429441e+00, + 5.95387020e+00, + 6.15344600e+00, 6.46543931e+00, 6.69021058e+00, + 6.91498185e+00, + 7.13975312e+00, 7.36452439e+00, 7.58929566e+00, + 7.81406694e+00, + 8.03883821e+00, 8.26360948e+00, 8.48838075e+00, + 8.71315202e+00, + 8.93792329e+00, 9.29231855e+00, 9.64671381e+00, + 9.87042767e+00, + 1.00941415e+01, 1.03178554e+01, 1.04707829e+01, + 1.06237105e+01, + 1.07766381e+01, 1.08876690e+01, 1.09986998e+01, + 1.11097307e+01, + 1.11913085e+01, 1.12728862e+01, 1.13544640e+01, + 1.14360417e+01, + 1.14912119e+01, 1.15463820e+01, 1.16015522e+01, + 1.16567224e+01, + 1.17118925e+01, 1.17670627e+01, 1.18060238e+01, + 1.18344243e+01, + 1.18628249e+01, 1.18912255e+01, 1.19196261e+01, + 1.19480267e+01, + 1.19764272e+01, 1.20048278e+01, 1.20247743e+01, + 1.20447208e+01, + 1.20646672e+01, 1.20846137e+01, 1.21045602e+01, + 1.21245066e+01, + 1.21444531e+01, 1.21685210e+01, 1.21859235e+01, + 1.22033260e+01, + 1.22207286e+01, 1.22381311e+01, 1.22555336e+01, + 1.22729361e+01, + 1.22903386e+01, 1.23166077e+01, 1.23428768e+01, + 1.23691459e+01, + 1.23954150e+01, 1.24216840e+01, 1.24479531e+01, + 1.24742222e+01, + 1.25004913e+01, 1.25267604e+01, 1.25530294e+01, + 1.25792985e+01, + 1.26055676e+01, 1.26318367e+01, 1.26581058e+01, + 1.26843748e+01, + 1.27106439e+01, 1.27369130e+01, 1.27631821e+01, + 1.27894512e+01, + 1.28157202e+01, 1.28419893e+01, 1.28682584e+01, + 1.28945275e+01, + 1.29207966e+01, 1.29470656e+01, 1.29733347e+01, + 1.29996038e+01, + 1.30434980e+01, 1.30873922e+01, 1.31312864e+01, + 1.31751806e+01, + 1.32190748e+01, 1.33125773e+01, 1.34060797e+01, + 1.34995821e+01, + 1.35930846e+01, 1.36865870e+01, 1.38890130e+01, + 1.40914391e+01, + 1.42938651e+01, 1.44962911e+01, 1.48659380e+01, + 1.52355849e+01, + 1.72063049e+01, 1.91770248e+01, 2.11477447e+01, + 2.40000000e+01], + "X": np.arange(136), + "S_substrate": np.arange(136), + "P_product": np.arange(136) + }) + @pytest.fixture def parameters(): @@ -241,9 +276,9 @@ def test_monod_model(monod_model_sds, pyfoomb_simulated_data): atol=1e-3 ) + def test_physiofit_simulations(parameters, placeholder_data, pyfoomb_simulated_data): - io = IoHandler() model = io.select_model("Dynamic Monod model (1 substrate, 1 product)", placeholder_data) @@ -268,4 +303,4 @@ def test_physiofit_simulations(parameters, placeholder_data, pyfoomb_simulated_data, rtol=1e-2, atol=1e-3 - ) \ No newline at end of file + ) From befe34cc343c599c5582578b870f51629d0f462a Mon Sep 17 00:00:00 2001 From: legregam Date: Thu, 16 May 2024 11:29:26 +0200 Subject: [PATCH 049/114] updated gitignore --- .gitignore | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index b2b7623..dee853d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,8 @@ /venv/ -physiofit/__pycache__/__init__.cpython-310.pyc -physiofit/__pycache__/__main__.cpython-310.pyc -physiofit/__pycache__/logger.cpython-310.pyc -physiofit/base/__pycache__/__init__.cpython-310.pyc -physiofit/base/__pycache__/fitter.cpython-310.pyc -physiofit/base/__pycache__/io.cpython-310.pyc +physiofit/__pycache__/ +physiofit/base/__pycahe__/ physiofit/last_version.txt -physiofit/ui/__pycache__/__init__.cpython-310.pyc -physiofit/ui/__pycache__/cli.cpython-310.pyc +physiofit/ui/__pycache__/ physiofit.egg-info/dependency_links.txt physiofit.egg-info/entry_points.txt physiofit.egg-info/PKG-INFO @@ -16,3 +11,4 @@ physiofit.egg-info/SOURCES.txt physiofit.egg-info/top_level.txt /versions publi/ /physiofit/data/ +/docs/_build/ \ No newline at end of file From 998fd8a8be53d5c2657365e5827f2b793ccc680f Mon Sep 17 00:00:00 2001 From: legregam Date: Thu, 16 May 2024 15:12:19 +0200 Subject: [PATCH 050/114] Improved logging and added log file export --- physiofit/__init__.py | 2 +- physiofit/base/fitter.py | 74 ++++++++++++++++++++++------------------ physiofit/base/io.py | 7 ---- physiofit/ui/gui.py | 66 ++++++++++++++++++++++------------- 4 files changed, 84 insertions(+), 65 deletions(-) diff --git a/physiofit/__init__.py b/physiofit/__init__.py index 7b83840..4f258b6 100644 --- a/physiofit/__init__.py +++ b/physiofit/__init__.py @@ -4,4 +4,4 @@ __version__ = importlib.metadata.version("physiofit") logger = logging.getLogger("physiofit") logger.setLevel(logging.DEBUG) -logger.addHandler(logging.StreamHandler()) \ No newline at end of file +logger.addHandler(logging.StreamHandler()) diff --git a/physiofit/base/fitter.py b/physiofit/base/fitter.py index 6ec00ed..8ac5f24 100644 --- a/physiofit/base/fitter.py +++ b/physiofit/base/fitter.py @@ -5,11 +5,13 @@ import logging import numpy as np +import pandas as pd from pandas import DataFrame from scipy.optimize import minimize, differential_evolution from scipy.stats import chi2 from physiofit.models.base_model import Model + # import physiofit # To get debug logs from the module logger = logging.getLogger(f"physiofit.{__name__}") @@ -63,12 +65,12 @@ class PhysioFitter: def __init__( self, - data, - model, - mc=True, - iterations=100, + data: pd.DataFrame, + model: Model, + mc: bool = True, + iterations: int = 100, sd=None, - debug_mode=False + debug_mode: bool = False ): self.data = data @@ -79,9 +81,12 @@ def __init__( self.debug_mode = logging.DEBUG if debug_mode else logging.INFO self.experimental_matrix = self.data.drop("time", axis=1).to_numpy() - self.simulated_matrix = None - self.simulated_data = None - self.optimize_results = None + self.simulated_matrix: np.ndarray | None = None + self.simulated_data: pd.DataFrame | None = None + self.large_matrix: np.ndarray | None = None + self.large_simulated_data: pd.DataFrame | None = None + self.large_time_vector: np.ndarray | None = None + self.optimize_results: np.ndarray | None = None self.simulate = None self.parameter_stats = None self.opt_params_sds = None @@ -176,8 +181,8 @@ def initialize_sd_matrix(self): if not isinstance(self.sd, np.ndarray) and not isinstance(self.sd, list): raise TypeError( - f"Cannot coerce SD to array. Please check that a list or array " - f"is given as input.\nCurrent input: \n{self.sd}" + f"Cannot coerce SD to array. Please check that a list or array" + f" is given as input.\nCurrent input: \n{self.sd}" ) else: self.sd = np.array(self.sd) @@ -208,7 +213,6 @@ def initialize_sd_matrix(self): else: logger.debug(f"sd matrix: {self.sd}\n") return - logger.info(f"sd Matrix:\n{self.sd}\n") def _build_sd_matrix(self): """ @@ -284,19 +288,19 @@ def optimize(self): time_vector=self.model.time_vector, args=self.model.args ) - self.large_time_vector = np.arange(start=0, stop=max( - self.model.time_vector), - step=(max(self.model.time_vector) / 100) - ) + self.large_time_vector = np.arange( + start=0, + stop=max(self.model.time_vector), + step=(max(self.model.time_vector) / 100) + ) self.large_matrix = self.model.simulate( parameters=self.optimize_results.x, - data_matrix=np.ones(shape=(len(self.large_time_vector), - self.experimental_matrix.shape[ - 1])), + data_matrix=np.ones( + shape=(len(self.large_time_vector), + self.experimental_matrix.shape[1])), time_vector=self.large_time_vector, args=self.model.args ) - logger.debug(f"simulated_matrix:\n{self.simulated_matrix}") nan_sim_mat = np.copy(self.simulated_matrix) nan_sim_mat[np.isnan(self.experimental_matrix)] = np.nan self.simulated_data = DataFrame( @@ -310,7 +314,8 @@ def optimize(self): columns=self.model.name_vector ) self.simulated_data.index.name = "Time" - logger.info(f"Final Simulated Data: \n{self.simulated_data}\n") + logger.info(f"Simulated data: \n{self.simulated_data}\n") + logger.debug(f"Large simulated data: \n{self.large_simulated_data}\n") @staticmethod def _calculate_cost( @@ -405,10 +410,10 @@ def monte_carlo_analysis(self): for i in range(self.iterations): new_matrix = self._apply_noise() - logger.debug(f"Iteration {i + 1}:\n") - logger.debug(f"New matrix:\n{new_matrix}\n") - logger.debug(f"Sd matrix:\n{self.sd}\n") - logger.debug(f"time vector:\n{self.model.time_vector}\n") + # logger.debug(f"Iteration {i + 1}:\n") + # logger.debug(f"New matrix:\n{new_matrix}\n") + # logger.debug(f"Sd matrix:\n{self.sd}\n") + # logger.debug(f"time vector:\n{self.model.time_vector}\n") # We optimise the parameters using the noisy matrix as input opt_res = PhysioFitter._run_optimization( opt_res.x, @@ -446,16 +451,9 @@ def monte_carlo_analysis(self): for key, value in self.parameter_stats.items(): logger.info(f"{key}: {value}") - # Apply nan mask to be coherent with the experimental matrix - nan_lower_ci = np.copy(self.matrices_ci['lower_ci']) - nan_higher_ci = np.copy(self.matrices_ci['higher_ci']) - - logger.debug( - f"Simulated matrix lower confidence interval:\n{nan_lower_ci}\n" - ) - logger.debug( - f"Simulated matrix higher confidence interval:\n{nan_higher_ci}\n" - ) + # # Apply nan mask to be coherent with the experimental matrix + # nan_lower_ci = np.copy(self.matrices_ci['lower_ci']) + # nan_higher_ci = np.copy(self.matrices_ci['higher_ci']) return def _compute_parameter_stats(self, opt_params_list): @@ -488,7 +486,15 @@ def _compute_parameter_stats(self, opt_params_list): # self.parameter_stats_df = DataFrame() def khi2_test(self): + """ + This method performs a chi-squared test to evaluate the goodness of + fit of the model. It calculates the chi-squared statistic and the + p-value and logs the results. + The chi-squared test is a statistical hypothesis test that is valid to + perform when the test statistic is chi-squared distributed under the + null hypothesis. + """ number_measurements = np.count_nonzero( ~np.isnan(self.experimental_matrix) ) diff --git a/physiofit/base/io.py b/physiofit/base/io.py index 88e8f94..393f76e 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -299,9 +299,6 @@ def initialize_fitter(self, data: pd.DataFrame, **kwargs) -> PhysioFitter: fitter.initialize_sd_matrix() fitter.verify_attrs() - logger.debug( - f"Fitter attribute dictionary:\n{fitter.__dict__}" - ) return fitter @@ -394,10 +391,6 @@ def output_report(fitter, export_path: str | list = None): flux_path = fr"{export_path}\flux_results.tsv" stat_path = fr"{export_path}\stat_results.tsv" - logger.debug( - f"Parameter Stats:\n{fitter.parameter_stats}" - ) - # Get optimization results as dataframe opt_data = DataFrame.from_dict(fitter.parameter_stats, orient="columns") diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 68b0d71..2f50e0a 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -38,7 +38,8 @@ def start_app(self): st.set_page_config(page_title=f"PhysioFit (v{physiofit.__version__})") st.title(f"Welcome to PhysioFit (v{physiofit.__version__})") st.write( - "Documentation available at [https://physiofit.readthedocs.io](https://physiofit.readthedocs.io).") + "Documentation available at [https://physiofit.readthedocs.io](" + "https://physiofit.readthedocs.io).") self.update_info = st.empty() self.check_uptodate() self.select_menu = st.selectbox( @@ -98,7 +99,8 @@ def _initialize_opt_menu(self): self.config_parser.path_to_data) except Exception: st.error( - "An error has occurred when reading the yaml configuration file.") + "An error has occurred when reading the yaml " + "configuration file.") raise elif file_extension in ["tsv", "txt"]: try: @@ -132,8 +134,9 @@ def _initialize_opt_menu(self): self.io.get_models() except Exception: st.error( - f"An error has occurred when listing models from the models folder: " - f"\n{Path(__file__).parent / 'models'}. Please correct the model or submit an issue at " + f"An error has occurred when listing models from the models " + f"folder: \n{Path(__file__).parent / 'models'}. Please correct" + f" the model or submit an issue at " f"github.com/MetaSys-LISBP/PhysioFit/issues") raise @@ -143,6 +146,12 @@ def _initialize_opt_menu(self): ) if submitted: + handler = logging.FileHandler(self.io.res_path / "log.txt") + handler.setFormatter('%(asctime)s - %(levelname)s - %(message)s') + handler.setLevel(logging.INFO) + if self.debug_mode: + handler.setLevel(logging.DEBUG) + logger.addHandler(handler) try: self._get_data_from_session_state() except Exception: @@ -250,7 +259,7 @@ def _initialize_opt_menu_widgets(self, file_extension): index=idx ) - #if model_name == "Dynamic system (only substrates)": + # if model_name == "Dynamic system (only substrates)": # st.error("Not yet implemented...") if model_name: # Initialize selected model @@ -260,7 +269,8 @@ def _initialize_opt_menu_widgets(self, file_extension): self.silent_sim() except Exception as e: st.error( - f"The following error occurred with the selected model: {e}") + f"The following error occurred with the selected model: " + f"{e}") raise else: st.success("Model successfully initialized") @@ -287,7 +297,9 @@ def _initialize_opt_menu_widgets(self, file_extension): ) if self.iterations < 0: st.error( - "ERROR: Number of Monte-Carlo iterations must be a positive integer") + "ERROR: Number of Monte-Carlo iterations must be a " + "positive integer" + ) self.debug_mode = st.checkbox( "Verbose logs", help="Useful in case of trouble. Join it to the " @@ -302,7 +314,7 @@ def _initialize_opt_menu_widgets(self, file_extension): self.io.wkdir = Path( self.config_parser.path_to_data).resolve().parent self.io.res_path = self.io.wkdir / ( - self.io.wkdir.name + "_res") + self.io.wkdir.name + "_res") # Build the form for advanced parameters form = st.form("Parameter_form") @@ -374,13 +386,13 @@ def _initialize_opt_menu_widgets(self, file_extension): with col2: st.write("Parameter Value") for key, value in self.model.args[ - param].items(): + param].items(): st.text_input( label="label", # Unused label_visibility="collapsed", - value=value if self.config_parser is None - else self.config_parser.model[ - "args"][key], + value=value if self.config_parser is + None else + self.config_parser.model["args"][key], key=f"Fixed_{param}_value_{key}" ) @@ -436,8 +448,10 @@ def _get_data_from_session_state(self): # Get bounds if st.session_state[f"Parameter_lower_{name}"] == "0": st.warning( - f"WARNING: {name} has a lower bound at 0. Sometimes this might confuse the optimizer. We " - f"strongly recommend to set the lower bound at a non-zero value, 1e-6 for example." + f"WARNING: {name} has a lower bound at 0. Sometimes " + f"this might confuse the optimizer. We strongly " + f"recommend to set the lower bound at a non-zero " + f"value, 1e-6 for example." ) lower_bound = 0 else: @@ -446,8 +460,10 @@ def _get_data_from_session_state(self): "0")) if st.session_state[f"Parameter_upper_{name}"] == "0": st.warning( - f"WARNING: {name} has an upper bound at 0. Sometimes this might confuse the optimizer. We " - f"strongly recommend to set the lower bound at a non-zero value, 1e-6 for example." + f"WARNING: {name} has an upper bound at 0. Sometimes " + f"this might confuse the optimizer. We strongly " + f"recommend to set the lower bound at a non-zero " + f"value, 1e-6 for example." ) upper_bound = 0 else: @@ -460,8 +476,9 @@ def _get_data_from_session_state(self): ) except ValueError: st.error( - f"ERROR: An error occurred while parsing the input for {name}. Please check that only numbers " - f"have been entered." + f"ERROR: An error occurred while parsing the input for" + f" {name}. Please check that only numbers have been " + f"entered." ) raise @@ -472,7 +489,7 @@ def _get_data_from_session_state(self): for key in self.model.args[param].keys(): try: if st.session_state[ - f"Fixed_{param}_value_{key}"] == "0": + f"Fixed_{param}_value_{key}"] == "0": self.model.args[param][key] = 0 else: self.model.args[param][key] = literal_eval( @@ -481,8 +498,10 @@ def _get_data_from_session_state(self): ) except ValueError: st.error( - f"ERROR: An error occurred when parsing the input in the fixed parameter class {param} for " - f"{key}. Please check that only numbers have been entered." + f"ERROR: An error occurred when parsing the input " + f"in the fixed parameter class {param} for {key}. " + f"Please check that only numbers have been " + f"entered." ) raise @@ -500,8 +519,9 @@ def _get_data_from_session_state(self): ) except ValueError: st.error( - f"ERROR: An error occurred when parsing the input for {name} (SDs). Please check that only numbers " - f"have been entered and that value is superior to 0." + f"ERROR: An error occurred when parsing the input for " + f"{name} (SDs). Please check that only numbers have been " + f"entered and that value is superior to 0." ) raise From 9a9a22455e0230c7e7eea6d5e5a6ee3c554be2b2 Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 17 May 2024 09:07:53 +0200 Subject: [PATCH 051/114] Improved logging and added log file export --- physiofit/base/fitter.py | 13 ++++--------- physiofit/ui/gui.py | 22 +++++++++++++++++----- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/physiofit/base/fitter.py b/physiofit/base/fitter.py index 8ac5f24..21e660b 100644 --- a/physiofit/base/fitter.py +++ b/physiofit/base/fitter.py @@ -159,7 +159,6 @@ def initialize_sd_matrix(self): # This function can be optimized, if the input is a matrix we should # detect it directly - logger.info("Initializing sd matrix...\n") # If sd is None, we generate the default matrix if self.sd is None or self.sd == {}: @@ -200,9 +199,6 @@ def initialize_sd_matrix(self): # If the array is not the right shape, we assume it is a vector # that needs to be tiled into a matrix - logger.debug(f"SD matrix: {self.sd}\n") - logger.debug(f"Type of SD matrix: {type(self.sd)}") - if self.sd.shape != self.experimental_matrix.shape: try: self._build_sd_matrix() @@ -210,9 +206,7 @@ def initialize_sd_matrix(self): raise except RuntimeError: raise - else: - logger.debug(f"sd matrix: {self.sd}\n") - return + def _build_sd_matrix(self): """ @@ -274,14 +268,15 @@ def optimize(self): bounds=bounds, method="differential_evolution" ) + logger.info(f"SD matrix: {self.sd}") self.parameter_stats = { "optimal": self.optimize_results.x } - logger.info(f"Optimization results: \n{self.optimize_results}\n") + logger.info(f"Optimization results: {self.optimize_results}") for i, param in zip( self.model.parameters, self.optimize_results.x ): - logger.info(f"\n{i} = {param}\n") + logger.info(f"{i} = {param}") self.simulated_matrix = self.model.simulate( parameters=self.optimize_results.x, data_matrix=self.experimental_matrix, diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 2f50e0a..8659e55 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -8,13 +8,13 @@ import pandas as pd import streamlit as st +logger = logging.getLogger("physiofit") +logger.setLevel(logging.DEBUG) + import physiofit from physiofit.base.io import IoHandler, ConfigParser from physiofit.models.base_model import StandardDevs -logger = logging.getLogger(f"physiofit.{__name__}") - - class App: """ Physiofit Graphical User Interface @@ -146,12 +146,18 @@ def _initialize_opt_menu(self): ) if submitted: - handler = logging.FileHandler(self.io.res_path / "log.txt") - handler.setFormatter('%(asctime)s - %(levelname)s - %(message)s') + handler = logging.FileHandler(self.io.res_path / "log.txt", "w") + stream = logging.StreamHandler() handler.setLevel(logging.INFO) + stream.setLevel(logging.INFO) if self.debug_mode: handler.setLevel(logging.DEBUG) + stream.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(' + 'levelname)s - %(message)s') + handler.setFormatter(formatter) logger.addHandler(handler) + logger.addHandler(stream) try: self._get_data_from_session_state() except Exception: @@ -172,6 +178,7 @@ def _initialize_opt_menu(self): experiments = list(self.io.data["experiments"].unique()) self.io.multiple_experiments = [] for experiment in experiments: + logger.info(f"Running optimization for {experiment}") with st.spinner(f"Running optimization for {experiment}"): # final_table_dict = {} self.model.data = full_dataframe[ @@ -184,6 +191,9 @@ def _initialize_opt_menu(self): # Initialize the fitter object self.io.names = self.io.data.columns[1:].to_list() kwargs = self._build_fitter_kwargs() + logger.info("Run options for the fitter:") + for key, value in kwargs.items(): + logger.info(f"{key} : {value}") fitter = self.io.initialize_fitter( self.model.data, model=kwargs["model"], @@ -206,6 +216,7 @@ def _initialize_opt_menu(self): fitter.model.parameters.keys() ] st.write(df) + logger.info(f"Results for {experiment}: \n{df}") self.io.multiple_experiments.append(df) # Export results @@ -220,6 +231,7 @@ def _initialize_opt_menu(self): self.io.figures = [] self.config_parser.export_config(self.io.res_path) self.io.data = full_dataframe + logger.info(f"Resulting dataframe: \n{full_dataframe}") self.io.res_path = results_path self.io.output_recap(results_path) From b02cfee5c8e7aa6530e92a0fbbf42a0f62c1b1eb Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 17 May 2024 09:08:18 +0200 Subject: [PATCH 052/114] Removed logs from __init__ --- physiofit/__init__.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/physiofit/__init__.py b/physiofit/__init__.py index 4f258b6..1636cac 100644 --- a/physiofit/__init__.py +++ b/physiofit/__init__.py @@ -1,7 +1,4 @@ import importlib.metadata -import logging __version__ = importlib.metadata.version("physiofit") -logger = logging.getLogger("physiofit") -logger.setLevel(logging.DEBUG) -logger.addHandler(logging.StreamHandler()) + From 2866c7355f6af162e63e0bf54734b8c1b09af1e3 Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 17 May 2024 09:08:28 +0200 Subject: [PATCH 053/114] Fixed tests --- physiofit/tests/conftest.py | 135 ++++++++++++++-------------- physiofit/tests/test_base.py | 17 ++-- physiofit/tests/test_model_1.py | 8 +- physiofit/tests/test_model_2.py | 8 +- physiofit/tests/test_model_3.py | 8 +- physiofit/tests/test_model_4.py | 16 ++-- physiofit/tests/test_monod_model.py | 9 +- 7 files changed, 100 insertions(+), 101 deletions(-) diff --git a/physiofit/tests/conftest.py b/physiofit/tests/conftest.py index 486ff06..4562e27 100644 --- a/physiofit/tests/conftest.py +++ b/physiofit/tests/conftest.py @@ -30,20 +30,76 @@ def placeholder_data(): @pytest.fixture def base_test_data(): - """Test data to use in tests - (taken from Bergès et al., 2021 --> KEIO_ROBOT1_1)""" return pd.DataFrame.from_dict( - { - "time": [0, 1.18, 2.27, 3.13, 3.77, 4.42, - 4.82, 0.67, 1.72, 2.8, 3.63, 4.27, 4.88], - "X": [0.03, 0.05, 0.08, 0.13, 0.18, 0.24, 0.34, - np.nan, np.nan, np.nan, np.nan, np.nan, np.nan], - "Glucose": [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, - 14, 15.30, 13.68, 12.81, 12.15, 10.93], - "Acetate": [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, - 0.01, 0.33, 0.72, 1.17, 1.63, 2.14] - } + {'time': {0: 0.0, 1: 0.2, 2: 0.4, 3: 0.6000000000000001, 4: 0.8, + 5: 1.0, 6: 1.2000000000000002, 7: 1.4000000000000001, 8: 1.6, + 9: 1.8, 10: 2.0, 11: 2.2, 12: 2.4000000000000004, 13: 2.6, + 14: 2.8000000000000003, 15: 3.0, 16: 3.2, + 17: 3.4000000000000004, 18: 3.6, 19: 3.8000000000000003, + 20: 4.0, 21: 4.2, 22: 4.4, 23: 4.6000000000000005, + 24: 4.800000000000001, 25: 5.0, 26: 5.2, 27: 5.4, + 28: 5.6000000000000005, 29: 5.800000000000001}, + 'X': {0: 0.02, 1: 0.023470217419836206, 2: 0.027542555286719145, + 3: 0.03232148804385787, 4: 0.037929617586099036, + 5: 0.044510818569849356, 6: 0.052233929468462365, + 7: 0.06129708406586005, 8: 0.07193279451138565, + 9: 0.08441391633993106, 10: 0.0990606484879023, + 11: 0.1162487478880518, 12: 0.13641916938581505, + 13: 0.16008937828592706, 14: 0.18786662574885568, + 15: 0.2204635276128321, 16: 0.25871634631086166, + 17: 0.3036064448990781, 18: 0.3562854635922441, + 19: 0.4181048647018553, 20: 0.49065060394218707, + 21: 0.5757838175848538, 22: 0.6756885692769915, + 23: 0.7929278814514524, 24: 0.9305094887957849, + 25: 1.0919630006628847, 26: 1.281430451998733, + 27: 1.5037725658404621, 28: 1.7646934535130303, + 29: 2.070886951665622}, + 'Glucose': {0: 20.0, 1: 19.96529782580164, 2: 19.92457444713281, + 3: 19.876785119561422, 4: 19.82070382413901, + 5: 19.754891814301505, 6: 19.677660705315375, + 7: 19.587029159341398, 8: 19.480672054886142, + 9: 19.35586083660069, 10: 19.209393515120976, + 11: 19.03751252111948, 12: 18.83580830614185, + 13: 18.59910621714073, 14: 18.32133374251144, + 15: 17.99536472387168, 16: 17.612836536891383, + 17: 17.163935551009217, 18: 16.63714536407756, + 19: 16.018951352981446, 20: 15.293493960578129, + 21: 14.442161824151462, 22: 13.443114307230086, + 23: 12.270721185485478, 24: 10.894905112042153, + 25: 9.280369993371155, 26: 7.385695480012673, + 27: 5.16227434159538, 28: 2.5530654648697, + 29: -0.5088695166562189}, + 'Acetate': {0: 0.01, 1: 0.02301331532438577, 2: 0.03828458232519679, + 3: 0.05620558016446701, 4: 0.07723606594787137, + 5: 0.10191556963693509, 6: 0.13087723550673386, + 7: 0.1648640652469752, 8: 0.2047479794176962, + 9: 0.25155218627474146, 10: 0.3064774318296336, + 11: 0.37093280458019423, 12: 0.4465718851968064, + 13: 0.5353351685722265, 14: 0.6394998465582088, + 15: 0.7617382285481203, 16: 0.9051862986657312, + 17: 1.0735241683715429, 18: 1.2710704884709152, + 19: 1.5028932426319574, 20: 1.7749397647832015, + 21: 2.094189315943201, 22: 2.4688321347887174, + 23: 2.908479555442946, 24: 3.424410582984193, + 25: 4.0298612524858175, 26: 4.740364194995248, + 27: 5.574147121901733, 28: 6.552600450673863, + 29: 7.700826068746083}, + 'Glutamate': {0: 0.01, 1: 0.018675543549590515, + 2: 0.02885638821679786, 3: 0.04080372010964467, + 4: 0.05482404396524758, 5: 0.07127704642462339, + 6: 0.0905848236711559, 7: 0.11324271016465011, + 8: 0.13983198627846413, 9: 0.17103479084982764, + 10: 0.20765162121975575, 11: 0.25062186972012945, + 12: 0.30104792346453757, 13: 0.3602234457148176, + 14: 0.4296665643721392, 15: 0.5111588190320802, + 16: 0.6067908657771541, 17: 0.7190161122476952, + 18: 0.8507136589806101, 19: 1.0052621617546382, + 20: 1.1866265098554676, 21: 1.3994595439621342, + 22: 1.6492214231924784, 23: 1.9423197036286308, + 24: 2.2862737219894615, 25: 2.689907501657211, + 26: 3.1635761299968315, 27: 3.719431414601155, + 28: 4.371733633782575, 29: 5.1372173791640545}} ) @@ -62,61 +118,6 @@ def parameters(): } -@pytest.fixture -def model_2_data(placeholder_data, parameters): - """ Test data to use in tests for the model_2: Steady-state batch model - with lag phase. Data is simulated using synthetic parameters""" - - io = IoHandler() - model = io.select_model( - name="Steady-state batch model with lag phase", - data=placeholder_data - ) - model.get_params() - model.parameters.update(parameters) - sim_data = model.simulate( - list(model.parameters.values()), - model.data.drop("time", axis=1), - model.time_vector, - model.args - ) - df = pd.DataFrame( - data=sim_data, - index=model.time_vector, - columns=model.name_vector - ) - df.index.name = "time" - return df.reset_index() - - -@pytest.fixture -def model_4_data(placeholder_data, parameters): - """ Test data to use in tests for the model_2: Steady-state batch model - with lag phase. Data is simulated using synthetic parameters""" - - io = IoHandler() - model = io.select_model( - name="Steady-state batch model", - data=placeholder_data - ) - model.get_params() - del parameters["t_lag"] - model.parameters.update(parameters) - sim_data = model.simulate( - list(model.parameters.values()), - model.data.drop("time", axis=1), - model.time_vector, - model.args - ) - df = pd.DataFrame( - data=sim_data, - index=model.time_vector, - columns=model.name_vector - ) - df.index.name = "time" - return df.reset_index() - - @pytest.fixture def monod_model_sds(): return StandardDevs( diff --git a/physiofit/tests/test_base.py b/physiofit/tests/test_base.py index d87fbbb..4be13bd 100644 --- a/physiofit/tests/test_base.py +++ b/physiofit/tests/test_base.py @@ -1,11 +1,14 @@ """ Test the creation and use of the PhysioFitter """ +import logging + import numpy as np import pandas as pd import pytest import physiofit +logging.getLogger("physiofit").setLevel(logging.ERROR) def test_physiofitter(base_test_data): """ @@ -21,7 +24,7 @@ def test_physiofitter(base_test_data): model.data, model=model, sd=0.2, - debug_mode=True + debug_mode=False ) assert isinstance(fitter, physiofit.base.fitter.PhysioFitter) @@ -65,7 +68,7 @@ def test_optimization_process(base_test_data): model.data, model=model, sd=0.2, - debug_mode=True + debug_mode=False ) fitter.optimize() assert isinstance(fitter.simulated_data, pd.DataFrame) @@ -81,7 +84,7 @@ def test_monte_carlo(base_test_data): model.data, model=model, sd=0.2, - debug_mode=True + debug_mode=False ) fitter.optimize() fitter.monte_carlo_analysis() @@ -102,12 +105,14 @@ def test_that_simulated_and_experimental_matrices_are_close(base_test_data): model.data, model=model, sd=0.2, - debug_mode=True + debug_mode=False ) fitter.optimize() + print(base_test_data) + print(fitter.simulated_data) assert np.allclose( a=fitter.experimental_matrix, - b=fitter.simulated_data, - rtol=1, + b=fitter.simulated_matrix, + rtol=1e-3, equal_nan=True ) diff --git a/physiofit/tests/test_model_1.py b/physiofit/tests/test_model_1.py index 643b05d..56c1227 100644 --- a/physiofit/tests/test_model_1.py +++ b/physiofit/tests/test_model_1.py @@ -5,10 +5,8 @@ import pytest import physiofit -from physiofit.base.io import IoHandler -logger = logging.getLogger(f"physiofit.{__name__}") -logger.setLevel(logging.CRITICAL) +logging.getLogger("physiofit").setLevel(logging.ERROR) @pytest.fixture @@ -87,7 +85,7 @@ def test_model_1_estimation( model_1_data: pd.DataFrame, sds: physiofit.models.base_model.StandardDevs ): - io = IoHandler() + io = physiofit.base.io.IoHandler() model = io.select_model( name="Steady-state batch model with lag phase and " "degradation of metabolites", @@ -115,7 +113,7 @@ def test_model_1_simulation( parameters, model_1_data ): - io = IoHandler() + io = physiofit.base.io.IoHandler() model = io.select_model( name="Steady-state batch model with lag phase and degradation of " "metabolites", diff --git a/physiofit/tests/test_model_2.py b/physiofit/tests/test_model_2.py index 6d33218..f938f9d 100644 --- a/physiofit/tests/test_model_2.py +++ b/physiofit/tests/test_model_2.py @@ -5,10 +5,8 @@ import pytest import physiofit -from physiofit.base.io import IoHandler -logger = logging.getLogger(f"physiofit.{__name__}") -logger.setLevel(logging.CRITICAL) +logging.getLogger("physiofit").setLevel(logging.ERROR) @pytest.fixture @@ -82,7 +80,7 @@ def test_model_2_estimation( model_2_data: pd.DataFrame, sds: physiofit.models.base_model.StandardDevs ): - io = IoHandler() + io = physiofit.base.io.IoHandler() model = io.select_model( name="Steady-state batch model with lag phase", data=model_2_data @@ -108,7 +106,7 @@ def test_model_2_simulation( parameters, model_2_data ): - io = IoHandler() + io = physiofit.base.io.IoHandler() model = io.select_model( name="Steady-state batch model with lag phase", data=placeholder_data diff --git a/physiofit/tests/test_model_3.py b/physiofit/tests/test_model_3.py index 7f6c7d6..494f665 100644 --- a/physiofit/tests/test_model_3.py +++ b/physiofit/tests/test_model_3.py @@ -5,10 +5,8 @@ import pytest import physiofit -from physiofit.base.io import IoHandler -logger = logging.getLogger(f"physiofit.{__name__}") -logger.setLevel(logging.CRITICAL) +logging.getLogger("physiofit").setLevel(logging.ERROR) @pytest.fixture def model_3_data(): @@ -88,7 +86,7 @@ def test_model_3_estimation( model_3_data: pd.DataFrame, sds: physiofit.models.base_model.StandardDevs ): - io = IoHandler() + io = physiofit.base.io.IoHandler() model = io.select_model( name="Steady-state batch model with degradation of metabolites", data=model_3_data @@ -114,7 +112,7 @@ def test_model_3_simulation( parameters, model_3_data ): - io = IoHandler() + io = physiofit.base.io.IoHandler() model = io.select_model( name="Steady-state batch model with degradation of metabolites", data=placeholder_data diff --git a/physiofit/tests/test_model_4.py b/physiofit/tests/test_model_4.py index 8d56a5c..398fa1a 100644 --- a/physiofit/tests/test_model_4.py +++ b/physiofit/tests/test_model_4.py @@ -5,17 +5,12 @@ import pytest import physiofit -from physiofit.base.io import IoHandler -logger = logging.getLogger(f"physiofit.{__name__}") -logger.setLevel(logging.CRITICAL) +logging.getLogger("physiofit").setLevel(logging.ERROR) @pytest.fixture -def model_2_data(): - """ Test data to use in tests for the model_1: Steady-state batch model - with lag phase and degradation of metabolites. Data is simulated using - synthetic parameters""" +def model_4_data(): return pd.DataFrame( {'time': {0: 0.0, 1: 0.2, 2: 0.4, 3: 0.6000000000000001, 4: 0.8, @@ -54,7 +49,8 @@ def model_2_data(): 21: 14.442161824151462, 22: 13.443114307230086, 23: 12.270721185485478, 24: 10.894905112042153, 25: 9.280369993371155, 26: 7.385695480012673, - 27: 5.16227434159538, 28: 2.5530654648697, 29: 0.0}, + 27: 5.16227434159538, 28: 2.5530654648697, + 29: -0.5088695166562189}, 'Acetate': {0: 0.01, 1: 0.02301331532438577, 2: 0.03828458232519679, 3: 0.05620558016446701, 4: 0.07723606594787137, 5: 0.10191556963693509, 6: 0.13087723550673386, @@ -92,7 +88,7 @@ def test_model_4_estimation( model_4_data: pd.DataFrame, sds: physiofit.models.base_model.StandardDevs ): - io = IoHandler() + io = physiofit.base.io.IoHandler() model = io.select_model( name="Steady-state batch model", data=model_4_data @@ -118,7 +114,7 @@ def test_model_4_simulation( parameters, model_4_data ): - io = IoHandler() + io = physiofit.base.io.IoHandler() model = io.select_model( name="Steady-state batch model", data=placeholder_data diff --git a/physiofit/tests/test_monod_model.py b/physiofit/tests/test_monod_model.py index 15eb67a..251cc93 100644 --- a/physiofit/tests/test_monod_model.py +++ b/physiofit/tests/test_monod_model.py @@ -1,13 +1,16 @@ """ This module contains tests for the models module. """ +import logging + import numpy as np import pandas as pd import pytest from numpy import array -from physiofit.base.io import IoHandler +import physiofit +logging.getLogger("physiofit").setLevel(logging.ERROR) @pytest.fixture def pyfoomb_simulated_data(): @@ -249,7 +252,7 @@ def test_monod_model(monod_model_sds, pyfoomb_simulated_data): as input. """ - io = IoHandler() + io = physiofit.base.io.IoHandler() model = io.select_model( "Dynamic Monod model (1 substrate, 1 product)", pyfoomb_simulated_data @@ -279,7 +282,7 @@ def test_monod_model(monod_model_sds, pyfoomb_simulated_data): def test_physiofit_simulations(parameters, placeholder_data, pyfoomb_simulated_data): - io = IoHandler() + io = physiofit.base.io.IoHandler() model = io.select_model("Dynamic Monod model (1 substrate, 1 product)", placeholder_data) model.get_params() From 2e6d678bef66cdfdd2e311a430b2f84f935c33bd Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 17 May 2024 09:52:27 +0200 Subject: [PATCH 054/114] Changed "Degradation" to "Degradation constants" & made t-lag default lower bound 1e-6 --- physiofit/models/model_1.py | 7 ++++--- physiofit/models/model_2.py | 2 +- physiofit/models/model_3.py | 7 ++++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/physiofit/models/model_1.py b/physiofit/models/model_1.py index 9ce15e5..e901b5b 100644 --- a/physiofit/models/model_1.py +++ b/physiofit/models/model_1.py @@ -29,7 +29,7 @@ def get_params(self): self.bounds = Bounds( X_0=(1e-3, 10), growth_rate=(1e-3, 3), - t_lag=(0, 0.5 * self.time_vector.max()) + t_lag=(1e-6, 0.5 * self.time_vector.max()) ) for metabolite in self.metabolites: self.parameters.update( @@ -45,7 +45,7 @@ def get_params(self): } ) - self.args = {"Degradation": { + self.args = {"Degradation constants": { met: 0 for met in self.metabolites } } @@ -92,7 +92,8 @@ def simulate( simulated_matrix[:, 0] = np.concatenate((x_t_lag, mult_by_time)) # Get extra arguments - arg_values = [value for value in args["Degradation"].values()] + arg_values = [value for value in args[("Degradation " + "constants")].values()] for i in range(1, len(parameters) // 2): q, m_0 = parameters[i * 2 + 1:i * 2 + 3] diff --git a/physiofit/models/model_2.py b/physiofit/models/model_2.py index 17a61e7..5ad3bb0 100644 --- a/physiofit/models/model_2.py +++ b/physiofit/models/model_2.py @@ -28,7 +28,7 @@ def get_params(self): self.bounds = Bounds({ "X_0": (1e-3, 10), "growth_rate": (1e-3, 3), - "t_lag": (0, 0.5 * self.time_vector.max()), + "t_lag": (1e-6, 0.5 * self.time_vector.max()), }) for metabolite in self.metabolites: self.parameters.update( diff --git a/physiofit/models/model_3.py b/physiofit/models/model_3.py index f2b6393..676c973 100644 --- a/physiofit/models/model_3.py +++ b/physiofit/models/model_3.py @@ -25,7 +25,7 @@ def get_params(self): "X_0": self.vini, "growth_rate": self.vini } - self.args = {"Degradation": { + self.args = {"Degradation constant": { met: 0 for met in self.metabolites } } @@ -46,7 +46,7 @@ def get_params(self): f"{metabolite}_M0": (1e-6, 50) } ) - self.args = {"Degradation": { + self.args = {"Degradation constants": { met: 0 for met in self.metabolites } } @@ -68,7 +68,8 @@ def simulate( # Get X_0 values exp_mu_t = np.exp(mu * time_vector) simulated_matrix[:, 0] = x_0 * exp_mu_t - fixed_params = [value for value in args["Degradation"].values()] + fixed_params = [value for value in args[("Degradation " + "constants")].values()] for i in range(1, int(len(parameters) / 2)): q = parameters[i * 2] From 2486d81b8015c2b9be7641d628230c7397859d30 Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 17 May 2024 09:52:48 +0200 Subject: [PATCH 055/114] Fixed tests --- physiofit/tests/test_model_1.py | 8 ++++++-- physiofit/tests/test_model_3.py | 24 ++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/physiofit/tests/test_model_1.py b/physiofit/tests/test_model_1.py index 56c1227..e6566cb 100644 --- a/physiofit/tests/test_model_1.py +++ b/physiofit/tests/test_model_1.py @@ -92,7 +92,9 @@ def test_model_1_estimation( data=model_1_data ) model.get_params() - model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamate": 1}} + model.args = {"Degradation constants": + {"Glucose": 0, "Acetate": 0, "Glutamine": 1} + } fitter = io.initialize_fitter( data=model.data, model=model, @@ -121,7 +123,9 @@ def test_model_1_simulation( ) model.get_params() model.parameters.update(parameters) - model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamate": 1}} + model.args = {"Degradation constants": + {"Glucose": 0, "Acetate": 0, "Glutamine": 1} + } sim_data = model.simulate( list(model.parameters.values()), model.data.drop("time", axis=1), diff --git a/physiofit/tests/test_model_3.py b/physiofit/tests/test_model_3.py index 494f665..d861831 100644 --- a/physiofit/tests/test_model_3.py +++ b/physiofit/tests/test_model_3.py @@ -92,7 +92,9 @@ def test_model_3_estimation( data=model_3_data ) model.get_params() - model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamine": 1}} + model.args = {"Degradation constants": + {"Glucose": 0, "Acetate": 0, "Glutamine":1} + } fitter = io.initialize_fitter( data=model.data, model=model, @@ -118,10 +120,28 @@ def test_model_3_simulation( data=placeholder_data ) model.get_params() - model.args = {"Degradation": {"Glucose": 0, "Acetate": 0, "Glutamine": 1}} + model.parameters.update(parameters) + model.args = {"Degradation constants": + {"Glucose": 0, "Acetate": 0, "Glutamine": 1} + } sim_data = model.simulate( list(model.parameters.values()), model.data.drop("time", axis=1), model.time_vector, model.args ) + df = pd.DataFrame( + data=sim_data, + index=model.time_vector, + columns=model.name_vector + ) + df.index.name = "time" + + print(df.reset_index()) + print(model_3_data) + + pd.testing.assert_frame_equal( + df.reset_index(), + model_3_data, + atol=1e-6 + ) From d2896c0ae86aae9b5e034a012f2f432ca5bfa046 Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 17 May 2024 16:57:54 +0200 Subject: [PATCH 056/114] Added check_data_path method --- physiofit/base/io.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/physiofit/base/io.py b/physiofit/base/io.py index 393f76e..f729979 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -641,6 +641,15 @@ def get_kwargs(self): "sd": self.sds } + def check_data_path(self): + """ + Check if the data path is valid + :return: True if the path is valid, False otherwise, None if no path + """ + if self.path_to_data: + return Path(self.path_to_data).is_file() + return None + def update_model(self, model): if self.model["parameters_to_estimate"] is not None: From 7cd6781f93ee508ee54116d3867105282f8da4b1 Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 17 May 2024 16:59:14 +0200 Subject: [PATCH 057/114] Started work on data_path_select from config --- physiofit/ui/gui.py | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 8659e55..e3ea181 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -8,13 +8,14 @@ import pandas as pd import streamlit as st -logger = logging.getLogger("physiofit") -logger.setLevel(logging.DEBUG) - import physiofit from physiofit.base.io import IoHandler, ConfigParser from physiofit.models.base_model import StandardDevs +logger = logging.getLogger("physiofit") +logger.setLevel(logging.DEBUG) + + class App: """ Physiofit Graphical User Interface @@ -94,6 +95,11 @@ def _initialize_opt_menu(self): try: # Get parameters from yaml file self.config_parser = self.io.read_yaml(self.data_file) + # Check if the data path exists, if not open up prompt to + # select file + # if not self.config_parser.check_data_path(): + # self._output_directory_selector() + # else: # Load data into io_handler self.io.data = self.io.read_data( self.config_parser.path_to_data) @@ -154,7 +160,7 @@ def _initialize_opt_menu(self): handler.setLevel(logging.DEBUG) stream.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s - %(' - 'levelname)s - %(message)s') + 'levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.addHandler(stream) @@ -398,7 +404,7 @@ def _initialize_opt_menu_widgets(self, file_extension): with col2: st.write("Parameter Value") for key, value in self.model.args[ - param].items(): + param].items(): st.text_input( label="label", # Unused label_visibility="collapsed", @@ -501,7 +507,7 @@ def _get_data_from_session_state(self): for key in self.model.args[param].keys(): try: if st.session_state[ - f"Fixed_{param}_value_{key}"] == "0": + f"Fixed_{param}_value_{key}"] == "0": self.model.args[param][key] = 0 else: self.model.args[param][key] = literal_eval( @@ -550,19 +556,19 @@ def _build_fitter_kwargs(self): def _output_directory_selector(self): - # Set up tkinter for directory chooser - root = tk.Tk() - root.withdraw() - - # Make folder picker dialog appear on top of other windows - root.wm_attributes('-topmost', 1) - # Initialize folder picker button and add logic clicked = st.button( "Select output data directory", key="clicker" ) if clicked: + # Set up tkinter for directory chooser + root = tk.Tk() + root.withdraw() + + # Make folder picker dialog appear on top of other windows + root.wm_attributes('-topmost', 1) + # Initialize home path from directory selector and add # to session state st.session_state.wkdir = Path(st.text_input( From 9a97c543284c1741b6e3c1306369c220093b091e Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 21 May 2024 15:21:34 +0200 Subject: [PATCH 058/114] Added methods to handle wrong data path in config file --- physiofit/base/io.py | 3 +- physiofit/ui/gui.py | 286 +++++++++++++++++++++++++------------------ 2 files changed, 167 insertions(+), 122 deletions(-) diff --git a/physiofit/base/io.py b/physiofit/base/io.py index f729979..902536f 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -648,7 +648,8 @@ def check_data_path(self): """ if self.path_to_data: return Path(self.path_to_data).is_file() - return None + else: + return False def update_model(self, model): diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index e3ea181..2f2e7eb 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -71,17 +71,23 @@ def check_uptodate(self): except Exception: pass - def _build_flux_menu(self): - """Build the starting menu with the data upload button""" + @staticmethod + def _get_data_path_config_context(): - self.data_file = st.file_uploader( - "Load a data file or a json configuration file", - key="data_uploader", - accept_multiple_files=False - ) + # Set up tkinter for directory chooser + root = tk.Tk() + root.withdraw() - if self.data_file: - self._initialize_opt_menu() + # Make folder picker dialog appear on top of other windows + root.wm_attributes('-topmost', 1) + + return str(Path( + filedialog.askopenfilename( + master=root, + title="Select the data file", + filetypes=[("Data files", "*.tsv *.txt")] + ) + )) def _initialize_opt_menu(self): """ @@ -97,20 +103,37 @@ def _initialize_opt_menu(self): self.config_parser = self.io.read_yaml(self.data_file) # Check if the data path exists, if not open up prompt to # select file - # if not self.config_parser.check_data_path(): - # self._output_directory_selector() - # else: + if hasattr(st.session_state, "config_parser_data_path"): + # If the path is already in session state, use it + self.config_parser.path_to_data = st.session_state[ + "config_parser_data_path"] + if not self.config_parser.check_data_path(): + st.info( + "File path in configuration file is incorrect or " + "missing. Loading file from prompt." + ) + # Send path to session state to avoid multiple prompts + st.session_state["config_parser_data_path"] = ( + self._get_data_path_config_context()) + self.config_parser.path_to_data = st.session_state[ + "config_parser_data_path" + ] + st.info(f"Input data: {self.config_parser.path_to_data}") # Load data into io_handler self.io.data = self.io.read_data( - self.config_parser.path_to_data) + str(self.config_parser.path_to_data) + ) + input_loaded = True except Exception: st.error( "An error has occurred when reading the yaml " - "configuration file.") + "configuration file and/or loading the input data." + ) raise elif file_extension in ["tsv", "txt"]: try: self.io.data = self.io.read_data(self.data_file) + input_loaded = True # Initialize default SDs self.defaults["sd"].update({ "X": 0.5 @@ -127,119 +150,136 @@ def _initialize_opt_menu(self): f"files or json for configuration files. Detected file: " f"{self.data_file.name}") - if "experiments" not in self.io.data.columns: - raise ValueError( - "'experiments' column missing from dataset" + if input_loaded: + # Reset config_parser path to data if it exists to handle new + # data file paths + if hasattr(st.session_state, "config_parser_data_path"): + del st.session_state["config_parser_data_path"] + if "experiments" not in self.io.data.columns: + raise ValueError( + "'experiments' column missing from dataset" + ) + self.io.data = self.io.data.sort_values( + ["experiments", "time"], ignore_index=True ) - self.io.data = self.io.data.sort_values( - ["experiments", "time"], ignore_index=True - ) - try: - # Initialize the list of available models - self.io.get_models() - except Exception: - st.error( - f"An error has occurred when listing models from the models " - f"folder: \n{Path(__file__).parent / 'models'}. Please correct" - f" the model or submit an issue at " - f"github.com/MetaSys-LISBP/PhysioFit/issues") - raise - - # Build menu - submitted = self._initialize_opt_menu_widgets( - file_extension - ) - - if submitted: - handler = logging.FileHandler(self.io.res_path / "log.txt", "w") - stream = logging.StreamHandler() - handler.setLevel(logging.INFO) - stream.setLevel(logging.INFO) - if self.debug_mode: - handler.setLevel(logging.DEBUG) - stream.setLevel(logging.DEBUG) - formatter = logging.Formatter('%(asctime)s - %(name)s - %(' - 'levelname)s - %(message)s') - handler.setFormatter(formatter) - logger.addHandler(handler) - logger.addHandler(stream) try: - self._get_data_from_session_state() + # Initialize the list of available models + self.io.get_models() except Exception: - st.error("An error has occurred when initializing the model") + st.error( + f"An error has occurred when listing models from the models " + f"folder: \n{Path(__file__).parent / 'models'}. " + f"Please correct the model or submit an issue at " + f"github.com/MetaSys-LISBP/PhysioFit/issues") raise - if not self.io.wkdir: - raise ValueError("No output directory selected") - self.config_parser = ConfigParser( - path_to_data=self.io.wkdir / self.data_file.name, - selected_model=self.model, - sds=self.sd, - mc=self.mc, - iterations=self.iterations - ) - full_dataframe = self.io.data.copy() - results_path = copy(self.io.res_path) - experiments = list(self.io.data["experiments"].unique()) - self.io.multiple_experiments = [] - for experiment in experiments: - logger.info(f"Running optimization for {experiment}") - with st.spinner(f"Running optimization for {experiment}"): - # final_table_dict = {} - self.model.data = full_dataframe[ - full_dataframe["experiments"] == experiment - ].drop("experiments", axis=1).copy() - - self.io.res_path = results_path / str(experiment) - if not self.io.res_path.is_dir(): - self.io.res_path.mkdir(parents=True) - # Initialize the fitter object - self.io.names = self.io.data.columns[1:].to_list() - kwargs = self._build_fitter_kwargs() - logger.info("Run options for the fitter:") - for key, value in kwargs.items(): - logger.info(f"{key} : {value}") - fitter = self.io.initialize_fitter( - self.model.data, - model=kwargs["model"], - mc=kwargs["mc"], - iterations=kwargs["iterations"], - sd=kwargs["sd"], - debug_mode=kwargs["debug_mode"] - ) - # Do the work - fitter.optimize() - if self.mc: - fitter.monte_carlo_analysis() - fitter.khi2_test() - df = pd.DataFrame.from_dict( - fitter.parameter_stats, - orient="columns" - ) - df.index = [ - f"{experiment} {param}" for param in - fitter.model.parameters.keys() - ] - st.write(df) - logger.info(f"Results for {experiment}: \n{df}") - self.io.multiple_experiments.append(df) - - # Export results - self.io.output_report(fitter, self.io.res_path) - self.io.plot_data(fitter) - self.io.output_plots(fitter, self.io.res_path) - with st.expander(f"{experiment} plots"): - for fig in self.io.figures: - st.pyplot(fig[1]) - self.io.output_pdf(fitter, self.io.res_path) - # Reset figures to free memory - self.io.figures = [] - self.config_parser.export_config(self.io.res_path) - self.io.data = full_dataframe - logger.info(f"Resulting dataframe: \n{full_dataframe}") - self.io.res_path = results_path - self.io.output_recap(results_path) + # Build menu + submitted = self._initialize_opt_menu_widgets(file_extension) + + if submitted: + handler = logging.FileHandler(self.io.res_path / "log.txt", + "w") + stream = logging.StreamHandler() + handler.setLevel(logging.INFO) + stream.setLevel(logging.INFO) + if self.debug_mode: + handler.setLevel(logging.DEBUG) + stream.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(' + 'levelname)s - %(message)s') + handler.setFormatter(formatter) + logger.addHandler(handler) + logger.addHandler(stream) + try: + self._get_data_from_session_state() + except Exception: + st.error( + "An error has occurred when initializing the model") + raise + if not self.io.wkdir: + raise ValueError("No output directory selected") + self.config_parser = ConfigParser( + path_to_data=self.io.wkdir / self.data_file.name, + selected_model=self.model, + sds=self.sd, + mc=self.mc, + iterations=self.iterations + ) + + full_dataframe = self.io.data.copy() + results_path = copy(self.io.res_path) + experiments = list(self.io.data["experiments"].unique()) + self.io.multiple_experiments = [] + for experiment in experiments: + logger.info(f"Running optimization for {experiment}") + with st.spinner(f"Running optimization for {experiment}"): + # final_table_dict = {} + self.model.data = full_dataframe[ + full_dataframe["experiments"] == experiment + ].drop("experiments", axis=1).copy() + + self.io.res_path = results_path / str(experiment) + if not self.io.res_path.is_dir(): + self.io.res_path.mkdir(parents=True) + # Initialize the fitter object + self.io.names = self.io.data.columns[1:].to_list() + kwargs = self._build_fitter_kwargs() + logger.info("Run options for the fitter:") + for key, value in kwargs.items(): + logger.info(f"{key} : {value}") + fitter = self.io.initialize_fitter( + self.model.data, + model=kwargs["model"], + mc=kwargs["mc"], + iterations=kwargs["iterations"], + sd=kwargs["sd"], + debug_mode=kwargs["debug_mode"] + ) + # Do the work + fitter.optimize() + if self.mc: + fitter.monte_carlo_analysis() + fitter.khi2_test() + df = pd.DataFrame.from_dict( + fitter.parameter_stats, + orient="columns" + ) + df.index = [ + f"{experiment} {param}" for param in + fitter.model.parameters.keys() + ] + st.write(df) + logger.info(f"Results for {experiment}: \n{df}") + self.io.multiple_experiments.append(df) + + # Export results + self.io.output_report(fitter, self.io.res_path) + self.io.plot_data(fitter) + self.io.output_plots(fitter, self.io.res_path) + with st.expander(f"{experiment} plots"): + for fig in self.io.figures: + st.pyplot(fig[1]) + self.io.output_pdf(fitter, self.io.res_path) + # Reset figures to free memory + self.io.figures = [] + self.config_parser.export_config(self.io.res_path) + self.io.data = full_dataframe + logger.info(f"Resulting dataframe: \n{full_dataframe}") + self.io.res_path = results_path + self.io.output_recap(results_path) + + def _build_flux_menu(self): + """Build the starting menu with the data upload button""" + + self.data_file = st.file_uploader( + "Load a data file or a json configuration file", + key="data_uploader", + accept_multiple_files=False + ) + + if self.data_file: + self._initialize_opt_menu() def silent_sim(self): @@ -333,6 +373,10 @@ def _initialize_opt_menu_widgets(self, file_extension): self.config_parser.path_to_data).resolve().parent self.io.res_path = self.io.wkdir / ( self.io.wkdir.name + "_res") + st.info(f"Data loaded from path: " + f"{self.config_parser.path_to_data}. ") + st.info(f"Output directory set to the same directory as " + f"the data file: {self.io.res_path}") # Build the form for advanced parameters form = st.form("Parameter_form") From 5811214015d1f360575c4948e7b6e0f52a48608f Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 21 May 2024 15:21:49 +0200 Subject: [PATCH 059/114] Spacing --- physiofit/__main__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/physiofit/__main__.py b/physiofit/__main__.py index 0878863..e43e20a 100644 --- a/physiofit/__main__.py +++ b/physiofit/__main__.py @@ -21,6 +21,7 @@ def get_last_version(): except Exception: pass + def main(): """The main routine""" @@ -33,5 +34,6 @@ def main(): path_to_app = path_to_app / "ui/gui.py" run(["streamlit", "run", str(path_to_app)]) + if __name__ == "__main__": - sys.exit(main()) \ No newline at end of file + sys.exit(main()) From 382a6355734e579bce1059ad5e10ade57cc9bc00 Mon Sep 17 00:00:00 2001 From: llegregam Date: Tue, 21 May 2024 15:24:05 +0200 Subject: [PATCH 060/114] PEP8 --- physiofit/ui/gui.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 2f2e7eb..d375910 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -168,8 +168,8 @@ def _initialize_opt_menu(self): self.io.get_models() except Exception: st.error( - f"An error has occurred when listing models from the models " - f"folder: \n{Path(__file__).parent / 'models'}. " + f"An error has occurred when listing models from the " + f"models folder: \n{Path(__file__).parent / 'models'}. " f"Please correct the model or submit an issue at " f"github.com/MetaSys-LISBP/PhysioFit/issues") raise @@ -448,12 +448,12 @@ def _initialize_opt_menu_widgets(self, file_extension): with col2: st.write("Parameter Value") for key, value in self.model.args[ - param].items(): + param].items(): st.text_input( label="label", # Unused label_visibility="collapsed", value=value if self.config_parser is - None else + None else self.config_parser.model["args"][key], key=f"Fixed_{param}_value_{key}" ) @@ -551,7 +551,7 @@ def _get_data_from_session_state(self): for key in self.model.args[param].keys(): try: if st.session_state[ - f"Fixed_{param}_value_{key}"] == "0": + f"Fixed_{param}_value_{key}"] == "0": self.model.args[param][key] = 0 else: self.model.args[param][key] = literal_eval( From 31e5e3f931db3b37da0f8ed3b1386d5a2bebdbe6 Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 22 May 2024 12:01:00 +0200 Subject: [PATCH 061/114] Fixed config parser path input prompting. changed results folder to use the name of data file --- physiofit/base/io.py | 63 ++++------ physiofit/ui/gui.py | 285 ++++++++++++++++++++++--------------------- 2 files changed, 171 insertions(+), 177 deletions(-) diff --git a/physiofit/base/io.py b/physiofit/base/io.py index 902536f..43c1acb 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -15,6 +15,7 @@ from pandas import DataFrame, read_csv, concat import yaml +import physiofit.models.base_model from physiofit import __file__ from physiofit.base.fitter import PhysioFitter from physiofit.models.base_model import StandardDevs, Bounds, Model @@ -261,8 +262,8 @@ def read_yaml(yaml_file: str | bytes) -> ConfigParser: ) except Exception as e: raise IOError( - f"Error while reading yaml configuration file {yaml_file}. " - f"\nTraceback:\n\n{e}" + f"Error while reading yaml configuration file. " + f"Traceback:{e}" ) return config_parser @@ -568,7 +569,8 @@ class ConfigParser: parameters back to a yaml config file. """ - allowed_keys = ["model", "sds", "mc", "iterations"] + AUTHORIZED_KEYS = ["path_to_data", "model", "sds", "mc", + "iterations"] def __init__( self, @@ -579,11 +581,11 @@ def __init__( path_to_data=None ): - self.path_to_data = path_to_data - self.model = selected_model - self.sds = StandardDevs(sds) - self.mc = mc - self.iterations = iterations + self.path_to_data: str = path_to_data + self.model: physiofit.models.base_model.Model = selected_model + self.sds: physiofit.models.base_model.StandardDevs = StandardDevs(sds) + self.mc: bool = mc + self.iterations: int = iterations if not isinstance(self.mc, bool): raise TypeError( @@ -599,34 +601,21 @@ def __init__( @classmethod def from_file(cls, yaml_file): - - if isinstance(yaml_file, str): - with open(yaml_file, 'r') as file: - data = yaml.safe_load(file) - else: - data = yaml.safe_load(yaml_file) - data_keys = [key for key in data.keys()] - for key in cls.allowed_keys: - if key not in data_keys: - raise ValueError( - f"The key {key} is missing from the input config file" - ) - - try: - return ConfigParser( - path_to_data=data["path_to_data"], - selected_model=data["model"], - sds=data["sds"], - mc=data["mc"], - iterations=data["iterations"] - ) - except KeyError: - return ConfigParser( - selected_model=data["model"], - sds=data["sds"], - mc=data["mc"], - iterations=data["iterations"] - ) + data = yaml.safe_load(yaml_file) if not isinstance(yaml_file, str) \ + else yaml.safe_load(open(yaml_file, 'r')) + missing_keys = [key for key in cls.AUTHORIZED_KEYS if + key not in data.keys()] + if missing_keys: + raise ValueError( + f"The keys {missing_keys} are missing from the input config " + f"file") + return cls( + path_to_data=data["path_to_data"], + selected_model=data["model"], + sds=data["sds"], + mc=data["mc"], + iterations=data["iterations"] + ) @classmethod def from_galaxy(cls, galaxy_yaml): @@ -649,7 +638,7 @@ def check_data_path(self): if self.path_to_data: return Path(self.path_to_data).is_file() else: - return False + raise ValueError("No data path has been provided") def update_model(self, model): diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index d375910..b6c376a 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -89,7 +89,12 @@ def _get_data_path_config_context(): ) )) - def _initialize_opt_menu(self): + def clear_input_from_session_state(self): + + if hasattr(st.session_state, "config_parser_data_path"): + del st.session_state["config_parser_data_path"] + + def _run(self): """ Initialize all the options. If a yaml file is given as input, options are parsed from it. If the input is tsv, the defaults are used instead. @@ -98,32 +103,36 @@ def _initialize_opt_menu(self): # Check file extension and initialize defaults file_extension = self.data_file.name.split(".")[1] if file_extension in ["yaml", "yml"]: + #. We store the path in session state to + # avoid multiple prompts. try: - # Get parameters from yaml file + # For yaml files, we need to read the configuration file + # before loading the data. self.config_parser = self.io.read_yaml(self.data_file) + + # Check if the data path exists, if not open up prompt to # select file - if hasattr(st.session_state, "config_parser_data_path"): - # If the path is already in session state, use it - self.config_parser.path_to_data = st.session_state[ - "config_parser_data_path"] if not self.config_parser.check_data_path(): st.info( "File path in configuration file is incorrect or " "missing. Loading file from prompt." ) - # Send path to session state to avoid multiple prompts - st.session_state["config_parser_data_path"] = ( - self._get_data_path_config_context()) - self.config_parser.path_to_data = st.session_state[ - "config_parser_data_path" - ] + input_path = st.session_state.get( + "config_parser_data_path", + self._get_data_path_config_context() + ) + self.config_parser.path_to_data = input_path + st.session_state["config_parser_data_path"] = input_path + st.info(f"Input data: {self.config_parser.path_to_data}") + self.input_datafile_name = Path( + self.config_parser.path_to_data).stem # Load data into io_handler self.io.data = self.io.read_data( str(self.config_parser.path_to_data) ) - input_loaded = True + # input_loaded = True except Exception: st.error( "An error has occurred when reading the yaml " @@ -132,8 +141,8 @@ def _initialize_opt_menu(self): raise elif file_extension in ["tsv", "txt"]: try: + self.input_datafile_name = self.data_file.name[:-4] self.io.data = self.io.read_data(self.data_file) - input_loaded = True # Initialize default SDs self.defaults["sd"].update({ "X": 0.5 @@ -150,124 +159,124 @@ def _initialize_opt_menu(self): f"files or json for configuration files. Detected file: " f"{self.data_file.name}") - if input_loaded: - # Reset config_parser path to data if it exists to handle new - # data file paths - if hasattr(st.session_state, "config_parser_data_path"): - del st.session_state["config_parser_data_path"] - if "experiments" not in self.io.data.columns: - raise ValueError( - "'experiments' column missing from dataset" - ) - self.io.data = self.io.data.sort_values( - ["experiments", "time"], ignore_index=True + # if input_loaded: + # Reset config_parser path to data if it exists to handle new + # data file paths + # if hasattr(st.session_state, "config_parser_data_path"): + # del st.session_state["config_parser_data_path"] + if "experiments" not in self.io.data.columns: + raise ValueError( + "'experiments' column missing from dataset" ) + self.io.data = self.io.data.sort_values( + ["experiments", "time"], ignore_index=True + ) + try: + # Initialize the list of available models + self.io.get_models() + except Exception: + st.error( + f"An error has occurred when listing models from the " + f"models folder: \n{Path(__file__).parent / 'models'}. " + f"Please correct the model or submit an issue at " + f"github.com/MetaSys-LISBP/PhysioFit/issues") + raise + + # Build menu + submitted = self._initialize_opt_menu_widgets() + + if submitted: + handler = logging.FileHandler(self.io.res_path / "log.txt", + "w") + stream = logging.StreamHandler() + handler.setLevel(logging.INFO) + stream.setLevel(logging.INFO) + if self.debug_mode: + handler.setLevel(logging.DEBUG) + stream.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(' + 'levelname)s - %(message)s') + handler.setFormatter(formatter) + logger.addHandler(handler) + logger.addHandler(stream) try: - # Initialize the list of available models - self.io.get_models() + self._get_data_from_session_state() except Exception: st.error( - f"An error has occurred when listing models from the " - f"models folder: \n{Path(__file__).parent / 'models'}. " - f"Please correct the model or submit an issue at " - f"github.com/MetaSys-LISBP/PhysioFit/issues") + "An error has occurred when initializing the model") raise + if not self.io.wkdir: + raise ValueError("No output directory selected") + self.config_parser = ConfigParser( + path_to_data=self.io.wkdir / self.data_file.name, + selected_model=self.model, + sds=self.sd, + mc=self.mc, + iterations=self.iterations + ) - # Build menu - submitted = self._initialize_opt_menu_widgets(file_extension) - - if submitted: - handler = logging.FileHandler(self.io.res_path / "log.txt", - "w") - stream = logging.StreamHandler() - handler.setLevel(logging.INFO) - stream.setLevel(logging.INFO) - if self.debug_mode: - handler.setLevel(logging.DEBUG) - stream.setLevel(logging.DEBUG) - formatter = logging.Formatter('%(asctime)s - %(name)s - %(' - 'levelname)s - %(message)s') - handler.setFormatter(formatter) - logger.addHandler(handler) - logger.addHandler(stream) - try: - self._get_data_from_session_state() - except Exception: - st.error( - "An error has occurred when initializing the model") - raise - if not self.io.wkdir: - raise ValueError("No output directory selected") - self.config_parser = ConfigParser( - path_to_data=self.io.wkdir / self.data_file.name, - selected_model=self.model, - sds=self.sd, - mc=self.mc, - iterations=self.iterations - ) - - full_dataframe = self.io.data.copy() - results_path = copy(self.io.res_path) - experiments = list(self.io.data["experiments"].unique()) - self.io.multiple_experiments = [] - for experiment in experiments: - logger.info(f"Running optimization for {experiment}") - with st.spinner(f"Running optimization for {experiment}"): - # final_table_dict = {} - self.model.data = full_dataframe[ - full_dataframe["experiments"] == experiment - ].drop("experiments", axis=1).copy() - - self.io.res_path = results_path / str(experiment) - if not self.io.res_path.is_dir(): - self.io.res_path.mkdir(parents=True) - # Initialize the fitter object - self.io.names = self.io.data.columns[1:].to_list() - kwargs = self._build_fitter_kwargs() - logger.info("Run options for the fitter:") - for key, value in kwargs.items(): - logger.info(f"{key} : {value}") - fitter = self.io.initialize_fitter( - self.model.data, - model=kwargs["model"], - mc=kwargs["mc"], - iterations=kwargs["iterations"], - sd=kwargs["sd"], - debug_mode=kwargs["debug_mode"] - ) - # Do the work - fitter.optimize() - if self.mc: - fitter.monte_carlo_analysis() - fitter.khi2_test() - df = pd.DataFrame.from_dict( - fitter.parameter_stats, - orient="columns" - ) - df.index = [ - f"{experiment} {param}" for param in - fitter.model.parameters.keys() - ] - st.write(df) - logger.info(f"Results for {experiment}: \n{df}") - self.io.multiple_experiments.append(df) - - # Export results - self.io.output_report(fitter, self.io.res_path) - self.io.plot_data(fitter) - self.io.output_plots(fitter, self.io.res_path) - with st.expander(f"{experiment} plots"): - for fig in self.io.figures: - st.pyplot(fig[1]) - self.io.output_pdf(fitter, self.io.res_path) - # Reset figures to free memory - self.io.figures = [] - self.config_parser.export_config(self.io.res_path) - self.io.data = full_dataframe - logger.info(f"Resulting dataframe: \n{full_dataframe}") - self.io.res_path = results_path - self.io.output_recap(results_path) + full_dataframe = self.io.data.copy() + results_path = copy(self.io.res_path) + experiments = list(self.io.data["experiments"].unique()) + self.io.multiple_experiments = [] + for experiment in experiments: + logger.info(f"Running optimization for {experiment}") + with st.spinner(f"Running optimization for {experiment}"): + # final_table_dict = {} + self.model.data = full_dataframe[ + full_dataframe["experiments"] == experiment + ].drop("experiments", axis=1).copy() + + self.io.res_path = results_path / str(experiment) + if not self.io.res_path.is_dir(): + self.io.res_path.mkdir(parents=True) + # Initialize the fitter object + self.io.names = self.io.data.columns[1:].to_list() + kwargs = self._build_fitter_kwargs() + logger.info("Run options for the fitter:") + for key, value in kwargs.items(): + logger.info(f"{key} : {value}") + fitter = self.io.initialize_fitter( + self.model.data, + model=kwargs["model"], + mc=kwargs["mc"], + iterations=kwargs["iterations"], + sd=kwargs["sd"], + debug_mode=kwargs["debug_mode"] + ) + # Do the work + fitter.optimize() + if self.mc: + fitter.monte_carlo_analysis() + fitter.khi2_test() + df = pd.DataFrame.from_dict( + fitter.parameter_stats, + orient="columns" + ) + df.index = [ + f"{experiment} {param}" for param in + fitter.model.parameters.keys() + ] + st.write(df) + logger.info(f"Results for {experiment}: \n{df}") + self.io.multiple_experiments.append(df) + + # Export results + self.io.output_report(fitter, self.io.res_path) + self.io.plot_data(fitter) + self.io.output_plots(fitter, self.io.res_path) + with st.expander(f"{experiment} plots"): + for fig in self.io.figures: + st.pyplot(fig[1]) + self.io.output_pdf(fitter, self.io.res_path) + # Reset figures to free memory + self.io.figures = [] + self.config_parser.export_config(self.io.res_path) + self.io.data = full_dataframe + logger.info(f"Resulting dataframe: \n{full_dataframe}") + self.io.res_path = results_path + self.io.output_recap(results_path) def _build_flux_menu(self): """Build the starting menu with the data upload button""" @@ -275,11 +284,12 @@ def _build_flux_menu(self): self.data_file = st.file_uploader( "Load a data file or a json configuration file", key="data_uploader", - accept_multiple_files=False + accept_multiple_files=False, + on_change=self.clear_input_from_session_state ) if self.data_file: - self._initialize_opt_menu() + self._run() def silent_sim(self): @@ -290,7 +300,7 @@ def silent_sim(self): self.model.args ) - def _initialize_opt_menu_widgets(self, file_extension): + def _initialize_opt_menu_widgets(self): # Get model names and give as options to user model_options = [ @@ -364,20 +374,15 @@ def _initialize_opt_menu_widgets(self, file_extension): "issue on github." ) - if file_extension in ["tsv", "txt"]: - - self._output_directory_selector() + # if file_extension in ["tsv", "txt"]: - else: - self.io.wkdir = Path( - self.config_parser.path_to_data).resolve().parent - self.io.res_path = self.io.wkdir / ( - self.io.wkdir.name + "_res") - st.info(f"Data loaded from path: " - f"{self.config_parser.path_to_data}. ") - st.info(f"Output directory set to the same directory as " - f"the data file: {self.io.res_path}") + self._output_directory_selector() + self.io.wkdir = Path( + self.config_parser.path_to_data).resolve().parent + self.io.res_path = self.io.wkdir / ( + self.input_datafile_name + "_res") + self.io.res_path.mkdir(parents=True, exist_ok=True) # Build the form for advanced parameters form = st.form("Parameter_form") with form: From 3666fbf6eb84ef15e3101b5d6f0181182cdb315e Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 22 May 2024 12:01:34 +0200 Subject: [PATCH 062/114] changed python minimum version to 3.9 for scipy --- poetry.lock | 1057 +++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 507 insertions(+), 552 deletions(-) diff --git a/poetry.lock b/poetry.lock index 81b7126..36b9310 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,13 +2,13 @@ [[package]] name = "alabaster" -version = "0.7.13" -description = "A configurable sidebar-enabled Sphinx theme" +version = "0.7.16" +description = "A light, configurable Sphinx theme" optional = false -python-versions = ">=3.6" +python-versions = ">=3.9" files = [ - {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, - {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, + {file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"}, + {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, ] [[package]] @@ -86,32 +86,18 @@ tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "p [[package]] name = "babel" -version = "2.14.0" +version = "2.15.0" description = "Internationalization utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, - {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, + {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, + {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, ] -[package.dependencies] -pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} - [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] -[[package]] -name = "backcall" -version = "0.2.0" -description = "Specifications for callback functions passed in to an API" -optional = false -python-versions = "*" -files = [ - {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, - {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, -] - [[package]] name = "beautifulsoup4" version = "4.12.3" @@ -153,13 +139,13 @@ css = ["tinycss2 (>=1.1.0,<1.3)"] [[package]] name = "blinker" -version = "1.8.1" +version = "1.8.2" description = "Fast, simple object-to-object and broadcast signaling" optional = false python-versions = ">=3.8" files = [ - {file = "blinker-1.8.1-py3-none-any.whl", hash = "sha256:5f1cdeff423b77c31b89de0565cd03e5275a03028f44b2b15f912632a58cced6"}, - {file = "blinker-1.8.1.tar.gz", hash = "sha256:da44ec748222dcd0105ef975eed946da197d5bdf8bafb6aa92f5bc89da63fa25"}, + {file = "blinker-1.8.2-py3-none-any.whl", hash = "sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01"}, + {file = "blinker-1.8.2.tar.gz", hash = "sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83"}, ] [[package]] @@ -402,74 +388,66 @@ test = ["pytest"] [[package]] name = "contourpy" -version = "1.1.1" +version = "1.2.1" description = "Python library for calculating contours of 2D quadrilateral grids" optional = false -python-versions = ">=3.8" -files = [ - {file = "contourpy-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:46e24f5412c948d81736509377e255f6040e94216bf1a9b5ea1eaa9d29f6ec1b"}, - {file = "contourpy-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e48694d6a9c5a26ee85b10130c77a011a4fedf50a7279fa0bdaf44bafb4299d"}, - {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a66045af6cf00e19d02191ab578a50cb93b2028c3eefed999793698e9ea768ae"}, - {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ebf42695f75ee1a952f98ce9775c873e4971732a87334b099dde90b6af6a916"}, - {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6aec19457617ef468ff091669cca01fa7ea557b12b59a7908b9474bb9674cf0"}, - {file = "contourpy-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:462c59914dc6d81e0b11f37e560b8a7c2dbab6aca4f38be31519d442d6cde1a1"}, - {file = "contourpy-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6d0a8efc258659edc5299f9ef32d8d81de8b53b45d67bf4bfa3067f31366764d"}, - {file = "contourpy-1.1.1-cp310-cp310-win32.whl", hash = "sha256:d6ab42f223e58b7dac1bb0af32194a7b9311065583cc75ff59dcf301afd8a431"}, - {file = "contourpy-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:549174b0713d49871c6dee90a4b499d3f12f5e5f69641cd23c50a4542e2ca1eb"}, - {file = "contourpy-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:407d864db716a067cc696d61fa1ef6637fedf03606e8417fe2aeed20a061e6b2"}, - {file = "contourpy-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe80c017973e6a4c367e037cb31601044dd55e6bfacd57370674867d15a899b"}, - {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e30aaf2b8a2bac57eb7e1650df1b3a4130e8d0c66fc2f861039d507a11760e1b"}, - {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3de23ca4f381c3770dee6d10ead6fff524d540c0f662e763ad1530bde5112532"}, - {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:566f0e41df06dfef2431defcfaa155f0acfa1ca4acbf8fd80895b1e7e2ada40e"}, - {file = "contourpy-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b04c2f0adaf255bf756cf08ebef1be132d3c7a06fe6f9877d55640c5e60c72c5"}, - {file = "contourpy-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d0c188ae66b772d9d61d43c6030500344c13e3f73a00d1dc241da896f379bb62"}, - {file = "contourpy-1.1.1-cp311-cp311-win32.whl", hash = "sha256:0683e1ae20dc038075d92e0e0148f09ffcefab120e57f6b4c9c0f477ec171f33"}, - {file = "contourpy-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:8636cd2fc5da0fb102a2504fa2c4bea3cbc149533b345d72cdf0e7a924decc45"}, - {file = "contourpy-1.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:560f1d68a33e89c62da5da4077ba98137a5e4d3a271b29f2f195d0fba2adcb6a"}, - {file = "contourpy-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:24216552104ae8f3b34120ef84825400b16eb6133af2e27a190fdc13529f023e"}, - {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56de98a2fb23025882a18b60c7f0ea2d2d70bbbcfcf878f9067234b1c4818442"}, - {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:07d6f11dfaf80a84c97f1a5ba50d129d9303c5b4206f776e94037332e298dda8"}, - {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1eaac5257a8f8a047248d60e8f9315c6cff58f7803971170d952555ef6344a7"}, - {file = "contourpy-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19557fa407e70f20bfaba7d55b4d97b14f9480856c4fb65812e8a05fe1c6f9bf"}, - {file = "contourpy-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:081f3c0880712e40effc5f4c3b08feca6d064cb8cfbb372ca548105b86fd6c3d"}, - {file = "contourpy-1.1.1-cp312-cp312-win32.whl", hash = "sha256:059c3d2a94b930f4dafe8105bcdc1b21de99b30b51b5bce74c753686de858cb6"}, - {file = "contourpy-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:f44d78b61740e4e8c71db1cf1fd56d9050a4747681c59ec1094750a658ceb970"}, - {file = "contourpy-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:70e5a10f8093d228bb2b552beeb318b8928b8a94763ef03b858ef3612b29395d"}, - {file = "contourpy-1.1.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8394e652925a18ef0091115e3cc191fef350ab6dc3cc417f06da66bf98071ae9"}, - {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5bd5680f844c3ff0008523a71949a3ff5e4953eb7701b28760805bc9bcff217"}, - {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66544f853bfa85c0d07a68f6c648b2ec81dafd30f272565c37ab47a33b220684"}, - {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0c02b75acfea5cab07585d25069207e478d12309557f90a61b5a3b4f77f46ce"}, - {file = "contourpy-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41339b24471c58dc1499e56783fedc1afa4bb018bcd035cfb0ee2ad2a7501ef8"}, - {file = "contourpy-1.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f29fb0b3f1217dfe9362ec55440d0743fe868497359f2cf93293f4b2701b8251"}, - {file = "contourpy-1.1.1-cp38-cp38-win32.whl", hash = "sha256:f9dc7f933975367251c1b34da882c4f0e0b2e24bb35dc906d2f598a40b72bfc7"}, - {file = "contourpy-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:498e53573e8b94b1caeb9e62d7c2d053c263ebb6aa259c81050766beb50ff8d9"}, - {file = "contourpy-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ba42e3810999a0ddd0439e6e5dbf6d034055cdc72b7c5c839f37a7c274cb4eba"}, - {file = "contourpy-1.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6c06e4c6e234fcc65435223c7b2a90f286b7f1b2733058bdf1345d218cc59e34"}, - {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca6fab080484e419528e98624fb5c4282148b847e3602dc8dbe0cb0669469887"}, - {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93df44ab351119d14cd1e6b52a5063d3336f0754b72736cc63db59307dabb718"}, - {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eafbef886566dc1047d7b3d4b14db0d5b7deb99638d8e1be4e23a7c7ac59ff0f"}, - {file = "contourpy-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efe0fab26d598e1ec07d72cf03eaeeba8e42b4ecf6b9ccb5a356fde60ff08b85"}, - {file = "contourpy-1.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f08e469821a5e4751c97fcd34bcb586bc243c39c2e39321822060ba902eac49e"}, - {file = "contourpy-1.1.1-cp39-cp39-win32.whl", hash = "sha256:bfc8a5e9238232a45ebc5cb3bfee71f1167064c8d382cadd6076f0d51cff1da0"}, - {file = "contourpy-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:c84fdf3da00c2827d634de4fcf17e3e067490c4aea82833625c4c8e6cdea0887"}, - {file = "contourpy-1.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:229a25f68046c5cf8067d6d6351c8b99e40da11b04d8416bf8d2b1d75922521e"}, - {file = "contourpy-1.1.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a10dab5ea1bd4401c9483450b5b0ba5416be799bbd50fc7a6cc5e2a15e03e8a3"}, - {file = "contourpy-1.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4f9147051cb8fdb29a51dc2482d792b3b23e50f8f57e3720ca2e3d438b7adf23"}, - {file = "contourpy-1.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a75cc163a5f4531a256f2c523bd80db509a49fc23721b36dd1ef2f60ff41c3cb"}, - {file = "contourpy-1.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b53d5769aa1f2d4ea407c65f2d1d08002952fac1d9e9d307aa2e1023554a163"}, - {file = "contourpy-1.1.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:11b836b7dbfb74e049c302bbf74b4b8f6cb9d0b6ca1bf86cfa8ba144aedadd9c"}, - {file = "contourpy-1.1.1.tar.gz", hash = "sha256:96ba37c2e24b7212a77da85004c38e7c4d155d3e72a45eeaf22c1f03f607e8ab"}, +python-versions = ">=3.9" +files = [ + {file = "contourpy-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bd7c23df857d488f418439686d3b10ae2fbf9bc256cd045b37a8c16575ea1040"}, + {file = "contourpy-1.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5b9eb0ca724a241683c9685a484da9d35c872fd42756574a7cfbf58af26677fd"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c75507d0a55378240f781599c30e7776674dbaf883a46d1c90f37e563453480"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11959f0ce4a6f7b76ec578576a0b61a28bdc0696194b6347ba3f1c53827178b9"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eb3315a8a236ee19b6df481fc5f997436e8ade24a9f03dfdc6bd490fea20c6da"}, + {file = "contourpy-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39f3ecaf76cd98e802f094e0d4fbc6dc9c45a8d0c4d185f0f6c2234e14e5f75b"}, + {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:94b34f32646ca0414237168d68a9157cb3889f06b096612afdd296003fdd32fd"}, + {file = "contourpy-1.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:457499c79fa84593f22454bbd27670227874cd2ff5d6c84e60575c8b50a69619"}, + {file = "contourpy-1.2.1-cp310-cp310-win32.whl", hash = "sha256:ac58bdee53cbeba2ecad824fa8159493f0bf3b8ea4e93feb06c9a465d6c87da8"}, + {file = "contourpy-1.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9cffe0f850e89d7c0012a1fb8730f75edd4320a0a731ed0c183904fe6ecfc3a9"}, + {file = "contourpy-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6022cecf8f44e36af10bd9118ca71f371078b4c168b6e0fab43d4a889985dbb5"}, + {file = "contourpy-1.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ef5adb9a3b1d0c645ff694f9bca7702ec2c70f4d734f9922ea34de02294fdf72"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6150ffa5c767bc6332df27157d95442c379b7dce3a38dff89c0f39b63275696f"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c863140fafc615c14a4bf4efd0f4425c02230eb8ef02784c9a156461e62c965"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:00e5388f71c1a0610e6fe56b5c44ab7ba14165cdd6d695429c5cd94021e390b2"}, + {file = "contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df"}, + {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:49e70d111fee47284d9dd867c9bb9a7058a3c617274900780c43e38d90fe1205"}, + {file = "contourpy-1.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b59c0ffceff8d4d3996a45f2bb6f4c207f94684a96bf3d9728dbb77428dd8cb8"}, + {file = "contourpy-1.2.1-cp311-cp311-win32.whl", hash = "sha256:7b4182299f251060996af5249c286bae9361fa8c6a9cda5efc29fe8bfd6062ec"}, + {file = "contourpy-1.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2855c8b0b55958265e8b5888d6a615ba02883b225f2227461aa9127c578a4922"}, + {file = "contourpy-1.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:62828cada4a2b850dbef89c81f5a33741898b305db244904de418cc957ff05dc"}, + {file = "contourpy-1.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:309be79c0a354afff9ff7da4aaed7c3257e77edf6c1b448a779329431ee79d7e"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e785e0f2ef0d567099b9ff92cbfb958d71c2d5b9259981cd9bee81bd194c9a4"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cac0a8f71a041aa587410424ad46dfa6a11f6149ceb219ce7dd48f6b02b87a7"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af3f4485884750dddd9c25cb7e3915d83c2db92488b38ccb77dd594eac84c4a0"}, + {file = "contourpy-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ce6889abac9a42afd07a562c2d6d4b2b7134f83f18571d859b25624a331c90b"}, + {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a1eea9aecf761c661d096d39ed9026574de8adb2ae1c5bd7b33558af884fb2ce"}, + {file = "contourpy-1.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:187fa1d4c6acc06adb0fae5544c59898ad781409e61a926ac7e84b8f276dcef4"}, + {file = "contourpy-1.2.1-cp312-cp312-win32.whl", hash = "sha256:c2528d60e398c7c4c799d56f907664673a807635b857df18f7ae64d3e6ce2d9f"}, + {file = "contourpy-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a07fc092a4088ee952ddae19a2b2a85757b923217b7eed584fdf25f53a6e7ce"}, + {file = "contourpy-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb6834cbd983b19f06908b45bfc2dad6ac9479ae04abe923a275b5f48f1a186b"}, + {file = "contourpy-1.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1d59e739ab0e3520e62a26c60707cc3ab0365d2f8fecea74bfe4de72dc56388f"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd3db01f59fdcbce5b22afad19e390260d6d0222f35a1023d9adc5690a889364"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a12a813949e5066148712a0626895c26b2578874e4cc63160bb007e6df3436fe"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe0ccca550bb8e5abc22f530ec0466136379c01321fd94f30a22231e8a48d985"}, + {file = "contourpy-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1d59258c3c67c865435d8fbeb35f8c59b8bef3d6f46c1f29f6123556af28445"}, + {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f32c38afb74bd98ce26de7cc74a67b40afb7b05aae7b42924ea990d51e4dac02"}, + {file = "contourpy-1.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d31a63bc6e6d87f77d71e1abbd7387ab817a66733734883d1fc0021ed9bfa083"}, + {file = "contourpy-1.2.1-cp39-cp39-win32.whl", hash = "sha256:ddcb8581510311e13421b1f544403c16e901c4e8f09083c881fab2be80ee31ba"}, + {file = "contourpy-1.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:10a37ae557aabf2509c79715cd20b62e4c7c28b8cd62dd7d99e5ed3ce28c3fd9"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a31f94983fecbac95e58388210427d68cd30fe8a36927980fab9c20062645609"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef2b055471c0eb466033760a521efb9d8a32b99ab907fc8358481a1dd29e3bd3"}, + {file = "contourpy-1.2.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b33d2bc4f69caedcd0a275329eb2198f560b325605810895627be5d4b876bf7f"}, + {file = "contourpy-1.2.1.tar.gz", hash = "sha256:4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c"}, ] [package.dependencies] -numpy = {version = ">=1.16,<2.0", markers = "python_version <= \"3.11\""} +numpy = ">=1.20" [package.extras] bokeh = ["bokeh", "selenium"] docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] -mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.4.1)", "types-Pillow"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.8.0)", "types-Pillow"] test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] -test-no-images = ["pytest", "pytest-cov", "wurlitzer"] +test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] [[package]] name = "cycler" @@ -605,13 +583,13 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.13.4" +version = "3.14.0" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.13.4-py3-none-any.whl", hash = "sha256:404e5e9253aa60ad457cae1be07c0f0ca90a63931200a47d9b6a6af84fd7b45f"}, - {file = "filelock-3.13.4.tar.gz", hash = "sha256:d13f466618bfde72bd2c18255e269f72542c6e70e7bac83a0232d6b1cc5c8cf4"}, + {file = "filelock-3.14.0-py3-none-any.whl", hash = "sha256:43339835842f110ca7ae60f1e1c160714c5a6afd15a2873419ab185334975c0f"}, + {file = "filelock-3.14.0.tar.gz", hash = "sha256:6ea72da3be9b8c82afd3edcf99f2fffbb5076335a5ae4d03248bb5b6c3eae78a"}, ] [package.extras] @@ -837,42 +815,40 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio [[package]] name = "ipython" -version = "8.12.3" +version = "8.18.1" description = "IPython: Productive Interactive Computing" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "ipython-8.12.3-py3-none-any.whl", hash = "sha256:b0340d46a933d27c657b211a329d0be23793c36595acf9e6ef4164bc01a1804c"}, - {file = "ipython-8.12.3.tar.gz", hash = "sha256:3910c4b54543c2ad73d06579aa771041b7d5707b033bd488669b4cf544e3b363"}, + {file = "ipython-8.18.1-py3-none-any.whl", hash = "sha256:e8267419d72d81955ec1177f8a29aaa90ac80ad647499201119e2f05e99aa397"}, + {file = "ipython-8.18.1.tar.gz", hash = "sha256:ca6f079bb33457c66e233e4580ebfc4128855b4cf6370dddd73842a9563e8a27"}, ] [package.dependencies] -appnope = {version = "*", markers = "sys_platform == \"darwin\""} -backcall = "*" colorama = {version = "*", markers = "sys_platform == \"win32\""} decorator = "*" +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} -pickleshare = "*" -prompt-toolkit = ">=3.0.30,<3.0.37 || >3.0.37,<3.1.0" +prompt-toolkit = ">=3.0.41,<3.1.0" pygments = ">=2.4.0" stack-data = "*" traitlets = ">=5" typing-extensions = {version = "*", markers = "python_version < \"3.10\""} [package.extras] -all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +all = ["black", "curio", "docrepr", "exceptiongroup", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.22)", "pandas", "pickleshare", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio (<0.22)", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] black = ["black"] -doc = ["docrepr", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +doc = ["docrepr", "exceptiongroup", "ipykernel", "matplotlib", "pickleshare", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio (<0.22)", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] kernel = ["ipykernel"] nbconvert = ["nbconvert"] nbformat = ["nbformat"] notebook = ["ipywidgets", "notebook"] parallel = ["ipyparallel"] qtconsole = ["qtconsole"] -test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] -test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] +test = ["pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pandas", "pickleshare", "pytest (<7.1)", "pytest-asyncio (<0.22)", "testpath", "trio"] [[package]] name = "jedi" @@ -895,13 +871,13 @@ testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" -version = "3.1.3" +version = "3.1.4" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, - {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] @@ -912,20 +888,18 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsonschema" -version = "4.21.1" +version = "4.22.0" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, - {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, + {file = "jsonschema-4.22.0-py3-none-any.whl", hash = "sha256:ff4cfd6b1367a40e7bc6411caec72effadd3db0bbe5017de188f2d6108335802"}, + {file = "jsonschema-4.22.0.tar.gz", hash = "sha256:5b22d434a45935119af990552c862e5d6d564e8f6601206b305a61fdf661a2b7"}, ] [package.dependencies] attrs = ">=22.2.0" -importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} jsonschema-specifications = ">=2023.03.6" -pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} referencing = ">=0.28.4" rpds-py = ">=0.7.1" @@ -945,7 +919,6 @@ files = [ ] [package.dependencies] -importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} referencing = ">=0.31.0" [[package]] @@ -1210,58 +1183,40 @@ files = [ [[package]] name = "matplotlib" -version = "3.7.5" +version = "3.9.0" description = "Python plotting package" optional = false -python-versions = ">=3.8" -files = [ - {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:4a87b69cb1cb20943010f63feb0b2901c17a3b435f75349fd9865713bfa63925"}, - {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d3ce45010fefb028359accebb852ca0c21bd77ec0f281952831d235228f15810"}, - {file = "matplotlib-3.7.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fbea1e762b28400393d71be1a02144aa16692a3c4c676ba0178ce83fc2928fdd"}, - {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec0e1adc0ad70ba8227e957551e25a9d2995e319c29f94a97575bb90fa1d4469"}, - {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6738c89a635ced486c8a20e20111d33f6398a9cbebce1ced59c211e12cd61455"}, - {file = "matplotlib-3.7.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1210b7919b4ed94b5573870f316bca26de3e3b07ffdb563e79327dc0e6bba515"}, - {file = "matplotlib-3.7.5-cp310-cp310-win32.whl", hash = "sha256:068ebcc59c072781d9dcdb82f0d3f1458271c2de7ca9c78f5bd672141091e9e1"}, - {file = "matplotlib-3.7.5-cp310-cp310-win_amd64.whl", hash = "sha256:f098ffbaab9df1e3ef04e5a5586a1e6b1791380698e84938d8640961c79b1fc0"}, - {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:f65342c147572673f02a4abec2d5a23ad9c3898167df9b47c149f32ce61ca078"}, - {file = "matplotlib-3.7.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4ddf7fc0e0dc553891a117aa083039088d8a07686d4c93fb8a810adca68810af"}, - {file = "matplotlib-3.7.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0ccb830fc29442360d91be48527809f23a5dcaee8da5f4d9b2d5b867c1b087b8"}, - {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efc6bb28178e844d1f408dd4d6341ee8a2e906fc9e0fa3dae497da4e0cab775d"}, - {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b15c4c2d374f249f324f46e883340d494c01768dd5287f8bc00b65b625ab56c"}, - {file = "matplotlib-3.7.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d028555421912307845e59e3de328260b26d055c5dac9b182cc9783854e98fb"}, - {file = "matplotlib-3.7.5-cp311-cp311-win32.whl", hash = "sha256:fe184b4625b4052fa88ef350b815559dd90cc6cc8e97b62f966e1ca84074aafa"}, - {file = "matplotlib-3.7.5-cp311-cp311-win_amd64.whl", hash = "sha256:084f1f0f2f1010868c6f1f50b4e1c6f2fb201c58475494f1e5b66fed66093647"}, - {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_universal2.whl", hash = "sha256:34bceb9d8ddb142055ff27cd7135f539f2f01be2ce0bafbace4117abe58f8fe4"}, - {file = "matplotlib-3.7.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c5a2134162273eb8cdfd320ae907bf84d171de948e62180fa372a3ca7cf0f433"}, - {file = "matplotlib-3.7.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:039ad54683a814002ff37bf7981aa1faa40b91f4ff84149beb53d1eb64617980"}, - {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d742ccd1b09e863b4ca58291728db645b51dab343eebb08d5d4b31b308296ce"}, - {file = "matplotlib-3.7.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:743b1c488ca6a2bc7f56079d282e44d236bf375968bfd1b7ba701fd4d0fa32d6"}, - {file = "matplotlib-3.7.5-cp312-cp312-win_amd64.whl", hash = "sha256:fbf730fca3e1f23713bc1fae0a57db386e39dc81ea57dc305c67f628c1d7a342"}, - {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:cfff9b838531698ee40e40ea1a8a9dc2c01edb400b27d38de6ba44c1f9a8e3d2"}, - {file = "matplotlib-3.7.5-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:1dbcca4508bca7847fe2d64a05b237a3dcaec1f959aedb756d5b1c67b770c5ee"}, - {file = "matplotlib-3.7.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4cdf4ef46c2a1609a50411b66940b31778db1e4b73d4ecc2eaa40bd588979b13"}, - {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:167200ccfefd1674b60e957186dfd9baf58b324562ad1a28e5d0a6b3bea77905"}, - {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:53e64522934df6e1818b25fd48cf3b645b11740d78e6ef765fbb5fa5ce080d02"}, - {file = "matplotlib-3.7.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3e3bc79b2d7d615067bd010caff9243ead1fc95cf735c16e4b2583173f717eb"}, - {file = "matplotlib-3.7.5-cp38-cp38-win32.whl", hash = "sha256:6b641b48c6819726ed47c55835cdd330e53747d4efff574109fd79b2d8a13748"}, - {file = "matplotlib-3.7.5-cp38-cp38-win_amd64.whl", hash = "sha256:f0b60993ed3488b4532ec6b697059897891927cbfc2b8d458a891b60ec03d9d7"}, - {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:090964d0afaff9c90e4d8de7836757e72ecfb252fb02884016d809239f715651"}, - {file = "matplotlib-3.7.5-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:9fc6fcfbc55cd719bc0bfa60bde248eb68cf43876d4c22864603bdd23962ba25"}, - {file = "matplotlib-3.7.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7cc3078b019bb863752b8b60e8b269423000f1603cb2299608231996bd9d54"}, - {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e4e9a868e8163abaaa8259842d85f949a919e1ead17644fb77a60427c90473c"}, - {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa7ebc995a7d747dacf0a717d0eb3aa0f0c6a0e9ea88b0194d3a3cd241a1500f"}, - {file = "matplotlib-3.7.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3785bfd83b05fc0e0c2ae4c4a90034fe693ef96c679634756c50fe6efcc09856"}, - {file = "matplotlib-3.7.5-cp39-cp39-win32.whl", hash = "sha256:29b058738c104d0ca8806395f1c9089dfe4d4f0f78ea765c6c704469f3fffc81"}, - {file = "matplotlib-3.7.5-cp39-cp39-win_amd64.whl", hash = "sha256:fd4028d570fa4b31b7b165d4a685942ae9cdc669f33741e388c01857d9723eab"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2a9a3f4d6a7f88a62a6a18c7e6a84aedcaf4faf0708b4ca46d87b19f1b526f88"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9b3fd853d4a7f008a938df909b96db0b454225f935d3917520305b90680579c"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0ad550da9f160737d7890217c5eeed4337d07e83ca1b2ca6535078f354e7675"}, - {file = "matplotlib-3.7.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:20da7924a08306a861b3f2d1da0d1aa9a6678e480cf8eacffe18b565af2813e7"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b45c9798ea6bb920cb77eb7306409756a7fab9db9b463e462618e0559aecb30e"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a99866267da1e561c7776fe12bf4442174b79aac1a47bd7e627c7e4d077ebd83"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b6aa62adb6c268fc87d80f963aca39c64615c31830b02697743c95590ce3fbb"}, - {file = "matplotlib-3.7.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e530ab6a0afd082d2e9c17eb1eb064a63c5b09bb607b2b74fa41adbe3e162286"}, - {file = "matplotlib-3.7.5.tar.gz", hash = "sha256:1e5c971558ebc811aa07f54c7b7c677d78aa518ef4c390e14673a09e0860184a"}, +python-versions = ">=3.9" +files = [ + {file = "matplotlib-3.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2bcee1dffaf60fe7656183ac2190bd630842ff87b3153afb3e384d966b57fe56"}, + {file = "matplotlib-3.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f988bafb0fa39d1074ddd5bacd958c853e11def40800c5824556eb630f94d3b"}, + {file = "matplotlib-3.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe428e191ea016bb278758c8ee82a8129c51d81d8c4bc0846c09e7e8e9057241"}, + {file = "matplotlib-3.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaf3978060a106fab40c328778b148f590e27f6fa3cd15a19d6892575bce387d"}, + {file = "matplotlib-3.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2e7f03e5cbbfacdd48c8ea394d365d91ee8f3cae7e6ec611409927b5ed997ee4"}, + {file = "matplotlib-3.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:13beb4840317d45ffd4183a778685e215939be7b08616f431c7795276e067463"}, + {file = "matplotlib-3.9.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:063af8587fceeac13b0936c42a2b6c732c2ab1c98d38abc3337e430e1ff75e38"}, + {file = "matplotlib-3.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a2fa6d899e17ddca6d6526cf6e7ba677738bf2a6a9590d702c277204a7c6152"}, + {file = "matplotlib-3.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:550cdda3adbd596078cca7d13ed50b77879104e2e46392dcd7c75259d8f00e85"}, + {file = "matplotlib-3.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76cce0f31b351e3551d1f3779420cf8f6ec0d4a8cf9c0237a3b549fd28eb4abb"}, + {file = "matplotlib-3.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c53aeb514ccbbcbab55a27f912d79ea30ab21ee0531ee2c09f13800efb272674"}, + {file = "matplotlib-3.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:a5be985db2596d761cdf0c2eaf52396f26e6a64ab46bd8cd810c48972349d1be"}, + {file = "matplotlib-3.9.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c79f3a585f1368da6049318bdf1f85568d8d04b2e89fc24b7e02cc9b62017382"}, + {file = "matplotlib-3.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bdd1ecbe268eb3e7653e04f451635f0fb0f77f07fd070242b44c076c9106da84"}, + {file = "matplotlib-3.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d38e85a1a6d732f645f1403ce5e6727fd9418cd4574521d5803d3d94911038e5"}, + {file = "matplotlib-3.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a490715b3b9984fa609116481b22178348c1a220a4499cda79132000a79b4db"}, + {file = "matplotlib-3.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8146ce83cbc5dc71c223a74a1996d446cd35cfb6a04b683e1446b7e6c73603b7"}, + {file = "matplotlib-3.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:d91a4ffc587bacf5c4ce4ecfe4bcd23a4b675e76315f2866e588686cc97fccdf"}, + {file = "matplotlib-3.9.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:616fabf4981a3b3c5a15cd95eba359c8489c4e20e03717aea42866d8d0465956"}, + {file = "matplotlib-3.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cd53c79fd02f1c1808d2cfc87dd3cf4dbc63c5244a58ee7944497107469c8d8a"}, + {file = "matplotlib-3.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06a478f0d67636554fa78558cfbcd7b9dba85b51f5c3b5a0c9be49010cf5f321"}, + {file = "matplotlib-3.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81c40af649d19c85f8073e25e5806926986806fa6d54be506fbf02aef47d5a89"}, + {file = "matplotlib-3.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52146fc3bd7813cc784562cb93a15788be0b2875c4655e2cc6ea646bfa30344b"}, + {file = "matplotlib-3.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:0fc51eaa5262553868461c083d9adadb11a6017315f3a757fc45ec6ec5f02888"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bd4f2831168afac55b881db82a7730992aa41c4f007f1913465fb182d6fb20c0"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:290d304e59be2b33ef5c2d768d0237f5bd132986bdcc66f80bc9bcc300066a03"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff2e239c26be4f24bfa45860c20ffccd118d270c5b5d081fa4ea409b5469fcd"}, + {file = "matplotlib-3.9.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:af4001b7cae70f7eaacfb063db605280058246de590fa7874f00f62259f2df7e"}, + {file = "matplotlib-3.9.0.tar.gz", hash = "sha256:e6d29ea6c19e34b30fb7d88b7081f869a03014f66fe06d62cc77d5a6ea88ed7a"}, ] [package.dependencies] @@ -1269,13 +1224,16 @@ contourpy = ">=1.0.1" cycler = ">=0.10" fonttools = ">=4.22.0" importlib-resources = {version = ">=3.2.0", markers = "python_version < \"3.10\""} -kiwisolver = ">=1.0.1" -numpy = ">=1.20,<2" +kiwisolver = ">=1.3.1" +numpy = ">=1.23" packaging = ">=20.0" -pillow = ">=6.2.0" +pillow = ">=8" pyparsing = ">=2.3.1" python-dateutil = ">=2.7" +[package.extras] +dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] + [[package]] name = "matplotlib-inline" version = "0.1.7" @@ -1406,19 +1364,19 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] [[package]] name = "nbsphinx" -version = "0.9.3" +version = "0.9.4" description = "Jupyter Notebook Tools for Sphinx" optional = false python-versions = ">=3.6" files = [ - {file = "nbsphinx-0.9.3-py3-none-any.whl", hash = "sha256:6e805e9627f4a358bd5720d5cbf8bf48853989c79af557afd91a5f22e163029f"}, - {file = "nbsphinx-0.9.3.tar.gz", hash = "sha256:ec339c8691b688f8676104a367a4b8cf3ea01fd089dc28d24dec22d563b11562"}, + {file = "nbsphinx-0.9.4-py3-none-any.whl", hash = "sha256:22cb1d974a8300e8118ca71aea1f649553743c0c5830a54129dcd446e6a8ba17"}, + {file = "nbsphinx-0.9.4.tar.gz", hash = "sha256:042a60806fc23d519bc5bef59d95570713913fe442fda759d53e3aaf62104794"}, ] [package.dependencies] -docutils = "*" +docutils = ">=0.18.1" jinja2 = "*" -nbconvert = "!=5.4" +nbconvert = ">=5.3,<5.4 || >5.4" nbformat = "*" sphinx = ">=1.8" traitlets = ">=5" @@ -1436,39 +1394,47 @@ files = [ [[package]] name = "numpy" -version = "1.24.4" +version = "1.26.4" description = "Fundamental package for array computing in Python" optional = false -python-versions = ">=3.8" -files = [ - {file = "numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64"}, - {file = "numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1"}, - {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4"}, - {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6"}, - {file = "numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc"}, - {file = "numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e"}, - {file = "numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810"}, - {file = "numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254"}, - {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7"}, - {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5"}, - {file = "numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d"}, - {file = "numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694"}, - {file = "numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61"}, - {file = "numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f"}, - {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e"}, - {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc"}, - {file = "numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2"}, - {file = "numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706"}, - {file = "numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400"}, - {file = "numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f"}, - {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9"}, - {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d"}, - {file = "numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835"}, - {file = "numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8"}, - {file = "numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef"}, - {file = "numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a"}, - {file = "numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2"}, - {file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"}, +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, ] [[package]] @@ -1484,70 +1450,73 @@ files = [ [[package]] name = "pandas" -version = "2.0.3" +version = "2.2.2" description = "Powerful data structures for data analysis, time series, and statistics" optional = false -python-versions = ">=3.8" -files = [ - {file = "pandas-2.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e4c7c9f27a4185304c7caf96dc7d91bc60bc162221152de697c98eb0b2648dd8"}, - {file = "pandas-2.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f167beed68918d62bffb6ec64f2e1d8a7d297a038f86d4aed056b9493fca407f"}, - {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce0c6f76a0f1ba361551f3e6dceaff06bde7514a374aa43e33b588ec10420183"}, - {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba619e410a21d8c387a1ea6e8a0e49bb42216474436245718d7f2e88a2f8d7c0"}, - {file = "pandas-2.0.3-cp310-cp310-win32.whl", hash = "sha256:3ef285093b4fe5058eefd756100a367f27029913760773c8bf1d2d8bebe5d210"}, - {file = "pandas-2.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:9ee1a69328d5c36c98d8e74db06f4ad518a1840e8ccb94a4ba86920986bb617e"}, - {file = "pandas-2.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b084b91d8d66ab19f5bb3256cbd5ea661848338301940e17f4492b2ce0801fe8"}, - {file = "pandas-2.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37673e3bdf1551b95bf5d4ce372b37770f9529743d2498032439371fc7b7eb26"}, - {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9cb1e14fdb546396b7e1b923ffaeeac24e4cedd14266c3497216dd4448e4f2d"}, - {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9cd88488cceb7635aebb84809d087468eb33551097d600c6dad13602029c2df"}, - {file = "pandas-2.0.3-cp311-cp311-win32.whl", hash = "sha256:694888a81198786f0e164ee3a581df7d505024fbb1f15202fc7db88a71d84ebd"}, - {file = "pandas-2.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:6a21ab5c89dcbd57f78d0ae16630b090eec626360085a4148693def5452d8a6b"}, - {file = "pandas-2.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4da0d45e7f34c069fe4d522359df7d23badf83abc1d1cef398895822d11061"}, - {file = "pandas-2.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:32fca2ee1b0d93dd71d979726b12b61faa06aeb93cf77468776287f41ff8fdc5"}, - {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:258d3624b3ae734490e4d63c430256e716f488c4fcb7c8e9bde2d3aa46c29089"}, - {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eae3dc34fa1aa7772dd3fc60270d13ced7346fcbcfee017d3132ec625e23bb0"}, - {file = "pandas-2.0.3-cp38-cp38-win32.whl", hash = "sha256:f3421a7afb1a43f7e38e82e844e2bca9a6d793d66c1a7f9f0ff39a795bbc5e02"}, - {file = "pandas-2.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:69d7f3884c95da3a31ef82b7618af5710dba95bb885ffab339aad925c3e8ce78"}, - {file = "pandas-2.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5247fb1ba347c1261cbbf0fcfba4a3121fbb4029d95d9ef4dc45406620b25c8b"}, - {file = "pandas-2.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81af086f4543c9d8bb128328b5d32e9986e0c84d3ee673a2ac6fb57fd14f755e"}, - {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1994c789bf12a7c5098277fb43836ce090f1073858c10f9220998ac74f37c69b"}, - {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ec591c48e29226bcbb316e0c1e9423622bc7a4eaf1ef7c3c9fa1a3981f89641"}, - {file = "pandas-2.0.3-cp39-cp39-win32.whl", hash = "sha256:04dbdbaf2e4d46ca8da896e1805bc04eb85caa9a82e259e8eed00254d5e0c682"}, - {file = "pandas-2.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:1168574b036cd8b93abc746171c9b4f1b83467438a5e45909fed645cf8692dbc"}, - {file = "pandas-2.0.3.tar.gz", hash = "sha256:c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"}, +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, + {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, + {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, + {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, + {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, + {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, ] [package.dependencies] numpy = [ - {version = ">=1.20.3", markers = "python_version < \"3.10\""}, - {version = ">=1.21.0", markers = "python_version >= \"3.10\" and python_version < \"3.11\""}, - {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" -tzdata = ">=2022.1" - -[package.extras] -all = ["PyQt5 (>=5.15.1)", "SQLAlchemy (>=1.4.16)", "beautifulsoup4 (>=4.9.3)", "bottleneck (>=1.3.2)", "brotlipy (>=0.7.0)", "fastparquet (>=0.6.3)", "fsspec (>=2021.07.0)", "gcsfs (>=2021.07.0)", "html5lib (>=1.1)", "hypothesis (>=6.34.2)", "jinja2 (>=3.0.0)", "lxml (>=4.6.3)", "matplotlib (>=3.6.1)", "numba (>=0.53.1)", "numexpr (>=2.7.3)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pandas-gbq (>=0.15.0)", "psycopg2 (>=2.8.6)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "python-snappy (>=0.6.0)", "pyxlsb (>=1.0.8)", "qtpy (>=2.2.0)", "s3fs (>=2021.08.0)", "scipy (>=1.7.1)", "tables (>=3.6.1)", "tabulate (>=0.8.9)", "xarray (>=0.21.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)", "zstandard (>=0.15.2)"] -aws = ["s3fs (>=2021.08.0)"] -clipboard = ["PyQt5 (>=5.15.1)", "qtpy (>=2.2.0)"] -compression = ["brotlipy (>=0.7.0)", "python-snappy (>=0.6.0)", "zstandard (>=0.15.2)"] -computation = ["scipy (>=1.7.1)", "xarray (>=0.21.0)"] -excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pyxlsb (>=1.0.8)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)"] -feather = ["pyarrow (>=7.0.0)"] -fss = ["fsspec (>=2021.07.0)"] -gcp = ["gcsfs (>=2021.07.0)", "pandas-gbq (>=0.15.0)"] -hdf5 = ["tables (>=3.6.1)"] -html = ["beautifulsoup4 (>=4.9.3)", "html5lib (>=1.1)", "lxml (>=4.6.3)"] -mysql = ["SQLAlchemy (>=1.4.16)", "pymysql (>=1.0.2)"] -output-formatting = ["jinja2 (>=3.0.0)", "tabulate (>=0.8.9)"] -parquet = ["pyarrow (>=7.0.0)"] -performance = ["bottleneck (>=1.3.2)", "numba (>=0.53.1)", "numexpr (>=2.7.1)"] -plot = ["matplotlib (>=3.6.1)"] -postgresql = ["SQLAlchemy (>=1.4.16)", "psycopg2 (>=2.8.6)"] -spss = ["pyreadstat (>=1.1.2)"] -sql-other = ["SQLAlchemy (>=1.4.16)"] -test = ["hypothesis (>=6.34.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"] -xml = ["lxml (>=4.6.3)"] +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] [[package]] name = "pandoc" @@ -1603,17 +1572,6 @@ files = [ [package.dependencies] ptyprocess = ">=0.5" -[[package]] -name = "pickleshare" -version = "0.7.5" -description = "Tiny 'shelve'-like database with concurrency support" -optional = false -python-versions = "*" -files = [ - {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, - {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, -] - [[package]] name = "pillow" version = "10.3.0" @@ -1700,26 +1658,15 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa typing = ["typing-extensions"] xmp = ["defusedxml"] -[[package]] -name = "pkgutil-resolve-name" -version = "1.3.10" -description = "Resolve a name to an object." -optional = false -python-versions = ">=3.6" -files = [ - {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, - {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, -] - [[package]] name = "platformdirs" -version = "4.2.1" +version = "4.2.2" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.1-py3-none-any.whl", hash = "sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1"}, - {file = "platformdirs-4.2.1.tar.gz", hash = "sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf"}, + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, ] [package.extras] @@ -1931,13 +1878,13 @@ files = [ [[package]] name = "pydeck" -version = "0.8.0" +version = "0.9.1" description = "Widget for deck.gl maps" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pydeck-0.8.0-py2.py3-none-any.whl", hash = "sha256:a8fa7757c6f24bba033af39db3147cb020eef44012ba7e60d954de187f9ed4d5"}, - {file = "pydeck-0.8.0.tar.gz", hash = "sha256:07edde833f7cfcef6749124351195aa7dcd24663d4909fd7898dbd0b6fbc01ec"}, + {file = "pydeck-0.9.1-py2.py3-none-any.whl", hash = "sha256:b3f75ba0d273fc917094fa61224f3f6076ca8752b93d46faf3bcfd9f9d59b038"}, + {file = "pydeck-0.9.1.tar.gz", hash = "sha256:f74475ae637951d63f2ee58326757f8d4f9cd9f2a457cf42950715003e2cb605"}, ] [package.dependencies] @@ -1961,17 +1908,16 @@ files = [ [[package]] name = "pygments" -version = "2.17.2" +version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, - {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, ] [package.extras] -plugins = ["importlib-metadata"] windows-terminal = ["colorama (>=0.4.6)"] [[package]] @@ -2138,99 +2084,99 @@ files = [ [[package]] name = "pyzmq" -version = "26.0.2" +version = "26.0.3" description = "Python bindings for 0MQ" optional = false python-versions = ">=3.7" files = [ - {file = "pyzmq-26.0.2-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:1a60a03b01e8c9c58932ec0cca15b1712d911c2800eb82d4281bc1ae5b6dad50"}, - {file = "pyzmq-26.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:949067079e14ea1973bd740255e0840118c163d4bce8837f539d749f145cf5c3"}, - {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37e7edfa6cf96d036a403775c96afa25058d1bb940a79786a9a2fc94a783abe3"}, - {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:903cc7a84a7d4326b43755c368780800e035aa3d711deae84a533fdffa8755b0"}, - {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cb2e41af165e5f327d06fbdd79a42a4e930267fade4e9f92d17f3ccce03f3a7"}, - {file = "pyzmq-26.0.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:55353b8189adcfc4c125fc4ce59d477744118e9c0ec379dd0999c5fa120ac4f5"}, - {file = "pyzmq-26.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f961423ff6236a752ced80057a20e623044df95924ed1009f844cde8b3a595f9"}, - {file = "pyzmq-26.0.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ba77fe84fe4f5f3dc0ef681a6d366685c8ffe1c8439c1d7530997b05ac06a04b"}, - {file = "pyzmq-26.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:52589f0a745ef61b9c75c872cf91f8c1f7c0668eb3dd99d7abd639d8c0fb9ca7"}, - {file = "pyzmq-26.0.2-cp310-cp310-win32.whl", hash = "sha256:b7b6d2a46c7afe2ad03ec8faf9967090c8ceae85c4d8934d17d7cae6f9062b64"}, - {file = "pyzmq-26.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:86531e20de249d9204cc6d8b13d5a30537748c78820215161d8a3b9ea58ca111"}, - {file = "pyzmq-26.0.2-cp310-cp310-win_arm64.whl", hash = "sha256:f26a05029ecd2bd306b941ff8cb80f7620b7901421052bc429d238305b1cbf2f"}, - {file = "pyzmq-26.0.2-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:70770e296a9cb03d955540c99360aab861cbb3cba29516abbd106a15dbd91268"}, - {file = "pyzmq-26.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2740fd7161b39e178554ebf21aa5667a1c9ef0cd2cb74298fd4ef017dae7aec4"}, - {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5e3706c32dea077faa42b1c92d825b7f86c866f72532d342e0be5e64d14d858"}, - {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fa1416876194927f7723d6b7171b95e1115602967fc6bfccbc0d2d51d8ebae1"}, - {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ef9a79a48794099c57dc2df00340b5d47c5caa1792f9ddb8c7a26b1280bd575"}, - {file = "pyzmq-26.0.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1c60fcdfa3229aeee4291c5d60faed3a813b18bdadb86299c4bf49e8e51e8605"}, - {file = "pyzmq-26.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e943c39c206b04df2eb5d71305761d7c3ca75fd49452115ea92db1b5b98dbdef"}, - {file = "pyzmq-26.0.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8da0ed8a598693731c76659880a668f4748b59158f26ed283a93f7f04d47447e"}, - {file = "pyzmq-26.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7bf51970b11d67096bede97cdbad0f4333f7664f4708b9b2acb352bf4faa3140"}, - {file = "pyzmq-26.0.2-cp311-cp311-win32.whl", hash = "sha256:6f8e6bd5d066be605faa9fe5ec10aa1a46ad9f18fc8646f2b9aaefc8fb575742"}, - {file = "pyzmq-26.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:6d03da3a0ae691b361edcb39530075461202f699ce05adbb15055a0e1c9bcaa4"}, - {file = "pyzmq-26.0.2-cp311-cp311-win_arm64.whl", hash = "sha256:f84e33321b68ff00b60e9dbd1a483e31ab6022c577c8de525b8e771bd274ce68"}, - {file = "pyzmq-26.0.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:44c33ebd1c62a01db7fbc24e18bdda569d6639217d13d5929e986a2b0f69070d"}, - {file = "pyzmq-26.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ac04f904b4fce4afea9cdccbb78e24d468cb610a839d5a698853e14e2a3f9ecf"}, - {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2133de5ba9adc5f481884ccb699eac9ce789708292945c05746880f95b241c0"}, - {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7753c67c570d7fc80c2dc59b90ca1196f1224e0e2e29a548980c95fe0fe27fc1"}, - {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d4e51632e6b12e65e8d9d7612446ecda2eda637a868afa7bce16270194650dd"}, - {file = "pyzmq-26.0.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d6c38806f6ecd0acf3104b8d7e76a206bcf56dadd6ce03720d2fa9d9157d5718"}, - {file = "pyzmq-26.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:48f496bbe14686b51cec15406323ae6942851e14022efd7fc0e2ecd092c5982c"}, - {file = "pyzmq-26.0.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e84a3161149c75bb7a7dc8646384186c34033e286a67fec1ad1bdedea165e7f4"}, - {file = "pyzmq-26.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:dabf796c67aa9f5a4fcc956d47f0d48b5c1ed288d628cf53aa1cf08e88654343"}, - {file = "pyzmq-26.0.2-cp312-cp312-win32.whl", hash = "sha256:3eee4c676af1b109f708d80ef0cf57ecb8aaa5900d1edaf90406aea7e0e20e37"}, - {file = "pyzmq-26.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:26721fec65846b3e4450dad050d67d31b017f97e67f7e0647b5f98aa47f828cf"}, - {file = "pyzmq-26.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:653955c6c233e90de128a1b8e882abc7216f41f44218056bd519969c8c413a15"}, - {file = "pyzmq-26.0.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:becd8d8fb068fbb5a52096efd83a2d8e54354383f691781f53a4c26aee944542"}, - {file = "pyzmq-26.0.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7a15e5465e7083c12517209c9dd24722b25e9b63c49a563922922fc03554eb35"}, - {file = "pyzmq-26.0.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e8158ac8616941f874841f9fa0f6d2f1466178c2ff91ea08353fdc19de0d40c2"}, - {file = "pyzmq-26.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea2c6a53e28c7066ea7db86fcc0b71d78d01b818bb11d4a4341ec35059885295"}, - {file = "pyzmq-26.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:bdbc7dab0b0e9c62c97b732899c4242e3282ba803bad668e03650b59b165466e"}, - {file = "pyzmq-26.0.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e74b6d5ef57bb65bf1b4a37453d8d86d88550dde3fb0f23b1f1a24e60c70af5b"}, - {file = "pyzmq-26.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ed4c6ee624ecbc77b18aeeb07bf0700d26571ab95b8f723f0d02e056b5bce438"}, - {file = "pyzmq-26.0.2-cp37-cp37m-win32.whl", hash = "sha256:8a98b3cb0484b83c19d8fb5524c8a469cd9f10e743f5904ac285d92678ee761f"}, - {file = "pyzmq-26.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:aa5f95d71b6eca9cec28aa0a2f8310ea53dea313b63db74932879ff860c1fb8d"}, - {file = "pyzmq-26.0.2-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:5ff56c76ce77b9805378a7a73032c17cbdb1a5b84faa1df03c5d3e306e5616df"}, - {file = "pyzmq-26.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bab697fc1574fee4b81da955678708567c43c813c84c91074e452bda5346c921"}, - {file = "pyzmq-26.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0c0fed8aa9ba0488ee1cbdaa304deea92d52fab43d373297002cfcc69c0a20c5"}, - {file = "pyzmq-26.0.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:606b922699fcec472ed814dda4dc3ff7c748254e0b26762a0ba21a726eb1c107"}, - {file = "pyzmq-26.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45f0fd82bad4d199fa993fbf0ac586a7ac5879addbe436a35a389df7e0eb4c91"}, - {file = "pyzmq-26.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:166c5e41045939a52c01e6f374e493d9a6a45dfe677360d3e7026e38c42e8906"}, - {file = "pyzmq-26.0.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d566e859e8b8d5bca08467c093061774924b3d78a5ba290e82735b2569edc84b"}, - {file = "pyzmq-26.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:264ee0e72b72ca59279dc320deab5ae0fac0d97881aed1875ce4bde2e56ffde0"}, - {file = "pyzmq-26.0.2-cp38-cp38-win32.whl", hash = "sha256:3152bbd3a4744cbdd83dfb210ed701838b8b0c9065cef14671d6d91df12197d0"}, - {file = "pyzmq-26.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:bf77601d75ca692c179154b7e5943c286a4aaffec02c491afe05e60493ce95f2"}, - {file = "pyzmq-26.0.2-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:c770a7545b3deca2db185b59175e710a820dd4ed43619f4c02e90b0e227c6252"}, - {file = "pyzmq-26.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d47175f0a380bfd051726bc5c0054036ae4a5d8caf922c62c8a172ccd95c1a2a"}, - {file = "pyzmq-26.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9bce298c1ce077837e110367c321285dc4246b531cde1abfc27e4a5bbe2bed4d"}, - {file = "pyzmq-26.0.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c40b09b7e184d6e3e1be1c8af2cc320c0f9f610d8a5df3dd866e6e6e4e32b235"}, - {file = "pyzmq-26.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d420d856bf728713874cefb911398efe69e1577835851dd297a308a78c14c249"}, - {file = "pyzmq-26.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d792d3cab987058451e55c70c5926e93e2ceb68ca5a2334863bb903eb860c9cb"}, - {file = "pyzmq-26.0.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:83ec17729cf6d3464dab98a11e98294fcd50e6b17eaabd3d841515c23f6dbd3a"}, - {file = "pyzmq-26.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47c17d5ebfa88ae90f08960c97b49917098665b8cd8be31f2c24e177bcf37a0f"}, - {file = "pyzmq-26.0.2-cp39-cp39-win32.whl", hash = "sha256:d509685d1cd1d018705a811c5f9d5bc237790936ead6d06f6558b77e16cc7235"}, - {file = "pyzmq-26.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:c7cc8cc009e8f6989a6d86c96f87dae5f5fb07d6c96916cdc7719d546152c7db"}, - {file = "pyzmq-26.0.2-cp39-cp39-win_arm64.whl", hash = "sha256:3ada31cb879cd7532f4a85b501f4255c747d4813ab76b35c49ed510ce4865b45"}, - {file = "pyzmq-26.0.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0a6ceaddc830dd3ca86cb8451cf373d1f05215368e11834538c2902ed5205139"}, - {file = "pyzmq-26.0.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a967681463aa7a99eb9a62bb18229b653b45c10ff0947b31cc0837a83dfb86f"}, - {file = "pyzmq-26.0.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6472a73bc115bc40a2076609a90894775abe6faf19a78375675a2f889a613071"}, - {file = "pyzmq-26.0.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d6aea92bcccfe5e5524d3c70a6f16ffdae548390ddad26f4207d55c55a40593"}, - {file = "pyzmq-26.0.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e025f6351e49d48a5aa2f5a09293aa769b0ee7369c25bed551647234b7fa0c75"}, - {file = "pyzmq-26.0.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:40bd7ebe4dbb37d27f0c56e2a844f360239343a99be422085e13e97da13f73f9"}, - {file = "pyzmq-26.0.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1dd40d586ad6f53764104df6e01810fe1b4e88fd353774629a5e6fe253813f79"}, - {file = "pyzmq-26.0.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f2aca15e9ad8c8657b5b3d7ae3d1724dc8c1c1059c06b4b674c3aa36305f4930"}, - {file = "pyzmq-26.0.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:450ec234736732eb0ebeffdb95a352450d4592f12c3e087e2a9183386d22c8bf"}, - {file = "pyzmq-26.0.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:f43be2bebbd09360a2f23af83b243dc25ffe7b583ea8c722e6df03e03a55f02f"}, - {file = "pyzmq-26.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:867f55e54aff254940bcec5eec068e7c0ac1e6bf360ab91479394a8bf356b0e6"}, - {file = "pyzmq-26.0.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b4dbc033c5ad46f8c429bf238c25a889b8c1d86bfe23a74e1031a991cb3f0000"}, - {file = "pyzmq-26.0.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6e8dd2961462e337e21092ec2da0c69d814dcb1b6e892955a37444a425e9cfb8"}, - {file = "pyzmq-26.0.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35391e72df6c14a09b697c7b94384947c1dd326aca883ff98ff137acdf586c33"}, - {file = "pyzmq-26.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:1c3d3c92fa54eda94ab369ca5b8d35059987c326ba5e55326eb068862f64b1fc"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e7aa61a9cc4f0523373e31fc9255bf4567185a099f85ca3598e64de484da3ab2"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee53a8191271f144cc20b12c19daa9f1546adc84a2f33839e3338039b55c373c"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac60a980f07fa988983f7bfe6404ef3f1e4303f5288a01713bc1266df6d18783"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88896b1b4817d7b2fe1ec7205c4bbe07bf5d92fb249bf2d226ddea8761996068"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:18dfffe23751edee917764ffa133d5d3fef28dfd1cf3adebef8c90bc854c74c4"}, - {file = "pyzmq-26.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6926dd14cfe6967d3322640b6d5c3c3039db71716a5e43cca6e3b474e73e0b36"}, - {file = "pyzmq-26.0.2.tar.gz", hash = "sha256:f0f9bb370449158359bb72a3e12c658327670c0ffe6fbcd1af083152b64f9df0"}, + {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:44dd6fc3034f1eaa72ece33588867df9e006a7303725a12d64c3dff92330f625"}, + {file = "pyzmq-26.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:acb704195a71ac5ea5ecf2811c9ee19ecdc62b91878528302dd0be1b9451cc90"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dbb9c997932473a27afa93954bb77a9f9b786b4ccf718d903f35da3232317de"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bcb34f869d431799c3ee7d516554797f7760cb2198ecaa89c3f176f72d062be"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ece17ec5f20d7d9b442e5174ae9f020365d01ba7c112205a4d59cf19dc38ee"}, + {file = "pyzmq-26.0.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ba6e5e6588e49139a0979d03a7deb9c734bde647b9a8808f26acf9c547cab1bf"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3bf8b000a4e2967e6dfdd8656cd0757d18c7e5ce3d16339e550bd462f4857e59"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2136f64fbb86451dbbf70223635a468272dd20075f988a102bf8a3f194a411dc"}, + {file = "pyzmq-26.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e8918973fbd34e7814f59143c5f600ecd38b8038161239fd1a3d33d5817a38b8"}, + {file = "pyzmq-26.0.3-cp310-cp310-win32.whl", hash = "sha256:0aaf982e68a7ac284377d051c742610220fd06d330dcd4c4dbb4cdd77c22a537"}, + {file = "pyzmq-26.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:f1a9b7d00fdf60b4039f4455afd031fe85ee8305b019334b72dcf73c567edc47"}, + {file = "pyzmq-26.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:80b12f25d805a919d53efc0a5ad7c0c0326f13b4eae981a5d7b7cc343318ebb7"}, + {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:a72a84570f84c374b4c287183debc776dc319d3e8ce6b6a0041ce2e400de3f32"}, + {file = "pyzmq-26.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ca684ee649b55fd8f378127ac8462fb6c85f251c2fb027eb3c887e8ee347bcd"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e222562dc0f38571c8b1ffdae9d7adb866363134299264a1958d077800b193b7"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f17cde1db0754c35a91ac00b22b25c11da6eec5746431d6e5092f0cd31a3fea9"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b7c0c0b3244bb2275abe255d4a30c050d541c6cb18b870975553f1fb6f37527"}, + {file = "pyzmq-26.0.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:ac97a21de3712afe6a6c071abfad40a6224fd14fa6ff0ff8d0c6e6cd4e2f807a"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:88b88282e55fa39dd556d7fc04160bcf39dea015f78e0cecec8ff4f06c1fc2b5"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:72b67f966b57dbd18dcc7efbc1c7fc9f5f983e572db1877081f075004614fcdd"}, + {file = "pyzmq-26.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f4b6cecbbf3b7380f3b61de3a7b93cb721125dc125c854c14ddc91225ba52f83"}, + {file = "pyzmq-26.0.3-cp311-cp311-win32.whl", hash = "sha256:eed56b6a39216d31ff8cd2f1d048b5bf1700e4b32a01b14379c3b6dde9ce3aa3"}, + {file = "pyzmq-26.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:3191d312c73e3cfd0f0afdf51df8405aafeb0bad71e7ed8f68b24b63c4f36500"}, + {file = "pyzmq-26.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:b6907da3017ef55139cf0e417c5123a84c7332520e73a6902ff1f79046cd3b94"}, + {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:068ca17214038ae986d68f4a7021f97e187ed278ab6dccb79f837d765a54d753"}, + {file = "pyzmq-26.0.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7821d44fe07335bea256b9f1f41474a642ca55fa671dfd9f00af8d68a920c2d4"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eeb438a26d87c123bb318e5f2b3d86a36060b01f22fbdffd8cf247d52f7c9a2b"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:69ea9d6d9baa25a4dc9cef5e2b77b8537827b122214f210dd925132e34ae9b12"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7daa3e1369355766dea11f1d8ef829905c3b9da886ea3152788dc25ee6079e02"}, + {file = "pyzmq-26.0.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:6ca7a9a06b52d0e38ccf6bca1aeff7be178917893f3883f37b75589d42c4ac20"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1b7d0e124948daa4d9686d421ef5087c0516bc6179fdcf8828b8444f8e461a77"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e746524418b70f38550f2190eeee834db8850088c834d4c8406fbb9bc1ae10b2"}, + {file = "pyzmq-26.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:6b3146f9ae6af82c47a5282ac8803523d381b3b21caeae0327ed2f7ecb718798"}, + {file = "pyzmq-26.0.3-cp312-cp312-win32.whl", hash = "sha256:2b291d1230845871c00c8462c50565a9cd6026fe1228e77ca934470bb7d70ea0"}, + {file = "pyzmq-26.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:926838a535c2c1ea21c903f909a9a54e675c2126728c21381a94ddf37c3cbddf"}, + {file = "pyzmq-26.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:5bf6c237f8c681dfb91b17f8435b2735951f0d1fad10cc5dfd96db110243370b"}, + {file = "pyzmq-26.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c0991f5a96a8e620f7691e61178cd8f457b49e17b7d9cfa2067e2a0a89fc1d5"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dbf012d8fcb9f2cf0643b65df3b355fdd74fc0035d70bb5c845e9e30a3a4654b"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:01fbfbeb8249a68d257f601deb50c70c929dc2dfe683b754659569e502fbd3aa"}, + {file = "pyzmq-26.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c8eb19abe87029c18f226d42b8a2c9efdd139d08f8bf6e085dd9075446db450"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:5344b896e79800af86ad643408ca9aa303a017f6ebff8cee5a3163c1e9aec987"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:204e0f176fd1d067671157d049466869b3ae1fc51e354708b0dc41cf94e23a3a"}, + {file = "pyzmq-26.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a42db008d58530efa3b881eeee4991146de0b790e095f7ae43ba5cc612decbc5"}, + {file = "pyzmq-26.0.3-cp37-cp37m-win32.whl", hash = "sha256:8d7a498671ca87e32b54cb47c82a92b40130a26c5197d392720a1bce1b3c77cf"}, + {file = "pyzmq-26.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:3b4032a96410bdc760061b14ed6a33613ffb7f702181ba999df5d16fb96ba16a"}, + {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2cc4e280098c1b192c42a849de8de2c8e0f3a84086a76ec5b07bfee29bda7d18"}, + {file = "pyzmq-26.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5bde86a2ed3ce587fa2b207424ce15b9a83a9fa14422dcc1c5356a13aed3df9d"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:34106f68e20e6ff253c9f596ea50397dbd8699828d55e8fa18bd4323d8d966e6"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ebbbd0e728af5db9b04e56389e2299a57ea8b9dd15c9759153ee2455b32be6ad"}, + {file = "pyzmq-26.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6b1d1c631e5940cac5a0b22c5379c86e8df6a4ec277c7a856b714021ab6cfad"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e891ce81edd463b3b4c3b885c5603c00141151dd9c6936d98a680c8c72fe5c67"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9b273ecfbc590a1b98f014ae41e5cf723932f3b53ba9367cfb676f838038b32c"}, + {file = "pyzmq-26.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b32bff85fb02a75ea0b68f21e2412255b5731f3f389ed9aecc13a6752f58ac97"}, + {file = "pyzmq-26.0.3-cp38-cp38-win32.whl", hash = "sha256:f6c21c00478a7bea93caaaef9e7629145d4153b15a8653e8bb4609d4bc70dbfc"}, + {file = "pyzmq-26.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:3401613148d93ef0fd9aabdbddb212de3db7a4475367f49f590c837355343972"}, + {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:2ed8357f4c6e0daa4f3baf31832df8a33334e0fe5b020a61bc8b345a3db7a606"}, + {file = "pyzmq-26.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c1c8f2a2ca45292084c75bb6d3a25545cff0ed931ed228d3a1810ae3758f975f"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b63731993cdddcc8e087c64e9cf003f909262b359110070183d7f3025d1c56b5"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b3cd31f859b662ac5d7f4226ec7d8bd60384fa037fc02aee6ff0b53ba29a3ba8"}, + {file = "pyzmq-26.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:115f8359402fa527cf47708d6f8a0f8234f0e9ca0cab7c18c9c189c194dbf620"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:715bdf952b9533ba13dfcf1f431a8f49e63cecc31d91d007bc1deb914f47d0e4"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e1258c639e00bf5e8a522fec6c3eaa3e30cf1c23a2f21a586be7e04d50c9acab"}, + {file = "pyzmq-26.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:15c59e780be8f30a60816a9adab900c12a58d79c1ac742b4a8df044ab2a6d920"}, + {file = "pyzmq-26.0.3-cp39-cp39-win32.whl", hash = "sha256:d0cdde3c78d8ab5b46595054e5def32a755fc028685add5ddc7403e9f6de9879"}, + {file = "pyzmq-26.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:ce828058d482ef860746bf532822842e0ff484e27f540ef5c813d516dd8896d2"}, + {file = "pyzmq-26.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:788f15721c64109cf720791714dc14afd0f449d63f3a5487724f024345067381"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c18645ef6294d99b256806e34653e86236eb266278c8ec8112622b61db255de"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e6bc96ebe49604df3ec2c6389cc3876cabe475e6bfc84ced1bf4e630662cb35"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:971e8990c5cc4ddcff26e149398fc7b0f6a042306e82500f5e8db3b10ce69f84"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8416c23161abd94cc7da80c734ad7c9f5dbebdadfdaa77dad78244457448223"}, + {file = "pyzmq-26.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:082a2988364b60bb5de809373098361cf1dbb239623e39e46cb18bc035ed9c0c"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d57dfbf9737763b3a60d26e6800e02e04284926329aee8fb01049635e957fe81"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:77a85dca4c2430ac04dc2a2185c2deb3858a34fe7f403d0a946fa56970cf60a1"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4c82a6d952a1d555bf4be42b6532927d2a5686dd3c3e280e5f63225ab47ac1f5"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4496b1282c70c442809fc1b151977c3d967bfb33e4e17cedbf226d97de18f709"}, + {file = "pyzmq-26.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:e4946d6bdb7ba972dfda282f9127e5756d4f299028b1566d1245fa0d438847e6"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:03c0ae165e700364b266876d712acb1ac02693acd920afa67da2ebb91a0b3c09"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:3e3070e680f79887d60feeda051a58d0ac36622e1759f305a41059eff62c6da7"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6ca08b840fe95d1c2bd9ab92dac5685f949fc6f9ae820ec16193e5ddf603c3b2"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e76654e9dbfb835b3518f9938e565c7806976c07b37c33526b574cc1a1050480"}, + {file = "pyzmq-26.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:871587bdadd1075b112e697173e946a07d722459d20716ceb3d1bd6c64bd08ce"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d0a2d1bd63a4ad79483049b26514e70fa618ce6115220da9efdff63688808b17"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0270b49b6847f0d106d64b5086e9ad5dc8a902413b5dbbb15d12b60f9c1747a4"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:703c60b9910488d3d0954ca585c34f541e506a091a41930e663a098d3b794c67"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74423631b6be371edfbf7eabb02ab995c2563fee60a80a30829176842e71722a"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4adfbb5451196842a88fda3612e2c0414134874bffb1c2ce83ab4242ec9e027d"}, + {file = "pyzmq-26.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3516119f4f9b8671083a70b6afaa0a070f5683e431ab3dc26e9215620d7ca1ad"}, + {file = "pyzmq-26.0.3.tar.gz", hash = "sha256:dba7d9f2e047dfa2bca3b01f4f84aa5246725203d6284e3790f2ca15fba6b40a"}, ] [package.dependencies] @@ -2238,13 +2184,13 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "referencing" -version = "0.35.0" +version = "0.35.1" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.35.0-py3-none-any.whl", hash = "sha256:8080727b30e364e5783152903672df9b6b091c926a146a759080b62ca3126cd6"}, - {file = "referencing-0.35.0.tar.gz", hash = "sha256:191e936b0c696d0af17ad7430a3dc68e88bc11be6514f4757dc890f04ab05889"}, + {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, + {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, ] [package.dependencies] @@ -2253,13 +2199,13 @@ rpds-py = ">=0.7.0" [[package]] name = "requests" -version = "2.31.0" +version = "2.32.2" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, + {file = "requests-2.32.2-py3-none-any.whl", hash = "sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c"}, + {file = "requests-2.32.2.tar.gz", hash = "sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289"}, ] [package.dependencies] @@ -2286,156 +2232,159 @@ files = [ [package.dependencies] markdown-it-py = ">=2.2.0" pygments = ">=2.13.0,<3.0.0" -typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} [package.extras] jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "rpds-py" -version = "0.18.0" +version = "0.18.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, - {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, - {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, - {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, - {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"}, - {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"}, - {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"}, - {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"}, - {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"}, - {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"}, - {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"}, - {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"}, - {file = "rpds_py-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e"}, - {file = "rpds_py-0.18.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594"}, - {file = "rpds_py-0.18.0-cp38-none-win32.whl", hash = "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e"}, - {file = "rpds_py-0.18.0-cp38-none-win_amd64.whl", hash = "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1"}, - {file = "rpds_py-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33"}, - {file = "rpds_py-0.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20"}, - {file = "rpds_py-0.18.0-cp39-none-win32.whl", hash = "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7"}, - {file = "rpds_py-0.18.0-cp39-none-win_amd64.whl", hash = "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, - {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, + {file = "rpds_py-0.18.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d31dea506d718693b6b2cffc0648a8929bdc51c70a311b2770f09611caa10d53"}, + {file = "rpds_py-0.18.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:732672fbc449bab754e0b15356c077cc31566df874964d4801ab14f71951ea80"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a98a1f0552b5f227a3d6422dbd61bc6f30db170939bd87ed14f3c339aa6c7c9"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f1944ce16401aad1e3f7d312247b3d5de7981f634dc9dfe90da72b87d37887d"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38e14fb4e370885c4ecd734f093a2225ee52dc384b86fa55fe3f74638b2cfb09"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08d74b184f9ab6289b87b19fe6a6d1a97fbfea84b8a3e745e87a5de3029bf944"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d70129cef4a8d979caa37e7fe957202e7eee8ea02c5e16455bc9808a59c6b2f0"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0bb20e3a11bd04461324a6a798af34d503f8d6f1aa3d2aa8901ceaf039176d"}, + {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:81c5196a790032e0fc2464c0b4ab95f8610f96f1f2fa3d4deacce6a79852da60"}, + {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f3027be483868c99b4985fda802a57a67fdf30c5d9a50338d9db646d590198da"}, + {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d44607f98caa2961bab4fa3c4309724b185b464cdc3ba6f3d7340bac3ec97cc1"}, + {file = "rpds_py-0.18.1-cp310-none-win32.whl", hash = "sha256:c273e795e7a0f1fddd46e1e3cb8be15634c29ae8ff31c196debb620e1edb9333"}, + {file = "rpds_py-0.18.1-cp310-none-win_amd64.whl", hash = "sha256:8352f48d511de5f973e4f2f9412736d7dea76c69faa6d36bcf885b50c758ab9a"}, + {file = "rpds_py-0.18.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6b5ff7e1d63a8281654b5e2896d7f08799378e594f09cf3674e832ecaf396ce8"}, + {file = "rpds_py-0.18.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8927638a4d4137a289e41d0fd631551e89fa346d6dbcfc31ad627557d03ceb6d"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:154bf5c93d79558b44e5b50cc354aa0459e518e83677791e6adb0b039b7aa6a7"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07f2139741e5deb2c5154a7b9629bc5aa48c766b643c1a6750d16f865a82c5fc"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c7672e9fba7425f79019db9945b16e308ed8bc89348c23d955c8c0540da0a07"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:489bdfe1abd0406eba6b3bb4fdc87c7fa40f1031de073d0cfb744634cc8fa261"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c20f05e8e3d4fc76875fc9cb8cf24b90a63f5a1b4c5b9273f0e8225e169b100"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:967342e045564cef76dfcf1edb700b1e20838d83b1aa02ab313e6a497cf923b8"}, + {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2cc7c1a47f3a63282ab0f422d90ddac4aa3034e39fc66a559ab93041e6505da7"}, + {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f7afbfee1157e0f9376c00bb232e80a60e59ed716e3211a80cb8506550671e6e"}, + {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9e6934d70dc50f9f8ea47081ceafdec09245fd9f6032669c3b45705dea096b88"}, + {file = "rpds_py-0.18.1-cp311-none-win32.whl", hash = "sha256:c69882964516dc143083d3795cb508e806b09fc3800fd0d4cddc1df6c36e76bb"}, + {file = "rpds_py-0.18.1-cp311-none-win_amd64.whl", hash = "sha256:70a838f7754483bcdc830444952fd89645569e7452e3226de4a613a4c1793fb2"}, + {file = "rpds_py-0.18.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3dd3cd86e1db5aadd334e011eba4e29d37a104b403e8ca24dcd6703c68ca55b3"}, + {file = "rpds_py-0.18.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:05f3d615099bd9b13ecf2fc9cf2d839ad3f20239c678f461c753e93755d629ee"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35b2b771b13eee8729a5049c976197ff58a27a3829c018a04341bcf1ae409b2b"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ee17cd26b97d537af8f33635ef38be873073d516fd425e80559f4585a7b90c43"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b646bf655b135ccf4522ed43d6902af37d3f5dbcf0da66c769a2b3938b9d8184"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19ba472b9606c36716062c023afa2484d1e4220548751bda14f725a7de17b4f6"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e30ac5e329098903262dc5bdd7e2086e0256aa762cc8b744f9e7bf2a427d3f8"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d58ad6317d188c43750cb76e9deacf6051d0f884d87dc6518e0280438648a9ac"}, + {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e1735502458621921cee039c47318cb90b51d532c2766593be6207eec53e5c4c"}, + {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f5bab211605d91db0e2995a17b5c6ee5edec1270e46223e513eaa20da20076ac"}, + {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2fc24a329a717f9e2448f8cd1f960f9dac4e45b6224d60734edeb67499bab03a"}, + {file = "rpds_py-0.18.1-cp312-none-win32.whl", hash = "sha256:1805d5901779662d599d0e2e4159d8a82c0b05faa86ef9222bf974572286b2b6"}, + {file = "rpds_py-0.18.1-cp312-none-win_amd64.whl", hash = "sha256:720edcb916df872d80f80a1cc5ea9058300b97721efda8651efcd938a9c70a72"}, + {file = "rpds_py-0.18.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:c827576e2fa017a081346dce87d532a5310241648eb3700af9a571a6e9fc7e74"}, + {file = "rpds_py-0.18.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:aa3679e751408d75a0b4d8d26d6647b6d9326f5e35c00a7ccd82b78ef64f65f8"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0abeee75434e2ee2d142d650d1e54ac1f8b01e6e6abdde8ffd6eeac6e9c38e20"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed402d6153c5d519a0faf1bb69898e97fb31613b49da27a84a13935ea9164dfc"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:338dee44b0cef8b70fd2ef54b4e09bb1b97fc6c3a58fea5db6cc083fd9fc2724"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7750569d9526199c5b97e5a9f8d96a13300950d910cf04a861d96f4273d5b104"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:607345bd5912aacc0c5a63d45a1f73fef29e697884f7e861094e443187c02be5"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:207c82978115baa1fd8d706d720b4a4d2b0913df1c78c85ba73fe6c5804505f0"}, + {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:6d1e42d2735d437e7e80bab4d78eb2e459af48c0a46e686ea35f690b93db792d"}, + {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:5463c47c08630007dc0fe99fb480ea4f34a89712410592380425a9b4e1611d8e"}, + {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:06d218939e1bf2ca50e6b0ec700ffe755e5216a8230ab3e87c059ebb4ea06afc"}, + {file = "rpds_py-0.18.1-cp38-none-win32.whl", hash = "sha256:312fe69b4fe1ffbe76520a7676b1e5ac06ddf7826d764cc10265c3b53f96dbe9"}, + {file = "rpds_py-0.18.1-cp38-none-win_amd64.whl", hash = "sha256:9437ca26784120a279f3137ee080b0e717012c42921eb07861b412340f85bae2"}, + {file = "rpds_py-0.18.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:19e515b78c3fc1039dd7da0a33c28c3154458f947f4dc198d3c72db2b6b5dc93"}, + {file = "rpds_py-0.18.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a7b28c5b066bca9a4eb4e2f2663012debe680f097979d880657f00e1c30875a0"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:673fdbbf668dd958eff750e500495ef3f611e2ecc209464f661bc82e9838991e"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d960de62227635d2e61068f42a6cb6aae91a7fe00fca0e3aeed17667c8a34611"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:352a88dc7892f1da66b6027af06a2e7e5d53fe05924cc2cfc56495b586a10b72"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e0ee01ad8260184db21468a6e1c37afa0529acc12c3a697ee498d3c2c4dcaf3"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4c39ad2f512b4041343ea3c7894339e4ca7839ac38ca83d68a832fc8b3748ab"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aaa71ee43a703c321906813bb252f69524f02aa05bf4eec85f0c41d5d62d0f4c"}, + {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6cd8098517c64a85e790657e7b1e509b9fe07487fd358e19431cb120f7d96338"}, + {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4adec039b8e2928983f885c53b7cc4cda8965b62b6596501a0308d2703f8af1b"}, + {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:32b7daaa3e9389db3695964ce8e566e3413b0c43e3394c05e4b243a4cd7bef26"}, + {file = "rpds_py-0.18.1-cp39-none-win32.whl", hash = "sha256:2625f03b105328729f9450c8badda34d5243231eef6535f80064d57035738360"}, + {file = "rpds_py-0.18.1-cp39-none-win_amd64.whl", hash = "sha256:bf18932d0003c8c4d51a39f244231986ab23ee057d235a12b2684ea26a353590"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cbfbea39ba64f5e53ae2915de36f130588bba71245b418060ec3330ebf85678e"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:a3d456ff2a6a4d2adcdf3c1c960a36f4fd2fec6e3b4902a42a384d17cf4e7a65"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7700936ef9d006b7ef605dc53aa364da2de5a3aa65516a1f3ce73bf82ecfc7ae"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:51584acc5916212e1bf45edd17f3a6b05fe0cbb40482d25e619f824dccb679de"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:942695a206a58d2575033ff1e42b12b2aece98d6003c6bc739fbf33d1773b12f"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b906b5f58892813e5ba5c6056d6a5ad08f358ba49f046d910ad992196ea61397"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6f8e3fecca256fefc91bb6765a693d96692459d7d4c644660a9fff32e517843"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7732770412bab81c5a9f6d20aeb60ae943a9b36dcd990d876a773526468e7163"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:bd1105b50ede37461c1d51b9698c4f4be6e13e69a908ab7751e3807985fc0346"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:618916f5535784960f3ecf8111581f4ad31d347c3de66d02e728de460a46303c"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:17c6d2155e2423f7e79e3bb18151c686d40db42d8645e7977442170c360194d4"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c4c4c3f878df21faf5fac86eda32671c27889e13570645a9eea0a1abdd50922"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:fab6ce90574645a0d6c58890e9bcaac8d94dff54fb51c69e5522a7358b80ab64"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:531796fb842b53f2695e94dc338929e9f9dbf473b64710c28af5a160b2a8927d"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:740884bc62a5e2bbb31e584f5d23b32320fd75d79f916f15a788d527a5e83644"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:998125738de0158f088aef3cb264a34251908dd2e5d9966774fdab7402edfab7"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e2be6e9dd4111d5b31ba3b74d17da54a8319d8168890fbaea4b9e5c3de630ae5"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0cee71bc618cd93716f3c1bf56653740d2d13ddbd47673efa8bf41435a60daa"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2c3caec4ec5cd1d18e5dd6ae5194d24ed12785212a90b37f5f7f06b8bedd7139"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:27bba383e8c5231cd559affe169ca0b96ec78d39909ffd817f28b166d7ddd4d8"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:a888e8bdb45916234b99da2d859566f1e8a1d2275a801bb8e4a9644e3c7e7909"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6031b25fb1b06327b43d841f33842b383beba399884f8228a6bb3df3088485ff"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:48c2faaa8adfacefcbfdb5f2e2e7bdad081e5ace8d182e5f4ade971f128e6bb3"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:d85164315bd68c0806768dc6bb0429c6f95c354f87485ee3593c4f6b14def2bd"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6afd80f6c79893cfc0574956f78a0add8c76e3696f2d6a15bca2c66c415cf2d4"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa242ac1ff583e4ec7771141606aafc92b361cd90a05c30d93e343a0c2d82a89"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21be4770ff4e08698e1e8e0bce06edb6ea0626e7c8f560bc08222880aca6a6f"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c45a639e93a0c5d4b788b2613bd637468edd62f8f95ebc6fcc303d58ab3f0a8"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910e71711d1055b2768181efa0a17537b2622afeb0424116619817007f8a2b10"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b9bb1f182a97880f6078283b3505a707057c42bf55d8fca604f70dedfdc0772a"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d54f74f40b1f7aaa595a02ff42ef38ca654b1469bef7d52867da474243cc633"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:8d2e182c9ee01135e11e9676e9a62dfad791a7a467738f06726872374a83db49"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:636a15acc588f70fda1661234761f9ed9ad79ebed3f2125d44be0862708b666e"}, + {file = "rpds_py-0.18.1.tar.gz", hash = "sha256:dc48b479d540770c811fbd1eb9ba2bb66951863e448efec2e2c102625328e92f"}, ] [[package]] name = "scipy" -version = "1.10.1" +version = "1.13.0" description = "Fundamental algorithms for scientific computing in Python" optional = false -python-versions = "<3.12,>=3.8" -files = [ - {file = "scipy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e7354fd7527a4b0377ce55f286805b34e8c54b91be865bac273f527e1b839019"}, - {file = "scipy-1.10.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:4b3f429188c66603a1a5c549fb414e4d3bdc2a24792e061ffbd607d3d75fd84e"}, - {file = "scipy-1.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1553b5dcddd64ba9a0d95355e63fe6c3fc303a8fd77c7bc91e77d61363f7433f"}, - {file = "scipy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c0ff64b06b10e35215abce517252b375e580a6125fd5fdf6421b98efbefb2d2"}, - {file = "scipy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:fae8a7b898c42dffe3f7361c40d5952b6bf32d10c4569098d276b4c547905ee1"}, - {file = "scipy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0f1564ea217e82c1bbe75ddf7285ba0709ecd503f048cb1236ae9995f64217bd"}, - {file = "scipy-1.10.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d925fa1c81b772882aa55bcc10bf88324dadb66ff85d548c71515f6689c6dac5"}, - {file = "scipy-1.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaea0a6be54462ec027de54fca511540980d1e9eea68b2d5c1dbfe084797be35"}, - {file = "scipy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15a35c4242ec5f292c3dd364a7c71a61be87a3d4ddcc693372813c0b73c9af1d"}, - {file = "scipy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:43b8e0bcb877faf0abfb613d51026cd5cc78918e9530e375727bf0625c82788f"}, - {file = "scipy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5678f88c68ea866ed9ebe3a989091088553ba12c6090244fdae3e467b1139c35"}, - {file = "scipy-1.10.1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:39becb03541f9e58243f4197584286e339029e8908c46f7221abeea4b749fa88"}, - {file = "scipy-1.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bce5869c8d68cf383ce240e44c1d9ae7c06078a9396df68ce88a1230f93a30c1"}, - {file = "scipy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07c3457ce0b3ad5124f98a86533106b643dd811dd61b548e78cf4c8786652f6f"}, - {file = "scipy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:049a8bbf0ad95277ffba9b3b7d23e5369cc39e66406d60422c8cfef40ccc8415"}, - {file = "scipy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cd9f1027ff30d90618914a64ca9b1a77a431159df0e2a195d8a9e8a04c78abf9"}, - {file = "scipy-1.10.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:79c8e5a6c6ffaf3a2262ef1be1e108a035cf4f05c14df56057b64acc5bebffb6"}, - {file = "scipy-1.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51af417a000d2dbe1ec6c372dfe688e041a7084da4fdd350aeb139bd3fb55353"}, - {file = "scipy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b4735d6c28aad3cdcf52117e0e91d6b39acd4272f3f5cd9907c24ee931ad601"}, - {file = "scipy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:7ff7f37b1bf4417baca958d254e8e2875d0cc23aaadbe65b3d5b3077b0eb23ea"}, - {file = "scipy-1.10.1.tar.gz", hash = "sha256:2cf9dfb80a7b4589ba4c40ce7588986d6d5cebc5457cad2c2880f6bc2d42f3a5"}, +python-versions = ">=3.9" +files = [ + {file = "scipy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ba419578ab343a4e0a77c0ef82f088238a93eef141b2b8017e46149776dfad4d"}, + {file = "scipy-1.13.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:22789b56a999265431c417d462e5b7f2b487e831ca7bef5edeb56efe4c93f86e"}, + {file = "scipy-1.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05f1432ba070e90d42d7fd836462c50bf98bd08bed0aa616c359eed8a04e3922"}, + {file = "scipy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8434f6f3fa49f631fae84afee424e2483289dfc30a47755b4b4e6b07b2633a4"}, + {file = "scipy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:dcbb9ea49b0167de4167c40eeee6e167caeef11effb0670b554d10b1e693a8b9"}, + {file = "scipy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:1d2f7bb14c178f8b13ebae93f67e42b0a6b0fc50eba1cd8021c9b6e08e8fb1cd"}, + {file = "scipy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0fbcf8abaf5aa2dc8d6400566c1a727aed338b5fe880cde64907596a89d576fa"}, + {file = "scipy-1.13.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5e4a756355522eb60fcd61f8372ac2549073c8788f6114449b37e9e8104f15a5"}, + {file = "scipy-1.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5acd8e1dbd8dbe38d0004b1497019b2dbbc3d70691e65d69615f8a7292865d7"}, + {file = "scipy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ff7dad5d24a8045d836671e082a490848e8639cabb3dbdacb29f943a678683d"}, + {file = "scipy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4dca18c3ffee287ddd3bc8f1dabaf45f5305c5afc9f8ab9cbfab855e70b2df5c"}, + {file = "scipy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:a2f471de4d01200718b2b8927f7d76b5d9bde18047ea0fa8bd15c5ba3f26a1d6"}, + {file = "scipy-1.13.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d0de696f589681c2802f9090fff730c218f7c51ff49bf252b6a97ec4a5d19e8b"}, + {file = "scipy-1.13.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:b2a3ff461ec4756b7e8e42e1c681077349a038f0686132d623fa404c0bee2551"}, + {file = "scipy-1.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bf9fe63e7a4bf01d3645b13ff2aa6dea023d38993f42aaac81a18b1bda7a82a"}, + {file = "scipy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e7626dfd91cdea5714f343ce1176b6c4745155d234f1033584154f60ef1ff42"}, + {file = "scipy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:109d391d720fcebf2fbe008621952b08e52907cf4c8c7efc7376822151820820"}, + {file = "scipy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:8930ae3ea371d6b91c203b1032b9600d69c568e537b7988a3073dfe4d4774f21"}, + {file = "scipy-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5407708195cb38d70fd2d6bb04b1b9dd5c92297d86e9f9daae1576bd9e06f602"}, + {file = "scipy-1.13.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:ac38c4c92951ac0f729c4c48c9e13eb3675d9986cc0c83943784d7390d540c78"}, + {file = "scipy-1.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c74543c4fbeb67af6ce457f6a6a28e5d3739a87f62412e4a16e46f164f0ae5"}, + {file = "scipy-1.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28e286bf9ac422d6beb559bc61312c348ca9b0f0dae0d7c5afde7f722d6ea13d"}, + {file = "scipy-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:33fde20efc380bd23a78a4d26d59fc8704e9b5fd9b08841693eb46716ba13d86"}, + {file = "scipy-1.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:45c08bec71d3546d606989ba6e7daa6f0992918171e2a6f7fbedfa7361c2de1e"}, + {file = "scipy-1.13.0.tar.gz", hash = "sha256:58569af537ea29d3f78e5abd18398459f195546bb3be23d16677fb26616cc11e"}, ] [package.dependencies] -numpy = ">=1.19.5,<1.27.0" +numpy = ">=1.22.4,<2.3" [package.extras] -dev = ["click", "doit (>=0.36.0)", "flake8", "mypy", "pycodestyle", "pydevtool", "rich-click", "typing_extensions"] -doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] -test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "six" @@ -2554,47 +2503,50 @@ dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] [[package]] name = "sphinxcontrib-applehelp" -version = "1.0.4" +version = "1.0.8" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, - {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, + {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"}, + {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-devhelp" -version = "1.0.2" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +version = "1.0.6" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, + {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"}, + {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" -version = "2.0.1" +version = "2.0.5" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, - {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, + {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"}, + {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["html5lib", "pytest"] [[package]] @@ -2627,32 +2579,34 @@ test = ["flake8", "mypy", "pytest"] [[package]] name = "sphinxcontrib-qthelp" -version = "1.0.3" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +version = "1.0.7" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, + {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"}, + {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] name = "sphinxcontrib-serializinghtml" -version = "1.1.5" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +version = "1.1.10" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" optional = false -python-versions = ">=3.5" +python-versions = ">=3.9" files = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, + {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"}, + {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] +standalone = ["Sphinx (>=5)"] test = ["pytest"] [[package]] @@ -2676,13 +2630,13 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "streamlit" -version = "1.33.0" +version = "1.34.0" description = "A faster way to build and share data apps" optional = false python-versions = "!=3.9.7,>=3.8" files = [ - {file = "streamlit-1.33.0-py2.py3-none-any.whl", hash = "sha256:bfacb5d1edefcf803c2040b051a21b4c81317a9865448e6767d0a0c6aae7edae"}, - {file = "streamlit-1.33.0.tar.gz", hash = "sha256:a8da8ff46f5b948c56d2dc7aca7a61cf8d995f4f21744cf82258ae75e63004ba"}, + {file = "streamlit-1.34.0-py2.py3-none-any.whl", hash = "sha256:411183cf7f525e468eb256b343c914782d11cd894b5e30a4ab3bb1d54e3ae339"}, + {file = "streamlit-1.34.0.tar.gz", hash = "sha256:135a3b79a686b3132b73f204450ad6e889de04f3349d692925e09f0e21e74b52"}, ] [package.dependencies] @@ -2711,17 +2665,18 @@ snowflake = ["snowflake-connector-python (>=2.8.0)", "snowflake-snowpark-python [[package]] name = "tenacity" -version = "8.2.3" +version = "8.3.0" description = "Retry code until it succeeds" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tenacity-8.2.3-py3-none-any.whl", hash = "sha256:ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c"}, - {file = "tenacity-8.2.3.tar.gz", hash = "sha256:5398ef0d78e63f40007c1fb4c0bff96e1911394d2fa8d194f77619c05ff6cc8a"}, + {file = "tenacity-8.3.0-py3-none-any.whl", hash = "sha256:3649f6443dbc0d9b01b9d8020a9c4ec7a1ff5f6f3c6c8a036ef371f573fe9185"}, + {file = "tenacity-8.3.0.tar.gz", hash = "sha256:953d4e6ad24357bceffbc9707bc74349aca9d245f68eb65419cf0c249a1949a2"}, ] [package.extras] -doc = ["reno", "sphinx", "tornado (>=4.5)"] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] [[package]] name = "tinycss2" @@ -2877,13 +2832,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.26.0" +version = "20.26.2" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.26.0-py3-none-any.whl", hash = "sha256:0846377ea76e818daaa3e00a4365c018bc3ac9760cbb3544de542885aad61fb3"}, - {file = "virtualenv-20.26.0.tar.gz", hash = "sha256:ec25a9671a5102c8d2657f62792a27b48f016664c6873f6beed3800008577210"}, + {file = "virtualenv-20.26.2-py3-none-any.whl", hash = "sha256:a624db5e94f01ad993d476b9ee5346fdf7b9de43ccaee0e0197012dc838a0e9b"}, + {file = "virtualenv-20.26.2.tar.gz", hash = "sha256:82bf0f4eebbb78d36ddaee0283d43fe5736b53880b8a8cdcd37390a07ac3741c"}, ] [package.dependencies] @@ -2960,20 +2915,20 @@ files = [ [[package]] name = "zipp" -version = "3.18.1" +version = "3.18.2" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"}, - {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"}, + {file = "zipp-3.18.2-py3-none-any.whl", hash = "sha256:dce197b859eb796242b0622af1b8beb0a722d52aa2f57133ead08edd5bf5374e"}, + {file = "zipp-3.18.2.tar.gz", hash = "sha256:6278d9ddbcfb1f1089a88fde84481528b07b0e10474e09dcfe53dad4069fa059"}, ] [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [metadata] lock-version = "2.0" -python-versions = ">=3.8.1,<3.9.7 || >3.9.7,<3.12" -content-hash = "66907ecbc40bf1b1fa8efd592c61fc85cc15e3ecc6367175fedf8e9d496a9471" +python-versions = ">=3.9,<3.9.7 || >3.9.7,<4.0.0" +content-hash = "94a897a93e6fea85d5637460b10e074ed25500eebd0074892c0899c58ed671b3" diff --git a/pyproject.toml b/pyproject.toml index 95d7417..3e97d07 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ readme = "README.md" physiofit = 'physiofit.__main__:main' [tool.poetry.dependencies] -python = ">=3.8.1,<3.9.7 || >3.9.7,<4.0.0" +python = ">=3.9,<3.9.7 || >3.9.7,<4.0.0" pandas = "^2.0.1" numpy = "^1.24.2" scipy = "^1.10.1" From 35de5d73268e5529b67c541f1d25b15c6713b949 Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 22 May 2024 15:03:30 +0200 Subject: [PATCH 063/114] Made function for generating logger made new dataframe for printing results in GUI and put into expanders the printed dfs --- physiofit/ui/gui.py | 61 +++++++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 22 deletions(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index b6c376a..eb3e53d 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -89,7 +89,8 @@ def _get_data_path_config_context(): ) )) - def clear_input_from_session_state(self): + @staticmethod + def clear_input_from_session_state(): if hasattr(st.session_state, "config_parser_data_path"): del st.session_state["config_parser_data_path"] @@ -103,14 +104,12 @@ def _run(self): # Check file extension and initialize defaults file_extension = self.data_file.name.split(".")[1] if file_extension in ["yaml", "yml"]: - #. We store the path in session state to + # We store the path in session state to # avoid multiple prompts. try: # For yaml files, we need to read the configuration file # before loading the data. self.config_parser = self.io.read_yaml(self.data_file) - - # Check if the data path exists, if not open up prompt to # select file if not self.config_parser.check_data_path(): @@ -132,7 +131,6 @@ def _run(self): self.io.data = self.io.read_data( str(self.config_parser.path_to_data) ) - # input_loaded = True except Exception: st.error( "An error has occurred when reading the yaml " @@ -159,11 +157,8 @@ def _run(self): f"files or json for configuration files. Detected file: " f"{self.data_file.name}") - # if input_loaded: # Reset config_parser path to data if it exists to handle new # data file paths - # if hasattr(st.session_state, "config_parser_data_path"): - # del st.session_state["config_parser_data_path"] if "experiments" not in self.io.data.columns: raise ValueError( "'experiments' column missing from dataset" @@ -187,19 +182,7 @@ def _run(self): submitted = self._initialize_opt_menu_widgets() if submitted: - handler = logging.FileHandler(self.io.res_path / "log.txt", - "w") - stream = logging.StreamHandler() - handler.setLevel(logging.INFO) - stream.setLevel(logging.INFO) - if self.debug_mode: - handler.setLevel(logging.DEBUG) - stream.setLevel(logging.DEBUG) - formatter = logging.Formatter('%(asctime)s - %(name)s - %(' - 'levelname)s - %(message)s') - handler.setFormatter(formatter) - logger.addHandler(handler) - logger.addHandler(stream) + logger = self._build_logger(self.io.res_path) try: self._get_data_from_session_state() except Exception: @@ -254,11 +237,14 @@ def _run(self): fitter.parameter_stats, orient="columns" ) + printed_df = df.copy() df.index = [ f"{experiment} {param}" for param in fitter.model.parameters.keys() ] - st.write(df) + printed_df.index = [ + f"{param}" for param in fitter.model.parameters.keys() + ] logger.info(f"Results for {experiment}: \n{df}") self.io.multiple_experiments.append(df) @@ -267,6 +253,7 @@ def _run(self): self.io.plot_data(fitter) self.io.output_plots(fitter, self.io.res_path) with st.expander(f"{experiment} plots"): + st.write(printed_df) for fig in self.io.figures: st.pyplot(fig[1]) self.io.output_pdf(fitter, self.io.res_path) @@ -300,6 +287,36 @@ def silent_sim(self): self.model.args ) + def _build_logger(self, output_path): + """ + Sets up a logger for the application. + + This method creates a logging handler that writes to a file and a + stream handler that writes to the console. + The log level is set to INFO by default, but can be set to DEBUG if + the debug_mode attribute is True. + A formatter is also set up to format the log messages. + + :param output_path: The path where the log file will be written. + :type output_path: Path + :return: The configured logger. + :rtype: Logger + """ + handler = logging.FileHandler(output_path / "log.txt", + "w") + stream = logging.StreamHandler() + handler.setLevel(logging.INFO) + stream.setLevel(logging.INFO) + if self.debug_mode: + handler.setLevel(logging.DEBUG) + stream.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(' + 'levelname)s - %(message)s') + handler.setFormatter(formatter) + logger.addHandler(handler) + logger.addHandler(stream) + return logger + def _initialize_opt_menu_widgets(self): # Get model names and give as options to user From 87d0f0815a0402cff0e4bd5ac322e1f303291b81 Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 22 May 2024 15:03:56 +0200 Subject: [PATCH 064/114] Removed actions for 3.8 (not supported anymore) --- tox.ini | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tox.ini b/tox.ini index de94e56..81fe70a 100644 --- a/tox.ini +++ b/tox.ini @@ -1,11 +1,10 @@ [tox] -minversion = 3.8.0 -envlist = py38, py39, py310, py11, py12, flake8 +minversion = 3.9.0 +envlist = py39, py310, py11, py12, flake8 isolated_build = true [gh-actions] python = - 3.8: py38 3.9: py39 3.10: py310 3.11: py311, flake8 From 5ec3db9b522fa673b512b49889fe61130759fc87 Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 22 May 2024 15:05:19 +0200 Subject: [PATCH 065/114] Update to 3.4.0 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3e97d07..a34a684 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "physiofit" -version = "3.3.7" +version = "3.4.0" description = "Calculate extracellular fluxes from metabolite concentrations and biomass data" authors = ["llegregam "] license = "GNU General Public License (GPL)" From 08b8fa844e7a4b63154da3549432a17c64fe0461 Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 22 May 2024 15:40:18 +0200 Subject: [PATCH 066/114] shutdown logger at the end of execution --- physiofit/ui/gui.py | 1 + 1 file changed, 1 insertion(+) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index eb3e53d..34f5be2 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -264,6 +264,7 @@ def _run(self): logger.info(f"Resulting dataframe: \n{full_dataframe}") self.io.res_path = results_path self.io.output_recap(results_path) + logger.shutdown() def _build_flux_menu(self): """Build the starting menu with the data upload button""" From bf3435d8dd1f89f204159460d32fc6dde96bad24 Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 22 May 2024 17:36:32 +0200 Subject: [PATCH 067/114] Added khi2 test results to output expanders --- physiofit/ui/gui.py | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 34f5be2..b1c9d5d 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -253,7 +253,30 @@ def _run(self): self.io.plot_data(fitter) self.io.output_plots(fitter, self.io.res_path) with st.expander(f"{experiment} plots"): - st.write(printed_df) + data_col, stat_col = st.columns(2) + with data_col: + st.write("Parameter statistics:") + st.dataframe(printed_df) + with stat_col: + st.write("Khi² test results:") + st.dataframe(fitter.khi2_res) + if fitter.khi2_res.at["p_val", "Values"] < 0.95: + st.write( + f"\n\nAt level of 95% confidence, " + f"the model fits the data good enough " + f"with respect to the provided " + f"measurement SD. Value: " + f"{fitter.khi2_res.at['p_val', 'Values']}" + ) + + else: + st.write( + f"\n\nAt level of 95% confidence, " + f"the model does not fit the data good " + f"enough with respect to the provided " + f"measurement SD. Value: " + f"{fitter.khi2_res.at['p_val', 'Values']}" + ) for fig in self.io.figures: st.pyplot(fig[1]) self.io.output_pdf(fitter, self.io.res_path) @@ -264,7 +287,7 @@ def _run(self): logger.info(f"Resulting dataframe: \n{full_dataframe}") self.io.res_path = results_path self.io.output_recap(results_path) - logger.shutdown() + logging.shutdown() def _build_flux_menu(self): """Build the starting menu with the data upload button""" @@ -314,8 +337,9 @@ def _build_logger(self, output_path): formatter = logging.Formatter('%(asctime)s - %(name)s - %(' 'levelname)s - %(message)s') handler.setFormatter(formatter) - logger.addHandler(handler) - logger.addHandler(stream) + if not logger.hasHandlers(): + logger.addHandler(handler) + logger.addHandler(stream) return logger def _initialize_opt_menu_widgets(self): From 0c8039622ddce3405778dd69ce1cba04ddd5b2d3 Mon Sep 17 00:00:00 2001 From: llegregam Date: Thu, 23 May 2024 09:34:31 +0200 Subject: [PATCH 068/114] Updated some logs --- physiofit/ui/gui.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index b1c9d5d..65b028c 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -182,7 +182,7 @@ def _run(self): submitted = self._initialize_opt_menu_widgets() if submitted: - logger = self._build_logger(self.io.res_path) + _logger = self._build_logger(self.io.res_path) try: self._get_data_from_session_state() except Exception: @@ -191,6 +191,12 @@ def _run(self): raise if not self.io.wkdir: raise ValueError("No output directory selected") + + _logger.info("=============================================") + _logger.info(f"Physiofit version: {physiofit.__version__}") + _logger.info("Path to results: \n" + str(self.io.res_path)) + _logger.info("=============================================") + self.config_parser = ConfigParser( path_to_data=self.io.wkdir / self.data_file.name, selected_model=self.model, @@ -204,7 +210,7 @@ def _run(self): experiments = list(self.io.data["experiments"].unique()) self.io.multiple_experiments = [] for experiment in experiments: - logger.info(f"Running optimization for {experiment}") + _logger.info(f"Running optimization for {experiment}") with st.spinner(f"Running optimization for {experiment}"): # final_table_dict = {} self.model.data = full_dataframe[ @@ -217,9 +223,9 @@ def _run(self): # Initialize the fitter object self.io.names = self.io.data.columns[1:].to_list() kwargs = self._build_fitter_kwargs() - logger.info("Run options for the fitter:") + _logger.info("Run options for the fitter:") for key, value in kwargs.items(): - logger.info(f"{key} : {value}") + _logger.info(f"{key} : {value}") fitter = self.io.initialize_fitter( self.model.data, model=kwargs["model"], @@ -245,7 +251,7 @@ def _run(self): printed_df.index = [ f"{param}" for param in fitter.model.parameters.keys() ] - logger.info(f"Results for {experiment}: \n{df}") + _logger.info(f"Results for {experiment}: \n{df}") self.io.multiple_experiments.append(df) # Export results @@ -253,7 +259,7 @@ def _run(self): self.io.plot_data(fitter) self.io.output_plots(fitter, self.io.res_path) with st.expander(f"{experiment} plots"): - data_col, stat_col = st.columns(2) + data_col, stat_col = st.columns(2) with data_col: st.write("Parameter statistics:") st.dataframe(printed_df) @@ -284,7 +290,7 @@ def _run(self): self.io.figures = [] self.config_parser.export_config(self.io.res_path) self.io.data = full_dataframe - logger.info(f"Resulting dataframe: \n{full_dataframe}") + _logger.info(f"Resulting dataframe: \n{full_dataframe}") self.io.res_path = results_path self.io.output_recap(results_path) logging.shutdown() @@ -419,9 +425,6 @@ def _initialize_opt_menu_widgets(self): # if file_extension in ["tsv", "txt"]: self._output_directory_selector() - - self.io.wkdir = Path( - self.config_parser.path_to_data).resolve().parent self.io.res_path = self.io.wkdir / ( self.input_datafile_name + "_res") self.io.res_path.mkdir(parents=True, exist_ok=True) @@ -495,7 +498,7 @@ def _initialize_opt_menu_widgets(self): with col2: st.write("Parameter Value") for key, value in self.model.args[ - param].items(): + param].items(): st.text_input( label="label", # Unused label_visibility="collapsed", From 9917fa6afd5de88717945f3ae0f1bb2dd571a877 Mon Sep 17 00:00:00 2001 From: llegregam Date: Thu, 23 May 2024 10:53:51 +0200 Subject: [PATCH 069/114] Added Akaike's information criterion (AIC) --- physiofit/base/fitter.py | 24 ++++++++++++++++++++++++ physiofit/ui/gui.py | 24 +++++++++++++++++++----- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/physiofit/base/fitter.py b/physiofit/base/fitter.py index 21e660b..63f5bdf 100644 --- a/physiofit/base/fitter.py +++ b/physiofit/base/fitter.py @@ -480,6 +480,30 @@ def _compute_parameter_stats(self, opt_params_list): # self.parameter_stats_df = DataFrame() + def aic(self): + """ + Calculate the Akaike Information Criterion (AIC) for the model + """ + + n = np.count_nonzero(~np.isnan(self.experimental_matrix)) + k = len(self.model.parameters) + 1 # +1 for the cost parameter + cost = self._calculate_cost( + self.optimize_results.x, + self.model.simulate, + self.experimental_matrix, + self.model.time_vector, + self.model.args, + self.sd + ) + # Calculate AIC + aic = 2 * k + n * np.log(cost) + # Correct AIC for small sample sizes + if n / k < 40: + if n - k - 1 <= 0: + raise ValueError("Not enough measurements to calculate AIC") + aic += (2 * k * (k + 1)) / (n - k - 1) + return aic + def khi2_test(self): """ This method performs a chi-squared test to evaluate the goodness of diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 65b028c..5e1b9b3 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -239,6 +239,14 @@ def _run(self): if self.mc: fitter.monte_carlo_analysis() fitter.khi2_test() + try: + aic = fitter.aic() + except ValueError: + st.warning("Not enough measurements to calculate AIC") + logger.warning( + "Not enough measurements to calculate AIC" + ) + aic = "NA" df = pd.DataFrame.from_dict( fitter.parameter_stats, orient="columns" @@ -283,6 +291,8 @@ def _run(self): f"measurement SD. Value: " f"{fitter.khi2_res.at['p_val', 'Values']}" ) + st.write(f"Akaike information criterion value:" + f" {aic}") for fig in self.io.figures: st.pyplot(fig[1]) self.io.output_pdf(fitter, self.io.res_path) @@ -332,8 +342,11 @@ def _build_logger(self, output_path): :return: The configured logger. :rtype: Logger """ - handler = logging.FileHandler(output_path / "log.txt", - "w") + try: + handler = logging.FileHandler(output_path / "log.txt", + "w") + except TypeError: + raise TypeError("Please provide a valid output directory") stream = logging.StreamHandler() handler.setLevel(logging.INFO) stream.setLevel(logging.INFO) @@ -425,9 +438,10 @@ def _initialize_opt_menu_widgets(self): # if file_extension in ["tsv", "txt"]: self._output_directory_selector() - self.io.res_path = self.io.wkdir / ( - self.input_datafile_name + "_res") - self.io.res_path.mkdir(parents=True, exist_ok=True) + if self.io.wkdir: + self.io.res_path = self.io.wkdir / ( + self.input_datafile_name + "_res") + self.io.res_path.mkdir(parents=True, exist_ok=True) # Build the form for advanced parameters form = st.form("Parameter_form") with form: From 594b53553b11a2f272f55897ce69bccbbf83a7ce Mon Sep 17 00:00:00 2001 From: llegregam Date: Thu, 23 May 2024 11:19:44 +0200 Subject: [PATCH 070/114] Added Akaike's information criterion (AIC) and model selection in FAQ --- docs/faq.rst | 42 ++++++++++++++++++++++++++++++++++++++++++ docs/method.rst | 8 ++++++++ 2 files changed, 50 insertions(+) diff --git a/docs/faq.rst b/docs/faq.rst index dde06fc..0f26380 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -61,6 +61,48 @@ What parameters values should I use? Details on PhysioFit parameters can be found in the :doc:`usage` section. +Which model should I use? +------------------------------------------------------------------ + +The choice of the model depends on the biological question you are addressing, +the data you have, and the assumptions you are willing to make. We provide a +set of models in PhysioFit, each with its own assumptions and requirements. +We recommend to start with the simplest model that fits your data, and to +evaluate the quality of the fit based on the χ² test results and the plots +of experimental vs simulated data. If the fit is not satisfactory, you may +want to try more complex models, but keep in mind that more complex models +require more data and more assumptions, and may lead to overfitting. + +Another way to evaluate different models' capacities on modeling your data +is to use the AIC (Akaike Information Criterion). The AIC is a measure of +the relative quality of a statistical model for a given set of data. It +estimates the quality of each model relative to each of the other models. +The model with the lowest AIC value is considered the best model. The AIC +value is given in the log file after the fitting process or directly in the +graphical user interface. The AIC is calculated as follows: + +.. math:: + + AIC = 2k + n \ln(\frac{RSS}{n}) + +where :math:`k` is the number of parameters in the model, :math:`n` is the +number of data points, and :math:`RSS` is the residual sum of squares. For +small sample sizes, the AICc (corrected AIC) is recommended. The AICc is +calculated as follows: + +.. math:: + + AICc = AIC + \frac{2k(k+1)}{n-k-1} + +In practice, because the AICc approximates the AIC for large sample sizes, +it's often advised that AICc be used as default. + +More information on the AIC can be found in the `original paper by Akaike +(1974) `_ or `in +this great guide by Symonds and Moussalli (2011) `_. + + How can I check if my data have been fitted correctly? ------------------------------------------------------------------ diff --git a/docs/method.rst b/docs/method.rst index 2d0b555..563bcc6 100644 --- a/docs/method.rst +++ b/docs/method.rst @@ -49,6 +49,14 @@ Goodness-of-fit evaluation PhysioFit performs a χ² test to assess the goodness of fit. Have a look at the :doc:`faq` section for more details on the interpretation of the khi2 test results. +Aikake Information Criterion (AIC) +*********************************** + +PhysioFit performs an AIC test to compare the different models between them and +to select the best model. Have a look at the :doc:`faq` section for more +details on the interpretation of the AIC test results. + + Sensitivity analysis ********************* From 8d5aef817d0164385f1fc207038ab527839d5b89 Mon Sep 17 00:00:00 2001 From: llegregam Date: Thu, 23 May 2024 13:35:56 +0200 Subject: [PATCH 071/114] Adding aic_c Fixed small bug in build_logger --- physiofit/ui/gui.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 5e1b9b3..6ab0db1 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -240,13 +240,13 @@ def _run(self): fitter.monte_carlo_analysis() fitter.khi2_test() try: - aic = fitter.aic() + aic, aic_c = fitter.aic() except ValueError: st.warning("Not enough measurements to calculate AIC") logger.warning( "Not enough measurements to calculate AIC" ) - aic = "NA" + aic, aic_c = "NA" df = pd.DataFrame.from_dict( fitter.parameter_stats, orient="columns" @@ -266,14 +266,22 @@ def _run(self): self.io.output_report(fitter, self.io.res_path) self.io.plot_data(fitter) self.io.output_plots(fitter, self.io.res_path) - with st.expander(f"{experiment} plots"): - data_col, stat_col = st.columns(2) + with st.expander(f"Experiment {experiment}"): + data_col, stat_col, aic_col = st.columns(3) with data_col: st.write("Parameter statistics:") st.dataframe(printed_df) with stat_col: st.write("Khi² test results:") st.dataframe(fitter.khi2_res) + with aic_col: + st.dataframe( + pd.DataFrame( + { + "ACC": + } + ) + ) if fitter.khi2_res.at["p_val", "Values"] < 0.95: st.write( f"\n\nAt level of 95% confidence, " @@ -356,9 +364,10 @@ def _build_logger(self, output_path): formatter = logging.Formatter('%(asctime)s - %(name)s - %(' 'levelname)s - %(message)s') handler.setFormatter(formatter) - if not logger.hasHandlers(): - logger.addHandler(handler) - logger.addHandler(stream) + if logger.hasHandlers(): + logger.handlers.clear() + logger.addHandler(handler) + logger.addHandler(stream) return logger def _initialize_opt_menu_widgets(self): From 27089ab04b8bf0a44c57f14888fc089acd29ea0d Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 24 May 2024 11:07:39 +0200 Subject: [PATCH 072/114] Added AIC & AICc Added debug logs for MC & changed var name in for loop --- physiofit/base/fitter.py | 54 +++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/physiofit/base/fitter.py b/physiofit/base/fitter.py index 63f5bdf..521e004 100644 --- a/physiofit/base/fitter.py +++ b/physiofit/base/fitter.py @@ -12,8 +12,6 @@ from physiofit.models.base_model import Model -# import physiofit # To get debug logs from the module - logger = logging.getLogger(f"physiofit.{__name__}") @@ -93,6 +91,9 @@ def __init__( self.matrices_ci = None self.opt_conf_ints = None self.khi2_res = None + self.aic_res = None + self.aic = None + self.aic_c = None logger.setLevel(self.debug_mode) @@ -207,7 +208,6 @@ def initialize_sd_matrix(self): except RuntimeError: raise - def _build_sd_matrix(self): """ Build the sd matrix from different input types @@ -324,6 +324,10 @@ def _calculate_cost( simulated_matrix = func(params, exp_data_matrix, time_vector, non_opt_params) + # print("inside cost function") + # print(f"Params: {params}") + # print(f"Simulated matrix: {simulated_matrix}") + # print(f"Experimental matrix: {exp_data_matrix}") cost_val = np.square( np.divide( np.subtract(simulated_matrix, exp_data_matrix), @@ -404,16 +408,21 @@ def monte_carlo_analysis(self): matrices = [] for i in range(self.iterations): - new_matrix = self._apply_noise() - # logger.debug(f"Iteration {i + 1}:\n") - # logger.debug(f"New matrix:\n{new_matrix}\n") - # logger.debug(f"Sd matrix:\n{self.sd}\n") - # logger.debug(f"time vector:\n{self.model.time_vector}\n") + noisy_matrix = self._apply_noise() + logger.debug(f"Iteration {i + 1}:\n") + logger.debug(f"New matrix:\n{noisy_matrix}\n") + logger.debug(f"Sd matrix:\n{self.sd}\n") + logger.debug(f"time vector:\n{self.model.time_vector}\n") + logger.debug( + "simulated matrix:" + f": {self.model.simulate(opt_res.x, noisy_matrix, self.model.time_vector, self.model.args)}\n" + ) # We optimise the parameters using the noisy matrix as input - opt_res = PhysioFitter._run_optimization( + + mc_opt_res = PhysioFitter._run_optimization( opt_res.x, self.model.simulate, - new_matrix, + noisy_matrix, self.model.time_vector, self.model.args, self.sd, self.model.bounds(), @@ -423,13 +432,13 @@ def monte_carlo_analysis(self): # Store the new simulated matrix in list for later use matrices.append( self.model.simulate( - opt_res.x, self.large_matrix, self.large_time_vector, + mc_opt_res.x, self.large_matrix, self.large_time_vector, self.model.args ) ) # Store the new optimised parameters in list for later use - opt_params_list.append(opt_res.x) + opt_params_list.append(mc_opt_res.x) # Build a 3D array from all the simulated matrices to get standard # deviation on each data point @@ -480,13 +489,13 @@ def _compute_parameter_stats(self, opt_params_list): # self.parameter_stats_df = DataFrame() - def aic(self): + def aic_test(self): """ Calculate the Akaike Information Criterion (AIC) for the model """ n = np.count_nonzero(~np.isnan(self.experimental_matrix)) - k = len(self.model.parameters) + 1 # +1 for the cost parameter + k = len(self.model.parameters) + 1 # +1 for the cost parameter cost = self._calculate_cost( self.optimize_results.x, self.model.simulate, @@ -496,13 +505,18 @@ def aic(self): self.sd ) # Calculate AIC - aic = 2 * k + n * np.log(cost) + self.aic = 2 * k + n * np.log(cost) # Correct AIC for small sample sizes - if n / k < 40: - if n - k - 1 <= 0: - raise ValueError("Not enough measurements to calculate AIC") - aic += (2 * k * (k + 1)) / (n - k - 1) - return aic + if n - k - 1 <= 0: + raise ValueError("Not enough measurements to calculate AIC") + self.aic_c = self.aic + ((2 * k * (k + 1)) / (n - k - 1)) + + self.aic_res = pd.DataFrame.from_dict( + { + "AIC": self.aic, + "AICc": self.aic_c + }, orient="index", columns=["Values"] + ) def khi2_test(self): """ From 0bca475225c74157f0a59ad9c6ad75b096576d23 Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 24 May 2024 11:07:57 +0200 Subject: [PATCH 073/114] Added AIC & AICc --- physiofit/ui/gui.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index 6ab0db1..e079239 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -36,7 +36,9 @@ def __init__(self): def start_app(self): """Launch the application""" - st.set_page_config(page_title=f"PhysioFit (v{physiofit.__version__})") + st.set_page_config(page_title=f"PhysioFit (v{physiofit.__version__})", + layout="wide" + ) st.title(f"Welcome to PhysioFit (v{physiofit.__version__})") st.write( "Documentation available at [https://physiofit.readthedocs.io](" @@ -240,13 +242,13 @@ def _run(self): fitter.monte_carlo_analysis() fitter.khi2_test() try: - aic, aic_c = fitter.aic() + fitter.aic_test() except ValueError: st.warning("Not enough measurements to calculate AIC") logger.warning( "Not enough measurements to calculate AIC" ) - aic, aic_c = "NA" + fitter.aic, fitter.aic_c = "NA" df = pd.DataFrame.from_dict( fitter.parameter_stats, orient="columns" @@ -275,12 +277,9 @@ def _run(self): st.write("Khi² test results:") st.dataframe(fitter.khi2_res) with aic_col: + st.write("AIC test results:") st.dataframe( - pd.DataFrame( - { - "ACC": - } - ) + fitter.aic_res ) if fitter.khi2_res.at["p_val", "Values"] < 0.95: st.write( @@ -299,8 +298,6 @@ def _run(self): f"measurement SD. Value: " f"{fitter.khi2_res.at['p_val', 'Values']}" ) - st.write(f"Akaike information criterion value:" - f" {aic}") for fig in self.io.figures: st.pyplot(fig[1]) self.io.output_pdf(fitter, self.io.res_path) @@ -444,8 +441,6 @@ def _initialize_opt_menu_widgets(self): "issue on github." ) - # if file_extension in ["tsv", "txt"]: - self._output_directory_selector() if self.io.wkdir: self.io.res_path = self.io.wkdir / ( From c5511979d8b3f1d7a8c6ef1682ba69ead78132e1 Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 24 May 2024 11:08:08 +0200 Subject: [PATCH 074/114] Added AIC & AICc --- physiofit/base/io.py | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/physiofit/base/io.py b/physiofit/base/io.py index 43c1acb..442da0e 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -376,8 +376,9 @@ def output_report(fitter, export_path: str | list = None): :param export_path: Path to export the report :param fitter: PhysioFitter object containing results from the - optimization of parameters :param export_path: list of paths to - export the stats and fluxes. [0] is for stats and [1] for fluxes. + optimization of parameters + :param export_path: list of paths to export the stats and fluxes. [ + 0] is for stats and [1] for fluxes. """ if isinstance(export_path, list): @@ -400,8 +401,9 @@ def output_report(fitter, export_path: str | list = None): opt_data.index = [param for param in fitter.model.parameters.keys()] opt_data.to_csv(flux_path, sep="\t") - if isinstance(fitter.khi2_res, DataFrame): - with open(stat_path, "w+") as stat_out: + # Get khi² test results as dataframe and write to file + with open(stat_path, "w+") as stat_out: + if isinstance(fitter.khi2_res, DataFrame): stat_out.write("==================\n" "Khi² test results\n" "==================\n\n") @@ -425,6 +427,28 @@ def output_report(fitter, export_path: str | list = None): f"provided measurement SD. Value: " f"{fitter.khi2_res.at['p_val', 'Values']}\n" ) + else: + stat_out.write( + "No khi² test results available. The model has not been " + "tested against the data" + ) + + # Get AIC results as dataframe and write to file + if isinstance(fitter.aic_res, DataFrame): + stat_out.write( + "\n\n==================\n" + "AIC test results\n" + "==================\n\n" + ) + stat_out.write( + fitter.aic_res.to_string( + header=False, justify="center" + ) + ) + else: + stat_out.write( + "No AIC test results available." + ) def _get_plot_data(self, fitter): """ From 3fdea86234be146e37ad2d88d0f77c941617838a Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 24 May 2024 11:08:52 +0200 Subject: [PATCH 075/114] Updated docs for 3.4.0 --- docs/faq.rst | 90 ++++++++++++++++++++----------------------------- docs/method.rst | 70 +++++++++++++++++++++++++++++++++----- docs/usage.rst | 6 ++-- 3 files changed, 102 insertions(+), 64 deletions(-) diff --git a/docs/faq.rst b/docs/faq.rst index 0f26380..e0410f3 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -4,7 +4,8 @@ Frequently asked questions (FAQ) How are fluxes calculated? ------------------------------------------------------------------ -We provide details on the flux calculation approach implemented in PhysioFit in the :doc:`method` section. +We provide details on the flux calculation approach implemented in PhysioFit +in the :doc:`method` section. How many measurements should I use to calculate fluxes? ------------------------------------------------------------------ @@ -74,33 +75,8 @@ want to try more complex models, but keep in mind that more complex models require more data and more assumptions, and may lead to overfitting. Another way to evaluate different models' capacities on modeling your data -is to use the AIC (Akaike Information Criterion). The AIC is a measure of -the relative quality of a statistical model for a given set of data. It -estimates the quality of each model relative to each of the other models. -The model with the lowest AIC value is considered the best model. The AIC -value is given in the log file after the fitting process or directly in the -graphical user interface. The AIC is calculated as follows: - -.. math:: - - AIC = 2k + n \ln(\frac{RSS}{n}) - -where :math:`k` is the number of parameters in the model, :math:`n` is the -number of data points, and :math:`RSS` is the residual sum of squares. For -small sample sizes, the AICc (corrected AIC) is recommended. The AICc is -calculated as follows: - -.. math:: - - AICc = AIC + \frac{2k(k+1)}{n-k-1} - -In practice, because the AICc approximates the AIC for large sample sizes, -it's often advised that AICc be used as default. - -More information on the AIC can be found in the `original paper by Akaike -(1974) `_ or `in -this great guide by Symonds and Moussalli (2011) `_. +is to use the AIC (Akaike Information Criterion). For more information, please +refer to the :doc:`method` section. How can I check if my data have been fitted correctly? @@ -109,43 +85,49 @@ How can I check if my data have been fitted correctly? The quality of the fit can be evaluated based on: * the plots of experimental vs simulated data for the best fit, which should be as close as possible, - * the χ² statistical test results given in the log file (see below for help on interpreting the results). + * the χ² statistical test results given in the stat ouput file (see below + for help on interpreting the results). -.. seealso:: :ref:`chi2 test` and :ref:`bad fit` +.. seealso:: :ref:`chi2 test` and :ref:`bad fit` -.. _`chi2 test`: - -What is a χ² test? ------------------------------------------------------------------- - -A χ² test describes how well a model fits a set of observations. Measures of goodness of fit typically summarize the discrepancy between observed values and the values expected under the model used in PhysioFit (see the :doc:`method` section). It is calculated as the sum of differences between measured and simulated values, each squared and divided by the simulated value. -A good fit corresponds to small differences between measured and simulated values, thereby the χ² value is low. In contrast, a bad fit corresponds to large differences between simulations and measurements, and the χ² value is high. - -The resulting χ² value can then be compared with a χ² distribution to determine the goodness of fit. The p-value of one-tail χ² test is calculated by PhysioFit from the best fit and is given in the log file (have a look to the :doc:`usage` section). A p-value close to 0 means poor fitting, and a p-value close to 1 means good fitting (keeping in mind that a p-value very close to 1 can be an evidence that standard deviations might be overestimated). A -p-value between 0.95 and 1 means the model fits the data good enough with respect to the standard deviations provided (at a 95% confidence level). PhysioFit provides an explicit meassage stating wether the flux data are satisfactorily fitted or not (at a 95% confidence interval). .. _`bad fit`: My data hasn't been correctly fitted. Why? ------------------------------------------------------------------ -A possible reason to explain a bad fit is that standard deviations on measurements (concentration biomass and metabolites) is under-estimated, thereby making the χ² test too stringent. In this case, plots of measured and fitted data should be in agreement. Reliable estimated of standard deviation on measurements must be provided to PhysioFit (have a look to the :doc:`usage` section to see how to check and adjust this parameter). - -Another possible reason to explain a bad fit is that a key asumption of the flux calculation method is not respected. For instance, -if you use a steady-state model shipped with PhysioFit, cells might not be strictly in metabolic steady-state, i.e. with -constant fluxes during the whole experiment. If this key asumption does not occur (e.g. cells are continuously adapting -to their environment and fluxes change over time), PhysioFit will not be able to fit the data satisfactorily. In this case, -evaluate wether the deviation is significant or not (e.g. based on the detailed χ² statistics or on the plot of fitted vs -measured data), and evaluate the potential biases that would be introduced by interpreting (or not) these flux values. - -In rare situations, it may also be because some parameters have to be tweaked to -help PhysioFit fitting the measurements, which results in obviously aberrant fits (e.g. with flat -time-course profiles for all metabolites). This might happen for instance if some measurements are -provided in units far from unity (e.g. 1.10\ :sup:`-5` M instead of 10 µM). If this situation happens, we suggest modifying the initial values of fluxes, or changing the units of input data, and re-run the flux calculation. For more info on the run parameters and how they may affect the fitting process, +A possible reason to explain a bad fit is that standard deviations on +measurements (concentration biomass and metabolites) is under-estimated, +thereby making the χ² test too stringent. In this case, plots of measured and +fitted data should be in agreement. Reliable estimated of standard deviation +on measurements must be provided to PhysioFit (have a look to the :doc:`usage` +section to see how to check and adjust this parameter). + +Another possible reason to explain a bad fit is that a key asumption of the +flux calculation method is not respected. For instance, if you use a +steady-state model shipped with PhysioFit, cells might not be strictly in +metabolic steady-state, i.e. with constant fluxes during the whole +experiment. If this key asumption does not occur (e.g. cells are continuously +adapting to their environment and fluxes change over time), PhysioFit will +not be able to fit the data satisfactorily. In this case, evaluate wether +the deviation is significant or not (e.g. based on the detailed χ² +statistics or on the plot of fitted vs measured data), and evaluate the +potential biases that would be introduced by interpreting (or not) these +flux values. + +In rare situations, it may also be because some parameters have to be +tweaked to help PhysioFit fitting the measurements, which results in +obviously aberrant fits (e.g. with flat time-course profiles for all +metabolites). This might happen for instance if some measurements are +provided in units far from unity (e.g. 1.10\ :sup:`-5` M instead of 10 µM). If +this situation happens, we suggest modifying the initial values of fluxes, +or changing the units of input data, and re-run the flux calculation. For +more info on the run parameters and how they may affect the fitting process, please refer to section :ref:`physiofit parameters`. If you believe the problem is in PhysioFit, we would greatly appreciate -if you could open a new issue on our `issue tracker `_. +if you could open a new issue on our `issue tracker `_. I cannot start PhysioFit graphical user interface, can you help me? ------------------------------------------------------------------- diff --git a/docs/method.rst b/docs/method.rst index 563bcc6..e85cd44 100644 --- a/docs/method.rst +++ b/docs/method.rst @@ -43,25 +43,79 @@ and the best solution is polished using the L-BFGS-B method (see `scipy.optimize `_ for more information on the optimization process). + +.. _`chi2 test`: + Goodness-of-fit evaluation ************************** -PhysioFit performs a χ² test to assess the goodness of fit. Have a look at the :doc:`faq` section for -more details on the interpretation of the khi2 test results. +PhysioFit performs a χ² test to assess the goodness of fit. A χ² test +describes how well a model fits a set of observations. Measures of +goodness of fit typically summarize the discrepancy between observed values +and the values expected under the model used in PhysioFit (see +:ref:`optimization_process`). It is calculated as the sum of differences +between measured and simulated values, each squared and divided by the +simulated value. +A good fit corresponds to small differences between measured and simulated +values, thereby the χ² value is low. In contrast, a bad fit corresponds to +large differences between simulations and measurements, and the χ² value is +high. + +The resulting χ² value can then be compared with a χ² distribution to +determine the goodness of fit. The p-value of one-tail χ² test is calculated +by PhysioFit from the best fit and is given in the log file (have a look to +the :doc:`usage` section). A p-value close to 0 means poor fitting, and a +p-value close to 1 means good fitting (keeping in mind that a p-value very +close to 1 can be an evidence that standard deviations might be +overestimated). A p-value between 0.95 and 1 means the model fits the data +good enough with respect to the standard deviations provided (at a 95% +confidence level). PhysioFit provides an explicit message stating whether +the flux data are satisfactorily fitted or not (at a 95% confidence interval). Aikake Information Criterion (AIC) *********************************** PhysioFit performs an AIC test to compare the different models between them and -to select the best model. Have a look at the :doc:`faq` section for more -details on the interpretation of the AIC test results. +to select the best model. +The AIC is a measure of the relative quality of a statistical model for a +given set of data. It estimates the quality of each model relative to each +of the other models. +The model with the lowest AIC value is considered the best model. The AIC +value is given in the stat output file after the fitting process or directly in +the graphical user interface. The AIC is calculated as follows: + +.. math:: + + AIC = 2k + n \ln(\frac{RSS}{n}) + +where :math:`k` is the number of parameters in the model, :math:`n` is the +number of data points, and :math:`RSS` is the residual sum of squares. For +small sample sizes, the AICc (corrected AIC) is recommended. The AICc is +calculated as follows: + +.. math:: + + AICc = AIC + \frac{2k(k+1)}{n-k-1} + +In practice, because the AICc approximates the AIC for large sample sizes, +it's often advised that AICc be used as default. + +More information on the AIC can be found in the `original paper by Akaike +(1974) `_ or `in +this great guide by Symonds and Moussalli (2011) `_. Sensitivity analysis ********************* -To determine the precision on the fit and on the estimated parameters (including fluxes), PhysioFit performs a Monte Carlo analysis. Briefly, PhysioFit generates several -datasets by adding noise to the dynamics simulated from the best fit, and calculated fluxes and other growth -parameters for each of these synthetic datasets. This enables PhysioFit to compute statistics (mean, median, standard deviation and 95% confidence interval) for -each parameter (including fluxes). We recommend always running a sensitivity analysis when using PhysioFit. +To determine the precision on the fit and on the estimated parameters +(including fluxes), PhysioFit performs a Monte Carlo analysis. Briefly, +PhysioFit generates several +datasets by adding noise to the dynamics simulated from the best fit, and +calculated fluxes and other growth +parameters for each of these synthetic datasets. This enables PhysioFit to +compute statistics (mean, median, standard deviation and 95% confidence +interval) for each parameter (including fluxes). We recommend always running +a sensitivity analysis when using PhysioFit. diff --git a/docs/usage.rst b/docs/usage.rst index ebe349c..e6da623 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -37,7 +37,7 @@ name of the condition/experiment, which must be provided even if only one condit .. _yaml_config: Configuration file (:file:`yaml`) ---------------------------- +--------------------------------- The :file:`yaml` configuration file contains all parameters required to calculate fluxes for a given experiment, and is thus key to ensure **reproducibility** of the flux calculation process. A configuration file is generated automatically by @@ -113,7 +113,9 @@ The following files are generated by PhysioFit in the output directory: * :file:`config_file.yaml` configuration file containing all parameters used for the last run. * :file:`flux_results.tsv` flux calculation results, i.e. fluxes and initial metabolite concentrations for the best fit, with associated precision. - * :file:`stat_results.tsv` results from the χ² statistical test. + * :file:`stat_results.tsv` results from the χ² and AIC statistical tests + (see :doc:`method` for more details on the statistical tests performed by + PhysioFit). * :file:`log.txt` run log file containing information on how the run went. * :file:`plots.pdf` plots of simulated and measured data. * A number of :file:`.svg` files: individual plots of simulated and measured data. From 2f7ae09c2450322d57eca2f17737d219ca5ec8e5 Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 24 May 2024 11:49:46 +0200 Subject: [PATCH 076/114] Temporary fix of data_path_config_context retrieving --- physiofit/ui/gui.py | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/physiofit/ui/gui.py b/physiofit/ui/gui.py index e079239..389fbc6 100644 --- a/physiofit/ui/gui.py +++ b/physiofit/ui/gui.py @@ -121,11 +121,17 @@ def _run(self): ) input_path = st.session_state.get( "config_parser_data_path", - self._get_data_path_config_context() + None ) + if not input_path: + input_path = self._get_data_path_config_context() self.config_parser.path_to_data = input_path st.session_state["config_parser_data_path"] = input_path - + #st.write( + # f"File path in config parser: {self.config_parser.path_to_data}") + #st.write( + # f"file path in session state: {st.session_state.get('config_parser_data_path')}") + #st.write(self.config_parser) st.info(f"Input data: {self.config_parser.path_to_data}") self.input_datafile_name = Path( self.config_parser.path_to_data).stem @@ -374,17 +380,19 @@ def _initialize_opt_menu_widgets(self): model.name for model in self.io.models ] idx = None - if self.config_parser: - if self.config_parser.model: - try: - idx = model_options.index( - self.config_parser.model["model_name"]) - except Exception: - st.error( - "Error while reading model name from configuration " - "file" - ) - raise + if self.config_parser and self.config_parser.model: + #st.write(f"idx: {idx}") + try: + #st.write(f"model_options: {model_options}") + idx = model_options.index( + self.config_parser.model["model_name"]) + except Exception: + st.error( + "Error while reading model name from configuration " + "file" + ) + raise + #st.write(f"idx: {idx}") model_name = st.selectbox( label="Model", @@ -396,6 +404,7 @@ def _initialize_opt_menu_widgets(self): # if model_name == "Dynamic system (only substrates)": # st.error("Not yet implemented...") + #st.write(f"Selected model: {model_name}") if model_name: # Initialize selected model self.model = self.io.select_model(model_name) From dfe29994966130f5abd8e7c1defe968bb2541e24 Mon Sep 17 00:00:00 2001 From: llegregam Date: Fri, 24 May 2024 11:50:16 +0200 Subject: [PATCH 077/114] Added repr ConfigParser --- physiofit/base/io.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/physiofit/base/io.py b/physiofit/base/io.py index 442da0e..816dacc 100644 --- a/physiofit/base/io.py +++ b/physiofit/base/io.py @@ -623,6 +623,11 @@ def __init__( f"{self.mc}, type: {type(self.iterations)}" ) + def __repr__(self): + return f"ConfigParser(path_to_data={self.path_to_data}, " \ + f"model={self.model}, sds={self.sds}, mc={self.mc}, " \ + f"iterations={self.iterations})" + @classmethod def from_file(cls, yaml_file): data = yaml.safe_load(yaml_file) if not isinstance(yaml_file, str) \ From ed645849bcce8e0249ed02791dd66cdef0a68e84 Mon Sep 17 00:00:00 2001 From: pierremillard Date: Tue, 28 May 2024 18:45:55 +0200 Subject: [PATCH 078/114] update doc --- docs/faq.rst | 15 +++++++----- docs/method.rst | 65 +++++++++++++++++++++++++++++-------------------- 2 files changed, 48 insertions(+), 32 deletions(-) diff --git a/docs/faq.rst b/docs/faq.rst index e0410f3..5ebe7c8 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -68,15 +68,18 @@ Which model should I use? The choice of the model depends on the biological question you are addressing, the data you have, and the assumptions you are willing to make. We provide a set of models in PhysioFit, each with its own assumptions and requirements. -We recommend to start with the simplest model that fits your data, and to + +As a starting point, we recommend to start with the most appropriate model you have +in mind based on the type of experiment you have conducted. Start with the +simplest model that fits your data, and evaluate the quality of the fit based on the χ² test results and the plots of experimental vs simulated data. If the fit is not satisfactory, you may -want to try more complex models, but keep in mind that more complex models -require more data and more assumptions, and may lead to overfitting. +want to try more complex models, but keep in mind that more complex models may +require more data and often include more assumptions, and may lead to overfitting. -Another way to evaluate different models' capacities on modeling your data +If different models fit your data, a good practice to compare different models is to use the AIC (Akaike Information Criterion). For more information, please -refer to the :doc:`method` section. +refer to the section "Model comparison" from the :doc:`method` page. How can I check if my data have been fitted correctly? @@ -125,7 +128,7 @@ or changing the units of input data, and re-run the flux calculation. For more info on the run parameters and how they may affect the fitting process, please refer to section :ref:`physiofit parameters`. -If you believe the problem is in PhysioFit, we would greatly appreciate +If you think the problem is in PhysioFit, we would greatly appreciate if you could open a new issue on our `issue tracker `_. diff --git a/docs/method.rst b/docs/method.rst index e85cd44..49d0d34 100644 --- a/docs/method.rst +++ b/docs/method.rst @@ -44,6 +44,22 @@ and the best solution is polished using the L-BFGS-B method (see process). +.. _sensitivity_analysis: + +Sensitivity analysis +********************* + +To determine the precision on the fit and on the estimated parameters, +PhysioFit performs a Monte Carlo analysis. Briefly, +PhysioFit generates several +datasets by adding noise to the dynamics simulated from the best fit, and +calculates fluxes and other growth +parameters for each of these synthetic datasets. This enables PhysioFit to +compute statistics (mean, median, standard deviation and 95 % confidence +interval) for each parameter. We recommend always running +a sensitivity analysis when using PhysioFit. + + .. _`chi2 test`: Goodness-of-fit evaluation @@ -72,25 +88,24 @@ good enough with respect to the standard deviations provided (at a 95% confidence level). PhysioFit provides an explicit message stating whether the flux data are satisfactorily fitted or not (at a 95% confidence interval). -Aikake Information Criterion (AIC) +Model comparison *********************************** -PhysioFit performs an AIC test to compare the different models between them and -to select the best model. -The AIC is a measure of the relative quality of a statistical model for a -given set of data. It estimates the quality of each model relative to each -of the other models. -The model with the lowest AIC value is considered the best model. The AIC -value is given in the stat output file after the fitting process or directly in -the graphical user interface. The AIC is calculated as follows: +PhysioFit calculates the Aikake Information Criterion (AIC) +to help users select the most appropriate model for their data. +The AIC is a measure of the explanatory power of a model to explain a +given set of data. The model with the lowest AIC value is +thus considered the best model. + +The AIC is calculated as follows: .. math:: AIC = 2k + n \ln(\frac{RSS}{n}) -where :math:`k` is the number of parameters in the model, :math:`n` is the +where :math:`k` is the number of parameters in the model (plus 1), :math:`n` is the number of data points, and :math:`RSS` is the residual sum of squares. For -small sample sizes, the AICc (corrected AIC) is recommended. The AICc is +small sample sizes, it is recommended to use the AICc (corrected AIC), which is calculated as follows: .. math:: @@ -100,22 +115,20 @@ calculated as follows: In practice, because the AICc approximates the AIC for large sample sizes, it's often advised that AICc be used as default. +The AIC +value can be found in the statistical output file or directly in +the graphical user interface. + +To identify the best model, different candidate models that differ in terms +of structure or complexity can be used +to fit the data and then compared based on their AIC. The model +with the lowest AIC value is considered the best-fitting model among +the candidates. However, it is crucial to consider the differences +in AIC values between models, as models with low ΔAIC values (typically < 2) +are considered to have similar support from the data. + More information on the AIC can be found in the `original paper by Akaike (1974) `_ or `in -this great guide by Symonds and Moussalli (2011) `_. - -Sensitivity analysis -********************* - -To determine the precision on the fit and on the estimated parameters -(including fluxes), PhysioFit performs a Monte Carlo analysis. Briefly, -PhysioFit generates several -datasets by adding noise to the dynamics simulated from the best fit, and -calculated fluxes and other growth -parameters for each of these synthetic datasets. This enables PhysioFit to -compute statistics (mean, median, standard deviation and 95% confidence -interval) for each parameter (including fluxes). We recommend always running -a sensitivity analysis when using PhysioFit. - From d4167a7b510c6696f607e5fe4698705fc498ccdb Mon Sep 17 00:00:00 2001 From: pierremillard Date: Tue, 28 May 2024 19:15:03 +0200 Subject: [PATCH 079/114] update doc --- docs/faq.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/faq.rst b/docs/faq.rst index 5ebe7c8..5ff9d82 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -72,7 +72,7 @@ set of models in PhysioFit, each with its own assumptions and requirements. As a starting point, we recommend to start with the most appropriate model you have in mind based on the type of experiment you have conducted. Start with the simplest model that fits your data, and -evaluate the quality of the fit based on the χ² test results and the plots +evaluate the quality of the fit based on the χ² test results and on the plots of experimental vs simulated data. If the fit is not satisfactory, you may want to try more complex models, but keep in mind that more complex models may require more data and often include more assumptions, and may lead to overfitting. From 11dd8516229a9ae97faeeeeaec999e201b7e2094 Mon Sep 17 00:00:00 2001 From: pierremillard Date: Tue, 28 May 2024 19:16:50 +0200 Subject: [PATCH 080/114] update doc --- docs/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.rst b/docs/index.rst index 8047163..2d9bd1d 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -23,6 +23,7 @@ additional tailor-made models can be implemented by users. * **tailor-made models** can be constructed by users, * Monte-Carlo sensitivity analysis to **estimate the precision of the calculated fluxes**, * **evaluation of the goodness of fit and visual inspection of the fitted curves**, + * Akaike information criterion to **guide users to identify the most appropriate model**, * shipped as a **library** with both a **graphical** and a **command line** interface, * **open-source, free and easy to install** everywhere where Python 3 and pip run, * **biologist-friendly**. From 7a25c5915471449356b5497b7c02edff665f896b Mon Sep 17 00:00:00 2001 From: pierremillard Date: Tue, 28 May 2024 19:22:37 +0200 Subject: [PATCH 081/114] update doc --- docs/method.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/method.rst b/docs/method.rst index 49d0d34..4285108 100644 --- a/docs/method.rst +++ b/docs/method.rst @@ -93,7 +93,7 @@ Model comparison PhysioFit calculates the Aikake Information Criterion (AIC) to help users select the most appropriate model for their data. -The AIC is a measure of the explanatory power of a model to explain a +The AIC is a measure of the explanatory power of a model with respect to a given set of data. The model with the lowest AIC value is thus considered the best model. @@ -105,7 +105,8 @@ The AIC is calculated as follows: where :math:`k` is the number of parameters in the model (plus 1), :math:`n` is the number of data points, and :math:`RSS` is the residual sum of squares. For -small sample sizes, it is recommended to use the AICc (corrected AIC), which is +small sample sizes (typically < 40 data points>), it is recommended to use +the AICc (corrected AIC), which is calculated as follows: .. math:: @@ -123,7 +124,7 @@ To identify the best model, different candidate models that differ in terms of structure or complexity can be used to fit the data and then compared based on their AIC. The model with the lowest AIC value is considered the best-fitting model among -the candidates. However, it is crucial to consider the differences +the candidates and should thus used to fit the dataset. However, it is crucial to consider the differences in AIC values between models, as models with low ΔAIC values (typically < 2) are considered to have similar support from the data. From 2f4a43bb2f6bad57b6c3b858ccf70acea0a5ae30 Mon Sep 17 00:00:00 2001 From: pierremillard Date: Tue, 28 May 2024 21:03:10 +0200 Subject: [PATCH 082/114] update doc --- docs/method.rst | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/docs/method.rst b/docs/method.rst index 4285108..f60cba8 100644 --- a/docs/method.rst +++ b/docs/method.rst @@ -88,12 +88,14 @@ good enough with respect to the standard deviations provided (at a 95% confidence level). PhysioFit provides an explicit message stating whether the flux data are satisfactorily fitted or not (at a 95% confidence interval). -Model comparison +Model comparison and selection *********************************** -PhysioFit calculates the Aikake Information Criterion (AIC) -to help users select the most appropriate model for their data. -The AIC is a measure of the explanatory power of a model with respect to a +PhysioFit calculates the Aikake Information Criterion (both classical and corrected, AIC and AICc) +to help users compare different models and select the most appropriate one for their data. The AIC and AICc values +can be found in the statistical output file or directly in +the graphical user interface. +The AIC is a statistical metrics that measures the explanatory power of a model with respect to a given set of data. The model with the lowest AIC value is thus considered the best model. @@ -101,11 +103,12 @@ The AIC is calculated as follows: .. math:: - AIC = 2k + n \ln(\frac{RSS}{n}) + AIC = 2k + n \ln(\frac{residuum}{n}) where :math:`k` is the number of parameters in the model (plus 1), :math:`n` is the -number of data points, and :math:`RSS` is the residual sum of squares. For -small sample sizes (typically < 40 data points>), it is recommended to use +number of data points, and :math:`residuum` is the residual sum of squares (see +:ref:`optimization_process`). For +datasets with a low number of measurements (typically less than 40 data points>), it is recommended to use the AICc (corrected AIC), which is calculated as follows: @@ -116,10 +119,6 @@ calculated as follows: In practice, because the AICc approximates the AIC for large sample sizes, it's often advised that AICc be used as default. -The AIC -value can be found in the statistical output file or directly in -the graphical user interface. - To identify the best model, different candidate models that differ in terms of structure or complexity can be used to fit the data and then compared based on their AIC. The model @@ -128,8 +127,8 @@ the candidates and should thus used to fit the dataset. However, it is crucial t in AIC values between models, as models with low ΔAIC values (typically < 2) are considered to have similar support from the data. -More information on the AIC can be found in the `original paper by Akaike -(1974) `_ or `in -this practical guide `_ or in +this practical guide by `Symonds and Moussali (2010) `_. From f9afc986a754d9774c407c35affeccc89602244e Mon Sep 17 00:00:00 2001 From: pierremillard Date: Tue, 28 May 2024 21:14:20 +0200 Subject: [PATCH 083/114] update doc --- docs/faq.rst | 18 +++++++++--------- docs/method.rst | 13 +++++++------ 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/docs/faq.rst b/docs/faq.rst index 5ff9d82..6562e84 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -69,15 +69,15 @@ The choice of the model depends on the biological question you are addressing, the data you have, and the assumptions you are willing to make. We provide a set of models in PhysioFit, each with its own assumptions and requirements. -As a starting point, we recommend to start with the most appropriate model you have -in mind based on the type of experiment you have conducted. Start with the -simplest model that fits your data, and -evaluate the quality of the fit based on the χ² test results and on the plots -of experimental vs simulated data. If the fit is not satisfactory, you may -want to try more complex models, but keep in mind that more complex models may -require more data and often include more assumptions, and may lead to overfitting. - -If different models fit your data, a good practice to compare different models +As a starting point, we recommend using the most relevant model based on +the type of experiment you have conducted. Begin with the simplest model that +fits your data and evaluate the quality of the fit based on the χ² test +results and the plots of experimental vs. simulated data. If the fit is +not satisfactory, you may try more complex models. However, keep in mind +that more complex models often require more data, include more assumptions, +and may lead to overfitting. + +If different models fit your data, a good practice for comparing them is to use the AIC (Akaike Information Criterion). For more information, please refer to the section "Model comparison" from the :doc:`method` page. diff --git a/docs/method.rst b/docs/method.rst index f60cba8..871d199 100644 --- a/docs/method.rst +++ b/docs/method.rst @@ -82,7 +82,7 @@ determine the goodness of fit. The p-value of one-tail χ² test is calculated by PhysioFit from the best fit and is given in the log file (have a look to the :doc:`usage` section). A p-value close to 0 means poor fitting, and a p-value close to 1 means good fitting (keeping in mind that a p-value very -close to 1 can be an evidence that standard deviations might be +close to 1 suggest that standard deviations might be overestimated). A p-value between 0.95 and 1 means the model fits the data good enough with respect to the standard deviations provided (at a 95% confidence level). PhysioFit provides an explicit message stating whether @@ -95,7 +95,7 @@ PhysioFit calculates the Aikake Information Criterion (both classical and correc to help users compare different models and select the most appropriate one for their data. The AIC and AICc values can be found in the statistical output file or directly in the graphical user interface. -The AIC is a statistical metrics that measures the explanatory power of a model with respect to a +Briefly, the AIC is a statistical metric that measures the explanatory power of a model with respect to a given set of data. The model with the lowest AIC value is thus considered the best model. @@ -117,7 +117,7 @@ calculated as follows: AICc = AIC + \frac{2k(k+1)}{n-k-1} In practice, because the AICc approximates the AIC for large sample sizes, -it's often advised that AICc be used as default. +it's often advised to use AICc as the default. To identify the best model, different candidate models that differ in terms of structure or complexity can be used @@ -127,8 +127,9 @@ the candidates and should thus used to fit the dataset. However, it is crucial t in AIC values between models, as models with low ΔAIC values (typically < 2) are considered to have similar support from the data. -More information on the AIC can be found in the original publication -by `Akaike (1974) `_ or in -this practical guide by `Symonds and Moussali (2010) `_, and a practical +guide ("what it is, how and when to apply it and what it achieves") has been published by +`Symonds and Moussali (2010) `_. From 748d3e36affc16f52e9dccb0d30777ca74942b96 Mon Sep 17 00:00:00 2001 From: pierremillard Date: Tue, 28 May 2024 21:17:08 +0200 Subject: [PATCH 084/114] update doc --- docs/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 2d9bd1d..09b76c0 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -19,11 +19,11 @@ additional tailor-made models can be implemented by users. **PhysioFit includes the following features:** * **calculation of growth rate and extracellular (uptake and production) fluxes**, - * **a set of steady-state and dynamic models** are shipped with PhysioFit, + * a set of **steady-state and dynamic models**, * **tailor-made models** can be constructed by users, * Monte-Carlo sensitivity analysis to **estimate the precision of the calculated fluxes**, * **evaluation of the goodness of fit and visual inspection of the fitted curves**, - * Akaike information criterion to **guide users to identify the most appropriate model**, + * calculation of the Akaike information criterion to **guide users to identify the most appropriate model**, * shipped as a **library** with both a **graphical** and a **command line** interface, * **open-source, free and easy to install** everywhere where Python 3 and pip run, * **biologist-friendly**. From 3b40df175ef0c21b5858d7010046e8903eee6b32 Mon Sep 17 00:00:00 2001 From: pierremillard Date: Tue, 28 May 2024 21:22:31 +0200 Subject: [PATCH 085/114] update readme --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 936b3a7..93f1d1c 100644 --- a/README.md +++ b/README.md @@ -25,14 +25,16 @@ Detailed documentation can be found online at Read the Docs ## Key features * **calculation of growth rate and extracellular (uptake and production) fluxes**, - * **a set of steady-state and dynamic models** are shipped with PhysioFit, + * a set of **steady-state and dynamic models**, * **tailor-made models** can be constructed by users, - * Monte-Carlo sensitivity analysis to **estimate the precision on the calculated fluxes**, + * Monte-Carlo sensitivity analysis to **estimate the precision of the calculated fluxes**, * **evaluation of the goodness of fit and visual inspection of the fitted curves**, + * calculation of the Akaike information criterion to **guide users to identify the most appropriate model**, * shipped as a **library** with both a **graphical** and a **command line** interface, * **open-source, free and easy to install** everywhere where Python 3 and pip run, * **biologist-friendly**. + ## Quick-start PhysioFit requires Python 3.9 or higher and run on all platforms. Please check [the documentation](https://physiofit.readthedocs.io/en/latest/quickstart.html) for complete From 4370561fcdbe9f47deb9731e7724ea2493796fd6 Mon Sep 17 00:00:00 2001 From: pierremillard Date: Tue, 28 May 2024 21:24:21 +0200 Subject: [PATCH 086/114] update doc typo --- docs/method.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/method.rst b/docs/method.rst index 871d199..6f841ec 100644 --- a/docs/method.rst +++ b/docs/method.rst @@ -108,7 +108,7 @@ The AIC is calculated as follows: where :math:`k` is the number of parameters in the model (plus 1), :math:`n` is the number of data points, and :math:`residuum` is the residual sum of squares (see :ref:`optimization_process`). For -datasets with a low number of measurements (typically less than 40 data points>), it is recommended to use +datasets with a low number of measurements (typically less than 40 data points), it is recommended to use the AICc (corrected AIC), which is calculated as follows: From a5585e1881ca85fee5af5df26b5afc45c9e98bca Mon Sep 17 00:00:00 2001 From: pierremillard Date: Wed, 29 May 2024 08:53:38 +0200 Subject: [PATCH 087/114] update tests --- physiofit/tests/test_monod_model.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/physiofit/tests/test_monod_model.py b/physiofit/tests/test_monod_model.py index 251cc93..7f420a0 100644 --- a/physiofit/tests/test_monod_model.py +++ b/physiofit/tests/test_monod_model.py @@ -276,7 +276,7 @@ def test_monod_model(monod_model_sds, pyfoomb_simulated_data): b=list(optimized_params.values()), a=[0.01, 0.4, 1, 1.5, 20, 0.12, 0], rtol=1e-2, - atol=1e-3 + atol=1e-2 ) @@ -305,5 +305,5 @@ def test_physiofit_simulations(parameters, placeholder_data, df, pyfoomb_simulated_data, rtol=1e-2, - atol=1e-3 + atol=1e-2 ) From e60effd2469cdcdc6f01dbf5a16393f1e0872da2 Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 29 May 2024 10:42:18 +0200 Subject: [PATCH 088/114] Added AIC to overview --- docs/method.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/method.rst b/docs/method.rst index 6f841ec..df7f99d 100644 --- a/docs/method.rst +++ b/docs/method.rst @@ -10,8 +10,9 @@ metabolite and biomass concentrations, as detailed below. Flux values provided by PhysioFit correspond the best fit. A global sensitivity analysis (Monte-Carlo approach) is available to evaluate the precision of the estimated fluxes (mean, median, standard deviation, 95% confidence -intervals), plots are generated for visual inspection of the fitting quality, and a χ² test is performed to assess the -statistical goodness of fit. +intervals), plots are generated for visual inspection of the fitting quality, a χ² test is performed to assess the +statistical goodness of fit and an AIC (Akaike Information Criterion) is +calculated to compare the different models. .. _method_models: From 24c5894c82641fbe20ad09af467d77294f4d21d2 Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 29 May 2024 10:52:10 +0200 Subject: [PATCH 089/114] Fixed chi2 test p value explanation --- docs/method.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/method.rst b/docs/method.rst index df7f99d..5355bd6 100644 --- a/docs/method.rst +++ b/docs/method.rst @@ -81,10 +81,10 @@ high. The resulting χ² value can then be compared with a χ² distribution to determine the goodness of fit. The p-value of one-tail χ² test is calculated by PhysioFit from the best fit and is given in the log file (have a look to -the :doc:`usage` section). A p-value close to 0 means poor fitting, and a -p-value close to 1 means good fitting (keeping in mind that a p-value very -close to 1 suggest that standard deviations might be -overestimated). A p-value between 0.95 and 1 means the model fits the data +the :doc:`usage` section). A p-value close to 1 means poor fitting, and a +p-value close to 0 means good fitting (keeping in mind that a p-value very +close to 0 suggest that standard deviations might be +overestimated). A p-value between 0 and 0.05 means the model fits the data good enough with respect to the standard deviations provided (at a 95% confidence level). PhysioFit provides an explicit message stating whether the flux data are satisfactorily fitted or not (at a 95% confidence interval). From a09efe0638cc8c26635b6e717df7bee7dd1ae9bf Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 29 May 2024 10:59:37 +0200 Subject: [PATCH 090/114] Updated image with new name for degradation constants --- docs/_static/usage/example1.JPG | Bin 44233 -> 75076 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/_static/usage/example1.JPG b/docs/_static/usage/example1.JPG index 9772338f77d16083d4a8c0e01904cc765b4768ba..877b2ac1bbb143814c0df599fcd0b36eb7be20fa 100644 GIT binary patch literal 75076 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 z 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 literal 44233 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 From 56d36eeabd7bc78317557e32d0cdb12286b2ca5a Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 29 May 2024 12:51:46 +0200 Subject: [PATCH 091/114] Added "simulate data from parameters" section --- docs/models.rst | 152 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 115 insertions(+), 37 deletions(-) diff --git a/docs/models.rst b/docs/models.rst index 8c2b47b..5c9804c 100644 --- a/docs/models.rst +++ b/docs/models.rst @@ -192,8 +192,8 @@ method to inherit the logic from the base class: :: def __init__(self, data): super().__init__(data) self.model_name = "Tutorial model" - self.parameters_to_estimate = None - self.fixed_parameters = None + self.parameters = None + self.args = None def get_params(self): pass @@ -235,10 +235,10 @@ If you now run the file, you should have a standard output in your console that 2 2 A 1.2 11.0 3 3 A 1.8 10.2 Experimental matrix: - [['A' 0.5 12.0] - ['A' 0.8 11.6] - ['A' 1.2 11.0] - ['A' 1.8 10.2]] + [[0.5 12.0] + [0.8 11.6] + [1.2 11.0] + [1.8 10.2]] Time vector: [0 1 2 3] Name vector: ['X', 'Glucose'] Biomass & Metabolites: ['Glucose'] @@ -246,15 +246,19 @@ If you now run the file, you should have a standard output in your console that Fixed parameters: None Bounds: None -The next step is to define the parameters (used for simulationsand optimization). PhysioFit supports two types of parameters (**parameters to estimate** and **fixed parameters**) which are detailed below. +The next step is to define the parameters (used for simulations and +optimization). PhysioFit supports two types of parameters (**parameters to +estimate** and **fixed parameters**) which are detailed below. .. _parameters_to_estimate: Free parameters ^^^^^^^^^^^^^^^ -The free parameters are the parameters that will be estimated by PhysioFit, and thus that require defining bounds and initial values -to be initialized. The list of parameters and their initial (default) values must be returned by the :samp:`get_params` method: :: +The free parameters are the parameters that will be estimated by PhysioFit, +and thus that require defining bounds and initial values to be initialized. +The list of parameters and their initial (default) values must be returned +by the :samp:`get_params` method: :: from physiofit.models.base_model import Model @@ -263,8 +267,8 @@ to be initialized. The list of parameters and their initial (default) values mus def __init__(self, data): super().__init__(data) self.model_name = "Tutorial model" - self.parameters_to_estimate = None - self.fixed_parameters = None + self.parameters = None + self.args = None def get_params(self): @@ -272,8 +276,8 @@ to be initialized. The list of parameters and their initial (default) values mus # the parameter name and the value is a number that will # be the initial value for the optimization process - self.parameters_to_estimate = { - "BM_0": 1, + self.parameters = { + "X_0": 1, "growth_rate": 1 } @@ -281,7 +285,7 @@ to be initialized. The list of parameters and their initial (default) values mus # using a for loop: for metabolite in self.metabolites: - self.parameters_to_estimate.update( + self.parameters.update( { f"{metabolite}_flux" : 1, f"{metabolite}_init_value" : 1 @@ -292,7 +296,9 @@ to be initialized. The list of parameters and their initial (default) values mus def simulate(): pass -.. note:: For a given model, the number of metabolites may vary depending on the experiment, hence the metabolite-dependent parameters can be automatically defined in this function (as illustrated here using a for loop). +.. note:: For a given model, the number of metabolites may vary depending on + the experiment, hence the metabolite-dependent parameters can be + automatically defined in this function (as illustrated here using a for loop). The next step is to define the default bounds used for the optimization process (these bounds can be changed in the GUI). The bounds are a class of objects that handle the logic and checks. They are derived from the python :samp:`dict` base class, and as such @@ -305,8 +311,8 @@ implement the same methods (e.g. :samp:`update`). Here is an example of how to i def __init__(self, data): super().__init__(data) self.model_name = "Tutorial model" - self.parameters_to_estimate = None - self.fixed_parameters = None + self.parameters = None + self.args = None def get_params(self): @@ -314,7 +320,7 @@ implement the same methods (e.g. :samp:`update`). Here is an example of how to i # the parameter name and the value is a number that will # be the initial value for the optimization process - self.parameters_to_estimate = { + self.parameters = { "BM_0": 1, "growth_rate": 1 } @@ -332,7 +338,7 @@ implement the same methods (e.g. :samp:`update`). Here is an example of how to i # using a for loop: for metabolite in self.metabolites: - self.parameters_to_estimate.update( + self.parameters.update( { f"{metabolite}_flux" : 1, f"{metabolite}_init_value" : 1 @@ -355,14 +361,17 @@ implement the same methods (e.g. :samp:`update`). Here is an example of how to i .. _fixed_parameters: -Fixed parameters +Extra args ^^^^^^^^^^^^^^^^ -The fixed parameters are parameters that are known and are not estimated by PhysioFit. For example, in the case of -steady-state models that account for non enymatic degradation (see :ref:`default_steady-state_models`.), we need to provide the -degradation constant of all unstable metabolites (these constants must be measured in an independent experiment, e.g. see Peiro et al., 2019): :: +The extra args are parameters that are known, constant and are not estimated +by PhysioFit. For example, in the case of steady-state models that account +for non enymatic degradation (see :ref:`default_steady-state_models`.), we +need to provide the degradation constant of all unstable metabolites (these +constants must be measured in an independent experiment, e.g. see `Peiro et +al., 2019 `_): :: - self.fixed_parameters = {"Degradation": { + self.args = {"Degradation Constants": { metabolite: 2 for metabolite in self.metabolites } } @@ -391,13 +400,17 @@ To do this, first write out the function definition: :: pass As shown above, this function takes four arguments: - * :samp:`params_opti`: list containing the values of each parameter to estimate **in the same order as defined in the :samp:`parameters_to_estimate` dictionary** (see :ref:`parameters_to_estimate`) + * :samp:`params_opti`: list containing the values of each parameter to + estimate **in the same order as defined in the** + :samp:`parameters_to_estimate` **dictionary** (see + :ref:`parameters_to_estimate`) * :samp:`data_matrix`: numpy array containing the experimental data (or data with the same shape) * :samp:`time_vector`: numpy array containing the time points * :samp:`params_non_opti`: dictionary containing the fixed parameters (see :ref:`fixed_parameters`) Now you can start writing the body of the function. For sake of clarity, we recommend unpacking parameters values from the -list of parameters to estimate into internal variables. Th function *simulate* must return a matrix containing the simulation results, with the same shape as +list of parameters to estimate into internal variables. The function +*simulate* must return a matrix containing the simulation results, with the same shape as the matrix containing the experimental data. To initialize the simulated matrix, you can use the :samp:`empty_like` function from the numpy library: :: @@ -412,18 +425,17 @@ use the :samp:`empty_like` function from the numpy library: :: simulated_matrix = np.empty_like(data_matrix) # Get initial params - x_0 = params_opti[0] - mu = params_opti[1] + x_0 = parameters[0] + mu = parameters[1] # Get X_0 values exp_mu_t = np.exp(mu * time_vector) simulated_matrix[:, 0] = x_0 * exp_mu_t - fixed_params = [value for value in params_non_opti["Degradation"].values()] + fixed_params = [value for value in args[("Degradation constants")].values()] - # Get parameter names and run the calculations column by column - for i in range(1, int(len(params_opti) / 2)): - q = params_opti[i * 2] - m_0 = params_opti[i * 2 + 1] + for i in range(1, int(len(parameters) / 2)): + q = parameters[i * 2] + m_0 = parameters[i * 2 + 1] k = fixed_params[i - 1] exp_k_t = np.exp(-k * time_vector) simulated_matrix[:, i] = q * (x_0 / (mu + k)) \ @@ -465,10 +477,10 @@ function. The system of ODEs can be provided directly within the body of the sim def calculate_derivative(t, state, y_BM, y_P, km, qsmax): # get substrate and biomass concentrations - s_t = state[0] - x_t = state[1] + x_t = state[0] + s_t = state[1] - # calculate fluxes + # calculate fluxes at time t qs_t = qsmax * (s_t / (km + s_t)) mu_t = y_BM * qs_t qp_t = y_P * qs_t @@ -539,6 +551,71 @@ This will return the calculated flux values and associated statistics. .. note:: The test data and calculation parameters (e.g. standard deviations) defined in the test function must correspond to those expected for the new model. +**Simulate data from parameters** + +It is possible to simulate synthetic data using a set of predefined +parameters to then use this data to test the model or write unit tests. This +can be done by updating the parameters dictionary in the model with the +desired parameters. +The number of simulated data points is defined by the length of the input +dataframe (for which the actual data points do not matter): :: + + import pandas as pd + import numpy as np + from physiofit.base.io import IoHandler + + # Generate data to get shape of desired output + data = pd.DataFrame( + { + "time": np.arange(6, step=0.2), + "X": np.arange(6, step=0.2), + "Glucose": np.arange(6, step=0.2), + "Acetate": np.arange(6, step=0.2), + "Glutamate": np.arange(6, step=0.2), + } + ) + + # Initialize model + io = IoHandler() + model = io.select_model( + "Steady-state batch model", + data + ) + model.get_params() + + # Update parameters + model.parameters.update( + { + "X_0": 0.02, + "growth_rate": 0.8, + "Glucose_q": -8, + "Glucose_M0": 20, + "Acetate_q": 3, + "Acetate_M0": 0.01, + "Glutamate_q": 2, + "Glutamate_M0": 0.01 + } + ) + + sim_data = model.simulate( + list(model.parameters.values()), + model.data.drop("time", axis=1), + model.time_vector, + model.args + ) + df = pd.DataFrame( + data=sim_data, + index=model.time_vector, + columns=model.name_vector + ) + # give the index the name "time" + df.index.name = "time" + df.plot() # Visualize the simulated data + +The dataframe can then be used as input data for the model, and the model +can be tested as described above. + +**GUI integration** To test the integration of the model into the GUI, copy the :file:`.py` file in the folder :file:`models` of PhysioFit directory. You can get the path towards this folder by opening a python @@ -556,4 +633,5 @@ have a look to the error message and correct the code. .. note:: We would be happy to broaden the types of models shipped with PhysioFit. If you have developed a new model, it might be usefull and valuable to the fluxomics community! Please, keep in touch with us to discuss on the model and see if we can include your - model in the built-in models shipped with PhysioFit! :) \ No newline at end of file + model in the built-in models shipped with PhysioFit! :) + From 0e66d82b91ccc3de4c323c4f48af851a84d7911f Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 29 May 2024 12:57:07 +0200 Subject: [PATCH 092/114] Clean up FAQ --- docs/faq.rst | 47 ++++++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/docs/faq.rst b/docs/faq.rst index 6562e84..8cce97b 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -10,31 +10,39 @@ in the :doc:`method` section. How many measurements should I use to calculate fluxes? ------------------------------------------------------------------ -As in any model-based fitting procedure, more data usually means more accurate and precise flux estimates. The minimal number of -measurements depend on the model used for flux calculation. For instance, for steady-state built-in models provided with PhysioFit, we recommend using -at least 6 to 8 time points, which should provide reliable and meaningful estimates in most situations. - -Still, the exact answer to this question strongly depends on the uptake/production/growth rates of your (micro)organism -in the conditions you are investigating, on the sampling time interval, on the questions you are addressing, on the model used for flux calculation, and on -many other parameters! You can make some tests by calculating fluxes from (published or theoretical) datasets similar -to those you have in mind. +As in any model-based fitting procedure, more data usually means more +accurate and precise flux estimates. The minimal number of measurements +depend on the model used for flux calculation. For instance, for +steady-state built-in models provided with PhysioFit, we recommend using at +least 6 to 8 time points, which should provide reliable and meaningful +estimates in most situations. + +Still, the exact answer to this question strongly depends on the +uptake/production/growth rates of your (micro)organism in the conditions you +are investigating, on the sampling time interval, on the questions you are +addressing, on the model used for flux calculation, and on many other +parameters! You can make some tests by calculating fluxes from (published or +theoretical) datasets similar to those you have in mind. Can I calculate fluxes in case of missing values? ------------------------------------------------------------------ -Yes, fluxes can still be calculated if some measurement(s) are missing. In this case, let empty the corresponding field -of the input data file. +Yes, fluxes can still be calculated if some measurement(s) are missing. In +this case, leave empty the corresponding field of the input data file. .. _`conc units`: What units should be used for input data? ----------------------------------------- -Input data (biomass concentration, metabolites concentrations, and time) can be provided to PhysioFit using any unit. -Still, we recommand to use units for which values are as close to unity as possible to ensure numerical stability (e.g. -3 mM instead of 3.10\ :sup:`-3` M). Importantly, units of the estimated fluxes depend on units of time and metabolites and biomass -concentrations. The concentration of different metabolites can be provided using different units, but a single unit -must be used for all measurements of a given metabolite. +Input data (biomass concentration, metabolites concentrations, and time) can +be provided to PhysioFit using any unit. Still, we recommend using units +for which values are as close to unity as possible to ensure numerical +stability (e.g. 3 mM instead of 3.10\ :sup:`-3` M). Importantly, units of +the estimated fluxes depend on units of time and metabolites and biomass +concentrations. The concentration of different metabolites can be provided +using different units, but a single unit must be used for all measurements +of a given metabolite. .. seealso:: :ref:`flux units` @@ -82,7 +90,7 @@ is to use the AIC (Akaike Information Criterion). For more information, please refer to the section "Model comparison" from the :doc:`method` page. -How can I check if my data have been fitted correctly? +How can I check if my data has been fitted correctly? ------------------------------------------------------------------ The quality of the fit can be evaluated based on: @@ -119,7 +127,7 @@ potential biases that would be introduced by interpreting (or not) these flux values. In rare situations, it may also be because some parameters have to be -tweaked to help PhysioFit fitting the measurements, which results in +tweaked to help PhysioFit fit the measurements, which results in obviously aberrant fits (e.g. with flat time-course profiles for all metabolites). This might happen for instance if some measurements are provided in units far from unity (e.g. 1.10\ :sup:`-5` M instead of 10 µM). If @@ -148,8 +156,9 @@ Please follow this simple procedure: * If it is related to your system or your Python installation, you will need to ask some help from your local system administrator or your IT department so they could guide you toward a clean installation. Tell them that you wanted "to use the graphical - user interface of PhysioFit, a Python 3.6 software" and what you did so far (installation), - give them the traceback and a link toward the documentation. They should know what to do. + user interface of PhysioFit, a Python 3.9 software" and what you did so + far (installation), give them the traceback and a link toward the + documentation. They should know what to do. * If you believe the problem is in PhysioFit or that your local system administrator told you so, then you probably have found a bug! We would greatly appreciate if you could open a new issue on our `issue tracker `_. From ed8b8fbe2cfc9f630d1dfe183cf1250a89d24069 Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 29 May 2024 12:57:24 +0200 Subject: [PATCH 093/114] PEP8 --- docs/usage.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/usage.rst b/docs/usage.rst index e6da623..8aa99dd 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -89,8 +89,10 @@ with metabolite degradation model is selected: .. image:: _static/usage/example1.JPG -**Standard deviation** on measurements. As detailed in the methods section, reducing the standard deviation will increase the cost of the corresponding data during the -optimization, thereby forcing an improvement of the fit accuracy for this measurements, but degrading the goodness-of-fit for the +**Standard deviation** on measurements. As detailed in the methods section, +reducing the standard deviation will increase the cost of the corresponding +data during the optimization, thereby forcing an improvement of the fit +accuracy for this measurements, but degrading the goodness-of-fit for the other measurements. Finally, **Verbose logs**: Should debug information be written in log file. Useful in case of trouble (please join it From 1d492b748056f3c5cb2b57c255bde01be66c45d8 Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 29 May 2024 17:58:25 +0200 Subject: [PATCH 094/114] Rearranged the model testing section --- docs/models.rst | 103 ++++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 52 deletions(-) diff --git a/docs/models.rst b/docs/models.rst index 5c9804c..17ff7a4 100644 --- a/docs/models.rst +++ b/docs/models.rst @@ -515,42 +515,6 @@ behind this implementation can be found :ref:`here `. Test the model -------------- -Once you have completely populated your model file, you can now launch a round of simulations and optimizations in a -programmatic way: :: - - if __name__ == "__main__": - from physiofit.base.io import IoHandler - from physiofit.models.base_model import StandardDevs - - test_data = pd.DataFrame( - { - "time": [0, 1, 2, 3], - "experiments": ["A", "A", "A", "A"], - "X": [0.5, 0.8, 1.2, 1.8], - "Glucose": [12, 11.6, 11, 10.2] - } - ) - - io = IoHandler() - model = ChildModel(data=test_data) - model.get_params() - fitter = io.initialize_fitter( - model.data, - model=model, - mc=True, - iterations=100, - sd=StandardDevs({"X": 1, "Glucose": 1}), - debug_mode=True - ) - fitter.optimize() - fitter.monte_carlo_analysis() - fitter.khi2_test() - print(fitter.parameter_stats) - -This will return the calculated flux values and associated statistics. - -.. note:: The test data and calculation parameters (e.g. standard deviations) defined in the test function must correspond to those expected for the new model. - **Simulate data from parameters** It is possible to simulate synthetic data using a set of predefined @@ -581,21 +545,7 @@ dataframe (for which the actual data points do not matter): :: "Steady-state batch model", data ) - model.get_params() - - # Update parameters - model.parameters.update( - { - "X_0": 0.02, - "growth_rate": 0.8, - "Glucose_q": -8, - "Glucose_M0": 20, - "Acetate_q": 3, - "Acetate_M0": 0.01, - "Glutamate_q": 2, - "Glutamate_M0": 0.01 - } - ) + model.get_params() # Get default parameters for the model sim_data = model.simulate( list(model.parameters.values()), @@ -613,7 +563,56 @@ dataframe (for which the actual data points do not matter): :: df.plot() # Visualize the simulated data The dataframe can then be used as input data for the model, and the model -can be tested as described above. +can be tested as described above. If the parameters to use for the +simulation are not the ones given by default, you can always update the +associated model parameters using the built-in update method: :: + + model.parameters.update( + { + "X_0": 0.02, + "growth_rate": 0.8, + "Glucose_q": -8, + "Glucose_M0": 20, + "Acetate_q": 3, + "Acetate_M0": 0.01, + "Glutamate_q": 2, + "Glutamate_M0": 0.01 + } + ) + +**Parameter estimation** + +Once you have completely populated your model file and generated the +synthetic data,you can now launch the estimation of parameters: :: + + if __name__ == "__main__": + from physiofit.base.io import IoHandler + from physiofit.models.base_model import StandardDevs + + test_data = df.reset_index() # Use the simulated data from above + + io = IoHandler() + model = ChildModel(data=test_data) + model.get_params() + fitter = io.initialize_fitter( + model.data, + model=model, + mc=True, + iterations=100, + sd=StandardDevs({"X": 0.2, "Glucose": 0.2, "Acetate": 0.2, "Glutamate": 0.2}), + debug_mode=True + ) + fitter.optimize() + fitter.monte_carlo_analysis() + fitter.khi2_test() + print(fitter.parameter_stats) + +This will return the calculated flux values and associated statistics. +comparing the estimated parameters with the initial parameters used to +simulate the data will allow you to assess the quality of the model. This +process can be repeated with different sets of parameters to ensure the +robustness of the model. This code can then be used as unit tests for the +created model. **GUI integration** From fa1004a633b395f85458f7d0718e7e78564d1dce Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 29 May 2024 17:58:39 +0200 Subject: [PATCH 095/114] Set rtol back to 1e-3 --- physiofit/tests/test_monod_model.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/physiofit/tests/test_monod_model.py b/physiofit/tests/test_monod_model.py index 7f420a0..891e8b1 100644 --- a/physiofit/tests/test_monod_model.py +++ b/physiofit/tests/test_monod_model.py @@ -275,7 +275,7 @@ def test_monod_model(monod_model_sds, pyfoomb_simulated_data): assert np.allclose( b=list(optimized_params.values()), a=[0.01, 0.4, 1, 1.5, 20, 0.12, 0], - rtol=1e-2, + rtol=1e-3, atol=1e-2 ) @@ -304,6 +304,6 @@ def test_physiofit_simulations(parameters, placeholder_data, pd.testing.assert_frame_equal( df, pyfoomb_simulated_data, - rtol=1e-2, + rtol=1e-3, atol=1e-2 ) From c31f040f6866d2302dfbadc4e17f53a0e9986697 Mon Sep 17 00:00:00 2001 From: llegregam Date: Wed, 29 May 2024 18:06:05 +0200 Subject: [PATCH 096/114] minor changes to text for clarity --- docs/models.rst | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/docs/models.rst b/docs/models.rst index 17ff7a4..9e7df6c 100644 --- a/docs/models.rst +++ b/docs/models.rst @@ -517,12 +517,10 @@ Test the model **Simulate data from parameters** -It is possible to simulate synthetic data using a set of predefined -parameters to then use this data to test the model or write unit tests. This -can be done by updating the parameters dictionary in the model with the -desired parameters. -The number of simulated data points is defined by the length of the input -dataframe (for which the actual data points do not matter): :: +It is possible to simulate synthetic data using the model's default +parameters (or a set of predefined parameters) to asses the functionality of +the model. The number of simulated data points is defined by the length of +the input dataframe (for which the actual data points do not matter): :: import pandas as pd import numpy as np @@ -545,22 +543,28 @@ dataframe (for which the actual data points do not matter): :: "Steady-state batch model", data ) - model.get_params() # Get default parameters for the model + # Get default parameters for the model + model.get_params() + + # Simulate data sim_data = model.simulate( list(model.parameters.values()), model.data.drop("time", axis=1), model.time_vector, model.args ) + # Create a pretty visualisation of the data in a dataframe df = pd.DataFrame( data=sim_data, index=model.time_vector, columns=model.name_vector ) - # give the index the name "time" + # Give the index the name "time" for clarity df.index.name = "time" - df.plot() # Visualize the simulated data + + # Visualize the simulated data + df.plot() The dataframe can then be used as input data for the model, and the model can be tested as described above. If the parameters to use for the @@ -589,7 +593,8 @@ synthetic data,you can now launch the estimation of parameters: :: from physiofit.base.io import IoHandler from physiofit.models.base_model import StandardDevs - test_data = df.reset_index() # Use the simulated data from above + # Use the simulated data from above + test_data = df.reset_index() io = IoHandler() model = ChildModel(data=test_data) From 34cedeaacb725ff672b3c589f4fb63bda882756a Mon Sep 17 00:00:00 2001 From: pierremillard Date: Thu, 30 May 2024 09:49:12 +0200 Subject: [PATCH 097/114] update validation data --- validation/Supplementary_information.pdf | Bin 0 -> 553312 bytes validation/Validation.pdf | Bin 881215 -> 0 bytes .../models/Batch exponential steady-state.txt | 21 - validation/models/Monod_model/data.tsv | 10 - .../physiofit_results/config_file.yml | 25 - .../physiofit_results/flux_results.tsv | 8 - .../physiofit_results/stat_results.tsv | 11 - validation/models/Steady-state_model/data.txt | 14 - .../BW25113 \342\210\206ymjA.pdf" | Bin 21825 -> 0 bytes .../BW25113 \342\210\206ymjA_log.txt" | 195 - .../BW25113 \342\210\206ymjA_res.txt" | 21 - .../results/flux_results.tsv | 7 - .../results/stat_results.tsv | 11 - .../physiofit_results/summary.csv | 7 - .../models/Steady-state_model_deg/data.txt | 7 - .../physiofit_results/results/config_file.yml | 18 - .../results/flux_results.tsv | 5 - .../physiofit_results/summary.csv | 5 - validation/models/summary.xlsx | Bin 13570 -> 0 bytes .../Berges_2021/Berges_2021/WT BW.txt | 15 + .../Berges_2021/WT BW_res/KEIO_ROBOT5_48.pdf | Bin 0 -> 22170 bytes .../WT BW_res/KEIO_ROBOT5_48_log.txt | 200 + .../WT BW_res/KEIO_ROBOT5_48_res.txt | 21 + .../Berges_2021/Berges_2021/WT1.txt | 14 + .../Berges_2021/WT1_res/KEIO_ROBOT1_46.pdf | Bin 0 -> 21893 bytes .../WT1_res/KEIO_ROBOT1_46_log.txt | 195 + .../WT1_res/KEIO_ROBOT1_46_res.txt | 21 + .../Berges_2021/Berges_2021/WT2.txt | 9 + .../Berges_2021/WT2_res/KEIO_ROBOT2_46.pdf | Bin 0 -> 23701 bytes .../WT2_res/KEIO_ROBOT2_46_log.txt | 176 + .../WT2_res/KEIO_ROBOT2_46_res.txt | 23 + .../Berges_2021/Berges_2021/WT3.txt | 11 + .../Berges_2021/WT3_res/KEIO_ROBOT3_46.pdf | Bin 0 -> 21484 bytes .../WT3_res/KEIO_ROBOT3_46_log.txt | 180 + .../WT3_res/KEIO_ROBOT3_46_res.txt | 21 + .../Berges_2021/Berges_2021/WT4.txt | 14 + .../Berges_2021/WT4_res/KEIO_ROBOT4_40.pdf | Bin 0 -> 21803 bytes .../WT4_res/KEIO_ROBOT4_40_log.txt | 195 + .../WT4_res/KEIO_ROBOT4_40_res.txt | 21 + .../Berges_2021/Berges_2021/WT_BW_6_1.txt | 17 + .../WT_BW_6_1_res/KEIO_ROBOT6_1.pdf | Bin 0 -> 22539 bytes .../WT_BW_6_1_res/KEIO_ROBOT6_1_log.txt | 211 + .../WT_BW_6_1_res/KEIO_ROBOT6_1_res.txt | 21 + .../Berges_2021/Berges_2021/WT_BW_6_2.txt | 17 + .../WT_BW_6_2_res/KEIO_ROBOT6_2.pdf | Bin 0 -> 22391 bytes .../WT_BW_6_2_res/KEIO_ROBOT6_2_log.txt | 211 + .../WT_BW_6_2_res/KEIO_ROBOT6_2_res.txt | 21 + .../Berges_2021/Berges_2021/WT_BW_6_3.txt | 17 + .../WT_BW_6_3_res/KEIO_ROBOT6_3.pdf | Bin 0 -> 22396 bytes .../WT_BW_6_3_res/KEIO_ROBOT6_3_log.txt | 211 + .../WT_BW_6_3_res/KEIO_ROBOT6_3_res.txt | 21 + .../Berges_2021/Berges_2021/WT_BW_6_4.txt | 17 + .../WT_BW_6_4_res/KEIO_ROBOT6_4.pdf | Bin 0 -> 22408 bytes .../WT_BW_6_4_res/KEIO_ROBOT6_4_log.txt | 211 + .../WT_BW_6_4_res/KEIO_ROBOT6_4_res.txt | 21 + .../Berges_2021/Berges_2021/WT_MG_6_1.txt | 17 + .../WT_MG_6_1_res/KEIO_ROBOT6_5.pdf | Bin 0 -> 22314 bytes .../WT_MG_6_1_res/KEIO_ROBOT6_5_log.txt | 211 + .../WT_MG_6_1_res/KEIO_ROBOT6_5_res.txt | 21 + .../Berges_2021/Berges_2021/WT_MG_6_2.txt | 17 + .../WT_MG_6_2_res/KEIO_ROBOT6_6.pdf | Bin 0 -> 22563 bytes .../WT_MG_6_2_res/KEIO_ROBOT6_6_log.txt | 211 + .../WT_MG_6_2_res/KEIO_ROBOT6_6_res.txt | 21 + .../Berges_2021/Berges_2021/artI.txt | 11 + .../Berges_2021/artI_res/KEIO_ROBOT3_24.pdf | Bin 0 -> 21396 bytes .../artI_res/KEIO_ROBOT3_24_log.txt | 180 + .../artI_res/KEIO_ROBOT3_24_res.txt | 21 + .../Berges_2021/Berges_2021/hemX.txt | 11 + .../Berges_2021/hemX_res/KEIO_ROBOT3_18.pdf | Bin 0 -> 21470 bytes .../hemX_res/KEIO_ROBOT3_18_log.txt | 180 + .../hemX_res/KEIO_ROBOT3_18_res.txt | 21 + .../Berges_2021/Berges_2021/modF.txt | 11 + .../Berges_2021/modF_res/KEIO_ROBOT3_27.pdf | Bin 0 -> 21370 bytes .../modF_res/KEIO_ROBOT3_27_log.txt | 180 + .../modF_res/KEIO_ROBOT3_27_res.txt | 21 + .../Berges_2021/Berges_2021/nanE.txt | 11 + .../Berges_2021/nanE_res/KEIO_ROBOT3_19.pdf | Bin 0 -> 21335 bytes .../nanE_res/KEIO_ROBOT3_19_log.txt | 180 + .../nanE_res/KEIO_ROBOT3_19_res.txt | 21 + .../Berges_2021/Berges_2021/wbbJ.txt | 14 + .../Berges_2021/wbbJ_res/KEIO_ROBOT4_26.pdf | Bin 0 -> 21869 bytes .../wbbJ_res/KEIO_ROBOT4_26_log.txt | 195 + .../wbbJ_res/KEIO_ROBOT4_26_res.txt | 21 + .../Berges_2021/Berges_2021/yacC.txt | 15 + .../Berges_2021/yacC_res/KEIO_ROBOT5_1.pdf | Bin 0 -> 22106 bytes .../yacC_res/KEIO_ROBOT5_1_log.txt | 200 + .../yacC_res/KEIO_ROBOT5_1_res.txt | 21 + .../Berges_2021/Berges_2021/yadG.txt | 11 + .../Berges_2021/yadG_res/KEIO_ROBOT3_15.pdf | Bin 0 -> 21349 bytes .../yadG_res/KEIO_ROBOT3_15_log.txt | 180 + .../yadG_res/KEIO_ROBOT3_15_res.txt | 21 + .../Berges_2021/Berges_2021/yaeR.txt | 9 + .../Berges_2021/yaeR_res/KEIO_ROBOT2_8.pdf | Bin 0 -> 23740 bytes .../yaeR_res/KEIO_ROBOT2_8_log.txt | 176 + .../yaeR_res/KEIO_ROBOT2_8_res.txt | 23 + .../Berges_2021/Berges_2021/yafJ.txt | 9 + .../Berges_2021/yafJ_res/KEIO_ROBOT2_17.pdf | Bin 0 -> 23631 bytes .../yafJ_res/KEIO_ROBOT2_17_log.txt | 176 + .../yafJ_res/KEIO_ROBOT2_17_res.txt | 23 + .../Berges_2021/Berges_2021/yahJ.txt | 11 + .../Berges_2021/yahJ_res/KEIO_ROBOT3_31.pdf | Bin 0 -> 21509 bytes .../yahJ_res/KEIO_ROBOT3_31_log.txt | 180 + .../yahJ_res/KEIO_ROBOT3_31_res.txt | 21 + .../Berges_2021/Berges_2021/yahO.txt | 14 + .../Berges_2021/yahO_res/KEIO_ROBOT1_42.pdf | Bin 0 -> 21767 bytes .../yahO_res/KEIO_ROBOT1_42_log.txt | 195 + .../yahO_res/KEIO_ROBOT1_42_res.txt | 21 + .../Berges_2021/Berges_2021/yaiA.txt | 14 + .../Berges_2021/yaiA_res/KEIO_ROBOT1_43.pdf | Bin 0 -> 21909 bytes .../yaiA_res/KEIO_ROBOT1_43_log.txt | 195 + .../yaiA_res/KEIO_ROBOT1_43_res.txt | 21 + .../Berges_2021/Berges_2021/yaiL.txt | 14 + .../Berges_2021/yaiL_res/KEIO_ROBOT4_22.pdf | Bin 0 -> 21781 bytes .../yaiL_res/KEIO_ROBOT4_22_log.txt | 195 + .../yaiL_res/KEIO_ROBOT4_22_res.txt | 21 + .../Berges_2021/Berges_2021/yajD.txt | 14 + .../Berges_2021/yajD_res/KEIO_ROBOT1_37.pdf | Bin 0 -> 21623 bytes .../yajD_res/KEIO_ROBOT1_37_log.txt | 195 + .../yajD_res/KEIO_ROBOT1_37_res.txt | 21 + .../Berges_2021/Berges_2021/yajG.txt | 9 + .../Berges_2021/yajG_res/KEIO_ROBOT2_22.pdf | Bin 0 -> 23727 bytes .../yajG_res/KEIO_ROBOT2_22_log.txt | 176 + .../yajG_res/KEIO_ROBOT2_22_res.txt | 23 + .../Berges_2021/Berges_2021/yajO.txt | 15 + .../Berges_2021/yajO_res/KEIO_ROBOT5_15.pdf | Bin 0 -> 22248 bytes .../yajO_res/KEIO_ROBOT5_15_log.txt | 200 + .../yajO_res/KEIO_ROBOT5_15_res.txt | 21 + .../Berges_2021/Berges_2021/ybaQ.txt | 9 + .../Berges_2021/ybaQ_res/KEIO_ROBOT2_6.pdf | Bin 0 -> 23716 bytes .../ybaQ_res/KEIO_ROBOT2_6_log.txt | 176 + .../ybaQ_res/KEIO_ROBOT2_6_res.txt | 23 + .../Berges_2021/Berges_2021/ybaY.txt | 9 + .../Berges_2021/ybaY_res/KEIO_ROBOT2_24.pdf | Bin 0 -> 23742 bytes .../ybaY_res/KEIO_ROBOT2_24_log.txt | 176 + .../ybaY_res/KEIO_ROBOT2_24_res.txt | 23 + .../Berges_2021/Berges_2021/ybbA.txt | 11 + .../Berges_2021/ybbA_res/KEIO_ROBOT3_17.pdf | Bin 0 -> 21539 bytes .../ybbA_res/KEIO_ROBOT3_17_log.txt | 180 + .../ybbA_res/KEIO_ROBOT3_17_res.txt | 21 + .../Berges_2021/Berges_2021/ybcJ.txt | 14 + .../Berges_2021/ybcJ_res/KEIO_ROBOT4_13.pdf | Bin 0 -> 21965 bytes .../ybcJ_res/KEIO_ROBOT4_13_log.txt | 195 + .../ybcJ_res/KEIO_ROBOT4_13_res.txt | 21 + .../Berges_2021/Berges_2021/ybdH.txt | 9 + .../Berges_2021/ybdH_res/KEIO_ROBOT2_28.pdf | Bin 0 -> 23927 bytes .../ybdH_res/KEIO_ROBOT2_28_log.txt | 176 + .../ybdH_res/KEIO_ROBOT2_28_res.txt | 23 + .../Berges_2021/Berges_2021/ybeL.txt | 14 + .../Berges_2021/ybeL_res/KEIO_ROBOT1_34.pdf | Bin 0 -> 21836 bytes .../ybeL_res/KEIO_ROBOT1_34_log.txt | 195 + .../ybeL_res/KEIO_ROBOT1_34_res.txt | 21 + .../Berges_2021/Berges_2021/ybfE.txt | 14 + .../Berges_2021/ybfE_res/KEIO_ROBOT4_27.pdf | Bin 0 -> 21966 bytes .../ybfE_res/KEIO_ROBOT4_27_log.txt | 195 + .../ybfE_res/KEIO_ROBOT4_27_res.txt | 21 + .../Berges_2021/Berges_2021/ybgJ.txt | 15 + .../Berges_2021/ybgJ_res/KEIO_ROBOT5_14.pdf | Bin 0 -> 22030 bytes .../ybgJ_res/KEIO_ROBOT5_14_log.txt | 200 + .../ybgJ_res/KEIO_ROBOT5_14_res.txt | 21 + .../Berges_2021/Berges_2021/ybgK.txt | 9 + .../Berges_2021/ybgK_res/KEIO_ROBOT2_15.pdf | Bin 0 -> 23607 bytes .../ybgK_res/KEIO_ROBOT2_15_log.txt | 176 + .../ybgK_res/KEIO_ROBOT2_15_res.txt | 23 + .../Berges_2021/Berges_2021/ybgS.txt | 14 + .../Berges_2021/ybgS_res/KEIO_ROBOT1_40.pdf | Bin 0 -> 21958 bytes .../ybgS_res/KEIO_ROBOT1_40_log.txt | 195 + .../ybgS_res/KEIO_ROBOT1_40_res.txt | 21 + .../Berges_2021/Berges_2021/ybhC.txt | 14 + .../Berges_2021/ybhC_res/KEIO_ROBOT1_3.pdf | Bin 0 -> 21825 bytes .../ybhC_res/KEIO_ROBOT1_3_log.txt | 195 + .../ybhC_res/KEIO_ROBOT1_3_res.txt | 21 + .../Berges_2021/Berges_2021/ybiB.txt | 9 + .../Berges_2021/ybiB_res/KEIO_ROBOT2_16.pdf | Bin 0 -> 24044 bytes .../ybiB_res/KEIO_ROBOT2_16_log.txt | 176 + .../ybiB_res/KEIO_ROBOT2_16_res.txt | 23 + .../Berges_2021/Berges_2021/ybiC.txt | 9 + .../Berges_2021/ybiC_res/KEIO_ROBOT2_42.pdf | Bin 0 -> 23946 bytes .../ybiC_res/KEIO_ROBOT2_42_log.txt | 176 + .../ybiC_res/KEIO_ROBOT2_42_res.txt | 23 + .../Berges_2021/Berges_2021/ybiH.txt | 11 + .../Berges_2021/ybiH_res/KEIO_ROBOT3_28.pdf | Bin 0 -> 21261 bytes .../ybiH_res/KEIO_ROBOT3_28_log.txt | 180 + .../ybiH_res/KEIO_ROBOT3_28_res.txt | 21 + .../Berges_2021/Berges_2021/ybiJ.txt | 14 + .../Berges_2021/ybiJ_res/KEIO_ROBOT1_36.pdf | Bin 0 -> 21773 bytes .../ybiJ_res/KEIO_ROBOT1_36_log.txt | 195 + .../ybiJ_res/KEIO_ROBOT1_36_res.txt | 21 + .../Berges_2021/Berges_2021/ybiT.txt | 11 + .../Berges_2021/ybiT_res/KEIO_ROBOT3_25.pdf | Bin 0 -> 21324 bytes .../ybiT_res/KEIO_ROBOT3_25_log.txt | 180 + .../ybiT_res/KEIO_ROBOT3_25_res.txt | 21 + .../Berges_2021/Berges_2021/ybiU.txt | 14 + .../Berges_2021/ybiU_res/KEIO_ROBOT1_38.pdf | Bin 0 -> 21846 bytes .../ybiU_res/KEIO_ROBOT1_38_log.txt | 195 + .../ybiU_res/KEIO_ROBOT1_38_res.txt | 21 + .../Berges_2021/Berges_2021/ybjP_2.txt | 15 + .../Berges_2021/ybjP_2_res/KEIO_ROBOT5_17.pdf | Bin 0 -> 22120 bytes .../ybjP_2_res/KEIO_ROBOT5_17_log.txt | 200 + .../ybjP_2_res/KEIO_ROBOT5_17_res.txt | 21 + .../Berges_2021/Berges_2021/ybjS.txt | 14 + .../Berges_2021/ybjS_res/KEIO_ROBOT4_30.pdf | Bin 0 -> 21775 bytes .../ybjS_res/KEIO_ROBOT4_30_log.txt | 195 + .../ybjS_res/KEIO_ROBOT4_30_res.txt | 21 + .../Berges_2021/Berges_2021/ybjX.txt | 9 + .../Berges_2021/ybjX_res/KEIO_ROBOT2_5.pdf | Bin 0 -> 23986 bytes .../ybjX_res/KEIO_ROBOT2_5_log.txt | 176 + .../ybjX_res/KEIO_ROBOT2_5_res.txt | 23 + .../Berges_2021/Berges_2021/ycaC.txt | 9 + .../Berges_2021/ycaC_res/KEIO_ROBOT2_19.pdf | Bin 0 -> 23985 bytes .../ycaC_res/KEIO_ROBOT2_19_log.txt | 176 + .../ycaC_res/KEIO_ROBOT2_19_res.txt | 23 + .../Berges_2021/Berges_2021/ycbZ.txt | 9 + .../Berges_2021/ycbZ_res/KEIO_ROBOT2_32.pdf | Bin 0 -> 23732 bytes .../ycbZ_res/KEIO_ROBOT2_32_log.txt | 176 + .../ycbZ_res/KEIO_ROBOT2_32_res.txt | 23 + .../Berges_2021/Berges_2021/yccJ.txt | 14 + .../Berges_2021/yccJ_res/KEIO_ROBOT1_27.pdf | Bin 0 -> 21928 bytes .../yccJ_res/KEIO_ROBOT1_27_log.txt | 195 + .../yccJ_res/KEIO_ROBOT1_27_res.txt | 21 + .../Berges_2021/Berges_2021/yccU.txt | 14 + .../Berges_2021/yccU_res/KEIO_ROBOT4_11.pdf | Bin 0 -> 21794 bytes .../yccU_res/KEIO_ROBOT4_11_log.txt | 195 + .../yccU_res/KEIO_ROBOT4_11_res.txt | 21 + .../Berges_2021/Berges_2021/ycdX.txt | 9 + .../Berges_2021/ycdX_res/KEIO_ROBOT2_7.pdf | Bin 0 -> 23590 bytes .../ycdX_res/KEIO_ROBOT2_7_log.txt | 176 + .../ycdX_res/KEIO_ROBOT2_7_res.txt | 23 + .../Berges_2021/Berges_2021/ycdY.txt | 14 + .../Berges_2021/ycdY_res/KEIO_ROBOT1_35.pdf | Bin 0 -> 21797 bytes .../ycdY_res/KEIO_ROBOT1_35_log.txt | 195 + .../ycdY_res/KEIO_ROBOT1_35_res.txt | 21 + .../Berges_2021/Berges_2021/yceB.txt | 14 + .../Berges_2021/yceB_res/KEIO_ROBOT1_28.pdf | Bin 0 -> 21837 bytes .../yceB_res/KEIO_ROBOT1_28_log.txt | 195 + .../yceB_res/KEIO_ROBOT1_28_res.txt | 21 + .../Berges_2021/Berges_2021/yceD.txt | 14 + .../Berges_2021/yceD_res/KEIO_ROBOT1_39.pdf | Bin 0 -> 21796 bytes .../yceD_res/KEIO_ROBOT1_39_log.txt | 195 + .../yceD_res/KEIO_ROBOT1_39_res.txt | 21 + .../Berges_2021/Berges_2021/ycfH.txt | 9 + .../Berges_2021/ycfH_res/KEIO_ROBOT2_12.pdf | Bin 0 -> 23813 bytes .../ycfH_res/KEIO_ROBOT2_12_log.txt | 176 + .../ycfH_res/KEIO_ROBOT2_12_res.txt | 23 + .../Berges_2021/Berges_2021/ycgJ.txt | 14 + .../Berges_2021/ycgJ_res/KEIO_ROBOT4_38.pdf | Bin 0 -> 21892 bytes .../ycgJ_res/KEIO_ROBOT4_38_log.txt | 195 + .../ycgJ_res/KEIO_ROBOT4_38_res.txt | 21 + .../Berges_2021/Berges_2021/ycgM.txt | 9 + .../Berges_2021/ycgM_res/KEIO_ROBOT2_13.pdf | Bin 0 -> 23677 bytes .../ycgM_res/KEIO_ROBOT2_13_log.txt | 176 + .../ycgM_res/KEIO_ROBOT2_13_res.txt | 23 + .../Berges_2021/Berges_2021/yciK.txt | 11 + .../Berges_2021/yciK_res/KEIO_ROBOT3_20.pdf | Bin 0 -> 21356 bytes .../yciK_res/KEIO_ROBOT3_20_log.txt | 180 + .../yciK_res/KEIO_ROBOT3_20_res.txt | 21 + .../Berges_2021/Berges_2021/yciO.txt | 14 + .../Berges_2021/yciO_res/KEIO_ROBOT4_9.pdf | Bin 0 -> 21840 bytes .../yciO_res/KEIO_ROBOT4_9_log.txt | 195 + .../yciO_res/KEIO_ROBOT4_9_res.txt | 21 + .../Berges_2021/Berges_2021/yciW.txt | 14 + .../Berges_2021/yciW_res/KEIO_ROBOT4_12.pdf | Bin 0 -> 21952 bytes .../yciW_res/KEIO_ROBOT4_12_log.txt | 195 + .../yciW_res/KEIO_ROBOT4_12_res.txt | 21 + .../Berges_2021/Berges_2021/ycjW.txt | 11 + .../Berges_2021/ycjW_res/KEIO_ROBOT3_22.pdf | Bin 0 -> 21370 bytes .../ycjW_res/KEIO_ROBOT3_22_log.txt | 180 + .../ycjW_res/KEIO_ROBOT3_22_res.txt | 21 + .../Berges_2021/Berges_2021/ycjX.txt | 14 + .../Berges_2021/ycjX_res/KEIO_ROBOT5_11.pdf | Bin 0 -> 22080 bytes .../ycjX_res/KEIO_ROBOT5_11_log.txt | 195 + .../ycjX_res/KEIO_ROBOT5_11_res.txt | 21 + .../Berges_2021/Berges_2021/ydbC.txt | 9 + .../Berges_2021/ydbC_res/KEIO_ROBOT2_31.pdf | Bin 0 -> 23813 bytes .../ydbC_res/KEIO_ROBOT2_31_log.txt | 176 + .../ydbC_res/KEIO_ROBOT2_31_res.txt | 23 + .../Berges_2021/Berges_2021/ydbL.txt | 14 + .../Berges_2021/ydbL_res/KEIO_ROBOT4_14.pdf | Bin 0 -> 21856 bytes .../ydbL_res/KEIO_ROBOT4_14_log.txt | 195 + .../ydbL_res/KEIO_ROBOT4_14_res.txt | 21 + .../Berges_2021/Berges_2021/ydcH.txt | 14 + .../Berges_2021/ydcH_res/KEIO_ROBOT4_34.pdf | Bin 0 -> 21909 bytes .../ydcH_res/KEIO_ROBOT4_34_log.txt | 195 + .../ydcH_res/KEIO_ROBOT4_34_res.txt | 21 + .../Berges_2021/Berges_2021/ydcI.txt | 14 + .../Berges_2021/ydcI_res/KEIO_ROBOT4_10.pdf | Bin 0 -> 21919 bytes .../ydcI_res/KEIO_ROBOT4_10_log.txt | 195 + .../ydcI_res/KEIO_ROBOT4_10_res.txt | 21 + .../Berges_2021/Berges_2021/ydcJ.txt | 15 + .../Berges_2021/ydcJ_res/KEIO_ROBOT5_2.pdf | Bin 0 -> 22208 bytes .../ydcJ_res/KEIO_ROBOT5_2_log.txt | 200 + .../ydcJ_res/KEIO_ROBOT5_2_res.txt | 21 + .../Berges_2021/Berges_2021/ydcL.txt | 14 + .../Berges_2021/ydcL_res/KEIO_ROBOT1_33.pdf | Bin 0 -> 21837 bytes .../ydcL_res/KEIO_ROBOT1_33_log.txt | 195 + .../ydcL_res/KEIO_ROBOT1_33_res.txt | 21 + .../Berges_2021/Berges_2021/ydcP.txt | 14 + .../Berges_2021/ydcP_res/KEIO_ROBOT1_5.pdf | Bin 0 -> 21795 bytes .../ydcP_res/KEIO_ROBOT1_5_log.txt | 195 + .../ydcP_res/KEIO_ROBOT1_5_res.txt | 21 + .../Berges_2021/Berges_2021/ydcS.txt | 9 + .../Berges_2021/Berges_2021/ydcS_2.txt | 15 + .../Berges_2021/ydcS_2_res/KEIO_ROBOT5_12.pdf | Bin 0 -> 22297 bytes .../ydcS_2_res/KEIO_ROBOT5_12_log.txt | 200 + .../ydcS_2_res/KEIO_ROBOT5_12_res.txt | 21 + .../Berges_2021/ydcS_res/KEIO_ROBOT2_10.pdf | Bin 0 -> 23962 bytes .../ydcS_res/KEIO_ROBOT2_10_log.txt | 176 + .../ydcS_res/KEIO_ROBOT2_10_res.txt | 23 + .../Berges_2021/Berges_2021/ydcY.txt | 14 + .../Berges_2021/ydcY_res/KEIO_ROBOT1_29.pdf | Bin 0 -> 21802 bytes .../ydcY_res/KEIO_ROBOT1_29_log.txt | 195 + .../ydcY_res/KEIO_ROBOT1_29_res.txt | 21 + .../Berges_2021/Berges_2021/yddE.txt | 15 + .../Berges_2021/yddE_res/KEIO_ROBOT5_13.pdf | Bin 0 -> 22270 bytes .../yddE_res/KEIO_ROBOT5_13_log.txt | 200 + .../yddE_res/KEIO_ROBOT5_13_res.txt | 21 + .../Berges_2021/Berges_2021/yddM.txt | 14 + .../Berges_2021/yddM_res/KEIO_ROBOT4_28.pdf | Bin 0 -> 21944 bytes .../yddM_res/KEIO_ROBOT4_28_log.txt | 195 + .../yddM_res/KEIO_ROBOT4_28_res.txt | 21 + .../Berges_2021/Berges_2021/ydeI.txt | 9 + .../Berges_2021/ydeI_res/KEIO_ROBOT2_2.pdf | Bin 0 -> 23852 bytes .../ydeI_res/KEIO_ROBOT2_2_log.txt | 176 + .../ydeI_res/KEIO_ROBOT2_2_res.txt | 23 + .../Berges_2021/Berges_2021/ydeN.txt | 14 + .../Berges_2021/ydeN_res/KEIO_ROBOT4_19.pdf | Bin 0 -> 21779 bytes .../ydeN_res/KEIO_ROBOT4_19_log.txt | 195 + .../ydeN_res/KEIO_ROBOT4_19_res.txt | 21 + .../Berges_2021/Berges_2021/ydfH.txt | 15 + .../Berges_2021/ydfH_res/KEIO_ROBOT5_18.pdf | Bin 0 -> 22129 bytes .../ydfH_res/KEIO_ROBOT5_18_log.txt | 200 + .../ydfH_res/KEIO_ROBOT5_18_res.txt | 21 + .../Berges_2021/Berges_2021/ydfW.txt | 14 + .../Berges_2021/ydfW_res/KEIO_ROBOT4_35.pdf | Bin 0 -> 21905 bytes .../ydfW_res/KEIO_ROBOT4_35_log.txt | 195 + .../ydfW_res/KEIO_ROBOT4_35_res.txt | 21 + .../Berges_2021/Berges_2021/ydfZ.txt | 14 + .../Berges_2021/ydfZ_res/KEIO_ROBOT1_41.pdf | Bin 0 -> 21798 bytes .../ydfZ_res/KEIO_ROBOT1_41_log.txt | 195 + .../ydfZ_res/KEIO_ROBOT1_41_res.txt | 21 + .../Berges_2021/Berges_2021/ydgJ.txt | 14 + .../Berges_2021/ydgJ_res/KEIO_ROBOT4_15.pdf | Bin 0 -> 21732 bytes .../ydgJ_res/KEIO_ROBOT4_15_log.txt | 195 + .../ydgJ_res/KEIO_ROBOT4_15_res.txt | 21 + .../Berges_2021/Berges_2021/ydhR.txt | 14 + .../Berges_2021/ydhR_res/KEIO_ROBOT1_21.pdf | Bin 0 -> 21962 bytes .../ydhR_res/KEIO_ROBOT1_21_log.txt | 195 + .../ydhR_res/KEIO_ROBOT1_21_res.txt | 21 + .../Berges_2021/Berges_2021/ydhS.txt | 14 + .../Berges_2021/ydhS_res/KEIO_ROBOT1_24.pdf | Bin 0 -> 21805 bytes .../ydhS_res/KEIO_ROBOT1_24_log.txt | 195 + .../ydhS_res/KEIO_ROBOT1_24_res.txt | 21 + .../Berges_2021/Berges_2021/ydhZ.txt | 14 + .../Berges_2021/ydhZ_res/KEIO_ROBOT4_25.pdf | Bin 0 -> 21502 bytes .../ydhZ_res/KEIO_ROBOT4_25_log.txt | 195 + .../ydhZ_res/KEIO_ROBOT4_25_res.txt | 21 + .../Berges_2021/Berges_2021/ydiH.txt | 14 + .../Berges_2021/ydiH_res/KEIO_ROBOT1_14.pdf | Bin 0 -> 21863 bytes .../ydiH_res/KEIO_ROBOT1_14_log.txt | 195 + .../ydiH_res/KEIO_ROBOT1_14_res.txt | 21 + .../Berges_2021/Berges_2021/ydiJ.txt | 9 + .../Berges_2021/ydiJ_res/KEIO_ROBOT2_35.pdf | Bin 0 -> 23845 bytes .../ydiJ_res/KEIO_ROBOT2_35_log.txt | 176 + .../ydiJ_res/KEIO_ROBOT2_35_res.txt | 23 + .../Berges_2021/Berges_2021/ydiZ.txt | 9 + .../Berges_2021/ydiZ_res/KEIO_ROBOT2_37.pdf | Bin 0 -> 23601 bytes .../ydiZ_res/KEIO_ROBOT2_37_log.txt | 176 + .../ydiZ_res/KEIO_ROBOT2_37_res.txt | 23 + .../Berges_2021/Berges_2021/ydjA.txt | 9 + .../Berges_2021/ydjA_res/KEIO_ROBOT2_3.pdf | Bin 0 -> 23885 bytes .../ydjA_res/KEIO_ROBOT2_3_log.txt | 176 + .../ydjA_res/KEIO_ROBOT2_3_res.txt | 23 + .../Berges_2021/Berges_2021/ydjF.txt | 9 + .../Berges_2021/ydjF_res/KEIO_ROBOT2_29.pdf | Bin 0 -> 23735 bytes .../ydjF_res/KEIO_ROBOT2_29_log.txt | 176 + .../ydjF_res/KEIO_ROBOT2_29_res.txt | 23 + .../Berges_2021/Berges_2021/yeaC.txt | 14 + .../Berges_2021/yeaC_res/KEIO_ROBOT1_17.pdf | Bin 0 -> 21742 bytes .../yeaC_res/KEIO_ROBOT1_17_log.txt | 195 + .../yeaC_res/KEIO_ROBOT1_17_res.txt | 21 + .../Berges_2021/Berges_2021/yeaD.txt | 14 + .../Berges_2021/yeaD_res/KEIO_ROBOT4_23.pdf | Bin 0 -> 21940 bytes .../yeaD_res/KEIO_ROBOT4_23_log.txt | 195 + .../yeaD_res/KEIO_ROBOT4_23_res.txt | 21 + .../Berges_2021/Berges_2021/yeaG.txt | 9 + .../Berges_2021/yeaG_res/KEIO_ROBOT2_36.pdf | Bin 0 -> 23798 bytes .../yeaG_res/KEIO_ROBOT2_36_log.txt | 176 + .../yeaG_res/KEIO_ROBOT2_36_res.txt | 23 + .../Berges_2021/Berges_2021/yeaO.txt | 15 + .../Berges_2021/yeaO_res/KEIO_ROBOT5_3.pdf | Bin 0 -> 22332 bytes .../yeaO_res/KEIO_ROBOT5_3_log.txt | 200 + .../yeaO_res/KEIO_ROBOT5_3_res.txt | 21 + .../Berges_2021/Berges_2021/yeaY.txt | 14 + .../Berges_2021/yeaY_res/KEIO_ROBOT1_4.pdf | Bin 0 -> 21917 bytes .../yeaY_res/KEIO_ROBOT1_4_log.txt | 195 + .../yeaY_res/KEIO_ROBOT1_4_res.txt | 21 + .../Berges_2021/Berges_2021/yebG.txt | 14 + .../Berges_2021/yebG_res/KEIO_ROBOT1_12.pdf | Bin 0 -> 21787 bytes .../yebG_res/KEIO_ROBOT1_12_log.txt | 195 + .../yebG_res/KEIO_ROBOT1_12_res.txt | 21 + .../Berges_2021/Berges_2021/yebO.txt | 14 + .../Berges_2021/yebO_res/KEIO_ROBOT1_15.pdf | Bin 0 -> 21827 bytes .../yebO_res/KEIO_ROBOT1_15_log.txt | 195 + .../yebO_res/KEIO_ROBOT1_15_res.txt | 21 + .../Berges_2021/Berges_2021/yebT.txt | 9 + .../Berges_2021/yebT_res/KEIO_ROBOT2_26.pdf | Bin 0 -> 23722 bytes .../yebT_res/KEIO_ROBOT2_26_log.txt | 176 + .../yebT_res/KEIO_ROBOT2_26_res.txt | 23 + .../Berges_2021/Berges_2021/yebV.txt | 14 + .../Berges_2021/yebV_res/KEIO_ROBOT4_20.pdf | Bin 0 -> 21682 bytes .../yebV_res/KEIO_ROBOT4_20_log.txt | 195 + .../yebV_res/KEIO_ROBOT4_20_res.txt | 21 + .../Berges_2021/Berges_2021/yebY.txt | 14 + .../Berges_2021/yebY_res/KEIO_ROBOT1_19.pdf | Bin 0 -> 21786 bytes .../yebY_res/KEIO_ROBOT1_19_log.txt | 195 + .../yebY_res/KEIO_ROBOT1_19_res.txt | 21 + .../Berges_2021/Berges_2021/yecA.txt | 9 + .../Berges_2021/yecA_res/KEIO_ROBOT2_18.pdf | Bin 0 -> 23916 bytes .../yecA_res/KEIO_ROBOT2_18_log.txt | 176 + .../yecA_res/KEIO_ROBOT2_18_res.txt | 23 + .../Berges_2021/Berges_2021/yecF.txt | 14 + .../Berges_2021/yecF_res/KEIO_ROBOT1_13.pdf | Bin 0 -> 21814 bytes .../yecF_res/KEIO_ROBOT1_13_log.txt | 195 + .../yecF_res/KEIO_ROBOT1_13_res.txt | 21 + .../Berges_2021/Berges_2021/yecJ.txt | 14 + .../Berges_2021/yecJ_res/KEIO_ROBOT1_22.pdf | Bin 0 -> 21828 bytes .../yecJ_res/KEIO_ROBOT1_22_log.txt | 195 + .../yecJ_res/KEIO_ROBOT1_22_res.txt | 21 + .../Berges_2021/Berges_2021/yecR.txt | 14 + .../Berges_2021/yecR_res/KEIO_ROBOT1_25.pdf | Bin 0 -> 21858 bytes .../yecR_res/KEIO_ROBOT1_25_log.txt | 195 + .../yecR_res/KEIO_ROBOT1_25_res.txt | 21 + .../Berges_2021/Berges_2021/yedD.txt | 15 + .../Berges_2021/yedD_res/KEIO_ROBOT5_8.pdf | Bin 0 -> 22264 bytes .../yedD_res/KEIO_ROBOT5_8_log.txt | 200 + .../yedD_res/KEIO_ROBOT5_8_res.txt | 21 + .../Berges_2021/Berges_2021/yedV.txt | 14 + .../Berges_2021/yedV_res/KEIO_ROBOT1_1.pdf | Bin 0 -> 21511 bytes .../yedV_res/KEIO_ROBOT1_1_log.txt | 195 + .../yedV_res/KEIO_ROBOT1_1_res.txt | 21 + .../Berges_2021/Berges_2021/yegD.txt | 14 + .../Berges_2021/yegD_res/KEIO_ROBOT4_24.pdf | Bin 0 -> 21730 bytes .../yegD_res/KEIO_ROBOT4_24_log.txt | 195 + .../yegD_res/KEIO_ROBOT4_24_res.txt | 21 + .../Berges_2021/Berges_2021/yegQ.txt | 14 + .../Berges_2021/yegQ_res/KEIO_ROBOT1_10.pdf | Bin 0 -> 21799 bytes .../yegQ_res/KEIO_ROBOT1_10_log.txt | 195 + .../yegQ_res/KEIO_ROBOT1_10_res.txt | 21 + .../Berges_2021/Berges_2021/yehS.txt | 14 + .../Berges_2021/yehS_res/KEIO_ROBOT1_26.pdf | Bin 0 -> 21800 bytes .../yehS_res/KEIO_ROBOT1_26_log.txt | 195 + .../yehS_res/KEIO_ROBOT1_26_res.txt | 21 + .../Berges_2021/Berges_2021/yeiR.txt | 9 + .../Berges_2021/yeiR_res/KEIO_ROBOT2_9.pdf | Bin 0 -> 23804 bytes .../yeiR_res/KEIO_ROBOT2_9_log.txt | 176 + .../yeiR_res/KEIO_ROBOT2_9_res.txt | 23 + .../Berges_2021/Berges_2021/yejF.txt | 15 + .../Berges_2021/yejF_res/KEIO_ROBOT5_16.pdf | Bin 0 -> 22172 bytes .../yejF_res/KEIO_ROBOT5_16_log.txt | 200 + .../yejF_res/KEIO_ROBOT5_16_res.txt | 21 + .../Berges_2021/Berges_2021/yfaT.txt | 14 + .../Berges_2021/yfaT_res/KEIO_ROBOT1_9.pdf | Bin 0 -> 21905 bytes .../yfaT_res/KEIO_ROBOT1_9_log.txt | 195 + .../yfaT_res/KEIO_ROBOT1_9_res.txt | 21 + .../Berges_2021/Berges_2021/yfcD.txt | 14 + .../Berges_2021/yfcD_res/KEIO_ROBOT1_6.pdf | Bin 0 -> 21908 bytes .../yfcD_res/KEIO_ROBOT1_6_log.txt | 195 + .../yfcD_res/KEIO_ROBOT1_6_res.txt | 21 + .../Berges_2021/Berges_2021/yfcL.txt | 14 + .../Berges_2021/yfcL_res/KEIO_ROBOT1_8.pdf | Bin 0 -> 21913 bytes .../yfcL_res/KEIO_ROBOT1_8_log.txt | 195 + .../yfcL_res/KEIO_ROBOT1_8_res.txt | 21 + .../Berges_2021/Berges_2021/yfdI.txt | 14 + .../Berges_2021/yfdI_res/KEIO_ROBOT4_2.pdf | Bin 0 -> 21739 bytes .../yfdI_res/KEIO_ROBOT4_2_log.txt | 195 + .../yfdI_res/KEIO_ROBOT4_2_res.txt | 21 + .../Berges_2021/Berges_2021/yfeC.txt | 15 + .../Berges_2021/yfeC_res/KEIO_ROBOT5_7.pdf | Bin 0 -> 22248 bytes .../yfeC_res/KEIO_ROBOT5_7_log.txt | 200 + .../yfeC_res/KEIO_ROBOT5_7_res.txt | 21 + .../Berges_2021/Berges_2021/yfeY.txt | 14 + .../Berges_2021/yfeY_res/KEIO_ROBOT1_7.pdf | Bin 0 -> 21842 bytes .../yfeY_res/KEIO_ROBOT1_7_log.txt | 195 + .../yfeY_res/KEIO_ROBOT1_7_res.txt | 21 + .../Berges_2021/Berges_2021/yfgD.txt | 11 + .../Berges_2021/yfgD_res/KEIO_ROBOT3_33.pdf | Bin 0 -> 21387 bytes .../yfgD_res/KEIO_ROBOT3_33_log.txt | 180 + .../yfgD_res/KEIO_ROBOT3_33_res.txt | 21 + .../Berges_2021/Berges_2021/yfhG.txt | 14 + .../Berges_2021/yfhG_res/KEIO_ROBOT1_23.pdf | Bin 0 -> 21924 bytes .../yfhG_res/KEIO_ROBOT1_23_log.txt | 195 + .../yfhG_res/KEIO_ROBOT1_23_res.txt | 21 + .../Berges_2021/Berges_2021/yfhm.txt | 15 + .../Berges_2021/yfhm_res/KEIO_ROBOT5_46.pdf | Bin 0 -> 22122 bytes .../yfhm_res/KEIO_ROBOT5_46_log.txt | 200 + .../yfhm_res/KEIO_ROBOT5_46_res.txt | 21 + .../Berges_2021/Berges_2021/yfiF.txt | 9 + .../Berges_2021/yfiF_res/KEIO_ROBOT2_23.pdf | Bin 0 -> 23758 bytes .../yfiF_res/KEIO_ROBOT2_23_log.txt | 176 + .../yfiF_res/KEIO_ROBOT2_23_res.txt | 23 + .../Berges_2021/Berges_2021/ygaM.txt | 15 + .../Berges_2021/ygaM_res/KEIO_ROBOT5_9.pdf | Bin 0 -> 22158 bytes .../ygaM_res/KEIO_ROBOT5_9_log.txt | 200 + .../ygaM_res/KEIO_ROBOT5_9_res.txt | 21 + .../Berges_2021/Berges_2021/ygaU.txt | 9 + .../Berges_2021/ygaU_res/KEIO_ROBOT2_27.pdf | Bin 0 -> 23956 bytes .../ygaU_res/KEIO_ROBOT2_27_log.txt | 176 + .../ygaU_res/KEIO_ROBOT2_27_res.txt | 23 + .../Berges_2021/Berges_2021/ygdI.txt | 14 + .../Berges_2021/ygdI_res/KEIO_ROBOT4_32.pdf | Bin 0 -> 21702 bytes .../ygdI_res/KEIO_ROBOT4_32_log.txt | 195 + .../ygdI_res/KEIO_ROBOT4_32_res.txt | 21 + .../Berges_2021/Berges_2021/ygeA.txt | 9 + .../Berges_2021/ygeA_res/KEIO_ROBOT2_4.pdf | Bin 0 -> 24008 bytes .../ygeA_res/KEIO_ROBOT2_4_log.txt | 176 + .../ygeA_res/KEIO_ROBOT2_4_res.txt | 23 + .../Berges_2021/Berges_2021/ygeV.txt | 11 + .../Berges_2021/ygeV_res/KEIO_ROBOT3_23.pdf | Bin 0 -> 21525 bytes .../ygeV_res/KEIO_ROBOT3_23_log.txt | 180 + .../ygeV_res/KEIO_ROBOT3_23_res.txt | 21 + .../Berges_2021/Berges_2021/yggE.txt | 9 + .../Berges_2021/yggE_res/KEIO_ROBOT2_39.pdf | Bin 0 -> 23803 bytes .../yggE_res/KEIO_ROBOT2_39_log.txt | 176 + .../yggE_res/KEIO_ROBOT2_39_res.txt | 23 + .../Berges_2021/Berges_2021/yggL.txt | 11 + .../Berges_2021/yggL_res/KEIO_ROBOT3_30.pdf | Bin 0 -> 21371 bytes .../yggL_res/KEIO_ROBOT3_30_log.txt | 180 + .../yggL_res/KEIO_ROBOT3_30_res.txt | 21 + .../Berges_2021/Berges_2021/yggN.txt | 11 + .../Berges_2021/yggN_res/KEIO_ROBOT3_37.pdf | Bin 0 -> 21406 bytes .../yggN_res/KEIO_ROBOT3_37_log.txt | 180 + .../yggN_res/KEIO_ROBOT3_37_res.txt | 21 + .../Berges_2021/Berges_2021/yghJ.txt | 15 + .../Berges_2021/yghJ_res/KEIO_ROBOT5_6.pdf | Bin 0 -> 22296 bytes .../yghJ_res/KEIO_ROBOT5_6_log.txt | 200 + .../yghJ_res/KEIO_ROBOT5_6_res.txt | 21 + .../Berges_2021/Berges_2021/ygiC.txt | 9 + .../Berges_2021/ygiC_res/KEIO_ROBOT2_34.pdf | Bin 0 -> 23863 bytes .../ygiC_res/KEIO_ROBOT2_34_log.txt | 176 + .../ygiC_res/KEIO_ROBOT2_34_res.txt | 23 + .../Berges_2021/Berges_2021/ygjR.txt | 11 + .../Berges_2021/ygjR_res/KEIO_ROBOT3_39.pdf | Bin 0 -> 21385 bytes .../ygjR_res/KEIO_ROBOT3_39_log.txt | 180 + .../ygjR_res/KEIO_ROBOT3_39_res.txt | 21 + .../Berges_2021/Berges_2021/yhBT.txt | 14 + .../Berges_2021/yhBT_res/KEIO_ROBOT4_44.pdf | Bin 0 -> 21853 bytes .../yhBT_res/KEIO_ROBOT4_44_log.txt | 195 + .../yhBT_res/KEIO_ROBOT4_44_res.txt | 21 + .../Berges_2021/Berges_2021/yhaJ.txt | 11 + .../Berges_2021/yhaJ_res/KEIO_ROBOT3_21.pdf | Bin 0 -> 21225 bytes .../yhaJ_res/KEIO_ROBOT3_21_log.txt | 180 + .../yhaJ_res/KEIO_ROBOT3_21_res.txt | 21 + .../Berges_2021/Berges_2021/yhbS.txt | 9 + .../Berges_2021/yhbS_res/KEIO_ROBOT2_40.pdf | Bin 0 -> 23893 bytes .../yhbS_res/KEIO_ROBOT2_40_log.txt | 176 + .../yhbS_res/KEIO_ROBOT2_40_res.txt | 23 + .../Berges_2021/Berges_2021/yhbw.txt | 15 + .../Berges_2021/yhbw_res/KEIO_ROBOT5_47.pdf | Bin 0 -> 22310 bytes .../yhbw_res/KEIO_ROBOT5_47_log.txt | 200 + .../yhbw_res/KEIO_ROBOT5_47_res.txt | 21 + .../Berges_2021/Berges_2021/yhcB.txt | 11 + .../Berges_2021/yhcB_res/KEIO_ROBOT3_41.pdf | Bin 0 -> 21476 bytes .../yhcB_res/KEIO_ROBOT3_41_log.txt | 180 + .../yhcB_res/KEIO_ROBOT3_41_res.txt | 21 + .../Berges_2021/Berges_2021/yhcH.txt | 11 + .../Berges_2021/yhcH_res/KEIO_ROBOT3_5.pdf | Bin 0 -> 21440 bytes .../yhcH_res/KEIO_ROBOT3_5_log.txt | 180 + .../yhcH_res/KEIO_ROBOT3_5_res.txt | 21 + .../Berges_2021/Berges_2021/yhdP.txt | 14 + .../Berges_2021/yhdP_res/KEIO_ROBOT4_21.pdf | Bin 0 -> 21877 bytes .../yhdP_res/KEIO_ROBOT4_21_log.txt | 195 + .../yhdP_res/KEIO_ROBOT4_21_res.txt | 21 + .../Berges_2021/Berges_2021/yheO.txt | 15 + .../Berges_2021/yheO_res/KEIO_ROBOT5_4.pdf | Bin 0 -> 22268 bytes .../yheO_res/KEIO_ROBOT5_4_log.txt | 200 + .../yheO_res/KEIO_ROBOT5_4_res.txt | 21 + .../Berges_2021/Berges_2021/yheS.txt | 11 + .../Berges_2021/yheS_res/KEIO_ROBOT3_26.pdf | Bin 0 -> 21439 bytes .../yheS_res/KEIO_ROBOT3_26_log.txt | 180 + .../yheS_res/KEIO_ROBOT3_26_res.txt | 21 + .../Berges_2021/Berges_2021/yhhM.txt | 9 + .../Berges_2021/yhhM_res/KEIO_ROBOT2_43.pdf | Bin 0 -> 23782 bytes .../yhhM_res/KEIO_ROBOT2_43_log.txt | 176 + .../yhhM_res/KEIO_ROBOT2_43_res.txt | 23 + .../Berges_2021/Berges_2021/yhhX.txt | 15 + .../Berges_2021/yhhX_res/KEIO_ROBOT5_19.pdf | Bin 0 -> 22302 bytes .../yhhX_res/KEIO_ROBOT5_19_log.txt | 200 + .../yhhX_res/KEIO_ROBOT5_19_res.txt | 21 + .../Berges_2021/Berges_2021/yhiI.txt | 14 + .../Berges_2021/yhiI_res/KEIO_ROBOT1_2.pdf | Bin 0 -> 21802 bytes .../yhiI_res/KEIO_ROBOT1_2_log.txt | 195 + .../yhiI_res/KEIO_ROBOT1_2_res.txt | 21 + .../Berges_2021/Berges_2021/yhiN.txt | 11 + .../Berges_2021/yhiN_res/KEIO_ROBOT3_2.pdf | Bin 0 -> 21401 bytes .../yhiN_res/KEIO_ROBOT3_2_log.txt | 180 + .../yhiN_res/KEIO_ROBOT3_2_res.txt | 21 + .../Berges_2021/Berges_2021/yiaF.txt | 11 + .../Berges_2021/yiaF_res/KEIO_ROBOT3_43.pdf | Bin 0 -> 21401 bytes .../yiaF_res/KEIO_ROBOT3_43_log.txt | 180 + .../yiaF_res/KEIO_ROBOT3_43_res.txt | 21 + .../Berges_2021/Berges_2021/yibL.txt | 11 + .../Berges_2021/yibL_res/KEIO_ROBOT3_3.pdf | Bin 0 -> 21482 bytes .../yibL_res/KEIO_ROBOT3_3_log.txt | 180 + .../yibL_res/KEIO_ROBOT3_3_res.txt | 21 + .../Berges_2021/Berges_2021/yibN.txt | 11 + .../Berges_2021/yibN_res/KEIO_ROBOT3_4.pdf | Bin 0 -> 21424 bytes .../yibN_res/KEIO_ROBOT3_4_log.txt | 180 + .../yibN_res/KEIO_ROBOT3_4_res.txt | 21 + .../Berges_2021/Berges_2021/yibT.txt | 11 + .../Berges_2021/yibT_res/KEIO_ROBOT3_1.pdf | Bin 0 -> 21378 bytes .../yibT_res/KEIO_ROBOT3_1_log.txt | 180 + .../yibT_res/KEIO_ROBOT3_1_res.txt | 21 + .../Berges_2021/Berges_2021/yicH.txt | 11 + .../Berges_2021/yicH_res/KEIO_ROBOT3_6.pdf | Bin 0 -> 21356 bytes .../yicH_res/KEIO_ROBOT3_6_log.txt | 180 + .../yicH_res/KEIO_ROBOT3_6_res.txt | 21 + .../Berges_2021/Berges_2021/yidB.txt | 11 + .../Berges_2021/yidB_res/KEIO_ROBOT3_35.pdf | Bin 0 -> 21276 bytes .../yidB_res/KEIO_ROBOT3_35_log.txt | 180 + .../yidB_res/KEIO_ROBOT3_35_res.txt | 21 + .../Berges_2021/Berges_2021/yidR.txt | 14 + .../Berges_2021/yidR_res/KEIO_ROBOT4_36.pdf | Bin 0 -> 21850 bytes .../yidR_res/KEIO_ROBOT4_36_log.txt | 195 + .../yidR_res/KEIO_ROBOT4_36_res.txt | 21 + .../Berges_2021/Berges_2021/yieP.txt | 14 + .../Berges_2021/yieP_res/KEIO_ROBOT4_33.pdf | Bin 0 -> 21947 bytes .../yieP_res/KEIO_ROBOT4_33_log.txt | 195 + .../yieP_res/KEIO_ROBOT4_33_res.txt | 21 + .../Berges_2021/Berges_2021/yifL.txt | 11 + .../Berges_2021/yifL_res/KEIO_ROBOT3_38.pdf | Bin 0 -> 21469 bytes .../yifL_res/KEIO_ROBOT3_38_log.txt | 180 + .../yifL_res/KEIO_ROBOT3_38_res.txt | 21 + .../Berges_2021/Berges_2021/yigA.txt | 11 + .../Berges_2021/yigA_res/KEIO_ROBOT3_10.pdf | Bin 0 -> 21527 bytes .../yigA_res/KEIO_ROBOT3_10_log.txt | 180 + .../yigA_res/KEIO_ROBOT3_10_res.txt | 21 + .../Berges_2021/Berges_2021/yigB.txt | 11 + .../Berges_2021/yigB_res/KEIO_ROBOT3_12.pdf | Bin 0 -> 21264 bytes .../yigB_res/KEIO_ROBOT3_12_log.txt | 180 + .../yigB_res/KEIO_ROBOT3_12_res.txt | 21 + .../Berges_2021/Berges_2021/yigI.txt | 11 + .../Berges_2021/yigI_res/KEIO_ROBOT3_45.pdf | Bin 0 -> 21497 bytes .../yigI_res/KEIO_ROBOT3_45_log.txt | 180 + .../yigI_res/KEIO_ROBOT3_45_res.txt | 21 + .../Berges_2021/Berges_2021/yiiD.txt | 11 + .../Berges_2021/yiiD_res/KEIO_ROBOT3_8.pdf | Bin 0 -> 21482 bytes .../yiiD_res/KEIO_ROBOT3_8_log.txt | 180 + .../yiiD_res/KEIO_ROBOT3_8_res.txt | 21 + .../Berges_2021/Berges_2021/yjaG.txt | 11 + .../Berges_2021/yjaG_res/KEIO_ROBOT3_7.pdf | Bin 0 -> 21616 bytes .../yjaG_res/KEIO_ROBOT3_7_log.txt | 180 + .../yjaG_res/KEIO_ROBOT3_7_res.txt | 21 + .../Berges_2021/Berges_2021/yjbD.txt | 11 + .../Berges_2021/yjbD_res/KEIO_ROBOT3_9.pdf | Bin 0 -> 21378 bytes .../yjbD_res/KEIO_ROBOT3_9_log.txt | 180 + .../yjbD_res/KEIO_ROBOT3_9_res.txt | 21 + .../Berges_2021/Berges_2021/yjbR.txt | 11 + .../Berges_2021/yjbR_res/KEIO_ROBOT3_13.pdf | Bin 0 -> 21301 bytes .../yjbR_res/KEIO_ROBOT3_13_log.txt | 180 + .../yjbR_res/KEIO_ROBOT3_13_res.txt | 21 + .../Berges_2021/Berges_2021/yjcO.txt | 11 + .../Berges_2021/yjcO_res/KEIO_ROBOT3_11.pdf | Bin 0 -> 21409 bytes .../yjcO_res/KEIO_ROBOT3_11_log.txt | 180 + .../yjcO_res/KEIO_ROBOT3_11_res.txt | 21 + .../Berges_2021/Berges_2021/yjcZ.txt | 15 + .../Berges_2021/yjcZ_res/KEIO_ROBOT5_5.pdf | Bin 0 -> 22130 bytes .../yjcZ_res/KEIO_ROBOT5_5_log.txt | 200 + .../yjcZ_res/KEIO_ROBOT5_5_res.txt | 21 + .../Berges_2021/Berges_2021/yjeI.txt | 11 + .../Berges_2021/yjeI_res/KEIO_ROBOT3_44.pdf | Bin 0 -> 21481 bytes .../yjeI_res/KEIO_ROBOT3_44_log.txt | 180 + .../yjeI_res/KEIO_ROBOT3_44_res.txt | 21 + .../Berges_2021/Berges_2021/yjgJ.txt | 11 + .../Berges_2021/yjgJ_res/KEIO_ROBOT3_36.pdf | Bin 0 -> 21324 bytes .../yjgJ_res/KEIO_ROBOT3_36_log.txt | 180 + .../yjgJ_res/KEIO_ROBOT3_36_res.txt | 21 + .../Berges_2021/Berges_2021/yjgM.txt | 14 + .../Berges_2021/yjgM_res/KEIO_ROBOT4_5.pdf | Bin 0 -> 21932 bytes .../yjgM_res/KEIO_ROBOT4_5_log.txt | 195 + .../yjgM_res/KEIO_ROBOT4_5_res.txt | 21 + .../Berges_2021/Berges_2021/yjgR.txt | 11 + .../Berges_2021/yjgR_res/KEIO_ROBOT3_14.pdf | Bin 0 -> 21401 bytes .../yjgR_res/KEIO_ROBOT3_14_log.txt | 180 + .../yjgR_res/KEIO_ROBOT3_14_res.txt | 21 + .../Berges_2021/Berges_2021/yjhC.txt | 14 + .../Berges_2021/yjhC_res/KEIO_ROBOT4_4.pdf | Bin 0 -> 21758 bytes .../yjhC_res/KEIO_ROBOT4_4_log.txt | 195 + .../yjhC_res/KEIO_ROBOT4_4_res.txt | 21 + .../Berges_2021/Berges_2021/yjhU.txt | 14 + .../Berges_2021/yjhU_res/KEIO_ROBOT4_6.pdf | Bin 0 -> 21930 bytes .../yjhU_res/KEIO_ROBOT4_6_log.txt | 195 + .../yjhU_res/KEIO_ROBOT4_6_res.txt | 21 + .../Berges_2021/Berges_2021/yjjA.txt | 14 + .../Berges_2021/yjjA_res/KEIO_ROBOT4_1.pdf | Bin 0 -> 21805 bytes .../yjjA_res/KEIO_ROBOT4_1_log.txt | 195 + .../yjjA_res/KEIO_ROBOT4_1_res.txt | 21 + .../Berges_2021/Berges_2021/yjjV.txt | 11 + .../Berges_2021/yjjV_res/KEIO_ROBOT3_34.pdf | Bin 0 -> 21403 bytes .../yjjV_res/KEIO_ROBOT3_34_log.txt | 180 + .../yjjV_res/KEIO_ROBOT3_34_res.txt | 21 + .../Berges_2021/Berges_2021/ykgE.txt | 14 + .../Berges_2021/ykgE_res/KEIO_ROBOT4_29.pdf | Bin 0 -> 21863 bytes .../ykgE_res/KEIO_ROBOT4_29_log.txt | 195 + .../ykgE_res/KEIO_ROBOT4_29_res.txt | 21 + .../Berges_2021/Berges_2021/ykgG.txt | 14 + .../Berges_2021/ykgG_res/KEIO_ROBOT4_7.pdf | Bin 0 -> 22000 bytes .../ykgG_res/KEIO_ROBOT4_7_log.txt | 195 + .../ykgG_res/KEIO_ROBOT4_7_res.txt | 21 + .../Berges_2021/Berges_2021/ymbA.txt | 14 + .../Berges_2021/ymbA_res/KEIO_ROBOT4_8.pdf | Bin 0 -> 21791 bytes .../ymbA_res/KEIO_ROBOT4_8_log.txt | 195 + .../ymbA_res/KEIO_ROBOT4_8_res.txt | 21 + .../Berges_2021/Berges_2021/ymjA.txt | 15 + .../Berges_2021/ymjA_res/KEIO_ROBOT5_10.pdf | Bin 0 -> 22169 bytes .../ymjA_res/KEIO_ROBOT5_10_log.txt | 200 + .../ymjA_res/KEIO_ROBOT5_10_res.txt | 21 + .../Berges_2021/Berges_2021/ynbE.txt | 14 + .../Berges_2021/ynbE_res/KEIO_ROBOT1_32.pdf | Bin 0 -> 21882 bytes .../ynbE_res/KEIO_ROBOT1_32_log.txt | 195 + .../ynbE_res/KEIO_ROBOT1_32_res.txt | 21 + .../Berges_2021/Berges_2021/yncE.txt | 14 + .../Berges_2021/yncE_res/KEIO_ROBOT1_31.pdf | Bin 0 -> 21806 bytes .../yncE_res/KEIO_ROBOT1_31_log.txt | 195 + .../yncE_res/KEIO_ROBOT1_31_res.txt | 21 + .../Berges_2021/Berges_2021/ynfK.txt | 11 + .../Berges_2021/ynfK_res/KEIO_ROBOT3_40.pdf | Bin 0 -> 21260 bytes .../ynfK_res/KEIO_ROBOT3_40_log.txt | 180 + .../ynfK_res/KEIO_ROBOT3_40_res.txt | 21 + .../Berges_2021/Berges_2021/yniA.txt | 14 + .../Berges_2021/yniA_res/KEIO_ROBOT1_45.pdf | Bin 0 -> 21969 bytes .../yniA_res/KEIO_ROBOT1_45_log.txt | 195 + .../yniA_res/KEIO_ROBOT1_45_res.txt | 21 + .../Berges_2021/Berges_2021/yoaC.txt | 14 + .../Berges_2021/yoaC_res/KEIO_ROBOT4_17.pdf | Bin 0 -> 21687 bytes .../yoaC_res/KEIO_ROBOT4_17_log.txt | 195 + .../yoaC_res/KEIO_ROBOT4_17_res.txt | 21 + .../Berges_2021/Berges_2021/yodD.txt | 14 + .../Berges_2021/yodD_res/KEIO_ROBOT4_16.pdf | Bin 0 -> 21667 bytes .../yodD_res/KEIO_ROBOT4_16_log.txt | 195 + .../yodD_res/KEIO_ROBOT4_16_res.txt | 21 + .../Berges_2021/Berges_2021/yohn.txt | 14 + .../Berges_2021/yohn_res/KEIO_ROBOT4_45.pdf | Bin 0 -> 21917 bytes .../yohn_res/KEIO_ROBOT4_45_log.txt | 195 + .../yohn_res/KEIO_ROBOT4_45_res.txt | 21 + .../Berges_2021/Berges_2021/ypeB.txt | 14 + .../Berges_2021/ypeB_res/KEIO_ROBOT4_39.pdf | Bin 0 -> 21854 bytes .../ypeB_res/KEIO_ROBOT4_39_log.txt | 195 + .../ypeB_res/KEIO_ROBOT4_39_res.txt | 21 + .../Berges_2021/Berges_2021/ypfJ.txt | 14 + .../Berges_2021/ypfJ_res/KEIO_ROBOT4_37.pdf | Bin 0 -> 21858 bytes .../ypfJ_res/KEIO_ROBOT4_37_log.txt | 195 + .../ypfJ_res/KEIO_ROBOT4_37_res.txt | 21 + .../Berges_2021/Berges_2021/yqcA.txt | 9 + .../Berges_2021/yqcA_res/KEIO_ROBOT2_14.pdf | Bin 0 -> 23881 bytes .../yqcA_res/KEIO_ROBOT2_14_log.txt | 176 + .../yqcA_res/KEIO_ROBOT2_14_res.txt | 23 + .../Berges_2021/Berges_2021/yqcC.txt | 9 + .../Berges_2021/yqcC_res/KEIO_ROBOT2_1.pdf | Bin 0 -> 23872 bytes .../yqcC_res/KEIO_ROBOT2_1_log.txt | 176 + .../yqcC_res/KEIO_ROBOT2_1_res.txt | 23 + .../Berges_2021/Berges_2021/yqfE.txt | 14 + .../Berges_2021/yqfE_res/KEIO_ROBOT4_43.pdf | Bin 0 -> 21797 bytes .../yqfE_res/KEIO_ROBOT4_43_log.txt | 195 + .../yqfE_res/KEIO_ROBOT4_43_res.txt | 21 + .../Berges_2021/Berges_2021/yqiC.txt | 11 + .../Berges_2021/yqiC_res/KEIO_ROBOT3_42.pdf | Bin 0 -> 21389 bytes .../yqiC_res/KEIO_ROBOT3_42_log.txt | 180 + .../yqiC_res/KEIO_ROBOT3_42_res.txt | 21 + .../Berges_2021/Berges_2021/yrbA.txt | 11 + .../Berges_2021/yrbA_res/KEIO_ROBOT3_32.pdf | Bin 0 -> 21190 bytes .../yrbA_res/KEIO_ROBOT3_32_log.txt | 180 + .../yrbA_res/KEIO_ROBOT3_32_res.txt | 21 + .../Berges_2021/Berges_2021/yrbL.txt | 9 + .../Berges_2021/yrbL_res/KEIO_ROBOT2_45.pdf | Bin 0 -> 23485 bytes .../yrbL_res/KEIO_ROBOT2_45_log.txt | 176 + .../yrbL_res/KEIO_ROBOT2_45_res.txt | 23 + .../Berges_2021/Berges_2021/ysgA.txt | 14 + .../Berges_2021/ysgA_res/KEIO_ROBOT4_31.pdf | Bin 0 -> 21790 bytes .../ysgA_res/KEIO_ROBOT4_31_log.txt | 195 + .../ysgA_res/KEIO_ROBOT4_31_res.txt | 21 + .../Berges_2021/Berges_2021/ytfB.txt | 14 + .../Berges_2021/ytfB_res/KEIO_ROBOT4_3.pdf | Bin 0 -> 21674 bytes .../ytfB_res/KEIO_ROBOT4_3_log.txt | 195 + .../ytfB_res/KEIO_ROBOT4_3_res.txt | 21 + .../Berges_2021/Berges_2021/ytfJ.txt | 11 + .../Berges_2021/ytfJ_res/KEIO_ROBOT3_16.pdf | Bin 0 -> 21295 bytes .../ytfJ_res/KEIO_ROBOT3_16_log.txt | 180 + .../ytfJ_res/KEIO_ROBOT3_16_res.txt | 21 + .../Berges_2021/Berges_2021/zwf1.txt | 14 + .../Berges_2021/zwf1_res/KEIO_ROBOT1_47.pdf | Bin 0 -> 21866 bytes .../zwf1_res/KEIO_ROBOT1_47_log.txt | 195 + .../zwf1_res/KEIO_ROBOT1_47_res.txt | 21 + .../Berges_2021/Berges_2021/zwf2.txt | 9 + .../Berges_2021/zwf2_res/KEIO_ROBOT2_47.pdf | Bin 0 -> 23784 bytes .../zwf2_res/KEIO_ROBOT2_47_log.txt | 176 + .../zwf2_res/KEIO_ROBOT2_47_res.txt | 23 + .../Berges_2021/Berges_2021/zwf3.txt | 11 + .../Berges_2021/zwf3_res/KEIO_ROBOT3_47.pdf | Bin 0 -> 21533 bytes .../zwf3_res/KEIO_ROBOT3_47_log.txt | 180 + .../zwf3_res/KEIO_ROBOT3_47_res.txt | 21 + .../Berges_2021/Berges_2021/zwf_6_1.txt | 17 + .../Berges_2021/zwf_6_1_res/KEIO_ROBOT6_7.pdf | Bin 0 -> 22595 bytes .../zwf_6_1_res/KEIO_ROBOT6_7_log.txt | 211 + .../zwf_6_1_res/KEIO_ROBOT6_7_res.txt | 21 + .../Berges_2021/Berges_2021/zwf_6_2.txt | 17 + .../Berges_2021/zwf_6_2_res/KEIO_ROBOT6_8.pdf | Bin 0 -> 22550 bytes .../zwf_6_2_res/KEIO_ROBOT6_8_log.txt | 211 + .../zwf_6_2_res/KEIO_ROBOT6_8_res.txt | 21 + .../Berges_2021/PhysioFit_v3.4.0/dataset.txt | 2287 ++ .../PhysioFit_v3.4.0/dataset_res/WT1/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/WT1/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/WT1/X.svg | 956 + .../dataset_res/WT1}/config_file.yml | 5 +- .../dataset_res/WT1/flux_results.tsv | 7 + .../dataset_res/WT1/plots.pdf | Bin 0 -> 19375 bytes .../dataset_res/WT1/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/WT2/Ace.svg | 930 + .../PhysioFit_v3.4.0/dataset_res/WT2/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/WT2/X.svg | 898 + .../dataset_res/WT2/config_file.yml | 24 + .../dataset_res/WT2/flux_results.tsv | 7 + .../dataset_res/WT2/plots.pdf | Bin 0 -> 19190 bytes .../dataset_res/WT2/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/WT3/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/WT3/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/WT3/X.svg | 955 + .../dataset_res/WT3/config_file.yml | 24 + .../dataset_res/WT3/flux_results.tsv | 7 + .../dataset_res/WT3/plots.pdf | Bin 0 -> 19707 bytes .../dataset_res/WT3/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/WT4/Ace.svg | 919 + .../PhysioFit_v3.4.0/dataset_res/WT4/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/WT4/X.svg | 943 + .../dataset_res/WT4/config_file.yml | 24 + .../dataset_res/WT4/flux_results.tsv | 7 + .../dataset_res/WT4/plots.pdf | Bin 0 -> 19249 bytes .../dataset_res/WT4/stat_results.tsv | 18 + .../dataset_res/WT_BW/Ace.svg | 962 + .../dataset_res/WT_BW/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/WT_BW/X.svg | 927 + .../dataset_res/WT_BW/config_file.yml | 24 + .../dataset_res/WT_BW/flux_results.tsv | 7 + .../dataset_res/WT_BW/plots.pdf | Bin 0 -> 20152 bytes .../dataset_res/WT_BW/stat_results.tsv | 18 + .../dataset_res/WT_BW_6_1/Ace.svg | 978 + .../dataset_res/WT_BW_6_1/Glc.svg | 993 + .../dataset_res/WT_BW_6_1/X.svg | 960 + .../dataset_res/WT_BW_6_1/config_file.yml | 24 + .../dataset_res/WT_BW_6_1/flux_results.tsv | 7 + .../dataset_res/WT_BW_6_1/plots.pdf | Bin 0 -> 19866 bytes .../dataset_res/WT_BW_6_1/stat_results.tsv | 18 + .../dataset_res/WT_BW_6_2/Ace.svg | 963 + .../dataset_res/WT_BW_6_2/Glc.svg | 993 + .../dataset_res/WT_BW_6_2/X.svg | 1016 + .../dataset_res/WT_BW_6_2/config_file.yml | 24 + .../dataset_res/WT_BW_6_2/flux_results.tsv | 7 + .../dataset_res/WT_BW_6_2/plots.pdf | Bin 0 -> 20319 bytes .../dataset_res/WT_BW_6_2/stat_results.tsv | 18 + .../dataset_res/WT_BW_6_3/Ace.svg | 978 + .../dataset_res/WT_BW_6_3/Glc.svg | 993 + .../dataset_res/WT_BW_6_3/X.svg | 960 + .../dataset_res/WT_BW_6_3/config_file.yml | 24 + .../dataset_res/WT_BW_6_3/flux_results.tsv | 7 + .../dataset_res/WT_BW_6_3/plots.pdf | Bin 0 -> 19821 bytes .../dataset_res/WT_BW_6_3/stat_results.tsv | 18 + .../dataset_res/WT_BW_6_4/Ace.svg | 978 + .../dataset_res/WT_BW_6_4/Glc.svg | 993 + .../dataset_res/WT_BW_6_4/X.svg | 1016 + .../dataset_res/WT_BW_6_4/config_file.yml | 24 + .../dataset_res/WT_BW_6_4/flux_results.tsv | 7 + .../dataset_res/WT_BW_6_4/plots.pdf | Bin 0 -> 20376 bytes .../dataset_res/WT_BW_6_4/stat_results.tsv | 18 + .../dataset_res/WT_MG_6_1/Ace.svg | 978 + .../dataset_res/WT_MG_6_1/Glc.svg | 993 + .../dataset_res/WT_MG_6_1/X.svg | 1016 + .../dataset_res/WT_MG_6_1/config_file.yml | 24 + .../dataset_res/WT_MG_6_1/flux_results.tsv | 7 + .../dataset_res/WT_MG_6_1/plots.pdf | Bin 0 -> 20379 bytes .../dataset_res/WT_MG_6_1/stat_results.tsv | 18 + .../dataset_res/WT_MG_6_2/Ace.svg | 978 + .../dataset_res/WT_MG_6_2/Glc.svg | 993 + .../dataset_res/WT_MG_6_2/X.svg | 1016 + .../dataset_res/WT_MG_6_2/config_file.yml | 24 + .../dataset_res/WT_MG_6_2/flux_results.tsv | 7 + .../dataset_res/WT_MG_6_2/plots.pdf | Bin 0 -> 20386 bytes .../dataset_res/WT_MG_6_2/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/artI/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/artI/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/artI/X.svg | 1000 + .../dataset_res/artI/config_file.yml | 24 + .../dataset_res/artI/flux_results.tsv | 7 + .../dataset_res/artI/plots.pdf | Bin 0 -> 19770 bytes .../dataset_res/artI/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/hemX/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/hemX/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/hemX/X.svg | 1000 + .../dataset_res/hemX/config_file.yml | 24 + .../dataset_res/hemX/flux_results.tsv | 7 + .../dataset_res/hemX/plots.pdf | Bin 0 -> 19798 bytes .../dataset_res/hemX/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/log.txt | 21749 ++++++++++++++++ .../PhysioFit_v3.4.0/dataset_res/modF/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/modF/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/modF/X.svg | 953 + .../dataset_res/modF/config_file.yml | 24 + .../dataset_res/modF/flux_results.tsv | 7 + .../dataset_res/modF/plots.pdf | Bin 0 -> 19348 bytes .../dataset_res/modF/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/nanE/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/nanE/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/nanE/X.svg | 1000 + .../dataset_res/nanE/config_file.yml | 24 + .../dataset_res/nanE/flux_results.tsv | 7 + .../dataset_res/nanE/plots.pdf | Bin 0 -> 19803 bytes .../dataset_res/nanE/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/summary.csv | 1183 + .../PhysioFit_v3.4.0/dataset_res/wbbJ/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/wbbJ/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/wbbJ/X.svg | 901 + .../dataset_res/wbbJ/config_file.yml | 24 + .../dataset_res/wbbJ/flux_results.tsv | 7 + .../dataset_res/wbbJ/plots.pdf | Bin 0 -> 19242 bytes .../dataset_res/wbbJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yacC/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yacC/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yacC/X.svg | 1015 + .../dataset_res/yacC/config_file.yml | 24 + .../dataset_res/yacC/flux_results.tsv | 7 + .../dataset_res/yacC/plots.pdf | Bin 0 -> 20091 bytes .../dataset_res/yacC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yadG/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yadG/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yadG/X.svg | 953 + .../dataset_res/yadG/config_file.yml | 24 + .../dataset_res/yadG/flux_results.tsv | 7 + .../dataset_res/yadG/plots.pdf | Bin 0 -> 19307 bytes .../dataset_res/yadG/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yaeR/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/yaeR/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yaeR/X.svg | 883 + .../dataset_res/yaeR/config_file.yml | 24 + .../dataset_res/yaeR/flux_results.tsv | 7 + .../dataset_res/yaeR/plots.pdf | Bin 0 -> 19174 bytes .../dataset_res/yaeR/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yafJ/Ace.svg | 930 + .../PhysioFit_v3.4.0/dataset_res/yafJ/Glc.svg | 1043 + .../PhysioFit_v3.4.0/dataset_res/yafJ/X.svg | 898 + .../dataset_res/yafJ/config_file.yml | 24 + .../dataset_res/yafJ/flux_results.tsv | 7 + .../dataset_res/yafJ/plots.pdf | Bin 0 -> 20007 bytes .../dataset_res/yafJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yahJ/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yahJ/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yahJ/X.svg | 1011 + .../dataset_res/yahJ/config_file.yml | 24 + .../dataset_res/yahJ/flux_results.tsv | 7 + .../dataset_res/yahJ/plots.pdf | Bin 0 -> 20229 bytes .../dataset_res/yahJ/stat_results.tsv | 18 + .../dataset_res/yahO}/Ace.svg | 210 +- .../PhysioFit_v3.4.0/dataset_res/yahO/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yahO/X.svg | 941 + .../dataset_res/yahO/config_file.yml | 24 + .../dataset_res/yahO/flux_results.tsv | 7 + .../dataset_res/yahO/plots.pdf | Bin 0 -> 19368 bytes .../dataset_res/yahO/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yaiA/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yaiA/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yaiA/X.svg | 941 + .../dataset_res/yaiA/config_file.yml | 24 + .../dataset_res/yaiA/flux_results.tsv | 7 + .../dataset_res/yaiA/plots.pdf | Bin 0 -> 19356 bytes .../dataset_res/yaiA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yaiL/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yaiL/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yaiL/X.svg | 943 + .../dataset_res/yaiL/config_file.yml | 24 + .../dataset_res/yaiL/flux_results.tsv | 7 + .../dataset_res/yaiL/plots.pdf | Bin 0 -> 19272 bytes .../dataset_res/yaiL/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yajD/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yajD/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yajD/X.svg | 1003 + .../dataset_res/yajD/config_file.yml | 24 + .../dataset_res/yajD/flux_results.tsv | 7 + .../dataset_res/yajD/plots.pdf | Bin 0 -> 19882 bytes .../dataset_res/yajD/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yajG/Ace.svg | 930 + .../PhysioFit_v3.4.0/dataset_res/yajG/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yajG/X.svg | 898 + .../dataset_res/yajG/config_file.yml | 24 + .../dataset_res/yajG/flux_results.tsv | 7 + .../dataset_res/yajG/plots.pdf | Bin 0 -> 19191 bytes .../dataset_res/yajG/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yajO/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yajO/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yajO/X.svg | 942 + .../dataset_res/yajO/config_file.yml | 24 + .../dataset_res/yajO/flux_results.tsv | 7 + .../dataset_res/yajO/plots.pdf | Bin 0 -> 20153 bytes .../dataset_res/yajO/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybaQ/Ace.svg | 930 + .../PhysioFit_v3.4.0/dataset_res/ybaQ/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ybaQ/X.svg | 898 + .../dataset_res/ybaQ/config_file.yml | 24 + .../dataset_res/ybaQ/flux_results.tsv | 7 + .../dataset_res/ybaQ/plots.pdf | Bin 0 -> 19180 bytes .../dataset_res/ybaQ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybaY/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ybaY/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ybaY/X.svg | 898 + .../dataset_res/ybaY/config_file.yml | 24 + .../dataset_res/ybaY/flux_results.tsv | 7 + .../dataset_res/ybaY/plots.pdf | Bin 0 -> 19229 bytes .../dataset_res/ybaY/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybbA/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/ybbA/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/ybbA/X.svg | 1000 + .../dataset_res/ybbA/config_file.yml | 24 + .../dataset_res/ybbA/flux_results.tsv | 7 + .../dataset_res/ybbA/plots.pdf | Bin 0 -> 19784 bytes .../dataset_res/ybbA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybcJ/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ybcJ/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ybcJ/X.svg | 901 + .../dataset_res/ybcJ/config_file.yml | 24 + .../dataset_res/ybcJ/flux_results.tsv | 7 + .../dataset_res/ybcJ/plots.pdf | Bin 0 -> 19221 bytes .../dataset_res/ybcJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybdH/Ace.svg | 960 + .../PhysioFit_v3.4.0/dataset_res/ybdH/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ybdH/X.svg | 883 + .../dataset_res/ybdH/config_file.yml | 24 + .../dataset_res/ybdH/flux_results.tsv | 7 + .../dataset_res/ybdH/plots.pdf | Bin 0 -> 19222 bytes .../dataset_res/ybdH/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybeL/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ybeL/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ybeL/X.svg | 1003 + .../dataset_res/ybeL/config_file.yml | 24 + .../dataset_res/ybeL/flux_results.tsv | 7 + .../dataset_res/ybeL/plots.pdf | Bin 0 -> 19834 bytes .../dataset_res/ybeL/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybfE/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ybfE/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ybfE/X.svg | 901 + .../dataset_res/ybfE/config_file.yml | 24 + .../dataset_res/ybfE/flux_results.tsv | 7 + .../dataset_res/ybfE/plots.pdf | Bin 0 -> 19239 bytes .../dataset_res/ybfE/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybgJ/Ace.svg | 915 + .../PhysioFit_v3.4.0/dataset_res/ybgJ/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/ybgJ/X.svg | 959 + .../dataset_res/ybgJ/config_file.yml | 24 + .../dataset_res/ybgJ/flux_results.tsv | 7 + .../dataset_res/ybgJ/plots.pdf | Bin 0 -> 20036 bytes .../dataset_res/ybgJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybgK/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ybgK/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ybgK/X.svg | 883 + .../dataset_res/ybgK/config_file.yml | 24 + .../dataset_res/ybgK/flux_results.tsv | 7 + .../dataset_res/ybgK/plots.pdf | Bin 0 -> 19178 bytes .../dataset_res/ybgK/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybgS/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ybgS/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ybgS/X.svg | 926 + .../dataset_res/ybgS/config_file.yml | 24 + .../dataset_res/ybgS/flux_results.tsv | 7 + .../dataset_res/ybgS/plots.pdf | Bin 0 -> 19336 bytes .../dataset_res/ybgS/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybhC/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ybhC/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ybhC/X.svg | 941 + .../dataset_res/ybhC/config_file.yml | 24 + .../dataset_res/ybhC/flux_results.tsv | 7 + .../dataset_res/ybhC/plots.pdf | Bin 0 -> 19372 bytes .../dataset_res/ybhC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybiB/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ybiB/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ybiB/X.svg | 883 + .../dataset_res/ybiB/config_file.yml | 24 + .../dataset_res/ybiB/flux_results.tsv | 7 + .../dataset_res/ybiB/plots.pdf | Bin 0 -> 19182 bytes .../dataset_res/ybiB/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybiC/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ybiC/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ybiC/X.svg | 962 + .../dataset_res/ybiC/config_file.yml | 24 + .../dataset_res/ybiC/flux_results.tsv | 7 + .../dataset_res/ybiC/plots.pdf | Bin 0 -> 19267 bytes .../dataset_res/ybiC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybiH/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/ybiH/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ybiH/X.svg | 1000 + .../dataset_res/ybiH/config_file.yml | 24 + .../dataset_res/ybiH/flux_results.tsv | 7 + .../dataset_res/ybiH/plots.pdf | Bin 0 -> 19834 bytes .../dataset_res/ybiH/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybiJ/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/ybiJ/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ybiJ/X.svg | 941 + .../dataset_res/ybiJ/config_file.yml | 24 + .../dataset_res/ybiJ/flux_results.tsv | 7 + .../dataset_res/ybiJ/plots.pdf | Bin 0 -> 19379 bytes .../dataset_res/ybiJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybiT/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/ybiT/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/ybiT/X.svg | 1011 + .../dataset_res/ybiT/config_file.yml | 24 + .../dataset_res/ybiT/flux_results.tsv | 7 + .../dataset_res/ybiT/plots.pdf | Bin 0 -> 20223 bytes .../dataset_res/ybiT/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybiU/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ybiU/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ybiU/X.svg | 926 + .../dataset_res/ybiU/config_file.yml | 24 + .../dataset_res/ybiU/flux_results.tsv | 7 + .../dataset_res/ybiU/plots.pdf | Bin 0 -> 19340 bytes .../dataset_res/ybiU/stat_results.tsv | 18 + .../dataset_res/ybjP_2/Ace.svg | 915 + .../dataset_res/ybjP_2/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/ybjP_2/X.svg | 927 + .../dataset_res/ybjP_2/config_file.yml | 24 + .../dataset_res/ybjP_2/flux_results.tsv | 7 + .../dataset_res/ybjP_2/plots.pdf | Bin 0 -> 20050 bytes .../dataset_res/ybjP_2/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybjS/Ace.svg | 949 + .../PhysioFit_v3.4.0/dataset_res/ybjS/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ybjS/X.svg | 943 + .../dataset_res/ybjS/config_file.yml | 24 + .../dataset_res/ybjS/flux_results.tsv | 7 + .../dataset_res/ybjS/plots.pdf | Bin 0 -> 19301 bytes .../dataset_res/ybjS/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ybjX/Ace.svg | 960 + .../PhysioFit_v3.4.0/dataset_res/ybjX/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ybjX/X.svg | 898 + .../dataset_res/ybjX/config_file.yml | 24 + .../dataset_res/ybjX/flux_results.tsv | 7 + .../dataset_res/ybjX/plots.pdf | Bin 0 -> 19228 bytes .../dataset_res/ybjX/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ycaC/Ace.svg | 960 + .../PhysioFit_v3.4.0/dataset_res/ycaC/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ycaC/X.svg | 883 + .../dataset_res/ycaC/config_file.yml | 24 + .../dataset_res/ycaC/flux_results.tsv | 7 + .../dataset_res/ycaC/plots.pdf | Bin 0 -> 19237 bytes .../dataset_res/ycaC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ycbZ/Ace.svg | 994 + .../PhysioFit_v3.4.0/dataset_res/ycbZ/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ycbZ/X.svg | 883 + .../dataset_res/ycbZ/config_file.yml | 24 + .../dataset_res/ycbZ/flux_results.tsv | 7 + .../dataset_res/ycbZ/plots.pdf | Bin 0 -> 19183 bytes .../dataset_res/ycbZ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yccJ/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yccJ/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yccJ/X.svg | 941 + .../dataset_res/yccJ/config_file.yml | 24 + .../dataset_res/yccJ/flux_results.tsv | 7 + .../dataset_res/yccJ/plots.pdf | Bin 0 -> 19366 bytes .../dataset_res/yccJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yccU/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yccU/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yccU/X.svg | 943 + .../dataset_res/yccU/config_file.yml | 24 + .../dataset_res/yccU/flux_results.tsv | 7 + .../dataset_res/yccU/plots.pdf | Bin 0 -> 19279 bytes .../dataset_res/yccU/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ycdX/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ycdX/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ycdX/X.svg | 898 + .../dataset_res/ycdX/config_file.yml | 24 + .../dataset_res/ycdX/flux_results.tsv | 7 + .../dataset_res/ycdX/plots.pdf | Bin 0 -> 19207 bytes .../dataset_res/ycdX/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ycdY/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ycdY/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ycdY/X.svg | 941 + .../dataset_res/ycdY/config_file.yml | 24 + .../dataset_res/ycdY/flux_results.tsv | 7 + .../dataset_res/ycdY/plots.pdf | Bin 0 -> 19369 bytes .../dataset_res/ycdY/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yceB/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yceB/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yceB/X.svg | 926 + .../dataset_res/yceB/config_file.yml | 24 + .../dataset_res/yceB/flux_results.tsv | 7 + .../dataset_res/yceB/plots.pdf | Bin 0 -> 19373 bytes .../dataset_res/yceB/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yceD/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yceD/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yceD/X.svg | 941 + .../dataset_res/yceD/config_file.yml | 24 + .../dataset_res/yceD/flux_results.tsv | 7 + .../dataset_res/yceD/plots.pdf | Bin 0 -> 19361 bytes .../dataset_res/yceD/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ycfH/Ace.svg | 960 + .../PhysioFit_v3.4.0/dataset_res/ycfH/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ycfH/X.svg | 898 + .../dataset_res/ycfH/config_file.yml | 24 + .../dataset_res/ycfH/flux_results.tsv | 7 + .../dataset_res/ycfH/plots.pdf | Bin 0 -> 19246 bytes .../dataset_res/ycfH/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ycgJ/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ycgJ/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ycgJ/X.svg | 886 + .../dataset_res/ycgJ/config_file.yml | 24 + .../dataset_res/ycgJ/flux_results.tsv | 7 + .../dataset_res/ycgJ/plots.pdf | Bin 0 -> 19212 bytes .../dataset_res/ycgJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ycgM/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ycgM/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ycgM}/X.svg | 336 +- .../dataset_res/ycgM/config_file.yml | 24 + .../dataset_res/ycgM/flux_results.tsv | 7 + .../dataset_res/ycgM/plots.pdf | Bin 0 -> 19233 bytes .../dataset_res/ycgM/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yciK/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yciK/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yciK/X.svg | 953 + .../dataset_res/yciK/config_file.yml | 24 + .../dataset_res/yciK/flux_results.tsv | 7 + .../dataset_res/yciK/plots.pdf | Bin 0 -> 19346 bytes .../dataset_res/yciK/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yciO/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yciO/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yciO/X.svg | 901 + .../dataset_res/yciO/config_file.yml | 24 + .../dataset_res/yciO/flux_results.tsv | 7 + .../dataset_res/yciO/plots.pdf | Bin 0 -> 19237 bytes .../dataset_res/yciO/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yciW/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yciW/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yciW/X.svg | 943 + .../dataset_res/yciW/config_file.yml | 24 + .../dataset_res/yciW/flux_results.tsv | 7 + .../dataset_res/yciW/plots.pdf | Bin 0 -> 19300 bytes .../dataset_res/yciW/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ycjW/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/ycjW/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/ycjW/X.svg | 953 + .../dataset_res/ycjW/config_file.yml | 24 + .../dataset_res/ycjW/flux_results.tsv | 7 + .../dataset_res/ycjW/plots.pdf | Bin 0 -> 19338 bytes .../dataset_res/ycjW/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ycjX/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/ycjX/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/ycjX/X.svg | 978 + .../dataset_res/ycjX/config_file.yml | 24 + .../dataset_res/ycjX/flux_results.tsv | 7 + .../dataset_res/ycjX/plots.pdf | Bin 0 -> 20199 bytes .../dataset_res/ycjX/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydbC/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ydbC/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ydbC/X.svg | 898 + .../dataset_res/ydbC/config_file.yml | 24 + .../dataset_res/ydbC/flux_results.tsv | 7 + .../dataset_res/ydbC/plots.pdf | Bin 0 -> 19224 bytes .../dataset_res/ydbC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydbL/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ydbL/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ydbL/X.svg | 901 + .../dataset_res/ydbL/config_file.yml | 24 + .../dataset_res/ydbL/flux_results.tsv | 7 + .../dataset_res/ydbL/plots.pdf | Bin 0 -> 19240 bytes .../dataset_res/ydbL/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydcH/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ydcH/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ydcH/X.svg | 943 + .../dataset_res/ydcH/config_file.yml | 24 + .../dataset_res/ydcH/flux_results.tsv | 7 + .../dataset_res/ydcH/plots.pdf | Bin 0 -> 19258 bytes .../dataset_res/ydcH/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydcI/Ace.svg | 919 + .../PhysioFit_v3.4.0/dataset_res/ydcI/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ydcI/X.svg | 901 + .../dataset_res/ydcI/config_file.yml | 24 + .../dataset_res/ydcI/flux_results.tsv | 7 + .../dataset_res/ydcI/plots.pdf | Bin 0 -> 19220 bytes .../dataset_res/ydcI/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydcJ/Ace.svg | 915 + .../PhysioFit_v3.4.0/dataset_res/ydcJ/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/ydcJ/X.svg | 1004 + .../dataset_res/ydcJ/config_file.yml | 24 + .../dataset_res/ydcJ/flux_results.tsv | 7 + .../dataset_res/ydcJ/plots.pdf | Bin 0 -> 20120 bytes .../dataset_res/ydcJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydcL/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ydcL/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ydcL/X.svg | 926 + .../dataset_res/ydcL/config_file.yml | 24 + .../dataset_res/ydcL/flux_results.tsv | 7 + .../dataset_res/ydcL/plots.pdf | Bin 0 -> 19325 bytes .../dataset_res/ydcL/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydcP/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ydcP/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ydcP/X.svg | 956 + .../dataset_res/ydcP/config_file.yml | 24 + .../dataset_res/ydcP/flux_results.tsv | 7 + .../dataset_res/ydcP/plots.pdf | Bin 0 -> 19377 bytes .../dataset_res/ydcP/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydcS/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ydcS/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ydcS/X.svg | 883 + .../dataset_res/ydcS/config_file.yml | 24 + .../dataset_res/ydcS/flux_results.tsv | 7 + .../dataset_res/ydcS/plots.pdf | Bin 0 -> 19170 bytes .../dataset_res/ydcS/stat_results.tsv | 18 + .../dataset_res/ydcS_2/Ace.svg | 962 + .../dataset_res/ydcS_2/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/ydcS_2/X.svg | 942 + .../dataset_res/ydcS_2/config_file.yml | 24 + .../dataset_res/ydcS_2/flux_results.tsv | 7 + .../dataset_res/ydcS_2/plots.pdf | Bin 0 -> 20141 bytes .../dataset_res/ydcS_2/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydcY/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ydcY/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ydcY/X.svg | 941 + .../dataset_res/ydcY/config_file.yml | 24 + .../dataset_res/ydcY/flux_results.tsv | 7 + .../dataset_res/ydcY/plots.pdf | Bin 0 -> 19374 bytes .../dataset_res/ydcY/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yddE/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yddE/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yddE/X.svg | 957 + .../dataset_res/yddE/config_file.yml | 24 + .../dataset_res/yddE/flux_results.tsv | 7 + .../dataset_res/yddE/plots.pdf | Bin 0 -> 20170 bytes .../dataset_res/yddE/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yddM/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yddM/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yddM/X.svg | 943 + .../dataset_res/yddM/config_file.yml | 24 + .../dataset_res/yddM/flux_results.tsv | 7 + .../dataset_res/yddM/plots.pdf | Bin 0 -> 19274 bytes .../dataset_res/yddM/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydeI/Ace.svg | 930 + .../PhysioFit_v3.4.0/dataset_res/ydeI/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ydeI/X.svg | 962 + .../dataset_res/ydeI/config_file.yml | 24 + .../dataset_res/ydeI/flux_results.tsv | 7 + .../dataset_res/ydeI/plots.pdf | Bin 0 -> 19275 bytes .../dataset_res/ydeI/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydeN/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ydeN/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ydeN/X.svg | 943 + .../dataset_res/ydeN/config_file.yml | 24 + .../dataset_res/ydeN/flux_results.tsv | 7 + .../dataset_res/ydeN/plots.pdf | Bin 0 -> 19271 bytes .../dataset_res/ydeN/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydfH/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ydfH/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/ydfH/X.svg | 957 + .../dataset_res/ydfH/config_file.yml | 24 + .../dataset_res/ydfH/flux_results.tsv | 7 + .../dataset_res/ydfH/plots.pdf | Bin 0 -> 20130 bytes .../dataset_res/ydfH/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydfW/Ace.svg | 949 + .../PhysioFit_v3.4.0/dataset_res/ydfW/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ydfW/X.svg | 943 + .../dataset_res/ydfW/config_file.yml | 24 + .../dataset_res/ydfW/flux_results.tsv | 7 + .../dataset_res/ydfW/plots.pdf | Bin 0 -> 19308 bytes .../dataset_res/ydfW/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydfZ/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ydfZ/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ydfZ/X.svg | 941 + .../dataset_res/ydfZ/config_file.yml | 24 + .../dataset_res/ydfZ/flux_results.tsv | 7 + .../dataset_res/ydfZ/plots.pdf | Bin 0 -> 19348 bytes .../dataset_res/ydfZ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydgJ/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ydgJ/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ydgJ/X.svg | 901 + .../dataset_res/ydgJ/config_file.yml | 24 + .../dataset_res/ydgJ/flux_results.tsv | 7 + .../dataset_res/ydgJ/plots.pdf | Bin 0 -> 19223 bytes .../dataset_res/ydgJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydhR/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ydhR/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ydhR/X.svg | 978 + .../dataset_res/ydhR/config_file.yml | 24 + .../dataset_res/ydhR/flux_results.tsv | 7 + .../dataset_res/ydhR/plots.pdf | Bin 0 -> 19402 bytes .../dataset_res/ydhR/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydhS/Ace.svg | 977 + .../PhysioFit_v3.4.0/dataset_res/ydhS/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ydhS/X.svg | 1003 + .../dataset_res/ydhS/config_file.yml | 24 + .../dataset_res/ydhS/flux_results.tsv | 7 + .../dataset_res/ydhS/plots.pdf | Bin 0 -> 19873 bytes .../dataset_res/ydhS/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydhZ/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ydhZ/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ydhZ/X.svg | 943 + .../dataset_res/ydhZ/config_file.yml | 24 + .../dataset_res/ydhZ/flux_results.tsv | 7 + .../dataset_res/ydhZ/plots.pdf | Bin 0 -> 19268 bytes .../dataset_res/ydhZ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydiH/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/ydiH/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ydiH/X.svg | 941 + .../dataset_res/ydiH/config_file.yml | 24 + .../dataset_res/ydiH/flux_results.tsv | 7 + .../dataset_res/ydiH/plots.pdf | Bin 0 -> 19391 bytes .../dataset_res/ydiH/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydiJ/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ydiJ/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ydiJ/X.svg | 898 + .../dataset_res/ydiJ/config_file.yml | 24 + .../dataset_res/ydiJ/flux_results.tsv | 7 + .../dataset_res/ydiJ}/plots.pdf | Bin 17035 -> 19191 bytes .../dataset_res/ydiJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydiZ/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ydiZ/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ydiZ/X.svg | 898 + .../dataset_res/ydiZ/config_file.yml | 24 + .../dataset_res/ydiZ/flux_results.tsv | 7 + .../dataset_res/ydiZ/plots.pdf | Bin 0 -> 19179 bytes .../dataset_res/ydiZ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydjA/Ace.svg | 960 + .../PhysioFit_v3.4.0/dataset_res/ydjA/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ydjA/X.svg | 883 + .../dataset_res/ydjA/config_file.yml | 24 + .../dataset_res/ydjA/flux_results.tsv | 7 + .../dataset_res/ydjA/plots.pdf | Bin 0 -> 19225 bytes .../dataset_res/ydjA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ydjF/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ydjF/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ydjF/X.svg | 883 + .../dataset_res/ydjF/config_file.yml | 24 + .../dataset_res/ydjF/flux_results.tsv | 7 + .../dataset_res/ydjF/plots.pdf | Bin 0 -> 19193 bytes .../dataset_res/ydjF/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yeaC/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yeaC/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yeaC/X.svg | 941 + .../dataset_res/yeaC/config_file.yml | 24 + .../dataset_res/yeaC/flux_results.tsv | 7 + .../dataset_res/yeaC/plots.pdf | Bin 0 -> 19370 bytes .../dataset_res/yeaC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yeaD/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yeaD/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yeaD/X.svg | 943 + .../dataset_res/yeaD/config_file.yml | 24 + .../dataset_res/yeaD/flux_results.tsv | 7 + .../dataset_res/yeaD/plots.pdf | Bin 0 -> 19270 bytes .../dataset_res/yeaD/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yeaG/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/yeaG/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yeaG/X.svg | 898 + .../dataset_res/yeaG/config_file.yml | 24 + .../dataset_res/yeaG/flux_results.tsv | 7 + .../dataset_res/yeaG/plots.pdf | Bin 0 -> 19214 bytes .../dataset_res/yeaG/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yeaO/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yeaO/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yeaO/X.svg | 957 + .../dataset_res/yeaO/config_file.yml | 24 + .../dataset_res/yeaO/flux_results.tsv | 7 + .../dataset_res/yeaO/plots.pdf | Bin 0 -> 20177 bytes .../dataset_res/yeaO/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yeaY/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yeaY/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yeaY/X.svg | 926 + .../dataset_res/yeaY/config_file.yml | 24 + .../dataset_res/yeaY/flux_results.tsv | 7 + .../dataset_res/yeaY/plots.pdf | Bin 0 -> 19342 bytes .../dataset_res/yeaY/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yebG/Ace.svg | 915 + .../PhysioFit_v3.4.0/dataset_res/yebG/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yebG/X.svg | 1003 + .../dataset_res/yebG/config_file.yml | 24 + .../dataset_res/yebG/flux_results.tsv | 7 + .../dataset_res/yebG/plots.pdf | Bin 0 -> 19759 bytes .../dataset_res/yebG/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yebO/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yebO/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yebO/X.svg | 941 + .../dataset_res/yebO/config_file.yml | 24 + .../dataset_res/yebO/flux_results.tsv | 7 + .../dataset_res/yebO/plots.pdf | Bin 0 -> 19370 bytes .../dataset_res/yebO/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yebT/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/yebT/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yebT/X.svg | 898 + .../dataset_res/yebT/config_file.yml | 24 + .../dataset_res/yebT/flux_results.tsv | 7 + .../dataset_res/yebT/plots.pdf | Bin 0 -> 19228 bytes .../dataset_res/yebT/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yebV/Ace.svg | 919 + .../PhysioFit_v3.4.0/dataset_res/yebV/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yebV/X.svg | 943 + .../dataset_res/yebV/config_file.yml | 24 + .../dataset_res/yebV/flux_results.tsv | 7 + .../dataset_res/yebV/plots.pdf | Bin 0 -> 19249 bytes .../dataset_res/yebV/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yebY/Ace.svg | 947 + .../dataset_res/yebY}/Glc.svg | 222 +- .../PhysioFit_v3.4.0/dataset_res/yebY/X.svg | 941 + .../dataset_res/yebY/config_file.yml | 24 + .../dataset_res/yebY/flux_results.tsv | 7 + .../dataset_res/yebY/plots.pdf | Bin 0 -> 19378 bytes .../dataset_res/yebY/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yecA/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/yecA/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yecA/X.svg | 898 + .../dataset_res/yecA/config_file.yml | 24 + .../dataset_res/yecA/flux_results.tsv | 7 + .../dataset_res/yecA/plots.pdf | Bin 0 -> 19198 bytes .../dataset_res/yecA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yecF/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yecF/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yecF/X.svg | 956 + .../dataset_res/yecF/config_file.yml | 24 + .../dataset_res/yecF/flux_results.tsv | 7 + .../dataset_res/yecF/plots.pdf | Bin 0 -> 19401 bytes .../dataset_res/yecF/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yecJ/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yecJ/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yecJ/X.svg | 1003 + .../dataset_res/yecJ/config_file.yml | 24 + .../dataset_res/yecJ/flux_results.tsv | 7 + .../dataset_res/yecJ/plots.pdf | Bin 0 -> 19816 bytes .../dataset_res/yecJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yecR/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yecR/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yecR/X.svg | 962 + .../dataset_res/yecR/config_file.yml | 24 + .../dataset_res/yecR/flux_results.tsv | 7 + .../dataset_res/yecR/plots.pdf | Bin 0 -> 19400 bytes .../dataset_res/yecR/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yedD/Ace.svg | 977 + .../PhysioFit_v3.4.0/dataset_res/yedD/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yedD/X.svg | 957 + .../dataset_res/yedD/config_file.yml | 24 + .../dataset_res/yedD/flux_results.tsv | 7 + .../dataset_res/yedD/plots.pdf | Bin 0 -> 20175 bytes .../dataset_res/yedD/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yedV/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yedV/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yedV/X.svg | 926 + .../dataset_res/yedV/config_file.yml | 24 + .../dataset_res/yedV/flux_results.tsv | 7 + .../dataset_res/yedV/plots.pdf | Bin 0 -> 19302 bytes .../dataset_res/yedV/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yegD/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yegD/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yegD/X.svg | 943 + .../dataset_res/yegD/config_file.yml | 24 + .../dataset_res/yegD/flux_results.tsv | 7 + .../dataset_res/yegD/plots.pdf | Bin 0 -> 19274 bytes .../dataset_res/yegD/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yegQ/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yegQ/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yegQ/X.svg | 926 + .../dataset_res/yegQ/config_file.yml | 24 + .../dataset_res/yegQ/flux_results.tsv | 7 + .../dataset_res/yegQ/plots.pdf | Bin 0 -> 19359 bytes .../dataset_res/yegQ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yehS/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yehS/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yehS/X.svg | 956 + .../dataset_res/yehS/config_file.yml | 24 + .../dataset_res/yehS/flux_results.tsv | 7 + .../dataset_res/yehS/plots.pdf | Bin 0 -> 19382 bytes .../dataset_res/yehS/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yeiR/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/yeiR/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yeiR/X.svg | 898 + .../dataset_res/yeiR/config_file.yml | 24 + .../dataset_res/yeiR/flux_results.tsv | 7 + .../dataset_res/yeiR/plots.pdf | Bin 0 -> 19193 bytes .../dataset_res/yeiR/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yejF/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yejF/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yejF/X.svg | 957 + .../dataset_res/yejF/config_file.yml | 24 + .../dataset_res/yejF/flux_results.tsv | 7 + .../dataset_res/yejF/plots.pdf | Bin 0 -> 20168 bytes .../dataset_res/yejF/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yfaT/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yfaT/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yfaT/X.svg | 941 + .../dataset_res/yfaT/config_file.yml | 24 + .../dataset_res/yfaT/flux_results.tsv | 7 + .../dataset_res/yfaT/plots.pdf | Bin 0 -> 19385 bytes .../dataset_res/yfaT/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yfcD/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yfcD/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yfcD/X.svg | 956 + .../dataset_res/yfcD/config_file.yml | 24 + .../dataset_res/yfcD/flux_results.tsv | 7 + .../dataset_res/yfcD/plots.pdf | Bin 0 -> 19388 bytes .../dataset_res/yfcD/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yfcL/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yfcL/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yfcL/X.svg | 941 + .../dataset_res/yfcL/config_file.yml | 24 + .../dataset_res/yfcL/flux_results.tsv | 7 + .../dataset_res/yfcL/plots.pdf | Bin 0 -> 19401 bytes .../dataset_res/yfcL/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yfdI/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yfdI/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yfdI/X.svg | 901 + .../dataset_res/yfdI/config_file.yml | 24 + .../dataset_res/yfdI/flux_results.tsv | 7 + .../dataset_res/yfdI/plots.pdf | Bin 0 -> 19254 bytes .../dataset_res/yfdI/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yfeC/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yfeC/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yfeC/X.svg | 942 + .../dataset_res/yfeC/config_file.yml | 24 + .../dataset_res/yfeC/flux_results.tsv | 7 + .../dataset_res/yfeC/plots.pdf | Bin 0 -> 20157 bytes .../dataset_res/yfeC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yfeY/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yfeY/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yfeY/X.svg | 956 + .../dataset_res/yfeY/config_file.yml | 24 + .../dataset_res/yfeY/flux_results.tsv | 7 + .../dataset_res/yfeY/plots.pdf | Bin 0 -> 19373 bytes .../dataset_res/yfeY/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yfgD/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yfgD/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yfgD/X.svg | 953 + .../dataset_res/yfgD/config_file.yml | 24 + .../dataset_res/yfgD/flux_results.tsv | 7 + .../dataset_res/yfgD/plots.pdf | Bin 0 -> 19334 bytes .../dataset_res/yfgD/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yfhG/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yfhG/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yfhG/X.svg | 941 + .../dataset_res/yfhG/config_file.yml | 24 + .../dataset_res/yfhG/flux_results.tsv | 7 + .../dataset_res/yfhG/plots.pdf | Bin 0 -> 19404 bytes .../dataset_res/yfhG/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yfhm/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yfhm/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yfhm/X.svg | 957 + .../dataset_res/yfhm/config_file.yml | 24 + .../dataset_res/yfhm/flux_results.tsv | 7 + .../dataset_res/yfhm/plots.pdf | Bin 0 -> 20156 bytes .../dataset_res/yfhm/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yfiF/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/yfiF/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yfiF/X.svg | 898 + .../dataset_res/yfiF/config_file.yml | 24 + .../dataset_res/yfiF/flux_results.tsv | 7 + .../dataset_res/yfiF/plots.pdf | Bin 0 -> 19206 bytes .../dataset_res/yfiF/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ygaM/Ace.svg | 977 + .../PhysioFit_v3.4.0/dataset_res/ygaM/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/ygaM/X.svg | 957 + .../dataset_res/ygaM/config_file.yml | 24 + .../dataset_res/ygaM/flux_results.tsv | 7 + .../dataset_res/ygaM/plots.pdf | Bin 0 -> 20218 bytes .../dataset_res/ygaM/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ygaU/Ace.svg | 960 + .../PhysioFit_v3.4.0/dataset_res/ygaU/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ygaU/X.svg | 883 + .../dataset_res/ygaU/config_file.yml | 24 + .../dataset_res/ygaU/flux_results.tsv | 7 + .../dataset_res/ygaU/plots.pdf | Bin 0 -> 19212 bytes .../dataset_res/ygaU/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ygdI/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ygdI/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ygdI/X.svg | 901 + .../dataset_res/ygdI/config_file.yml | 24 + .../dataset_res/ygdI/flux_results.tsv | 7 + .../dataset_res/ygdI/plots.pdf | Bin 0 -> 19248 bytes .../dataset_res/ygdI/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ygeA/Ace.svg | 930 + .../PhysioFit_v3.4.0/dataset_res/ygeA/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ygeA/X.svg | 883 + .../dataset_res/ygeA/config_file.yml | 24 + .../dataset_res/ygeA/flux_results.tsv | 7 + .../dataset_res/ygeA/plots.pdf | Bin 0 -> 19172 bytes .../dataset_res/ygeA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ygeV/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ygeV/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/ygeV/X.svg | 1000 + .../dataset_res/ygeV/config_file.yml | 24 + .../dataset_res/ygeV/flux_results.tsv | 7 + .../dataset_res/ygeV/plots.pdf | Bin 0 -> 19756 bytes .../dataset_res/ygeV/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yggE/Ace.svg | 930 + .../PhysioFit_v3.4.0/dataset_res/yggE/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yggE/X.svg | 962 + .../dataset_res/yggE/config_file.yml | 24 + .../dataset_res/yggE/flux_results.tsv | 7 + .../dataset_res/yggE/plots.pdf | Bin 0 -> 19260 bytes .../dataset_res/yggE/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yggL/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yggL/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yggL/X.svg | 1000 + .../dataset_res/yggL/config_file.yml | 24 + .../dataset_res/yggL/flux_results.tsv | 7 + .../dataset_res/yggL/plots.pdf | Bin 0 -> 19809 bytes .../dataset_res/yggL/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yggN/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yggN/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yggN/X.svg | 955 + .../dataset_res/yggN/config_file.yml | 24 + .../dataset_res/yggN/flux_results.tsv | 7 + .../dataset_res/yggN/plots.pdf | Bin 0 -> 19709 bytes .../dataset_res/yggN/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yghJ/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yghJ/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yghJ/X.svg | 957 + .../dataset_res/yghJ/config_file.yml | 24 + .../dataset_res/yghJ/flux_results.tsv | 7 + .../dataset_res/yghJ/plots.pdf | Bin 0 -> 20167 bytes .../dataset_res/yghJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ygiC/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/ygiC/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/ygiC/X.svg | 898 + .../dataset_res/ygiC/config_file.yml | 24 + .../dataset_res/ygiC/flux_results.tsv | 7 + .../dataset_res/ygiC/plots.pdf | Bin 0 -> 19197 bytes .../dataset_res/ygiC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ygjR/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/ygjR/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ygjR/X.svg | 953 + .../dataset_res/ygjR/config_file.yml | 24 + .../dataset_res/ygjR/flux_results.tsv | 7 + .../dataset_res/ygjR/plots.pdf | Bin 0 -> 19365 bytes .../dataset_res/ygjR/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yhBT/Ace.svg | 919 + .../PhysioFit_v3.4.0/dataset_res/yhBT/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yhBT/X.svg | 901 + .../dataset_res/yhBT/config_file.yml | 24 + .../dataset_res/yhBT/flux_results.tsv | 7 + .../dataset_res/yhBT/plots.pdf | Bin 0 -> 19223 bytes .../dataset_res/yhBT/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yhaJ/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yhaJ/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yhaJ/X.svg | 1000 + .../dataset_res/yhaJ/config_file.yml | 24 + .../dataset_res/yhaJ/flux_results.tsv | 7 + .../dataset_res/yhaJ/plots.pdf | Bin 0 -> 19834 bytes .../dataset_res/yhaJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yhbS/Ace.svg | 930 + .../PhysioFit_v3.4.0/dataset_res/yhbS/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yhbS/X.svg | 962 + .../dataset_res/yhbS/config_file.yml | 24 + .../dataset_res/yhbS/flux_results.tsv | 7 + .../dataset_res/yhbS/plots.pdf | Bin 0 -> 19260 bytes .../dataset_res/yhbS/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yhbw/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yhbw/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yhbw/X.svg | 942 + .../dataset_res/yhbw/config_file.yml | 24 + .../dataset_res/yhbw/flux_results.tsv | 7 + .../dataset_res/yhbw/plots.pdf | Bin 0 -> 20126 bytes .../dataset_res/yhbw/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yhcB/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yhcB/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yhcB/X.svg | 1000 + .../dataset_res/yhcB/config_file.yml | 24 + .../dataset_res/yhcB/flux_results.tsv | 7 + .../dataset_res/yhcB/plots.pdf | Bin 0 -> 19802 bytes .../dataset_res/yhcB/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yhcH/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yhcH/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yhcH/X.svg | 953 + .../dataset_res/yhcH/config_file.yml | 24 + .../dataset_res/yhcH/flux_results.tsv | 7 + .../dataset_res/yhcH/plots.pdf | Bin 0 -> 19313 bytes .../dataset_res/yhcH/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yhdP/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yhdP/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yhdP/X.svg | 901 + .../dataset_res/yhdP/config_file.yml | 24 + .../dataset_res/yhdP/flux_results.tsv | 7 + .../dataset_res/yhdP/plots.pdf | Bin 0 -> 19219 bytes .../dataset_res/yhdP/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yheO/Ace.svg | 977 + .../PhysioFit_v3.4.0/dataset_res/yheO/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yheO/X.svg | 957 + .../dataset_res/yheO/config_file.yml | 24 + .../dataset_res/yheO/flux_results.tsv | 7 + .../dataset_res/yheO/plots.pdf | Bin 0 -> 20188 bytes .../dataset_res/yheO/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yheS/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yheS/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yheS/X.svg | 1011 + .../dataset_res/yheS/config_file.yml | 24 + .../dataset_res/yheS/flux_results.tsv | 7 + .../dataset_res/yheS/plots.pdf | Bin 0 -> 20233 bytes .../dataset_res/yheS/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yhhM/Ace.svg | 930 + .../PhysioFit_v3.4.0/dataset_res/yhhM/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yhhM/X.svg | 883 + .../dataset_res/yhhM/config_file.yml | 24 + .../dataset_res/yhhM/flux_results.tsv | 7 + .../dataset_res/yhhM/plots.pdf | Bin 0 -> 19173 bytes .../dataset_res/yhhM/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yhhX/Ace.svg | 962 + .../dataset_res/yhhX/Glc.svg} | 522 +- .../PhysioFit_v3.4.0/dataset_res/yhhX/X.svg | 957 + .../dataset_res/yhhX/config_file.yml | 24 + .../dataset_res/yhhX/flux_results.tsv | 7 + .../dataset_res/yhhX/plots.pdf | Bin 0 -> 20185 bytes .../dataset_res/yhhX/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yhiI/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yhiI/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yhiI/X.svg | 926 + .../dataset_res/yhiI/config_file.yml | 24 + .../dataset_res/yhiI/flux_results.tsv | 7 + .../dataset_res/yhiI/plots.pdf | Bin 0 -> 19335 bytes .../dataset_res/yhiI/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yhiN/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yhiN/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yhiN/X.svg | 938 + .../dataset_res/yhiN/config_file.yml | 24 + .../dataset_res/yhiN/flux_results.tsv | 7 + .../dataset_res/yhiN/plots.pdf | Bin 0 -> 19279 bytes .../dataset_res/yhiN/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yiaF/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yiaF/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yiaF/X.svg | 955 + .../dataset_res/yiaF/config_file.yml | 24 + .../dataset_res/yiaF/flux_results.tsv | 7 + .../dataset_res/yiaF/plots.pdf | Bin 0 -> 19718 bytes .../dataset_res/yiaF/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yibL/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yibL/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yibL/X.svg | 953 + .../dataset_res/yibL/config_file.yml | 24 + .../dataset_res/yibL/flux_results.tsv | 7 + .../dataset_res/yibL/plots.pdf | Bin 0 -> 19348 bytes .../dataset_res/yibL/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yibN/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yibN/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yibN/X.svg | 953 + .../dataset_res/yibN/config_file.yml | 24 + .../dataset_res/yibN/flux_results.tsv | 7 + .../dataset_res/yibN/plots.pdf | Bin 0 -> 19317 bytes .../dataset_res/yibN/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yibT/Ace.svg | 977 + .../PhysioFit_v3.4.0/dataset_res/yibT/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yibT/X.svg | 1000 + .../dataset_res/yibT/config_file.yml | 24 + .../dataset_res/yibT/flux_results.tsv | 7 + .../dataset_res/yibT/plots.pdf | Bin 0 -> 19823 bytes .../dataset_res/yibT/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yicH/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yicH/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yicH/X.svg | 953 + .../dataset_res/yicH/config_file.yml | 24 + .../dataset_res/yicH/flux_results.tsv | 7 + .../dataset_res/yicH/plots.pdf | Bin 0 -> 19332 bytes .../dataset_res/yicH/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yidB/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yidB/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yidB/X.svg | 953 + .../dataset_res/yidB/config_file.yml | 24 + .../dataset_res/yidB/flux_results.tsv | 7 + .../dataset_res/yidB/plots.pdf | Bin 0 -> 19384 bytes .../dataset_res/yidB/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yidR/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yidR/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yidR/X.svg | 943 + .../dataset_res/yidR/config_file.yml | 24 + .../dataset_res/yidR/flux_results.tsv | 7 + .../dataset_res/yidR/plots.pdf | Bin 0 -> 19285 bytes .../dataset_res/yidR/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yieP/Ace.svg | 949 + .../PhysioFit_v3.4.0/dataset_res/yieP/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yieP/X.svg | 901 + .../dataset_res/yieP/config_file.yml | 24 + .../dataset_res/yieP/flux_results.tsv | 7 + .../dataset_res/yieP/plots.pdf | Bin 0 -> 19256 bytes .../dataset_res/yieP/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yifL/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yifL/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yifL/X.svg | 953 + .../dataset_res/yifL/config_file.yml | 24 + .../dataset_res/yifL/flux_results.tsv | 7 + .../dataset_res/yifL/plots.pdf | Bin 0 -> 19320 bytes .../dataset_res/yifL/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yigA/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yigA/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yigA/X.svg | 1000 + .../dataset_res/yigA/config_file.yml | 24 + .../dataset_res/yigA/flux_results.tsv | 7 + .../dataset_res/yigA/plots.pdf | Bin 0 -> 19800 bytes .../dataset_res/yigA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yigB/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yigB/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yigB/X.svg | 1000 + .../dataset_res/yigB/config_file.yml | 24 + .../dataset_res/yigB/flux_results.tsv | 7 + .../dataset_res/yigB/plots.pdf | Bin 0 -> 19813 bytes .../dataset_res/yigB/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yigI/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yigI/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yigI/X.svg | 1000 + .../dataset_res/yigI/config_file.yml | 24 + .../dataset_res/yigI/flux_results.tsv | 7 + .../dataset_res/yigI/plots.pdf | Bin 0 -> 19806 bytes .../dataset_res/yigI/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yiiD/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yiiD/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yiiD/X.svg | 953 + .../dataset_res/yiiD/config_file.yml | 24 + .../dataset_res/yiiD/flux_results.tsv | 7 + .../dataset_res/yiiD/plots.pdf | Bin 0 -> 19340 bytes .../dataset_res/yiiD/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjaG/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yjaG/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yjaG/X.svg | 953 + .../dataset_res/yjaG/config_file.yml | 24 + .../dataset_res/yjaG/flux_results.tsv | 7 + .../dataset_res/yjaG/plots.pdf | Bin 0 -> 19284 bytes .../dataset_res/yjaG/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjbD/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yjbD/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yjbD/X.svg | 1000 + .../dataset_res/yjbD/config_file.yml | 24 + .../dataset_res/yjbD/flux_results.tsv | 7 + .../dataset_res/yjbD/plots.pdf | Bin 0 -> 19760 bytes .../dataset_res/yjbD/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjbR/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yjbR/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yjbR/X.svg | 1000 + .../dataset_res/yjbR/config_file.yml | 24 + .../dataset_res/yjbR/flux_results.tsv | 7 + .../dataset_res/yjbR/plots.pdf | Bin 0 -> 19744 bytes .../dataset_res/yjbR/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjcO/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yjcO/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yjcO/X.svg | 1000 + .../dataset_res/yjcO/config_file.yml | 24 + .../dataset_res/yjcO/flux_results.tsv | 7 + .../dataset_res/yjcO/plots.pdf | Bin 0 -> 19793 bytes .../dataset_res/yjcO/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjcZ/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yjcZ/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/yjcZ/X.svg | 1004 + .../dataset_res/yjcZ/config_file.yml | 24 + .../dataset_res/yjcZ/flux_results.tsv | 7 + .../dataset_res/yjcZ/plots.pdf | Bin 0 -> 20210 bytes .../dataset_res/yjcZ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjeI/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yjeI/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yjeI/X.svg | 1011 + .../dataset_res/yjeI/config_file.yml | 24 + .../dataset_res/yjeI/flux_results.tsv | 7 + .../dataset_res/yjeI/plots.pdf | Bin 0 -> 20212 bytes .../dataset_res/yjeI/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjgJ/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yjgJ/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yjgJ/X.svg | 955 + .../dataset_res/yjgJ/config_file.yml | 24 + .../dataset_res/yjgJ/flux_results.tsv | 7 + .../dataset_res/yjgJ/plots.pdf | Bin 0 -> 19733 bytes .../dataset_res/yjgJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjgM/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yjgM/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yjgM/X.svg | 901 + .../dataset_res/yjgM/config_file.yml | 24 + .../dataset_res/yjgM/flux_results.tsv | 7 + .../dataset_res/yjgM/plots.pdf | Bin 0 -> 19242 bytes .../dataset_res/yjgM/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjgR/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yjgR/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yjgR/X.svg | 1000 + .../dataset_res/yjgR/config_file.yml | 24 + .../dataset_res/yjgR/flux_results.tsv | 7 + .../dataset_res/yjgR/plots.pdf | Bin 0 -> 19802 bytes .../dataset_res/yjgR/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjhC/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yjhC/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yjhC/X.svg | 943 + .../dataset_res/yjhC/config_file.yml | 24 + .../dataset_res/yjhC/flux_results.tsv | 7 + .../dataset_res/yjhC/plots.pdf | Bin 0 -> 19292 bytes .../dataset_res/yjhC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjhU/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yjhU/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yjhU/X.svg | 901 + .../dataset_res/yjhU/config_file.yml | 24 + .../dataset_res/yjhU/flux_results.tsv | 7 + .../dataset_res/yjhU/plots.pdf | Bin 0 -> 19235 bytes .../dataset_res/yjhU/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjjA/Ace.svg | 983 + .../PhysioFit_v3.4.0/dataset_res/yjjA/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yjjA/X.svg | 901 + .../dataset_res/yjjA/config_file.yml | 24 + .../dataset_res/yjjA/flux_results.tsv | 7 + .../dataset_res/yjjA/plots.pdf | Bin 0 -> 19294 bytes .../dataset_res/yjjA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yjjV/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yjjV/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/yjjV/X.svg | 953 + .../dataset_res/yjjV/config_file.yml | 24 + .../dataset_res/yjjV/flux_results.tsv | 7 + .../dataset_res/yjjV/plots.pdf | Bin 0 -> 19339 bytes .../dataset_res/yjjV/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ykgE/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ykgE/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ykgE/X.svg | 965 + .../dataset_res/ykgE/config_file.yml | 24 + .../dataset_res/ykgE/flux_results.tsv | 7 + .../dataset_res/ykgE/plots.pdf | Bin 0 -> 19322 bytes .../dataset_res/ykgE/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ykgG/Ace.svg | 919 + .../PhysioFit_v3.4.0/dataset_res/ykgG/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ykgG/X.svg | 901 + .../dataset_res/ykgG/config_file.yml | 24 + .../dataset_res/ykgG/flux_results.tsv | 7 + .../dataset_res/ykgG/plots.pdf | Bin 0 -> 19205 bytes .../dataset_res/ykgG/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ymbA/Ace.svg | 919 + .../PhysioFit_v3.4.0/dataset_res/ymbA/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ymbA/X.svg | 901 + .../dataset_res/ymbA/config_file.yml | 24 + .../dataset_res/ymbA/flux_results.tsv | 7 + .../dataset_res/ymbA/plots.pdf | Bin 0 -> 19227 bytes .../dataset_res/ymbA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ymjA/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ymjA/Glc.svg | 1045 + .../PhysioFit_v3.4.0/dataset_res/ymjA/X.svg | 957 + .../dataset_res/ymjA/config_file.yml | 24 + .../dataset_res/ymjA/flux_results.tsv | 7 + .../dataset_res/ymjA/plots.pdf | Bin 0 -> 20146 bytes .../dataset_res/ymjA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ynbE/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/ynbE/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/ynbE/X.svg | 941 + .../dataset_res/ynbE/config_file.yml | 24 + .../dataset_res/ynbE/flux_results.tsv | 7 + .../dataset_res/ynbE/plots.pdf | Bin 0 -> 19398 bytes .../dataset_res/ynbE/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yncE/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/yncE/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yncE/X.svg | 956 + .../dataset_res/yncE/config_file.yml | 24 + .../dataset_res/yncE/flux_results.tsv | 7 + .../dataset_res/yncE/plots.pdf | Bin 0 -> 19382 bytes .../dataset_res/yncE/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ynfK/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ynfK/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/ynfK/X.svg | 953 + .../dataset_res/ynfK/config_file.yml | 24 + .../dataset_res/ynfK/flux_results.tsv | 7 + .../dataset_res/ynfK/plots.pdf | Bin 0 -> 19308 bytes .../dataset_res/ynfK/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yniA/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/yniA/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yniA/X.svg | 941 + .../dataset_res/yniA/config_file.yml | 24 + .../dataset_res/yniA/flux_results.tsv | 7 + .../dataset_res/yniA/plots.pdf | Bin 0 -> 19388 bytes .../dataset_res/yniA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yoaC/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yoaC/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yoaC/X.svg | 943 + .../dataset_res/yoaC/config_file.yml | 24 + .../dataset_res/yoaC/flux_results.tsv | 7 + .../dataset_res/yoaC/plots.pdf | Bin 0 -> 19278 bytes .../dataset_res/yoaC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yodD/Ace.svg | 983 + .../PhysioFit_v3.4.0/dataset_res/yodD/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yodD/X.svg | 901 + .../dataset_res/yodD/config_file.yml | 24 + .../dataset_res/yodD/flux_results.tsv | 7 + .../dataset_res/yodD/plots.pdf | Bin 0 -> 19291 bytes .../dataset_res/yodD/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yohn/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/yohn/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yohn/X.svg | 943 + .../dataset_res/yohn/config_file.yml | 24 + .../dataset_res/yohn/flux_results.tsv | 7 + .../dataset_res/yohn/plots.pdf | Bin 0 -> 19263 bytes .../dataset_res/yohn/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ypeB/Ace.svg | 967 + .../PhysioFit_v3.4.0/dataset_res/ypeB/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ypeB/X.svg | 901 + .../dataset_res/ypeB/config_file.yml | 24 + .../dataset_res/ypeB/flux_results.tsv | 7 + .../dataset_res/ypeB/plots.pdf | Bin 0 -> 19264 bytes .../dataset_res/ypeB/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ypfJ/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ypfJ/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ypfJ/X.svg | 901 + .../dataset_res/ypfJ/config_file.yml | 24 + .../dataset_res/ypfJ/flux_results.tsv | 7 + .../dataset_res/ypfJ/plots.pdf | Bin 0 -> 19259 bytes .../dataset_res/ypfJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yqcA/Ace.svg | 994 + .../PhysioFit_v3.4.0/dataset_res/yqcA/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yqcA/X.svg | 883 + .../dataset_res/yqcA/config_file.yml | 24 + .../dataset_res/yqcA/flux_results.tsv | 7 + .../dataset_res/yqcA/plots.pdf | Bin 0 -> 19204 bytes .../dataset_res/yqcA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yqcC/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/yqcC/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yqcC/X.svg | 946 + .../dataset_res/yqcC/config_file.yml | 24 + .../dataset_res/yqcC/flux_results.tsv | 7 + .../dataset_res/yqcC/plots.pdf | Bin 0 -> 19258 bytes .../dataset_res/yqcC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yqfE/Ace.svg | 949 + .../PhysioFit_v3.4.0/dataset_res/yqfE/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/yqfE/X.svg | 943 + .../dataset_res/yqfE/config_file.yml | 24 + .../dataset_res/yqfE/flux_results.tsv | 7 + .../dataset_res/yqfE/plots.pdf | Bin 0 -> 19290 bytes .../dataset_res/yqfE/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yqiC/Ace.svg | 915 + .../PhysioFit_v3.4.0/dataset_res/yqiC/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yqiC/X.svg | 1000 + .../dataset_res/yqiC/config_file.yml | 24 + .../dataset_res/yqiC/flux_results.tsv | 7 + .../dataset_res/yqiC/plots.pdf | Bin 0 -> 19754 bytes .../dataset_res/yqiC/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yrbA/Ace.svg | 932 + .../PhysioFit_v3.4.0/dataset_res/yrbA/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/yrbA/X.svg | 953 + .../dataset_res/yrbA/config_file.yml | 24 + .../dataset_res/yrbA/flux_results.tsv | 7 + .../dataset_res/yrbA/plots.pdf | Bin 0 -> 19328 bytes .../dataset_res/yrbA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/yrbL/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/yrbL/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/yrbL/X.svg | 883 + .../dataset_res/yrbL/config_file.yml | 24 + .../dataset_res/yrbL/flux_results.tsv | 7 + .../dataset_res/yrbL/plots.pdf | Bin 0 -> 19193 bytes .../dataset_res/yrbL/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ysgA/Ace.svg | 919 + .../PhysioFit_v3.4.0/dataset_res/ysgA/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ysgA/X.svg | 901 + .../dataset_res/ysgA/config_file.yml | 24 + .../dataset_res/ysgA/flux_results.tsv | 7 + .../dataset_res/ysgA/plots.pdf | Bin 0 -> 19219 bytes .../dataset_res/ysgA/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ytfB/Ace.svg | 934 + .../PhysioFit_v3.4.0/dataset_res/ytfB/Glc.svg | 979 + .../PhysioFit_v3.4.0/dataset_res/ytfB/X.svg | 901 + .../dataset_res/ytfB/config_file.yml | 24 + .../dataset_res/ytfB/flux_results.tsv | 7 + .../dataset_res/ytfB/plots.pdf | Bin 0 -> 19249 bytes .../dataset_res/ytfB/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/ytfJ/Ace.svg | 947 + .../PhysioFit_v3.4.0/dataset_res/ytfJ/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/ytfJ/X.svg | 953 + .../dataset_res/ytfJ/config_file.yml | 24 + .../dataset_res/ytfJ/flux_results.tsv | 7 + .../dataset_res/ytfJ/plots.pdf | Bin 0 -> 19296 bytes .../dataset_res/ytfJ/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/zwf1/Ace.svg | 962 + .../PhysioFit_v3.4.0/dataset_res/zwf1/Glc.svg | 1008 + .../PhysioFit_v3.4.0/dataset_res/zwf1/X.svg | 926 + .../dataset_res/zwf1/config_file.yml | 24 + .../dataset_res/zwf1/flux_results.tsv | 7 + .../dataset_res/zwf1/plots.pdf | Bin 0 -> 19373 bytes .../dataset_res/zwf1/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/zwf2/Ace.svg | 945 + .../PhysioFit_v3.4.0/dataset_res/zwf2/Glc.svg | 990 + .../PhysioFit_v3.4.0/dataset_res/zwf2}/X.svg | 324 +- .../dataset_res/zwf2/config_file.yml | 24 + .../dataset_res/zwf2/flux_results.tsv | 7 + .../dataset_res/zwf2/plots.pdf | Bin 0 -> 19247 bytes .../dataset_res/zwf2/stat_results.tsv | 18 + .../PhysioFit_v3.4.0/dataset_res/zwf3/Ace.svg | 977 + .../PhysioFit_v3.4.0/dataset_res/zwf3/Glc.svg | 992 + .../PhysioFit_v3.4.0/dataset_res/zwf3/X.svg | 953 + .../dataset_res/zwf3/config_file.yml | 24 + .../dataset_res/zwf3/flux_results.tsv | 7 + .../dataset_res/zwf3/plots.pdf | Bin 0 -> 19374 bytes .../dataset_res/zwf3/stat_results.tsv | 18 + .../dataset_res/zwf_6_1/Ace.svg | 963 + .../dataset_res/zwf_6_1/Glc.svg | 993 + .../dataset_res/zwf_6_1/X.svg | 948 + .../dataset_res/zwf_6_1/config_file.yml | 24 + .../dataset_res/zwf_6_1/flux_results.tsv | 7 + .../dataset_res/zwf_6_1/plots.pdf | Bin 0 -> 19423 bytes .../dataset_res/zwf_6_1/stat_results.tsv | 18 + .../dataset_res/zwf_6_2/Ace.svg | 963 + .../dataset_res/zwf_6_2/Glc.svg | 993 + .../dataset_res/zwf_6_2/X.svg | 980 + .../dataset_res/zwf_6_2/config_file.yml | 24 + .../dataset_res/zwf_6_2/flux_results.tsv | 7 + .../dataset_res/zwf_6_2/plots.pdf | Bin 0 -> 19483 bytes .../dataset_res/zwf_6_2/stat_results.tsv | 18 + .../Berges_2021/results.xlsx | Bin 0 -> 98996 bytes .../Peiro_2019/Peiro_2019/WT-1.txt | 5 + .../Peiro_2019/Peiro_2019/WT-1_res/WT.pdf | Bin 0 -> 20357 bytes .../Peiro_2019/Peiro_2019/WT-1_res/WT_log.txt | 147 + .../Peiro_2019/Peiro_2019/WT-1_res/WT_res.txt | 20 + .../Peiro_2019/Peiro_2019/WT-2.txt | 7 + .../Peiro_2019/Peiro_2019/WT-2_res/WT-2.pdf | Bin 0 -> 20511 bytes .../Peiro_2019/WT-2_res/WT-2_log.txt | 159 + .../Peiro_2019/WT-2_res/WT-2_res.txt | 20 + .../Peiro_2019/Peiro_2019/WT-3.txt | 7 + .../Peiro_2019/Peiro_2019/WT-3_res/WT-3.pdf | Bin 0 -> 20628 bytes .../Peiro_2019/WT-3_res/WT-3_log.txt | 159 + .../Peiro_2019/WT-3_res/WT-3_res.txt | 20 + .../Peiro_2019/Peiro_2019/dhaKLM-1.txt | 7 + .../Peiro_2019/dhaKLM-1_res}/dhaKLM.pdf | Bin .../Peiro_2019/dhaKLM-1_res}/dhaKLM_log.txt | 0 .../Peiro_2019/dhaKLM-1_res}/dhaKLM_res.txt | 0 .../Peiro_2019/Peiro_2019/dhaKLM-2.txt | 7 + .../Peiro_2019/dhaKLM-2_res/dhaKLM-2.pdf | Bin 0 -> 21083 bytes .../Peiro_2019/dhaKLM-2_res/dhaKLM-2_log.txt | 164 + .../Peiro_2019/dhaKLM-2_res/dhaKLM-2_res.txt | 20 + .../Peiro_2019/Peiro_2019/dhaKLM-3.txt | 8 + .../Peiro_2019/dhaKLM-3_res/dhaKLM-3.pdf | Bin 0 -> 21389 bytes .../Peiro_2019/dhaKLM-3_res/dhaKLM-3_log.txt | 168 + .../Peiro_2019/dhaKLM-3_res/dhaKLM-3_res.txt | 20 + .../Peiro_2019/Peiro_2019/fsaA-1.txt | 10 + .../Peiro_2019/fsaA-1_res/fsaA-1.pdf | Bin 0 -> 21344 bytes .../Peiro_2019/fsaA-1_res/fsaA-1_log.txt | 177 + .../Peiro_2019/fsaA-1_res/fsaA-1_res.txt | 20 + .../Peiro_2019/Peiro_2019/fsaA-2.txt | 10 + .../Peiro_2019/fsaA-2_res/fsaA-2.pdf | Bin 0 -> 21713 bytes .../Peiro_2019/fsaA-2_res/fsaA-2_log.txt | 177 + .../Peiro_2019/fsaA-2_res/fsaA-2_res.txt | 20 + .../Peiro_2019/Peiro_2019/fsaA-3.txt | 10 + .../Peiro_2019/fsaA-3_res/fsaA-3.pdf | Bin 0 -> 21152 bytes .../Peiro_2019/fsaA-3_res/fsaA-3_log.txt | 177 + .../Peiro_2019/fsaA-3_res/fsaA-3_res.txt | 20 + .../Peiro_2019/Peiro_2019/fsaA-4.txt | 8 + .../Peiro_2019/fsaA-4_res/fsaA-3.pdf | Bin 0 -> 21116 bytes .../Peiro_2019/fsaA-4_res/fsaA-3_log.txt | 164 + .../Peiro_2019/fsaA-4_res/fsaA-3_res.txt | 20 + .../Peiro_2019/Peiro_2019/fsaB-1.txt | 9 + .../Peiro_2019/fsaB-1_res/D-fsaB-1.pdf | Bin 0 -> 21632 bytes .../Peiro_2019/fsaB-1_res/D-fsaB-1_log.txt | 177 + .../Peiro_2019/fsaB-1_res/D-fsaB-1_res.txt | 20 + .../Peiro_2019/Peiro_2019/fsaB-2.txt | 8 + .../Peiro_2019/fsaB-2_res/D-fsaB-2.pdf | Bin 0 -> 21582 bytes .../Peiro_2019/fsaB-2_res/D-fsaB-2_log.txt | 171 + .../Peiro_2019/fsaB-2_res/D-fsaB-2_res.txt | 20 + .../Peiro_2019/Peiro_2019/fsaB-3.txt | 9 + .../Peiro_2019/fsaB-3_res/D-fsaB-3.pdf | Bin 0 -> 21112 bytes .../Peiro_2019/fsaB-3_res/D-fsaB-3_log.txt | 177 + .../Peiro_2019/fsaB-3_res/D-fsaB-3_res.txt | 20 + .../Peiro_2019/Peiro_2019/gldA-1.txt | 7 + .../Peiro_2019/Peiro_2019/gldA-1_res/gldA.pdf | Bin 0 -> 21137 bytes .../Peiro_2019/gldA-1_res/gldA_log.txt | 165 + .../Peiro_2019/gldA-1_res/gldA_res.txt | 20 + .../Peiro_2019/Peiro_2019/gldA-2.txt | 6 + .../Peiro_2019/gldA-2_res/gldA-3.pdf | Bin 0 -> 20959 bytes .../Peiro_2019/gldA-2_res/gldA-3_log.txt | 159 + .../Peiro_2019/gldA-2_res/gldA-3_res.txt | 20 + .../Peiro_2019/Peiro_2019/gldA-3.txt | 7 + .../Peiro_2019/gldA-3_res/gldA-4.pdf | Bin 0 -> 21263 bytes .../Peiro_2019/gldA-3_res/gldA-4_log.txt | 165 + .../Peiro_2019/gldA-3_res/gldA-4_res.txt | 20 + .../Peiro_2019/Peiro_2019/gldA-4.txt | 10 + .../Peiro_2019/gldA-4_res/D-glda-1.pdf | Bin 0 -> 21852 bytes .../Peiro_2019/gldA-4_res/D-glda-1_log.txt | 183 + .../Peiro_2019/gldA-4_res/D-glda-1_res.txt | 20 + .../Peiro_2019/Peiro_2019/gldA-5.txt | 10 + .../Peiro_2019/gldA-5_res/D-glda-2.pdf | Bin 0 -> 21701 bytes .../Peiro_2019/gldA-5_res/D-glda-2_log.txt | 183 + .../Peiro_2019/gldA-5_res/D-glda-2_res.txt | 20 + .../Peiro_2019/Peiro_2019/gldA-6.txt | 10 + .../Peiro_2019/gldA-6_res/D-glda-3.pdf | Bin 0 -> 21838 bytes .../Peiro_2019/gldA-6_res/D-glda-3_log.txt | 183 + .../Peiro_2019/gldA-6_res/D-glda-3_res.txt | 20 + .../Peiro_2019/Peiro_2019/glpK-1.txt | 10 + .../Peiro_2019/glpK-1_res/D-glpk-1.pdf | Bin 0 -> 28143 bytes .../Peiro_2019/glpK-1_res/D-glpk-1_log.txt | 196 + .../Peiro_2019/glpK-1_res/D-glpk-1_res.txt | 22 + .../Peiro_2019/Peiro_2019/glpK-2.txt | 13 + .../Peiro_2019/glpK-2_res/D-glpk-2.pdf | Bin 0 -> 29827 bytes .../Peiro_2019/glpK-2_res/D-glpk-2_log.txt | 217 + .../Peiro_2019/glpK-2_res/D-glpk-2_res.txt | 22 + .../Peiro_2019/Peiro_2019/glpK-3.txt | 10 + .../Peiro_2019/glpK-3_res/D-glpk-3.pdf | Bin 0 -> 28914 bytes .../Peiro_2019/glpK-3_res/D-glpk-3_log.txt | 196 + .../Peiro_2019/glpK-3_res/D-glpk-3_res.txt | 22 + .../Peiro_2019/Peiro_2019/glpK-4.txt | 10 + .../Peiro_2019/glpK-4_res/D-glpk-1-1.pdf | Bin 0 -> 28459 bytes .../Peiro_2019/glpK-4_res/D-glpk-1-1_log.txt | 191 + .../Peiro_2019/glpK-4_res/D-glpk-1-1_res.txt | 22 + .../Peiro_2019/Peiro_2019/glpK-5.txt | 13 + .../Peiro_2019/glpK-5_res/D-glpk-2-2.pdf | Bin 0 -> 29716 bytes .../Peiro_2019/glpK-5_res/D-glpk-2-2_log.txt | 211 + .../Peiro_2019/glpK-5_res/D-glpk-2-2_res.txt | 22 + .../Peiro_2019/Peiro_2019/glpK-6.txt | 10 + .../Peiro_2019/glpK-6_res/D-glpk-3-3.pdf | Bin 0 -> 28640 bytes .../Peiro_2019/glpK-6_res/D-glpk-3-3_log.txt | 190 + .../Peiro_2019/glpK-6_res/D-glpk-3-3_res.txt | 22 + .../Peiro_2019/PhysioFit_v3.4.0/dataset_1.tsv | 130 + .../Peiro_2019/PhysioFit_v3.4.0/dataset_2.tsv | 61 + .../results/dataset_1_res/WT-1/DHA.svg | 1105 + .../results/dataset_1_res/WT-1/X.svg | 1069 + .../dataset_1_res/WT-1/config_file.yml | 23 + .../dataset_1_res/WT-1/flux_results.tsv | 6 + .../results/dataset_1_res/WT-1}/plots.pdf | Bin 15308 -> 17227 bytes .../dataset_1_res/WT-1/stat_results.tsv | 11 + .../results/dataset_1_res/WT-2/DHA.svg | 1093 + .../dataset_1_res/WT-2/config_file.yml | 23 + .../dataset_1_res/delta_dhaKLM-1/DHA.svg | 1031 + .../dataset_1_res/delta_dhaKLM-1}/X.svg | 193 +- .../delta_dhaKLM-1/config_file.yml | 23 + .../delta_dhaKLM-1/flux_results.tsv | 6 + .../dataset_1_res/delta_dhaKLM-1}/plots.pdf | Bin 17984 -> 17365 bytes .../delta_dhaKLM-1}/stat_results.tsv | 6 +- .../dataset_1_res/delta_dhaKLM-2}/DHA.svg | 193 +- .../dataset_1_res/delta_dhaKLM-2/X.svg | 1017 + .../delta_dhaKLM-2/config_file.yml | 23 + .../delta_dhaKLM-2/flux_results.tsv | 6 + .../dataset_1_res/delta_dhaKLM-2/plots.pdf | Bin 0 -> 17289 bytes .../delta_dhaKLM-2/stat_results.tsv | 11 + .../dataset_1_res/delta_dhaKLM-3/DHA.svg | 998 + .../dataset_1_res/delta_dhaKLM-3/X.svg | 1048 + .../delta_dhaKLM-3/config_file.yml | 23 + .../delta_dhaKLM-3/flux_results.tsv | 6 + .../dataset_1_res/delta_dhaKLM-3/plots.pdf | Bin 0 -> 16673 bytes .../delta_dhaKLM-3/stat_results.tsv | 11 + .../dataset_1_res/delta_fsaA-1/DHA.svg | 977 + .../results/dataset_1_res/delta_fsaA-1/X.svg | 978 + .../delta_fsaA-1/config_file.yml | 23 + .../delta_fsaA-1/flux_results.tsv | 6 + .../dataset_1_res/delta_fsaA-1/plots.pdf | Bin 0 -> 15858 bytes .../delta_fsaA-1/stat_results.tsv | 11 + .../dataset_1_res/delta_fsaA-2/DHA.svg | 1015 + .../results/dataset_1_res/delta_fsaA-2/X.svg | 1081 + .../delta_fsaA-2/config_file.yml | 23 + .../delta_fsaA-2/flux_results.tsv | 6 + .../dataset_1_res/delta_fsaA-2/plots.pdf | Bin 0 -> 17064 bytes .../delta_fsaA-2/stat_results.tsv | 11 + .../dataset_1_res/delta_fsaA-3/DHA.svg | 977 + .../results/dataset_1_res/delta_fsaA-3/X.svg | 994 + .../delta_fsaA-3/config_file.yml | 23 + .../delta_fsaA-3/flux_results.tsv | 6 + .../dataset_1_res/delta_fsaA-3/plots.pdf | Bin 0 -> 15904 bytes .../delta_fsaA-3/stat_results.tsv | 11 + .../dataset_1_res/delta_fsaA-4/DHA.svg | 885 + .../results/dataset_1_res/delta_fsaA-4/X.svg | 984 + .../delta_fsaA-4/config_file.yml | 23 + .../delta_fsaA-4/flux_results.tsv | 6 + .../dataset_1_res/delta_fsaA-4/plots.pdf | Bin 0 -> 16445 bytes .../delta_fsaA-4/stat_results.tsv | 11 + .../dataset_1_res/delta_fsaB-1/DHA.svg | 977 + .../results/dataset_1_res/delta_fsaB-1/X.svg | 985 + .../delta_fsaB-1/config_file.yml | 23 + .../delta_fsaB-1/flux_results.tsv | 6 + .../dataset_1_res/delta_fsaB-1/plots.pdf | Bin 0 -> 16852 bytes .../delta_fsaB-1/stat_results.tsv | 11 + .../dataset_1_res/delta_fsaB-2/DHA.svg | 1014 + .../results/dataset_1_res/delta_fsaB-2/X.svg | 1050 + .../delta_fsaB-2/config_file.yml | 23 + .../delta_fsaB-2/flux_results.tsv | 6 + .../dataset_1_res/delta_fsaB-2/plots.pdf | Bin 0 -> 16943 bytes .../delta_fsaB-2/stat_results.tsv | 11 + .../dataset_1_res/delta_fsaB-3/DHA.svg | 963 + .../results/dataset_1_res/delta_fsaB-3/X.svg | 971 + .../delta_fsaB-3/config_file.yml | 23 + .../delta_fsaB-3/flux_results.tsv | 6 + .../dataset_1_res/delta_fsaB-3/plots.pdf | Bin 0 -> 16796 bytes .../delta_fsaB-3/stat_results.tsv | 11 + .../dataset_1_res/delta_gldA-1/DHA.svg | 1005 + .../results/dataset_1_res/delta_gldA-1/X.svg | 992 + .../delta_gldA-1/config_file.yml | 23 + .../delta_gldA-1/flux_results.tsv | 6 + .../dataset_1_res/delta_gldA-1/plots.pdf | Bin 0 -> 16879 bytes .../delta_gldA-1/stat_results.tsv | 11 + .../dataset_1_res/delta_gldA-2/DHA.svg | 959 + .../results/dataset_1_res/delta_gldA-2/X.svg | 1013 + .../delta_gldA-2/config_file.yml | 23 + .../delta_gldA-2/flux_results.tsv | 6 + .../dataset_1_res/delta_gldA-2/plots.pdf | Bin 0 -> 16664 bytes .../delta_gldA-2/stat_results.tsv | 11 + .../dataset_1_res/delta_gldA-3/DHA.svg} | 529 +- .../results/dataset_1_res/delta_gldA-3/X.svg | 913 + .../delta_gldA-3/config_file.yml | 23 + .../delta_gldA-3/flux_results.tsv | 6 + .../dataset_1_res/delta_gldA-3/plots.pdf | Bin 0 -> 15889 bytes .../delta_gldA-3/stat_results.tsv | 11 + .../dataset_1_res/delta_gldA-4/DHA.svg | 978 + .../results/dataset_1_res/delta_gldA-4/X.svg | 986 + .../delta_gldA-4/config_file.yml | 23 + .../delta_gldA-4/flux_results.tsv | 6 + .../dataset_1_res/delta_gldA-4/plots.pdf | Bin 0 -> 16832 bytes .../delta_gldA-4/stat_results.tsv | 11 + .../dataset_1_res/delta_gldA-5/DHA.svg | 964 + .../results/dataset_1_res/delta_gldA-5/X.svg | 987 + .../delta_gldA-5/config_file.yml | 23 + .../delta_gldA-5/flux_results.tsv | 6 + .../dataset_1_res/delta_gldA-5/plots.pdf | Bin 0 -> 16834 bytes .../delta_gldA-5/stat_results.tsv | 11 + .../dataset_1_res/delta_gldA-6/DHA.svg | 978 + .../results/dataset_1_res/delta_gldA-6/X.svg | 1001 + .../delta_gldA-6/config_file.yml | 23 + .../delta_gldA-6/flux_results.tsv | 6 + .../dataset_1_res/delta_gldA-6/plots.pdf | Bin 0 -> 17007 bytes .../delta_gldA-6/stat_results.tsv | 11 + .../results/dataset_1_res/log.txt | 2390 ++ .../results/dataset_1_res/summary.csv | 96 + .../Peiro_2019/results.xlsx | Bin 0 -> 24266 bytes 2399 files changed, 685352 insertions(+), 1434 deletions(-) create mode 100644 validation/Supplementary_information.pdf delete mode 100644 validation/Validation.pdf delete mode 100644 validation/models/Batch exponential steady-state.txt delete mode 100644 validation/models/Monod_model/data.tsv delete mode 100644 validation/models/Monod_model/physiofit_results/config_file.yml delete mode 100644 validation/models/Monod_model/physiofit_results/flux_results.tsv delete mode 100644 validation/models/Monod_model/physiofit_results/stat_results.tsv delete mode 100644 validation/models/Steady-state_model/data.txt delete mode 100644 "validation/models/Steady-state_model/original_results/BW25113 \342\210\206ymjA.pdf" delete mode 100644 "validation/models/Steady-state_model/original_results/BW25113 \342\210\206ymjA_log.txt" delete mode 100644 "validation/models/Steady-state_model/original_results/BW25113 \342\210\206ymjA_res.txt" delete mode 100644 validation/models/Steady-state_model/physiofit_results/results/flux_results.tsv delete mode 100644 validation/models/Steady-state_model/physiofit_results/results/stat_results.tsv delete mode 100644 validation/models/Steady-state_model/physiofit_results/summary.csv delete mode 100644 validation/models/Steady-state_model_deg/data.txt delete mode 100644 validation/models/Steady-state_model_deg/physiofit_results/results/config_file.yml delete mode 100644 validation/models/Steady-state_model_deg/physiofit_results/results/flux_results.tsv delete mode 100644 validation/models/Steady-state_model_deg/physiofit_results/summary.csv delete mode 100644 validation/models/summary.xlsx create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT BW.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT BW_res/KEIO_ROBOT5_48.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT BW_res/KEIO_ROBOT5_48_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT BW_res/KEIO_ROBOT5_48_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT1.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT1_res/KEIO_ROBOT1_46.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT1_res/KEIO_ROBOT1_46_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT1_res/KEIO_ROBOT1_46_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT2.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT2_res/KEIO_ROBOT2_46.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT2_res/KEIO_ROBOT2_46_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT2_res/KEIO_ROBOT2_46_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT3.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT3_res/KEIO_ROBOT3_46.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT3_res/KEIO_ROBOT3_46_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT3_res/KEIO_ROBOT3_46_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT4.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT4_res/KEIO_ROBOT4_40.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT4_res/KEIO_ROBOT4_40_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT4_res/KEIO_ROBOT4_40_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1_res/KEIO_ROBOT6_1.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1_res/KEIO_ROBOT6_1_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1_res/KEIO_ROBOT6_1_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2_res/KEIO_ROBOT6_2.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2_res/KEIO_ROBOT6_2_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2_res/KEIO_ROBOT6_2_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3_res/KEIO_ROBOT6_3.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3_res/KEIO_ROBOT6_3_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3_res/KEIO_ROBOT6_3_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4_res/KEIO_ROBOT6_4.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4_res/KEIO_ROBOT6_4_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4_res/KEIO_ROBOT6_4_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1_res/KEIO_ROBOT6_5.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1_res/KEIO_ROBOT6_5_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1_res/KEIO_ROBOT6_5_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2_res/KEIO_ROBOT6_6.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2_res/KEIO_ROBOT6_6_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2_res/KEIO_ROBOT6_6_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/artI.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/artI_res/KEIO_ROBOT3_24.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/artI_res/KEIO_ROBOT3_24_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/artI_res/KEIO_ROBOT3_24_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/hemX.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/hemX_res/KEIO_ROBOT3_18.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/hemX_res/KEIO_ROBOT3_18_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/hemX_res/KEIO_ROBOT3_18_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/modF.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/modF_res/KEIO_ROBOT3_27.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/modF_res/KEIO_ROBOT3_27_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/modF_res/KEIO_ROBOT3_27_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/nanE.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/nanE_res/KEIO_ROBOT3_19.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/nanE_res/KEIO_ROBOT3_19_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/nanE_res/KEIO_ROBOT3_19_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/wbbJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/wbbJ_res/KEIO_ROBOT4_26.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/wbbJ_res/KEIO_ROBOT4_26_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/wbbJ_res/KEIO_ROBOT4_26_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yacC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yacC_res/KEIO_ROBOT5_1.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yacC_res/KEIO_ROBOT5_1_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yacC_res/KEIO_ROBOT5_1_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yadG.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yadG_res/KEIO_ROBOT3_15.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yadG_res/KEIO_ROBOT3_15_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yadG_res/KEIO_ROBOT3_15_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaeR.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaeR_res/KEIO_ROBOT2_8.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaeR_res/KEIO_ROBOT2_8_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaeR_res/KEIO_ROBOT2_8_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yafJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yafJ_res/KEIO_ROBOT2_17.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yafJ_res/KEIO_ROBOT2_17_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yafJ_res/KEIO_ROBOT2_17_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yahJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yahJ_res/KEIO_ROBOT3_31.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yahJ_res/KEIO_ROBOT3_31_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yahJ_res/KEIO_ROBOT3_31_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yahO.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yahO_res/KEIO_ROBOT1_42.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yahO_res/KEIO_ROBOT1_42_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yahO_res/KEIO_ROBOT1_42_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaiA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaiA_res/KEIO_ROBOT1_43.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaiA_res/KEIO_ROBOT1_43_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaiA_res/KEIO_ROBOT1_43_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaiL.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaiL_res/KEIO_ROBOT4_22.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaiL_res/KEIO_ROBOT4_22_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yaiL_res/KEIO_ROBOT4_22_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajD.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajD_res/KEIO_ROBOT1_37.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajD_res/KEIO_ROBOT1_37_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajD_res/KEIO_ROBOT1_37_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajG.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajG_res/KEIO_ROBOT2_22.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajG_res/KEIO_ROBOT2_22_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajG_res/KEIO_ROBOT2_22_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajO.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajO_res/KEIO_ROBOT5_15.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajO_res/KEIO_ROBOT5_15_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yajO_res/KEIO_ROBOT5_15_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybaQ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybaQ_res/KEIO_ROBOT2_6.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybaQ_res/KEIO_ROBOT2_6_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybaQ_res/KEIO_ROBOT2_6_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybaY.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybaY_res/KEIO_ROBOT2_24.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybaY_res/KEIO_ROBOT2_24_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybaY_res/KEIO_ROBOT2_24_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybbA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybbA_res/KEIO_ROBOT3_17.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybbA_res/KEIO_ROBOT3_17_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybbA_res/KEIO_ROBOT3_17_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybcJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybcJ_res/KEIO_ROBOT4_13.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybcJ_res/KEIO_ROBOT4_13_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybcJ_res/KEIO_ROBOT4_13_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybdH.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybdH_res/KEIO_ROBOT2_28.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybdH_res/KEIO_ROBOT2_28_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybdH_res/KEIO_ROBOT2_28_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybeL.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybeL_res/KEIO_ROBOT1_34.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybeL_res/KEIO_ROBOT1_34_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybeL_res/KEIO_ROBOT1_34_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybfE.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybfE_res/KEIO_ROBOT4_27.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybfE_res/KEIO_ROBOT4_27_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybfE_res/KEIO_ROBOT4_27_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgJ_res/KEIO_ROBOT5_14.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgJ_res/KEIO_ROBOT5_14_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgJ_res/KEIO_ROBOT5_14_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgK.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgK_res/KEIO_ROBOT2_15.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgK_res/KEIO_ROBOT2_15_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgK_res/KEIO_ROBOT2_15_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgS.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgS_res/KEIO_ROBOT1_40.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgS_res/KEIO_ROBOT1_40_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybgS_res/KEIO_ROBOT1_40_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybhC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybhC_res/KEIO_ROBOT1_3.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybhC_res/KEIO_ROBOT1_3_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybhC_res/KEIO_ROBOT1_3_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiB.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiB_res/KEIO_ROBOT2_16.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiB_res/KEIO_ROBOT2_16_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiB_res/KEIO_ROBOT2_16_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiC_res/KEIO_ROBOT2_42.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiC_res/KEIO_ROBOT2_42_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiC_res/KEIO_ROBOT2_42_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiH.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiH_res/KEIO_ROBOT3_28.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiH_res/KEIO_ROBOT3_28_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiH_res/KEIO_ROBOT3_28_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiJ_res/KEIO_ROBOT1_36.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiJ_res/KEIO_ROBOT1_36_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiJ_res/KEIO_ROBOT1_36_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiT.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiT_res/KEIO_ROBOT3_25.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiT_res/KEIO_ROBOT3_25_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiT_res/KEIO_ROBOT3_25_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiU.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiU_res/KEIO_ROBOT1_38.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiU_res/KEIO_ROBOT1_38_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybiU_res/KEIO_ROBOT1_38_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjP_2.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjP_2_res/KEIO_ROBOT5_17.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjP_2_res/KEIO_ROBOT5_17_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjP_2_res/KEIO_ROBOT5_17_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjS.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjS_res/KEIO_ROBOT4_30.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjS_res/KEIO_ROBOT4_30_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjS_res/KEIO_ROBOT4_30_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjX.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjX_res/KEIO_ROBOT2_5.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjX_res/KEIO_ROBOT2_5_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ybjX_res/KEIO_ROBOT2_5_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycaC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycaC_res/KEIO_ROBOT2_19.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycaC_res/KEIO_ROBOT2_19_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycaC_res/KEIO_ROBOT2_19_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycbZ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycbZ_res/KEIO_ROBOT2_32.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycbZ_res/KEIO_ROBOT2_32_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycbZ_res/KEIO_ROBOT2_32_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yccJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yccJ_res/KEIO_ROBOT1_27.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yccJ_res/KEIO_ROBOT1_27_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yccJ_res/KEIO_ROBOT1_27_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yccU.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yccU_res/KEIO_ROBOT4_11.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yccU_res/KEIO_ROBOT4_11_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yccU_res/KEIO_ROBOT4_11_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycdX.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycdX_res/KEIO_ROBOT2_7.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycdX_res/KEIO_ROBOT2_7_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycdX_res/KEIO_ROBOT2_7_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycdY.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycdY_res/KEIO_ROBOT1_35.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycdY_res/KEIO_ROBOT1_35_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycdY_res/KEIO_ROBOT1_35_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yceB.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yceB_res/KEIO_ROBOT1_28.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yceB_res/KEIO_ROBOT1_28_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yceB_res/KEIO_ROBOT1_28_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yceD.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yceD_res/KEIO_ROBOT1_39.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yceD_res/KEIO_ROBOT1_39_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yceD_res/KEIO_ROBOT1_39_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycfH.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycfH_res/KEIO_ROBOT2_12.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycfH_res/KEIO_ROBOT2_12_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycfH_res/KEIO_ROBOT2_12_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycgJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycgJ_res/KEIO_ROBOT4_38.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycgJ_res/KEIO_ROBOT4_38_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycgJ_res/KEIO_ROBOT4_38_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycgM.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycgM_res/KEIO_ROBOT2_13.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycgM_res/KEIO_ROBOT2_13_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycgM_res/KEIO_ROBOT2_13_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciK.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciK_res/KEIO_ROBOT3_20.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciK_res/KEIO_ROBOT3_20_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciK_res/KEIO_ROBOT3_20_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciO.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciO_res/KEIO_ROBOT4_9.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciO_res/KEIO_ROBOT4_9_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciO_res/KEIO_ROBOT4_9_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciW.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciW_res/KEIO_ROBOT4_12.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciW_res/KEIO_ROBOT4_12_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yciW_res/KEIO_ROBOT4_12_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycjW.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycjW_res/KEIO_ROBOT3_22.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycjW_res/KEIO_ROBOT3_22_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycjW_res/KEIO_ROBOT3_22_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycjX.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycjX_res/KEIO_ROBOT5_11.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycjX_res/KEIO_ROBOT5_11_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ycjX_res/KEIO_ROBOT5_11_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydbC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydbC_res/KEIO_ROBOT2_31.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydbC_res/KEIO_ROBOT2_31_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydbC_res/KEIO_ROBOT2_31_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydbL.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydbL_res/KEIO_ROBOT4_14.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydbL_res/KEIO_ROBOT4_14_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydbL_res/KEIO_ROBOT4_14_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcH.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcH_res/KEIO_ROBOT4_34.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcH_res/KEIO_ROBOT4_34_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcH_res/KEIO_ROBOT4_34_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcI.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcI_res/KEIO_ROBOT4_10.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcI_res/KEIO_ROBOT4_10_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcI_res/KEIO_ROBOT4_10_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcJ_res/KEIO_ROBOT5_2.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcJ_res/KEIO_ROBOT5_2_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcJ_res/KEIO_ROBOT5_2_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcL.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcL_res/KEIO_ROBOT1_33.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcL_res/KEIO_ROBOT1_33_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcL_res/KEIO_ROBOT1_33_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcP.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcP_res/KEIO_ROBOT1_5.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcP_res/KEIO_ROBOT1_5_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcP_res/KEIO_ROBOT1_5_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcS.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcS_2.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcS_2_res/KEIO_ROBOT5_12.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcS_2_res/KEIO_ROBOT5_12_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcS_2_res/KEIO_ROBOT5_12_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcS_res/KEIO_ROBOT2_10.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcS_res/KEIO_ROBOT2_10_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcS_res/KEIO_ROBOT2_10_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcY.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcY_res/KEIO_ROBOT1_29.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcY_res/KEIO_ROBOT1_29_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydcY_res/KEIO_ROBOT1_29_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yddE.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yddE_res/KEIO_ROBOT5_13.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yddE_res/KEIO_ROBOT5_13_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yddE_res/KEIO_ROBOT5_13_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yddM.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yddM_res/KEIO_ROBOT4_28.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yddM_res/KEIO_ROBOT4_28_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yddM_res/KEIO_ROBOT4_28_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydeI.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydeI_res/KEIO_ROBOT2_2.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydeI_res/KEIO_ROBOT2_2_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydeI_res/KEIO_ROBOT2_2_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydeN.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydeN_res/KEIO_ROBOT4_19.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydeN_res/KEIO_ROBOT4_19_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydeN_res/KEIO_ROBOT4_19_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfH.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfH_res/KEIO_ROBOT5_18.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfH_res/KEIO_ROBOT5_18_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfH_res/KEIO_ROBOT5_18_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfW.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfW_res/KEIO_ROBOT4_35.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfW_res/KEIO_ROBOT4_35_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfW_res/KEIO_ROBOT4_35_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfZ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfZ_res/KEIO_ROBOT1_41.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfZ_res/KEIO_ROBOT1_41_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydfZ_res/KEIO_ROBOT1_41_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydgJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydgJ_res/KEIO_ROBOT4_15.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydgJ_res/KEIO_ROBOT4_15_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydgJ_res/KEIO_ROBOT4_15_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhR.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhR_res/KEIO_ROBOT1_21.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhR_res/KEIO_ROBOT1_21_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhR_res/KEIO_ROBOT1_21_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhS.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhS_res/KEIO_ROBOT1_24.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhS_res/KEIO_ROBOT1_24_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhS_res/KEIO_ROBOT1_24_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhZ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhZ_res/KEIO_ROBOT4_25.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhZ_res/KEIO_ROBOT4_25_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydhZ_res/KEIO_ROBOT4_25_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiH.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiH_res/KEIO_ROBOT1_14.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiH_res/KEIO_ROBOT1_14_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiH_res/KEIO_ROBOT1_14_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiJ_res/KEIO_ROBOT2_35.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiJ_res/KEIO_ROBOT2_35_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiJ_res/KEIO_ROBOT2_35_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiZ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiZ_res/KEIO_ROBOT2_37.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiZ_res/KEIO_ROBOT2_37_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydiZ_res/KEIO_ROBOT2_37_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydjA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydjA_res/KEIO_ROBOT2_3.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydjA_res/KEIO_ROBOT2_3_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydjA_res/KEIO_ROBOT2_3_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydjF.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydjF_res/KEIO_ROBOT2_29.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydjF_res/KEIO_ROBOT2_29_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ydjF_res/KEIO_ROBOT2_29_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaC_res/KEIO_ROBOT1_17.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaC_res/KEIO_ROBOT1_17_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaC_res/KEIO_ROBOT1_17_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaD.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaD_res/KEIO_ROBOT4_23.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaD_res/KEIO_ROBOT4_23_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaD_res/KEIO_ROBOT4_23_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaG.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaG_res/KEIO_ROBOT2_36.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaG_res/KEIO_ROBOT2_36_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaG_res/KEIO_ROBOT2_36_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaO.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaO_res/KEIO_ROBOT5_3.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaO_res/KEIO_ROBOT5_3_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaO_res/KEIO_ROBOT5_3_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaY.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaY_res/KEIO_ROBOT1_4.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaY_res/KEIO_ROBOT1_4_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeaY_res/KEIO_ROBOT1_4_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebG.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebG_res/KEIO_ROBOT1_12.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebG_res/KEIO_ROBOT1_12_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebG_res/KEIO_ROBOT1_12_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebO.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebO_res/KEIO_ROBOT1_15.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebO_res/KEIO_ROBOT1_15_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebO_res/KEIO_ROBOT1_15_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebT.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebT_res/KEIO_ROBOT2_26.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebT_res/KEIO_ROBOT2_26_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebT_res/KEIO_ROBOT2_26_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebV.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebV_res/KEIO_ROBOT4_20.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebV_res/KEIO_ROBOT4_20_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebV_res/KEIO_ROBOT4_20_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebY.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebY_res/KEIO_ROBOT1_19.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebY_res/KEIO_ROBOT1_19_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yebY_res/KEIO_ROBOT1_19_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecA_res/KEIO_ROBOT2_18.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecA_res/KEIO_ROBOT2_18_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecA_res/KEIO_ROBOT2_18_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecF.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecF_res/KEIO_ROBOT1_13.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecF_res/KEIO_ROBOT1_13_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecF_res/KEIO_ROBOT1_13_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecJ_res/KEIO_ROBOT1_22.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecJ_res/KEIO_ROBOT1_22_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecJ_res/KEIO_ROBOT1_22_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecR.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecR_res/KEIO_ROBOT1_25.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecR_res/KEIO_ROBOT1_25_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yecR_res/KEIO_ROBOT1_25_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yedD.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yedD_res/KEIO_ROBOT5_8.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yedD_res/KEIO_ROBOT5_8_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yedD_res/KEIO_ROBOT5_8_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yedV.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yedV_res/KEIO_ROBOT1_1.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yedV_res/KEIO_ROBOT1_1_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yedV_res/KEIO_ROBOT1_1_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yegD.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yegD_res/KEIO_ROBOT4_24.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yegD_res/KEIO_ROBOT4_24_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yegD_res/KEIO_ROBOT4_24_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yegQ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yegQ_res/KEIO_ROBOT1_10.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yegQ_res/KEIO_ROBOT1_10_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yegQ_res/KEIO_ROBOT1_10_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yehS.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yehS_res/KEIO_ROBOT1_26.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yehS_res/KEIO_ROBOT1_26_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yehS_res/KEIO_ROBOT1_26_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeiR.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeiR_res/KEIO_ROBOT2_9.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeiR_res/KEIO_ROBOT2_9_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yeiR_res/KEIO_ROBOT2_9_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yejF.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yejF_res/KEIO_ROBOT5_16.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yejF_res/KEIO_ROBOT5_16_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yejF_res/KEIO_ROBOT5_16_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfaT.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfaT_res/KEIO_ROBOT1_9.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfaT_res/KEIO_ROBOT1_9_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfaT_res/KEIO_ROBOT1_9_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfcD.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfcD_res/KEIO_ROBOT1_6.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfcD_res/KEIO_ROBOT1_6_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfcD_res/KEIO_ROBOT1_6_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfcL.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfcL_res/KEIO_ROBOT1_8.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfcL_res/KEIO_ROBOT1_8_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfcL_res/KEIO_ROBOT1_8_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfdI.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfdI_res/KEIO_ROBOT4_2.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfdI_res/KEIO_ROBOT4_2_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfdI_res/KEIO_ROBOT4_2_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfeC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfeC_res/KEIO_ROBOT5_7.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfeC_res/KEIO_ROBOT5_7_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfeC_res/KEIO_ROBOT5_7_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfeY.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfeY_res/KEIO_ROBOT1_7.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfeY_res/KEIO_ROBOT1_7_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfeY_res/KEIO_ROBOT1_7_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfgD.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfgD_res/KEIO_ROBOT3_33.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfgD_res/KEIO_ROBOT3_33_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfgD_res/KEIO_ROBOT3_33_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfhG.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfhG_res/KEIO_ROBOT1_23.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfhG_res/KEIO_ROBOT1_23_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfhG_res/KEIO_ROBOT1_23_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfhm.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfhm_res/KEIO_ROBOT5_46.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfhm_res/KEIO_ROBOT5_46_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfhm_res/KEIO_ROBOT5_46_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfiF.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfiF_res/KEIO_ROBOT2_23.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfiF_res/KEIO_ROBOT2_23_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yfiF_res/KEIO_ROBOT2_23_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygaM.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygaM_res/KEIO_ROBOT5_9.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygaM_res/KEIO_ROBOT5_9_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygaM_res/KEIO_ROBOT5_9_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygaU.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygaU_res/KEIO_ROBOT2_27.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygaU_res/KEIO_ROBOT2_27_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygaU_res/KEIO_ROBOT2_27_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygdI.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygdI_res/KEIO_ROBOT4_32.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygdI_res/KEIO_ROBOT4_32_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygdI_res/KEIO_ROBOT4_32_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygeA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygeA_res/KEIO_ROBOT2_4.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygeA_res/KEIO_ROBOT2_4_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygeA_res/KEIO_ROBOT2_4_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygeV.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygeV_res/KEIO_ROBOT3_23.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygeV_res/KEIO_ROBOT3_23_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygeV_res/KEIO_ROBOT3_23_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggE.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggE_res/KEIO_ROBOT2_39.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggE_res/KEIO_ROBOT2_39_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggE_res/KEIO_ROBOT2_39_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggL.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggL_res/KEIO_ROBOT3_30.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggL_res/KEIO_ROBOT3_30_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggL_res/KEIO_ROBOT3_30_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggN.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggN_res/KEIO_ROBOT3_37.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggN_res/KEIO_ROBOT3_37_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yggN_res/KEIO_ROBOT3_37_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yghJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yghJ_res/KEIO_ROBOT5_6.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yghJ_res/KEIO_ROBOT5_6_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yghJ_res/KEIO_ROBOT5_6_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygiC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygiC_res/KEIO_ROBOT2_34.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygiC_res/KEIO_ROBOT2_34_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygiC_res/KEIO_ROBOT2_34_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygjR.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygjR_res/KEIO_ROBOT3_39.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygjR_res/KEIO_ROBOT3_39_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ygjR_res/KEIO_ROBOT3_39_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhBT.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhBT_res/KEIO_ROBOT4_44.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhBT_res/KEIO_ROBOT4_44_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhBT_res/KEIO_ROBOT4_44_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhaJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhaJ_res/KEIO_ROBOT3_21.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhaJ_res/KEIO_ROBOT3_21_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhaJ_res/KEIO_ROBOT3_21_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhbS.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhbS_res/KEIO_ROBOT2_40.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhbS_res/KEIO_ROBOT2_40_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhbS_res/KEIO_ROBOT2_40_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhbw.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhbw_res/KEIO_ROBOT5_47.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhbw_res/KEIO_ROBOT5_47_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhbw_res/KEIO_ROBOT5_47_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhcB.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhcB_res/KEIO_ROBOT3_41.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhcB_res/KEIO_ROBOT3_41_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhcB_res/KEIO_ROBOT3_41_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhcH.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhcH_res/KEIO_ROBOT3_5.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhcH_res/KEIO_ROBOT3_5_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhcH_res/KEIO_ROBOT3_5_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhdP.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhdP_res/KEIO_ROBOT4_21.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhdP_res/KEIO_ROBOT4_21_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhdP_res/KEIO_ROBOT4_21_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yheO.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yheO_res/KEIO_ROBOT5_4.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yheO_res/KEIO_ROBOT5_4_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yheO_res/KEIO_ROBOT5_4_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yheS.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yheS_res/KEIO_ROBOT3_26.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yheS_res/KEIO_ROBOT3_26_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yheS_res/KEIO_ROBOT3_26_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhhM.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhhM_res/KEIO_ROBOT2_43.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhhM_res/KEIO_ROBOT2_43_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhhM_res/KEIO_ROBOT2_43_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhhX.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhhX_res/KEIO_ROBOT5_19.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhhX_res/KEIO_ROBOT5_19_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhhX_res/KEIO_ROBOT5_19_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhiI.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhiI_res/KEIO_ROBOT1_2.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhiI_res/KEIO_ROBOT1_2_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhiI_res/KEIO_ROBOT1_2_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhiN.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhiN_res/KEIO_ROBOT3_2.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhiN_res/KEIO_ROBOT3_2_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yhiN_res/KEIO_ROBOT3_2_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yiaF.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yiaF_res/KEIO_ROBOT3_43.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yiaF_res/KEIO_ROBOT3_43_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yiaF_res/KEIO_ROBOT3_43_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibL.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibL_res/KEIO_ROBOT3_3.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibL_res/KEIO_ROBOT3_3_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibL_res/KEIO_ROBOT3_3_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibN.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibN_res/KEIO_ROBOT3_4.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibN_res/KEIO_ROBOT3_4_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibN_res/KEIO_ROBOT3_4_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibT.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibT_res/KEIO_ROBOT3_1.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibT_res/KEIO_ROBOT3_1_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yibT_res/KEIO_ROBOT3_1_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yicH.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yicH_res/KEIO_ROBOT3_6.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yicH_res/KEIO_ROBOT3_6_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yicH_res/KEIO_ROBOT3_6_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yidB.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yidB_res/KEIO_ROBOT3_35.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yidB_res/KEIO_ROBOT3_35_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yidB_res/KEIO_ROBOT3_35_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yidR.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yidR_res/KEIO_ROBOT4_36.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yidR_res/KEIO_ROBOT4_36_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yidR_res/KEIO_ROBOT4_36_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yieP.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yieP_res/KEIO_ROBOT4_33.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yieP_res/KEIO_ROBOT4_33_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yieP_res/KEIO_ROBOT4_33_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yifL.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yifL_res/KEIO_ROBOT3_38.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yifL_res/KEIO_ROBOT3_38_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yifL_res/KEIO_ROBOT3_38_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigA_res/KEIO_ROBOT3_10.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigA_res/KEIO_ROBOT3_10_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigA_res/KEIO_ROBOT3_10_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigB.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigB_res/KEIO_ROBOT3_12.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigB_res/KEIO_ROBOT3_12_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigB_res/KEIO_ROBOT3_12_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigI.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigI_res/KEIO_ROBOT3_45.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigI_res/KEIO_ROBOT3_45_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yigI_res/KEIO_ROBOT3_45_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yiiD.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yiiD_res/KEIO_ROBOT3_8.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yiiD_res/KEIO_ROBOT3_8_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yiiD_res/KEIO_ROBOT3_8_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjaG.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjaG_res/KEIO_ROBOT3_7.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjaG_res/KEIO_ROBOT3_7_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjaG_res/KEIO_ROBOT3_7_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjbD.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjbD_res/KEIO_ROBOT3_9.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjbD_res/KEIO_ROBOT3_9_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjbD_res/KEIO_ROBOT3_9_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjbR.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjbR_res/KEIO_ROBOT3_13.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjbR_res/KEIO_ROBOT3_13_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjbR_res/KEIO_ROBOT3_13_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjcO.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjcO_res/KEIO_ROBOT3_11.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjcO_res/KEIO_ROBOT3_11_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjcO_res/KEIO_ROBOT3_11_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjcZ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjcZ_res/KEIO_ROBOT5_5.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjcZ_res/KEIO_ROBOT5_5_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjcZ_res/KEIO_ROBOT5_5_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjeI.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjeI_res/KEIO_ROBOT3_44.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjeI_res/KEIO_ROBOT3_44_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjeI_res/KEIO_ROBOT3_44_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgJ_res/KEIO_ROBOT3_36.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgJ_res/KEIO_ROBOT3_36_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgJ_res/KEIO_ROBOT3_36_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgM.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgM_res/KEIO_ROBOT4_5.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgM_res/KEIO_ROBOT4_5_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgM_res/KEIO_ROBOT4_5_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgR.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgR_res/KEIO_ROBOT3_14.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgR_res/KEIO_ROBOT3_14_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjgR_res/KEIO_ROBOT3_14_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjhC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjhC_res/KEIO_ROBOT4_4.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjhC_res/KEIO_ROBOT4_4_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjhC_res/KEIO_ROBOT4_4_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjhU.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjhU_res/KEIO_ROBOT4_6.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjhU_res/KEIO_ROBOT4_6_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjhU_res/KEIO_ROBOT4_6_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjjA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjjA_res/KEIO_ROBOT4_1.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjjA_res/KEIO_ROBOT4_1_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjjA_res/KEIO_ROBOT4_1_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjjV.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjjV_res/KEIO_ROBOT3_34.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjjV_res/KEIO_ROBOT3_34_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yjjV_res/KEIO_ROBOT3_34_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ykgE.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ykgE_res/KEIO_ROBOT4_29.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ykgE_res/KEIO_ROBOT4_29_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ykgE_res/KEIO_ROBOT4_29_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ykgG.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ykgG_res/KEIO_ROBOT4_7.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ykgG_res/KEIO_ROBOT4_7_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ykgG_res/KEIO_ROBOT4_7_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ymbA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ymbA_res/KEIO_ROBOT4_8.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ymbA_res/KEIO_ROBOT4_8_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ymbA_res/KEIO_ROBOT4_8_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ymjA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ymjA_res/KEIO_ROBOT5_10.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ymjA_res/KEIO_ROBOT5_10_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ymjA_res/KEIO_ROBOT5_10_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ynbE.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ynbE_res/KEIO_ROBOT1_32.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ynbE_res/KEIO_ROBOT1_32_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ynbE_res/KEIO_ROBOT1_32_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yncE.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yncE_res/KEIO_ROBOT1_31.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yncE_res/KEIO_ROBOT1_31_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yncE_res/KEIO_ROBOT1_31_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ynfK.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ynfK_res/KEIO_ROBOT3_40.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ynfK_res/KEIO_ROBOT3_40_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ynfK_res/KEIO_ROBOT3_40_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yniA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yniA_res/KEIO_ROBOT1_45.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yniA_res/KEIO_ROBOT1_45_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yniA_res/KEIO_ROBOT1_45_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yoaC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yoaC_res/KEIO_ROBOT4_17.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yoaC_res/KEIO_ROBOT4_17_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yoaC_res/KEIO_ROBOT4_17_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yodD.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yodD_res/KEIO_ROBOT4_16.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yodD_res/KEIO_ROBOT4_16_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yodD_res/KEIO_ROBOT4_16_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yohn.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yohn_res/KEIO_ROBOT4_45.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yohn_res/KEIO_ROBOT4_45_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yohn_res/KEIO_ROBOT4_45_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ypeB.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ypeB_res/KEIO_ROBOT4_39.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ypeB_res/KEIO_ROBOT4_39_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ypeB_res/KEIO_ROBOT4_39_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ypfJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ypfJ_res/KEIO_ROBOT4_37.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ypfJ_res/KEIO_ROBOT4_37_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ypfJ_res/KEIO_ROBOT4_37_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqcA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqcA_res/KEIO_ROBOT2_14.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqcA_res/KEIO_ROBOT2_14_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqcA_res/KEIO_ROBOT2_14_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqcC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqcC_res/KEIO_ROBOT2_1.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqcC_res/KEIO_ROBOT2_1_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqcC_res/KEIO_ROBOT2_1_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqfE.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqfE_res/KEIO_ROBOT4_43.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqfE_res/KEIO_ROBOT4_43_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqfE_res/KEIO_ROBOT4_43_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqiC.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqiC_res/KEIO_ROBOT3_42.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqiC_res/KEIO_ROBOT3_42_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yqiC_res/KEIO_ROBOT3_42_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yrbA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yrbA_res/KEIO_ROBOT3_32.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yrbA_res/KEIO_ROBOT3_32_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yrbA_res/KEIO_ROBOT3_32_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yrbL.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yrbL_res/KEIO_ROBOT2_45.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yrbL_res/KEIO_ROBOT2_45_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/yrbL_res/KEIO_ROBOT2_45_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ysgA.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ysgA_res/KEIO_ROBOT4_31.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ysgA_res/KEIO_ROBOT4_31_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ysgA_res/KEIO_ROBOT4_31_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ytfB.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ytfB_res/KEIO_ROBOT4_3.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ytfB_res/KEIO_ROBOT4_3_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ytfB_res/KEIO_ROBOT4_3_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ytfJ.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ytfJ_res/KEIO_ROBOT3_16.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ytfJ_res/KEIO_ROBOT3_16_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/ytfJ_res/KEIO_ROBOT3_16_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf1.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf1_res/KEIO_ROBOT1_47.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf1_res/KEIO_ROBOT1_47_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf1_res/KEIO_ROBOT1_47_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf2.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf2_res/KEIO_ROBOT2_47.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf2_res/KEIO_ROBOT2_47_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf2_res/KEIO_ROBOT2_47_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf3.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf3_res/KEIO_ROBOT3_47.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf3_res/KEIO_ROBOT3_47_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf3_res/KEIO_ROBOT3_47_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf_6_1.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf_6_1_res/KEIO_ROBOT6_7.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf_6_1_res/KEIO_ROBOT6_7_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf_6_1_res/KEIO_ROBOT6_7_res.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf_6_2.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf_6_2_res/KEIO_ROBOT6_8.pdf create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf_6_2_res/KEIO_ROBOT6_8_log.txt create mode 100644 validation/validation_results/Berges_2021/Berges_2021/zwf_6_2_res/KEIO_ROBOT6_8_res.txt create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset.txt create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT1/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT1/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT1/X.svg rename validation/{models/Steady-state_model/physiofit_results/results => validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT1}/config_file.yml (73%) create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT1/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT1/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT1/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT2/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT2/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT2/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT2/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT2/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT2/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT2/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT3/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT3/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT3/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT3/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT3/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT3/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT3/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT4/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT4/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT4/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT4/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT4/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT4/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT4/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_1/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_1/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_1/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_1/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_1/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_1/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_1/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_2/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_2/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_2/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_2/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_2/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_2/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_2/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_3/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_3/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_3/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_3/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_3/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_3/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_3/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_4/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_4/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_4/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_4/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_4/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_4/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_BW_6_4/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_1/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_1/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_1/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_1/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_1/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_1/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_1/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_2/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_2/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_2/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_2/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_2/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_2/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/WT_MG_6_2/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/artI/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/artI/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/artI/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/artI/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/artI/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/artI/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/artI/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/hemX/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/hemX/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/hemX/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/hemX/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/hemX/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/hemX/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/hemX/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/log.txt create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/modF/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/modF/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/modF/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/modF/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/modF/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/modF/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/modF/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/nanE/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/nanE/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/nanE/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/nanE/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/nanE/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/nanE/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/nanE/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/summary.csv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/wbbJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/wbbJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/wbbJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/wbbJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/wbbJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/wbbJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/wbbJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yacC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yacC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yacC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yacC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yacC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yacC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yacC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yadG/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yadG/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yadG/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yadG/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yadG/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yadG/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yadG/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaeR/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaeR/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaeR/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaeR/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaeR/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaeR/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaeR/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yafJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yafJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yafJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yafJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yafJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yafJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yafJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahJ/stat_results.tsv rename validation/{models/Steady-state_model/physiofit_results/results => validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahO}/Ace.svg (81%) create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahO/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahO/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahO/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahO/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahO/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yahO/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiL/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiL/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiL/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiL/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiL/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiL/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yaiL/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajD/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajD/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajD/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajD/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajD/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajD/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajD/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajG/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajG/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajG/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajG/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajG/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajG/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajG/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajO/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajO/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajO/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajO/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajO/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajO/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yajO/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaQ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaQ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaQ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaQ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaQ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaQ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaQ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaY/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaY/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaY/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaY/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaY/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaY/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybaY/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybbA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybbA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybbA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybbA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybbA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybbA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybbA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybcJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybcJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybcJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybcJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybcJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybcJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybcJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybdH/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybdH/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybdH/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybdH/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybdH/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybdH/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybdH/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybeL/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybeL/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybeL/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybeL/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybeL/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybeL/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybeL/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybfE/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybfE/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybfE/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybfE/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybfE/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybfE/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybfE/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgK/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgK/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgK/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgK/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgK/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgK/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgK/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgS/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgS/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgS/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgS/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgS/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgS/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybgS/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybhC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybhC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybhC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybhC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybhC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybhC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybhC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiB/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiB/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiB/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiB/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiB/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiB/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiB/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiH/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiH/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiH/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiH/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiH/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiH/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiH/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiT/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiT/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiT/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiT/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiT/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiT/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiT/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiU/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiU/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiU/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiU/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiU/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiU/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybiU/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjP_2/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjP_2/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjP_2/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjP_2/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjP_2/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjP_2/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjP_2/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjS/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjS/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjS/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjS/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjS/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjS/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjS/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjX/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjX/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjX/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjX/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjX/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjX/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ybjX/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycaC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycaC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycaC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycaC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycaC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycaC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycaC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycbZ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycbZ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycbZ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycbZ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycbZ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycbZ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycbZ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccU/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccU/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccU/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccU/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccU/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccU/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yccU/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdX/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdX/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdX/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdX/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdX/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdX/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdX/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdY/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdY/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdY/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdY/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdY/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdY/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycdY/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceB/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceB/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceB/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceB/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceB/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceB/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceB/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceD/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceD/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceD/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceD/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceD/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceD/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yceD/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycfH/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycfH/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycfH/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycfH/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycfH/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycfH/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycfH/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgM/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgM/Glc.svg rename validation/{models/Monod_model/physiofit_results => validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgM}/X.svg (71%) create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgM/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgM/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgM/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycgM/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciK/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciK/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciK/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciK/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciK/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciK/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciK/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciO/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciO/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciO/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciO/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciO/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciO/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciO/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciW/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciW/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciW/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciW/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciW/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciW/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yciW/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjW/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjW/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjW/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjW/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjW/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjW/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjW/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjX/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjX/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjX/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjX/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjX/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjX/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ycjX/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbL/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbL/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbL/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbL/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbL/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbL/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydbL/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcH/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcH/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcH/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcH/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcH/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcH/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcH/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcI/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcI/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcI/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcI/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcI/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcI/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcI/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcL/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcL/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcL/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcL/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcL/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcL/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcL/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcP/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcP/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcP/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcP/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcP/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcP/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcP/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS_2/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS_2/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS_2/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS_2/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS_2/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS_2/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcS_2/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcY/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcY/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcY/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcY/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcY/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcY/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydcY/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddE/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddE/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddE/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddE/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddE/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddE/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddE/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddM/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddM/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddM/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddM/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddM/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddM/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yddM/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeI/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeI/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeI/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeI/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeI/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeI/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeI/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeN/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeN/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeN/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeN/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeN/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeN/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydeN/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfH/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfH/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfH/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfH/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfH/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfH/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfH/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfW/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfW/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfW/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfW/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfW/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfW/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfW/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfZ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfZ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfZ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfZ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfZ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfZ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydfZ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydgJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydgJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydgJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydgJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydgJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydgJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydgJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhR/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhR/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhR/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhR/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhR/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhR/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhR/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhS/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhS/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhS/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhS/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhS/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhS/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhS/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhZ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhZ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhZ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhZ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhZ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhZ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydhZ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiH/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiH/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiH/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiH/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiH/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiH/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiH/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiJ/flux_results.tsv rename validation/{models/Steady-state_model/physiofit_results/results => validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiJ}/plots.pdf (57%) create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiZ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiZ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiZ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiZ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiZ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiZ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydiZ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjF/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjF/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjF/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjF/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjF/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjF/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ydjF/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaD/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaD/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaD/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaD/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaD/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaD/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaD/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaG/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaG/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaG/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaG/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaG/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaG/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaG/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaO/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaO/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaO/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaO/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaO/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaO/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaO/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaY/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaY/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaY/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaY/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaY/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaY/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeaY/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebG/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebG/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebG/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebG/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebG/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebG/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebG/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebO/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebO/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebO/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebO/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebO/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebO/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebO/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebT/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebT/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebT/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebT/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebT/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebT/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebT/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebV/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebV/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebV/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebV/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebV/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebV/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebV/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebY/Ace.svg rename validation/{models/Steady-state_model/physiofit_results/results => validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebY}/Glc.svg (81%) create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebY/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebY/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebY/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebY/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yebY/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecF/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecF/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecF/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecF/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecF/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecF/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecF/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecR/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecR/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecR/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecR/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecR/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecR/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yecR/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedD/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedD/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedD/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedD/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedD/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedD/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedD/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedV/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedV/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedV/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedV/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedV/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedV/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yedV/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegD/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegD/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegD/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegD/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegD/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegD/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegD/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegQ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegQ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegQ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegQ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegQ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegQ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yegQ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yehS/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yehS/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yehS/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yehS/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yehS/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yehS/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yehS/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeiR/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeiR/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeiR/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeiR/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeiR/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeiR/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yeiR/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yejF/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yejF/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yejF/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yejF/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yejF/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yejF/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yejF/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfaT/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfaT/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfaT/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfaT/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfaT/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfaT/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfaT/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcD/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcD/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcD/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcD/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcD/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcD/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcD/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcL/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcL/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcL/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcL/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcL/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcL/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfcL/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfdI/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfdI/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfdI/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfdI/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfdI/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfdI/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfdI/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeY/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeY/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeY/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeY/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeY/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeY/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfeY/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfgD/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfgD/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfgD/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfgD/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfgD/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfgD/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfgD/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhG/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhG/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhG/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhG/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhG/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhG/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhG/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhm/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhm/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhm/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhm/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhm/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhm/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfhm/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfiF/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfiF/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfiF/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfiF/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfiF/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfiF/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yfiF/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaM/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaM/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaM/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaM/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaM/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaM/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaM/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaU/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaU/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaU/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaU/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaU/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaU/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygaU/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygdI/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygdI/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygdI/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygdI/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygdI/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygdI/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygdI/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeV/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeV/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeV/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeV/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeV/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeV/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygeV/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggE/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggE/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggE/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggE/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggE/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggE/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggE/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggL/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggL/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggL/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggL/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggL/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggL/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggL/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggN/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggN/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggN/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggN/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggN/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggN/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yggN/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yghJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yghJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yghJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yghJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yghJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yghJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yghJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygiC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygiC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygiC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygiC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygiC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygiC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygiC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygjR/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygjR/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygjR/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygjR/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygjR/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygjR/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ygjR/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhBT/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhBT/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhBT/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhBT/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhBT/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhBT/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhBT/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhaJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhaJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhaJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhaJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhaJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhaJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhaJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbS/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbS/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbS/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbS/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbS/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbS/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbS/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbw/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbw/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbw/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbw/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbw/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbw/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhbw/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcB/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcB/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcB/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcB/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcB/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcB/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcB/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcH/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcH/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcH/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcH/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcH/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcH/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhcH/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhdP/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhdP/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhdP/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhdP/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhdP/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhdP/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhdP/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheO/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheO/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheO/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheO/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheO/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheO/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheO/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheS/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheS/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheS/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheS/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheS/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheS/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yheS/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhM/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhM/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhM/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhM/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhM/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhM/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhM/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhX/Ace.svg rename validation/{models/Monod_model/physiofit_results/S_GlcEq.svg => validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhX/Glc.svg} (70%) create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhX/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhX/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhX/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhX/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhhX/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiI/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiI/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiI/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiI/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiI/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiI/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiI/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiN/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiN/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiN/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiN/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiN/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiN/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yhiN/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiaF/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiaF/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiaF/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiaF/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiaF/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiaF/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiaF/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibL/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibL/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibL/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibL/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibL/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibL/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibL/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibN/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibN/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibN/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibN/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibN/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibN/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibN/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibT/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibT/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibT/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibT/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibT/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibT/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yibT/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yicH/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yicH/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yicH/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yicH/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yicH/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yicH/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yicH/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidB/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidB/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidB/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidB/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidB/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidB/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidB/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidR/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidR/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidR/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidR/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidR/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidR/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yidR/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yieP/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yieP/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yieP/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yieP/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yieP/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yieP/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yieP/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yifL/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yifL/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yifL/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yifL/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yifL/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yifL/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yifL/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigB/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigB/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigB/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigB/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigB/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigB/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigB/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigI/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigI/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigI/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigI/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigI/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigI/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yigI/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiiD/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiiD/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiiD/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiiD/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiiD/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiiD/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yiiD/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjaG/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjaG/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjaG/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjaG/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjaG/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjaG/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjaG/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbD/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbD/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbD/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbD/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbD/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbD/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbD/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbR/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbR/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbR/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbR/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbR/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbR/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjbR/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcO/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcO/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcO/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcO/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcO/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcO/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcO/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcZ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcZ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcZ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcZ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcZ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcZ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjcZ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjeI/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjeI/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjeI/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjeI/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjeI/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjeI/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjeI/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgM/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgM/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgM/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgM/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgM/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgM/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgM/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgR/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgR/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgR/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgR/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgR/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgR/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjgR/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhU/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhU/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhU/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhU/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhU/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhU/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjhU/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjV/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjV/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjV/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjV/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjV/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjV/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yjjV/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgE/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgE/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgE/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgE/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgE/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgE/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgE/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgG/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgG/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgG/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgG/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgG/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgG/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ykgG/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymbA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymbA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymbA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymbA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymbA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymbA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymbA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymjA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymjA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymjA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymjA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymjA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymjA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ymjA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynbE/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynbE/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynbE/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynbE/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynbE/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynbE/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynbE/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yncE/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yncE/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yncE/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yncE/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yncE/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yncE/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yncE/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynfK/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynfK/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynfK/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynfK/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynfK/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynfK/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ynfK/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yniA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yniA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yniA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yniA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yniA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yniA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yniA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yoaC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yoaC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yoaC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yoaC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yoaC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yoaC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yoaC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yodD/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yodD/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yodD/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yodD/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yodD/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yodD/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yodD/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yohn/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yohn/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yohn/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yohn/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yohn/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yohn/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yohn/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypeB/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypeB/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypeB/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypeB/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypeB/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypeB/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypeB/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypfJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypfJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypfJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypfJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypfJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypfJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ypfJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqcC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqfE/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqfE/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqfE/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqfE/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqfE/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqfE/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqfE/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqiC/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqiC/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqiC/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqiC/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqiC/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqiC/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yqiC/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbL/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbL/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbL/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbL/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbL/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbL/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/yrbL/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ysgA/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ysgA/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ysgA/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ysgA/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ysgA/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ysgA/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ysgA/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfB/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfB/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfB/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfB/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfB/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfB/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfB/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfJ/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfJ/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfJ/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfJ/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfJ/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfJ/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/ytfJ/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf1/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf1/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf1/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf1/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf1/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf1/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf1/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf2/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf2/Glc.svg rename validation/{models/Steady-state_model/physiofit_results/results => validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf2}/X.svg (79%) create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf2/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf2/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf2/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf2/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf3/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf3/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf3/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf3/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf3/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf3/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf3/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_1/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_1/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_1/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_1/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_1/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_1/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_1/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_2/Ace.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_2/Glc.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_2/X.svg create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_2/config_file.yml create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_2/flux_results.tsv create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_2/plots.pdf create mode 100644 validation/validation_results/Berges_2021/PhysioFit_v3.4.0/dataset_res/zwf_6_2/stat_results.tsv create mode 100644 validation/validation_results/Berges_2021/results.xlsx create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-1.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-1_res/WT.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-1_res/WT_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-1_res/WT_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-2.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-2_res/WT-2.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-2_res/WT-2_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-2_res/WT-2_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-3.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-3_res/WT-3.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-3_res/WT-3_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/WT-3_res/WT-3_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/dhaKLM-1.txt rename validation/{models/Steady-state_model_deg/original_results => validation_results/Peiro_2019/Peiro_2019/dhaKLM-1_res}/dhaKLM.pdf (100%) rename validation/{models/Steady-state_model_deg/original_results => validation_results/Peiro_2019/Peiro_2019/dhaKLM-1_res}/dhaKLM_log.txt (100%) rename validation/{models/Steady-state_model_deg/original_results => validation_results/Peiro_2019/Peiro_2019/dhaKLM-1_res}/dhaKLM_res.txt (100%) create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/dhaKLM-2.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/dhaKLM-2_res/dhaKLM-2.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/dhaKLM-2_res/dhaKLM-2_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/dhaKLM-2_res/dhaKLM-2_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/dhaKLM-3.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/dhaKLM-3_res/dhaKLM-3.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/dhaKLM-3_res/dhaKLM-3_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/dhaKLM-3_res/dhaKLM-3_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-1.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-1_res/fsaA-1.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-1_res/fsaA-1_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-1_res/fsaA-1_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-2.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-2_res/fsaA-2.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-2_res/fsaA-2_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-2_res/fsaA-2_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-3.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-3_res/fsaA-3.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-3_res/fsaA-3_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-3_res/fsaA-3_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-4.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-4_res/fsaA-3.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-4_res/fsaA-3_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaA-4_res/fsaA-3_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-1.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-1_res/D-fsaB-1.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-1_res/D-fsaB-1_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-1_res/D-fsaB-1_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-2.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-2_res/D-fsaB-2.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-2_res/D-fsaB-2_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-2_res/D-fsaB-2_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-3.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-3_res/D-fsaB-3.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-3_res/D-fsaB-3_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/fsaB-3_res/D-fsaB-3_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-1.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-1_res/gldA.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-1_res/gldA_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-1_res/gldA_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-2.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-2_res/gldA-3.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-2_res/gldA-3_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-2_res/gldA-3_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-3.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-3_res/gldA-4.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-3_res/gldA-4_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-3_res/gldA-4_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-4.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-4_res/D-glda-1.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-4_res/D-glda-1_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-4_res/D-glda-1_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-5.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-5_res/D-glda-2.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-5_res/D-glda-2_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-5_res/D-glda-2_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-6.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-6_res/D-glda-3.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-6_res/D-glda-3_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/gldA-6_res/D-glda-3_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-1.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-1_res/D-glpk-1.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-1_res/D-glpk-1_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-1_res/D-glpk-1_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-2.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-2_res/D-glpk-2.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-2_res/D-glpk-2_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-2_res/D-glpk-2_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-3.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-3_res/D-glpk-3.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-3_res/D-glpk-3_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-3_res/D-glpk-3_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-4.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-4_res/D-glpk-1-1.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-4_res/D-glpk-1-1_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-4_res/D-glpk-1-1_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-5.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-5_res/D-glpk-2-2.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-5_res/D-glpk-2-2_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-5_res/D-glpk-2-2_res.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-6.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-6_res/D-glpk-3-3.pdf create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-6_res/D-glpk-3-3_log.txt create mode 100644 validation/validation_results/Peiro_2019/Peiro_2019/glpK-6_res/D-glpk-3-3_res.txt create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/dataset_1.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/dataset_2.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/WT-1/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/WT-1/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/WT-1/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/WT-1/flux_results.tsv rename validation/{models/Steady-state_model_deg/physiofit_results/results => validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/WT-1}/plots.pdf (65%) create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/WT-1/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/WT-2/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/WT-2/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-1/DHA.svg rename validation/{models/Steady-state_model_deg/physiofit_results/results => validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-1}/X.svg (82%) create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-1/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-1/flux_results.tsv rename validation/{models/Monod_model/physiofit_results => validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-1}/plots.pdf (55%) rename validation/{models/Steady-state_model_deg/physiofit_results/results => validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-1}/stat_results.tsv (70%) rename validation/{models/Steady-state_model_deg/physiofit_results/results => validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-2}/DHA.svg (82%) create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-2/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-2/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-2/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-2/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-2/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-3/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-3/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-3/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-3/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-3/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_dhaKLM-3/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-1/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-1/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-1/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-1/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-1/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-1/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-2/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-2/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-2/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-2/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-2/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-2/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-3/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-3/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-3/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-3/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-3/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-3/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-4/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-4/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-4/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-4/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-4/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaA-4/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-1/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-1/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-1/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-1/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-1/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-1/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-2/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-2/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-2/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-2/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-2/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-2/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-3/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-3/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-3/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-3/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-3/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_fsaB-3/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-1/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-1/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-1/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-1/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-1/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-1/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-2/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-2/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-2/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-2/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-2/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-2/stat_results.tsv rename validation/{models/Monod_model/physiofit_results/P_ethanol.svg => validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-3/DHA.svg} (64%) create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-3/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-3/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-3/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-3/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-3/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-4/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-4/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-4/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-4/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-4/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-4/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-5/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-5/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-5/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-5/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-5/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-5/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-6/DHA.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-6/X.svg create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-6/config_file.yml create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-6/flux_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-6/plots.pdf create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/delta_gldA-6/stat_results.tsv create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/log.txt create mode 100644 validation/validation_results/Peiro_2019/PhysioFit_v3.4.0/results/dataset_1_res/summary.csv create mode 100644 validation/validation_results/Peiro_2019/results.xlsx diff --git a/validation/Supplementary_information.pdf b/validation/Supplementary_information.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ab868819c4ed2345c5b309f07573888e2b6c82cf GIT binary patch literal 553312 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 z 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�FmBHflkOC&2YXxy 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 UQ`M2^UzEDBT*p~7dEPnxUo?m*LI3~& literal 0 HcmV?d00001 diff --git a/validation/Validation.pdf b/validation/Validation.pdf deleted file mode 100644 index a10633e25b5b256a8ae1c2c3a18b1a10374c8a7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 881215 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¬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 z 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

TCyUbefz^P6N<3ry25{Ks%gWxT<@B_BicG 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�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

+7O#1*(ER(SJq4t=sGOTz&KDPDh-vYhRxB8 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

)30cph30bkCDj-jO!9_Uw&j7s> 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 diff --git "a/validation/models/Steady-state_model/original_results/BW25113 \342\210\206ymjA_log.txt" "b/validation/models/Steady-state_model/original_results/BW25113 \342\210\206ymjA_log.txt" deleted file mode 100644 index c360706..0000000 --- "a/validation/models/Steady-state_model/original_results/BW25113 \342\210\206ymjA_log.txt" +++ /dev/null @@ -1,195 +0,0 @@ -$sys -$sys$params - X Glc Ace mu qGlc qAce - 0.6 0.6 0.6 0.6 0.6 0.6 - -$sys$to_est -[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" - -$sys$nconc -[1] "X" "Glc" "Ace" - -$sys$nflux -[1] "mu" "qGlc" "qAce" - -$sys$metab -[1] "Glc" "Ace" - -$sys$weight - col -row X Glc Ace - [1,] 0.02 0.46 0.2 - [2,] 0.02 0.46 0.2 - [3,] 0.02 0.46 0.2 - [4,] 0.02 0.46 0.2 - [5,] 0.02 0.46 0.2 - [6,] 0.02 0.46 0.2 - [7,] 0.02 0.46 0.2 - [8,] 0.02 0.46 0.2 - [9,] 0.02 0.46 0.2 - [10,] 0.02 0.46 0.2 - [11,] 0.02 0.46 0.2 - [12,] 0.02 0.46 0.2 - [13,] 0.02 0.46 0.2 - -$sys$te_upc - X Glc Ace mu qGlc qAce - 50 50 50 50 50 50 - -$sys$te_loc - X Glc Ace mu qGlc qAce - 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 - -$sys$u - X Glc Ace mu qGlc qAce -X <= 50 -1 0 0 0 0 0 -Glc <= 50 0 -1 0 0 0 0 -Ace <= 50 0 0 -1 0 0 0 -mu <= 50 0 0 0 -1 0 0 -qGlc <= 50 0 0 0 0 -1 0 -qAce <= 50 0 0 0 0 0 -1 -X >= 1e-06 1 0 0 0 0 0 -Glc >= 1e-06 0 1 0 0 0 0 -Ace >= 1e-06 0 0 1 0 0 0 -mu >= 0 0 0 0 1 0 0 -qGlc >= -50 0 0 0 0 1 0 -qAce >= -50 0 0 0 0 0 1 - -$sys$co - X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 - -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 - -$sys$times - [1] 0.00000000 1.18888889 2.27694444 3.12833333 3.77138889 4.41555556 4.82277778 0.06666667 1.71666667 2.80000000 3.63333333 4.26666667 4.88333333 - -$sys$data_meas - X Glc Ace - [1,] 0.033264 NA NA - [2,] 0.051408 NA NA - [3,] 0.074088 NA NA - [4,] 0.108864 NA NA - [5,] 0.139104 NA NA - [6,] 0.175392 NA NA - [7,] 0.228312 NA NA - [8,] NA 15.81315 0.009505775 - [9,] NA 15.60350 0.294995312 -[10,] NA 13.76795 0.610747733 -[11,] NA 13.12348 0.997928907 -[12,] NA 12.69779 1.377281918 -[13,] NA 11.58289 1.804833542 - -$sys$nb_par -[1] 6 - -$sys$nb_conc -[1] 3 - - -$result -$result$par - X Glc Ace mu qGlc qAce - 0.031417647 15.801499038 0.001734437 0.400675419 -9.179946968 3.819813358 - -$result$lastp - X Glc Ace mu qGlc qAce - 1.996484e-09 1.155996e-07 -1.312254e-08 -1.770526e-08 -3.534122e-07 -1.059004e-08 - -$result$hci - X Glc Ace mu qGlc qAce -0.009221946 0.392940008 0.170394275 0.069145116 1.618652759 0.695841640 - -$result$ci_p -[1] 0.95 - -$result$sd_res -[1] 0.551829 - -$result$laststep - X Glc Ace mu qGlc qAce - 1.996484e-09 1.155996e-07 -1.312254e-08 -1.770526e-08 -3.534122e-07 -1.059004e-08 - -$result$normp -[1] 3.726463e-07 - -$result$res - [1] -0.092317658 -0.040964852 0.207225949 0.058646322 0.163607923 0.445487014 -0.567326227 -0.067685984 -1.117782244 1.180570423 0.676881041 -0.335903100 -0.336080136 0.001685556 0.015391042 0.055928234 -0.057106857 -0.098945348 0.083047373 - -$result$prevres - [1] -0.092317758 -0.040964960 0.207225858 0.058646277 0.163607946 0.445487148 -0.567325990 -0.067686231 -1.117782363 1.180570407 0.676881110 -0.335902969 -0.336079954 0.001685619 0.015391043 0.055928202 -0.057106895 -0.098945369 0.083047400 - -$result$jacobian - [,1] [,2] [,3] [,4] [,5] [,6] - [1,] 50.000000 0.000000 0 0.000000000 0.00000000 0.00000000 - [2,] 80.510014 0.000000 0 3.007217215 0.00000000 0.00000000 - [3,] 124.504108 0.000000 0 8.906554767 0.00000000 0.00000000 - [4,] 175.119628 0.000000 0 17.211609105 0.00000000 0.00000000 - [5,] 226.586301 0.000000 0 26.847793189 0.00000000 0.00000000 - [6,] 293.309291 0.000000 0 40.689729254 0.00000000 0.00000000 - [7,] 345.292401 0.000000 0 52.318814823 0.00000000 0.00000000 - [8,] -1.348355 2.173913 0 -0.001418358 0.00461464 0.00000000 - [9,] -49.278272 2.173913 0 -1.480029542 0.16865101 0.00000000 -[10,] -103.132979 2.173913 0 -5.367198272 0.35296450 0.00000000 -[11,] -163.758074 2.173913 0 -11.538058687 0.56044912 0.00000000 -[12,] -225.449282 2.173913 0 -19.219849204 0.77158242 0.00000000 -[13,] -302.599631 2.173913 0 -30.339856233 1.03562342 0.00000000 -[14,] 1.290429 0.000000 5 0.001357425 0.00000000 0.01061367 -[15,] 47.161248 0.000000 5 1.416446609 0.00000000 0.38789732 -[16,] 98.702326 0.000000 5 5.136620299 0.00000000 0.81181836 -[17,] 156.722931 0.000000 5 11.042376948 0.00000000 1.28903297 -[18,] 215.763849 0.000000 5 18.394153257 0.00000000 1.77463957 -[19,] 289.599774 0.000000 5 29.036438290 0.00000000 2.38193388 - -$result$retres -$result$retres$res - [1] -0.092317758 -0.040964960 0.207225858 0.058646277 0.163607946 0.445487148 -0.567325990 -0.067686231 -1.117782363 1.180570407 0.676881110 -0.335902969 -0.336079954 0.001685619 0.015391043 0.055928202 -0.057106895 -0.098945369 0.083047400 - -$result$retres$sim - col -row X Glc Ace - [1,] 0.03141764 15.80150 0.001734450 - [2,] 0.05058870 15.36227 0.184500472 - [3,] 0.07823252 14.72892 0.448041009 - [4,] 0.11003693 14.00024 0.751246280 - [5,] 0.14237616 13.25931 1.059550270 - [6,] 0.18430174 12.29874 1.459245115 - [7,] 0.21696548 11.55038 1.770642742 - [8,] 0.03226817 15.78201 0.009842899 - [9,] 0.06250183 15.08932 0.298073521 - [10,] 0.09647278 14.31101 0.621933374 - [11,] 0.13471441 13.43485 0.986507528 - [12,] 0.17362854 12.54328 1.357492844 - [13,] 0.22229412 11.42829 1.821443022 - - -$result$it -[1] 8 - -$result$btit -[1] 0 - -$result$history -NULL - -$result$error -[1] 0 - -$result$mes -[1] "" - -$result$resi - X Glc Ace - [1,] 0.0018463552 NA NA - [2,] 0.0008192992 NA NA - [3,] -0.0041445172 NA NA - [4,] -0.0011729255 NA NA - [5,] -0.0032721589 NA NA - [6,] -0.0089097430 NA NA - [7,] 0.0113465198 NA NA - [8,] NA 0.03113567 -0.0003371238 - [9,] NA 0.51417989 -0.0030782086 -[10,] NA -0.54306239 -0.0111856404 -[11,] NA -0.31136531 0.0114213790 -[12,] NA 0.15451537 0.0197890738 -[13,] NA 0.15459678 -0.0166094800 - - diff --git "a/validation/models/Steady-state_model/original_results/BW25113 \342\210\206ymjA_res.txt" "b/validation/models/Steady-state_model/original_results/BW25113 \342\210\206ymjA_res.txt" deleted file mode 100644 index 740e782..0000000 --- "a/validation/models/Steady-state_model/original_results/BW25113 \342\210\206ymjA_res.txt" +++ /dev/null @@ -1,21 +0,0 @@ -Results (100 mc iterations) - -optimal mean median sd CI_2.5 CI_97.5 -X 0.0314176468392843 0.0317041805675159 0.031270929320175 0.00528845690520736 0.0226061239544647 0.0423756420269034 -Glc 15.8014990383804 15.7888980226922 15.7756658913602 0.203100844373514 15.4018249749975 16.1227376122043 -Ace 0.00173443678157678 0.0542796088063603 0.0382748102620848 0.0594071591250536 9.99999999984737e-07 0.19953969288509 -mu 0.400675418682353 0.400891021329512 0.401033105621402 0.040705290506425 0.326781800308928 0.479864774602962 -qGlc -9.17994696817661 -9.16526423208897 -9.06440188323603 0.9560427332655 -11.0689181726669 -7.33292372954146 -qAce 3.81981335762841 3.69114407167164 3.69597444558068 0.375776229663407 2.97728531031089 4.53980703200308 -res 3.95869762112645 31.7895117978556 31.4589573414922 7.67520055269962 19.2753910175588 50.0381694535088 - - -Goodness of fit (khi2 test) - -khi2 value 3.9586976211267 -data points 19 -fitted parameters 6 -degrees of freedom 13 -khi2 reduced value 0.304515201625131 -p-value, i.e. P(X^2<=value) 0.00837715869207238 -conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/models/Steady-state_model/physiofit_results/results/flux_results.tsv b/validation/models/Steady-state_model/physiofit_results/results/flux_results.tsv deleted file mode 100644 index 4c9b073..0000000 --- a/validation/models/Steady-state_model/physiofit_results/results/flux_results.tsv +++ /dev/null @@ -1,7 +0,0 @@ - optimal mean sd median CI_2.5 CI_97.5 -X_0 0.03141744599863818 0.030937509123949266 0.005588743268385279 0.0314435906518126 0.020087699273588378 0.04008291075888095 -growth_rate 0.4006769541201118 0.4073171789727354 0.044919738759394284 0.400399964204328 0.3368041142333426 0.4947137839486294 -Glc_q -9.179962519953397 -9.367213403659251 0.9196598590800444 -9.271153585646687 -11.576339489964397 -7.717390100856105 -Glc_M0 15.80149393328667 15.79757464565157 0.21600160875547877 15.789644754108949 15.362635588087214 16.175750909865833 -Ace_q 3.8198244705175135 3.7812213880313434 0.38968766840313307 3.7092503338702216 3.0207573588314607 4.54932363936233 -Ace_M0 0.0017343519958105242 0.03610681107875325 0.06176707637111388 1e-06 1e-06 0.22185056708169532 diff --git a/validation/models/Steady-state_model/physiofit_results/results/stat_results.tsv b/validation/models/Steady-state_model/physiofit_results/results/stat_results.tsv deleted file mode 100644 index 9642ba1..0000000 --- a/validation/models/Steady-state_model/physiofit_results/results/stat_results.tsv +++ /dev/null @@ -1,11 +0,0 @@ -================== -Khi² test results -================== - -khi2_value 3.958665 -number_of_measurements 19.000000 -number_of_params 6.000000 -Degrees_of_freedom 13.000000 -p_val 0.008377 - -At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. Value: 0.008376820519788792 \ No newline at end of file diff --git a/validation/models/Steady-state_model/physiofit_results/summary.csv b/validation/models/Steady-state_model/physiofit_results/summary.csv deleted file mode 100644 index aaa1cad..0000000 --- a/validation/models/Steady-state_model/physiofit_results/summary.csv +++ /dev/null @@ -1,7 +0,0 @@ -experiments,parameter name,optimal,mean,sd,median,CI_2.5,CI_97.5 -A,X_0,0.03141744599863818,0.030937509123949266,0.005588743268385279,0.0314435906518126,0.020087699273588378,0.04008291075888095 -A,growth_rate,0.4006769541201118,0.4073171789727354,0.044919738759394284,0.400399964204328,0.3368041142333426,0.4947137839486294 -A,Glc_q,-9.179962519953397,-9.367213403659251,0.9196598590800444,-9.271153585646687,-11.576339489964397,-7.717390100856105 -A,Glc_M0,15.80149393328667,15.79757464565157,0.21600160875547877,15.789644754108949,15.362635588087214,16.175750909865833 -A,Ace_q,3.8198244705175135,3.7812213880313434,0.38968766840313307,3.7092503338702216,3.0207573588314607,4.54932363936233 -A,Ace_M0,0.0017343519958105242,0.03610681107875325,0.06176707637111388,1e-06,1e-06,0.22185056708169532 diff --git a/validation/models/Steady-state_model_deg/data.txt b/validation/models/Steady-state_model_deg/data.txt deleted file mode 100644 index d09cd03..0000000 --- a/validation/models/Steady-state_model_deg/data.txt +++ /dev/null @@ -1,7 +0,0 @@ -experiments time X DHA -A 0 0.08 13.091353 -A 7.9825 0.11 12.697156 -A 9.476667 0.15 12.389292 -A 23.892778 0.45 10.069308 -A 26.976111 0.48 10.042876 -A 47.843056 1.09 3.366052 diff --git a/validation/models/Steady-state_model_deg/physiofit_results/results/config_file.yml b/validation/models/Steady-state_model_deg/physiofit_results/results/config_file.yml deleted file mode 100644 index f9f9fa1..0000000 --- a/validation/models/Steady-state_model_deg/physiofit_results/results/config_file.yml +++ /dev/null @@ -1,18 +0,0 @@ -iterations: 100 -mc: true -model: - bounds: - DHA_M0: (1e-06, 50) - DHA_q: (-50, 50) - X_0: (0.001, 10) - growth_rate: (0.001, 3) - model_name: Steady-state batch model with degradation of metabolites - parameters_to_estimate: - DHA_M0: 1 - DHA_q: 1 - X_0: 1 - growth_rate: 1 -path_to_data: C:\Users\millard\Documents\GIT\PhysioFit\data_test\Steady-state_model\DHAklm.txt -sds: - DHA: 0.5 - X: 0.002 diff --git a/validation/models/Steady-state_model_deg/physiofit_results/results/flux_results.tsv b/validation/models/Steady-state_model_deg/physiofit_results/results/flux_results.tsv deleted file mode 100644 index 857a238..0000000 --- a/validation/models/Steady-state_model_deg/physiofit_results/results/flux_results.tsv +++ /dev/null @@ -1,5 +0,0 @@ - optimal mean sd median CI_2.5 CI_97.5 -X_0 0.12631522289113964 0.126381923767271 0.0006929026209877955 0.12641304163547407 0.12490367804211952 0.12756743796858075 -growth_rate 0.045429970890166364 0.04542118138462707 0.00012923139203134898 0.04540237657918154 0.045192698189370176 0.04565776367183036 -DHA_q -0.27367898957210246 -0.2729830494171032 0.03009597207086485 -0.26970653513855086 -0.346680175495912 -0.2268195439073993 -DHA_M0 13.686516281710393 13.661232939453296 0.29303126938982677 13.652247839183685 13.044762488488477 14.217734165517038 diff --git a/validation/models/Steady-state_model_deg/physiofit_results/summary.csv b/validation/models/Steady-state_model_deg/physiofit_results/summary.csv deleted file mode 100644 index b256a73..0000000 --- a/validation/models/Steady-state_model_deg/physiofit_results/summary.csv +++ /dev/null @@ -1,5 +0,0 @@ -experiments,parameter name,optimal,mean,sd,median,CI_2.5,CI_97.5 -A,X_0,0.12631522289113964,0.126381923767271,0.0006929026209877955,0.12641304163547407,0.12490367804211952,0.12756743796858075 -A,growth_rate,0.045429970890166364,0.04542118138462707,0.00012923139203134898,0.04540237657918154,0.045192698189370176,0.04565776367183036 -A,DHA_q,-0.27367898957210246,-0.2729830494171032,0.03009597207086485,-0.26970653513855086,-0.346680175495912,-0.2268195439073993 -A,DHA_M0,13.686516281710393,13.661232939453296,0.29303126938982677,13.652247839183685,13.044762488488477,14.217734165517038 diff --git a/validation/models/summary.xlsx b/validation/models/summary.xlsx deleted file mode 100644 index 5ca83c4ee6dc46f4604413ef8240f5c0c4c431b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13570 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 Yq`}@T_>Y!99KiV93Buo7QUJjJ04J9XLI3~& diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT BW.txt b/validation/validation_results/Berges_2021/Berges_2021/WT BW.txt new file mode 100644 index 0000000..71edb7b --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT BW.txt @@ -0,0 +1,15 @@ +time X Glc Ace +1.8288888888888888 6.3504000000000005E-2 NA NA +2.2613888888888889 7.5600000000000001E-2 NA NA +2.7741666666666664 9.6768000000000007E-2 NA NA +3.2088888888888891 0.12096 NA NA +3.7063888888888892 0.15875999999999998 NA NA +4.2258333333333331 0.192024 NA NA +4.6355555555555554 0.25704000000000005 NA NA +4.9675000000000002 0.30088800000000004 NA NA +2.8 NA 12.2503876402854 0.68228059479917 +3.73333333333333 NA 11.2647756999073 1.13167881269788 +4.28333333333333 NA 10.762083947783 1.50776307251694 +4.75 NA 9.69020796119422 1.86440782293358 +5.11666666666667 NA 8.80761667454699 2.17848992166165 +5.43333333333333 NA 7.74278266664927 2.44855281309788 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT BW_res/KEIO_ROBOT5_48.pdf b/validation/validation_results/Berges_2021/Berges_2021/WT BW_res/KEIO_ROBOT5_48.pdf new file mode 100644 index 0000000000000000000000000000000000000000..67bfd78c0f10aab2dc3382fddd7df595c676339a GIT binary patch literal 22170 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 MX$1u}3^i&04+bIFLjV8( literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT BW_res/KEIO_ROBOT5_48_log.txt b/validation/validation_results/Berges_2021/Berges_2021/WT BW_res/KEIO_ROBOT5_48_log.txt new file mode 100644 index 0000000..03a5463 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT BW_res/KEIO_ROBOT5_48_log.txt @@ -0,0 +1,200 @@ +$sys +$sys$params + X Glc Ace mu qGlc qAce + 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" + +$sys$nconc +[1] "X" "Glc" "Ace" + +$sys$nflux +[1] "mu" "qGlc" "qAce" + +$sys$metab +[1] "Glc" "Ace" + +$sys$weight + col +row X Glc Ace + [1,] 0.02 0.46 0.2 + [2,] 0.02 0.46 0.2 + [3,] 0.02 0.46 0.2 + [4,] 0.02 0.46 0.2 + [5,] 0.02 0.46 0.2 + [6,] 0.02 0.46 0.2 + [7,] 0.02 0.46 0.2 + [8,] 0.02 0.46 0.2 + [9,] 0.02 0.46 0.2 + [10,] 0.02 0.46 0.2 + [11,] 0.02 0.46 0.2 + [12,] 0.02 0.46 0.2 + [13,] 0.02 0.46 0.2 + [14,] 0.02 0.46 0.2 + +$sys$te_upc + X Glc Ace mu qGlc qAce + 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace mu qGlc qAce + 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$u + X Glc Ace mu qGlc qAce +X <= 50 -1 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 +mu <= 50 0 0 0 -1 0 0 +qGlc <= 50 0 0 0 0 -1 0 +qAce <= 50 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 1.828889 2.261389 2.774167 3.208889 3.706389 4.225833 4.635556 4.967500 2.800000 3.733333 4.283333 4.750000 5.116667 5.433333 + +$sys$data_meas + X Glc Ace + [1,] 0.063504 NA NA + [2,] 0.075600 NA NA + [3,] 0.096768 NA NA + [4,] 0.120960 NA NA + [5,] 0.158760 NA NA + [6,] 0.192024 NA NA + [7,] 0.257040 NA NA + [8,] 0.300888 NA NA + [9,] NA 12.250388 0.6822806 +[10,] NA 11.264776 1.1316788 +[11,] NA 10.762084 1.5077631 +[12,] NA 9.690208 1.8644078 +[13,] NA 8.807617 2.1784899 +[14,] NA 7.742783 2.4485528 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.02335005 13.51226761 0.27305514 0.51319990 -8.13614902 3.23567520 + +$result$lastp + X Glc Ace mu qGlc qAce + 9.446466e-10 9.829259e-09 -3.162282e-08 -9.348430e-09 5.798854e-08 4.275452e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.003478357 0.328665234 0.140894002 0.033727873 0.683316000 0.294797112 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.3002075 + +$result$laststep + X Glc Ace mu qGlc qAce + 9.446466e-10 9.829259e-09 -3.162282e-08 -9.348430e-09 5.798854e-08 4.275452e-08 + +$result$normp +[1] 7.984687e-08 + +$result$res + [1] -0.190640110 -0.053716885 0.009612164 0.011747664 -0.115649299 0.610804585 -0.250279497 -0.102233110 0.161665814 0.223628522 -0.466472033 -0.098162970 -0.086709678 0.266050345 0.315191735 -0.028629834 -0.278242622 -0.266976479 -0.092869060 0.351526261 + +$result$prevres + [1] -0.190640180 -0.053716957 0.009612094 0.011747600 -0.115649344 0.610804575 -0.250279461 -0.102233021 0.161665837 0.223628550 -0.466472012 -0.098162967 -0.086709699 0.266050292 0.315191805 -0.028629808 -0.278242623 -0.266976499 -0.092869094 0.351526219 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 127.8182 0.000000 0 5.458428 0.0000000 0.0000000 + [2,] 159.5835 0.000000 0 8.426575 0.0000000 0.0000000 + [3,] 207.6232 0.000000 0 13.449194 0.0000000 0.0000000 + [4,] 259.5176 0.000000 0 19.445057 0.0000000 0.0000000 + [5,] 335.0037 0.000000 0 28.992674 0.0000000 0.0000000 + [6,] 437.3441 0.000000 0 43.154229 0.0000000 0.0000000 + [7,] 539.6872 0.000000 0 58.415976 0.0000000 0.0000000 + [8,] 639.9203 0.000000 0 74.225214 0.0000000 0.0000000 + [9,] -110.5587 2.173913 0 -4.451347 0.3172940 0.0000000 +[10,] -199.6666 2.173913 0 -11.325428 0.5730258 0.0000000 +[11,] -276.0223 2.173913 0 -18.494955 0.7921600 0.0000000 +[12,] -360.0416 2.173913 0 -27.374260 1.0332884 0.0000000 +[13,] -441.7213 2.173913 0 -36.794189 1.2677019 0.0000000 +[14,] -525.7509 2.173913 0 -47.152659 1.5088598 0.0000000 +[15,] 101.1270 0.000000 5 4.071602 0.0000000 0.7297763 +[16,] 182.6330 0.000000 5 10.359254 0.0000000 1.3179594 +[17,] 252.4747 0.000000 5 16.917148 0.0000000 1.8219681 +[18,] 329.3264 0.000000 5 25.038957 0.0000000 2.3765633 +[19,] 404.0380 0.000000 5 33.655270 0.0000000 2.9157144 +[20,] 480.8990 0.000000 5 43.130058 0.0000000 3.4703775 + +$result$retres +$result$retres$res + [1] -0.190640180 -0.053716957 0.009612094 0.011747600 -0.115649344 0.610804575 -0.250279461 -0.102233021 0.161665837 0.223628550 -0.466472012 -0.098162967 -0.086709699 0.266050292 0.315191805 -0.028629808 -0.278242623 -0.266976499 -0.092869094 0.351526219 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.05969120 12.936124 0.5021826 + [2,] 0.07452566 12.700942 0.5957124 + [3,] 0.09696024 12.345269 0.7371603 + [4,] 0.12119495 11.961058 0.8899577 + [5,] 0.15644701 11.402180 1.1122185 + [6,] 0.20424009 10.644480 1.4135492 + [7,] 0.25203441 9.886760 1.7148877 + [8,] 0.29884334 9.144663 2.0100134 + [9,] 0.09825427 12.324754 0.7453190 + [10,] 0.15862537 11.367645 1.1259529 + [11,] 0.21035682 10.547507 1.4521145 + [12,] 0.26728046 9.645053 1.8110125 + [13,] 0.32261892 8.767730 2.1599161 + [14,] 0.37954953 7.865166 2.5188581 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.0038128036 NA NA + [2,] 0.0010743391 NA NA + [3,] -0.0001922419 NA NA + [4,] -0.0002349520 NA NA + [5,] 0.0023129869 NA NA + [6,] -0.0122160915 NA NA + [7,] 0.0050055892 NA NA + [8,] 0.0020446604 NA NA + [9,] NA -0.07436628 -0.063038361 +[10,] NA -0.10286913 0.005725962 +[11,] NA 0.21457713 0.055648525 +[12,] NA 0.04515497 0.053395300 +[13,] NA 0.03988646 0.018573819 +[14,] NA -0.12238313 -0.070305244 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT BW_res/KEIO_ROBOT5_48_res.txt b/validation/validation_results/Berges_2021/Berges_2021/WT BW_res/KEIO_ROBOT5_48_res.txt new file mode 100644 index 0000000..5454f78 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT BW_res/KEIO_ROBOT5_48_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0233500463976034 0.0233441726910459 0.023351319661965 0.00362908921250435 0.0160344942375601 0.0299449517421713 +Glc 13.512267613805 13.5376049592796 13.5336334014308 0.276482780185009 13.0869406408329 14.0917572968177 +Ace 0.27305514458486 0.265592470686017 0.249107770839034 0.120550855423506 0.0386964835261306 0.500848083855111 +mu 0.513199901575259 0.515363976946047 0.512064504436533 0.0351609410189642 0.457078199288941 0.589052272686937 +qGlc -8.13614901931942 -8.23905101972797 -8.25026124320492 0.747754786442238 -9.57754564398731 -6.95608411877359 +qAce 3.23567520384026 3.23971861748944 3.21604616645441 0.307551380629019 2.66018397568496 3.77638432634128 +res 1.26174329343597 36.4751303986936 35.9653657252072 9.04950805849095 22.0217636718015 56.7331272649294 + + +Goodness of fit (khi2 test) + +khi2 value 1.26174329343602 +data points 20 +fitted parameters 6 +degrees of freedom 14 +khi2 reduced value 0.0901245209597154 +p-value, i.e. P(X^2<=value) 4.55517155379145e-06 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT1.txt b/validation/validation_results/Berges_2021/Berges_2021/WT1.txt new file mode 100644 index 0000000..46b10fd --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT1.txt @@ -0,0 +1,14 @@ +time X Glc Ace +0 0.031752 NA NA +1.18888888888889 0.061992 NA NA +2.27694444444444 0.111888 NA NA +3.12833333333333 0.172368 NA NA +3.77138888888889 0.23436 NA NA +4.41555555555556 0.368928 NA NA +4.82277777777778 0.545832 NA NA +0.0666666666666667 NA 15.1537393608889 0.00419622433347224 +1.71666666666667 NA 14.3348460424723 0.348769379662006 +2.8 NA 13.6070637892223 0.760104475519081 +3.63333333333333 NA 12.5887340272941 1.01054974245947 +4.26666666666667 NA 11.3572400036966 1.67458664376349 +4.88333333333333 NA 9.60439982397194 2.02953207344843 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT1_res/KEIO_ROBOT1_46.pdf b/validation/validation_results/Berges_2021/Berges_2021/WT1_res/KEIO_ROBOT1_46.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7b17e9770f83f5b4951e5c25f42f76b3821db858 GIT binary patch literal 21893 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%0A+lJV-sfE4Py5qvs~Zh_Zb$ zr)8|%S4MaTZ;cI)eH!T=zB8;)uxXxocR4TXPLujBajTHYqRT)#w@Q7kupb%4*mfha zzr6i1AZN97qzanSjI_%`#$ARpI8A!kO2pB&K zuaeV;mO*)7(S0X-Y2P>YMN1AIH$1KuM;FI)o^9ktdK(5svK^L;kUS#UD3N2sZQWt# zQMFJ@cK5($dA@chbVXfccQKE$0?H3(xdmgRTsBQ8zz3On46d18f!%Se#*1pk2EG~7s zGp9P><~ZgkP{CC39OJg7w{-^F{%WAHJ#a93hW(w{vd^T|fZTZPv#Z?$Z?KV*XF{q& zu787n<2ht|Xd?7|XsJq9OL7=NwJ?`f^_ePjcwe|?t1`crj?y7Kj=8nu=jSL?Q z9bC@aejMMH5=r1AF)$ygU1lWhZG}LSK##zxM!JS>en0_d0egOC z!G$iruA5yt$nuL;osO|1G3@R5F67&Sx0y4=Tx5xfdM~Bcvw4VVvcOwS|2Qd$G3#5+ zJ3DM0Lbrsp*@mt`uSs58mCw6H*S|3wdb>uyxDK--wZfiFkEO>Zt#*Uwj0Ee2lSP#E zd=1`YE2Yn5ns7|?cz9NH9O?sb(oS@F)u}5AnMR7MRyGN^!c{L5MCx#qwe+QVFoOFEvLs8Urp4W6t$8X0Q0>%b-&4n9;yA5l&YAz^w8MZ z%A_{#p8kD(TWn_hx2cn0We`~Ix?J?~d82=0#nQ(YBbLP$R<_%~veRl` zz$0=$T|rbVA&nrvdkU^4w-wSyZm8ESD6Rg`7CasNAuNW5&`0X)lgyArm3x&H;y*b( zZta=$3mJLci7CSt*QTDLjuwnQ6_UBLyxFE29r%CuNYwNekqvZasxJHK&;$Jg@Na}3|-+&Y_#U-UV$Gw(^pX?=0FPc2ZzR{`UZ+hDJdESy-K3D7GIWS@4 z!$qi_%^q%w-ObqM36}X%>97D&KD(f-u;$bnp@^KQ6gh|bwh{brp8vCR2eDsc{q!sC zE@6TQ_?+X8-=6N+jr8J9ZcY9~YuRikIgF!eIWxv{Q?2S}pUMP9=;@j{FY8Cfl z-UsCH zQyRRVhks9V515MkX*$>pe-XEjSfmJ{K(g!X0c5{G=Du(AppUJym#YTg$VF!Wp7?ia zy`Rwk4`af99#aQ}@kQa#NN1n~_&(4582rq2+^-Y<2Ma)+P6^e4*FP*ss$nrM|F4<9 z`H??j|Gg{$3Jp~dR0;xt{5!{Pt50fQhA z{~Qknkw^U24+?<;Mcpss!Jtt1Kj#a~;y3?bP-)6F_YYlZI8a4?m*Kpf(HN9BfJy~{ y&CmfT;2eR#x}L6B5M@!4vdD2WQ3TYZ?G5#094`nF; literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT1_res/KEIO_ROBOT1_46_log.txt b/validation/validation_results/Berges_2021/Berges_2021/WT1_res/KEIO_ROBOT1_46_log.txt new file mode 100644 index 0000000..7ebaae4 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT1_res/KEIO_ROBOT1_46_log.txt @@ -0,0 +1,195 @@ +$sys +$sys$params + X Glc Ace mu qGlc qAce + 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" + +$sys$nconc +[1] "X" "Glc" "Ace" + +$sys$nflux +[1] "mu" "qGlc" "qAce" + +$sys$metab +[1] "Glc" "Ace" + +$sys$weight + col +row X Glc Ace + [1,] 0.02 0.46 0.2 + [2,] 0.02 0.46 0.2 + [3,] 0.02 0.46 0.2 + [4,] 0.02 0.46 0.2 + [5,] 0.02 0.46 0.2 + [6,] 0.02 0.46 0.2 + [7,] 0.02 0.46 0.2 + [8,] 0.02 0.46 0.2 + [9,] 0.02 0.46 0.2 + [10,] 0.02 0.46 0.2 + [11,] 0.02 0.46 0.2 + [12,] 0.02 0.46 0.2 + [13,] 0.02 0.46 0.2 + +$sys$te_upc + X Glc Ace mu qGlc qAce + 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace mu qGlc qAce + 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$u + X Glc Ace mu qGlc qAce +X <= 50 -1 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 +mu <= 50 0 0 0 -1 0 0 +qGlc <= 50 0 0 0 0 -1 0 +qAce <= 50 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 0.00000000 1.18888889 2.27694444 3.12833333 3.77138889 4.41555556 4.82277778 0.06666667 1.71666667 2.80000000 3.63333333 4.26666667 4.88333333 + +$sys$data_meas + X Glc Ace + [1,] 0.031752 NA NA + [2,] 0.061992 NA NA + [3,] 0.111888 NA NA + [4,] 0.172368 NA NA + [5,] 0.234360 NA NA + [6,] 0.368928 NA NA + [7,] 0.545832 NA NA + [8,] NA 15.15374 0.004196224 + [9,] NA 14.33485 0.348769380 +[10,] NA 13.60706 0.760104476 +[11,] NA 12.58873 1.010549742 +[12,] NA 11.35724 1.674586644 +[13,] NA 9.60440 2.029532073 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.0218755 14.9218147 0.1725214 0.6559618 -6.8647930 2.5534049 + +$result$lastp + X Glc Ace mu qGlc qAce +-1.315531e-08 -2.669417e-07 1.487078e-07 1.380027e-07 -4.675131e-07 1.590385e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.007930074 0.552972026 0.239024164 0.081310714 1.423967391 0.605854979 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.8731482 + +$result$laststep + X Glc Ace mu qGlc qAce +-1.315531e-08 -2.669417e-07 1.487078e-07 1.380027e-07 -4.675131e-07 1.590385e-08 + +$result$normp +[1] 5.756832e-07 + +$result$res + [1] -0.4938251033 -0.7138807330 -0.7237686117 -0.1044823496 1.2634588535 1.3613018842 -1.4187777891 -0.5264308455 0.2391015350 0.2325256841 0.1742981984 0.0726610857 -0.1921556577 0.8606578511 0.0058428045 -0.6916900541 -0.0002305037 -0.9431529378 0.7685728400 + +$result$prevres + [1] -0.4938244456 -0.7138796897 -0.7237672132 -0.1044809052 1.2634599038 1.3613017260 -1.4187794497 -0.5264302769 0.2391017077 0.2325255187 0.1742978419 0.0726607704 -0.1921555615 0.8606571188 0.0058424645 -0.6916900207 -0.0002301865 -0.9431525088 0.7685731327 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 50.0000000 0.000000 0 0.000000e+00 0.000000000 0.000000000 + [2,] 109.0589518 0.000000 0 2.836356e+00 0.000000000 0.000000000 + [3,] 222.6522968 0.000000 0 1.109016e+01 0.000000000 0.000000000 + [4,] 389.1986368 0.000000 0 2.663438e+01 0.000000000 0.000000000 + [5,] 593.4243022 0.000000 0 4.895813e+01 0.000000000 0.000000000 + [6,] 905.4737805 0.000000 0 8.746201e+01 0.000000000 0.000000000 + [7,] 1182.7298775 0.000000 0 1.247789e+02 0.000000000 0.000000000 + [8,] -1.0169719 2.173913 0 -7.469640e-04 0.003240707 0.000000000 + [9,] -47.4008428 2.173913 0 -1.053631e+00 0.151048653 0.000000000 +[10,] -120.0259584 2.173913 0 -4.742546e+00 0.382477574 0.000000000 +[11,] -223.8858417 2.173913 0 -1.213659e+01 0.713439948 0.000000000 +[12,] -350.9136392 2.173913 0 -2.317360e+01 1.118229748 0.000000000 +[13,] -537.2104733 2.173913 0 -4.190276e+01 1.711887671 0.000000000 +[14,] 0.8700196 0.000000 5 6.390278e-04 0.000000000 0.007453626 +[15,] 40.5514295 0.000000 5 9.013819e-01 0.000000000 0.347411902 +[16,] 102.6822291 0.000000 5 4.057249e+00 0.000000000 0.879698419 +[17,] 191.5343780 0.000000 5 1.038286e+01 0.000000000 1.640911880 +[18,] 300.2066817 0.000000 5 1.982502e+01 0.000000000 2.571928421 +[19,] 459.5836569 0.000000 5 3.584782e+01 0.000000000 3.937341642 + +$result$retres +$result$retres$res + [1] -0.4938244456 -0.7138796897 -0.7237672132 -0.1044809052 1.2634599038 1.3613017260 -1.4187794497 -0.5264302769 0.2391017077 0.2325255187 0.1742978419 0.0726607704 -0.1921555615 0.8606571188 0.0058424645 -0.6916900207 -0.0002301865 -0.9431525088 0.7685731327 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.02187551 14.921815 0.1725212 + [2,] 0.04771441 14.651405 0.2731020 + [3,] 0.09741266 14.131301 0.4665581 + [4,] 0.17027838 13.368744 0.7501961 + [5,] 0.25962920 12.433667 1.0980043 + [6,] 0.39615403 11.004903 1.6294426 + [7,] 0.51745641 9.735445 2.1016258 + [8,] 0.02285337 14.911581 0.1763276 + [9,] 0.06745329 14.444833 0.3499379 + [10,] 0.13728520 13.714026 0.6217665 + [11,] 0.23715058 12.668911 1.0105037 + [12,] 0.35929282 11.390664 1.4859561 + [13,] 0.53842457 9.516008 2.1832467 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.009876489 NA NA + [2,] 0.014277594 NA NA + [3,] 0.014475344 NA NA + [4,] 0.002089618 NA NA + [5,] -0.025269198 NA NA + [6,] -0.027226035 NA NA + [7,] 0.028375589 NA NA + [8,] NA 0.24215793 -0.1721314238 + [9,] NA -0.10998679 -0.0011684929 +[10,] NA -0.10696174 0.1383380041 +[11,] NA -0.08017701 0.0000460373 +[12,] NA -0.03342395 0.1886305018 +[13,] NA 0.08839156 -0.1537146265 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT1_res/KEIO_ROBOT1_46_res.txt b/validation/validation_results/Berges_2021/Berges_2021/WT1_res/KEIO_ROBOT1_46_res.txt new file mode 100644 index 0000000..3400ff6 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT1_res/KEIO_ROBOT1_46_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0218754979334764 0.0218308878477937 0.0218218581334993 0.00298446051870941 0.0165018717271694 0.0275845528033713 +Glc 14.9218146852764 14.9130649354756 14.8796471000073 0.206324696705192 14.5320648321911 15.3339900161506 +Ace 0.172521371972221 0.176599435515805 0.16639471535849 0.0692828729734934 0.0758794775676803 0.319381710520735 +mu 0.655961835056118 0.659641390407518 0.655287363143681 0.031128934614069 0.602266378687412 0.720040493583203 +qGlc -6.86479298159135 -6.90075082530933 -6.81050823765287 0.51194856376426 -7.80777984783192 -6.02236064595054 +qAce 2.55340490083477 2.54394612781016 2.54047936364483 0.191234151511292 2.2002570403891 2.94783809224524 +res 9.91104140594205 32.092517244434 31.4260225769355 7.39399852439803 20.0019041117924 48.0036492184158 + + +Goodness of fit (khi2 test) + +khi2 value 9.91104140595434 +data points 19 +fitted parameters 6 +degrees of freedom 13 +khi2 reduced value 0.762387800458026 +p-value, i.e. P(X^2<=value) 0.298807849234161 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT2.txt b/validation/validation_results/Berges_2021/Berges_2021/WT2.txt new file mode 100644 index 0000000..4765818 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT2.txt @@ -0,0 +1,9 @@ +time X Glc Ace Lac +2.50138888888889 0.111888 NA NA NA +3.34194444444444 0.172368 NA NA NA +3.9975 0.23436 NA NA NA +4.52333333333333 0.368928 NA NA NA +1.95 NA 13.7948497407258 0.388240799163102 0 +3.25 NA 12.6821988761534 0.887038373144795 0 +4.08333333333333 NA 11.3039851865163 1.32910714240064 0 +4.76666666666667 NA 10.0989508508155 1.88442802051972 0 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT2_res/KEIO_ROBOT2_46.pdf b/validation/validation_results/Berges_2021/Berges_2021/WT2_res/KEIO_ROBOT2_46.pdf new file mode 100644 index 0000000000000000000000000000000000000000..64403210270031b10dea5e7b1ecadfe05f8a9338 GIT binary patch literal 23701 zcma&MWmH^I6D^24!I}UeKsWC0Zo%E1-~@MfcZc9^L4pN$w_w5DCAeE7uk+3K-mH1E z=B@d`x%ceaRkf?`UCn_m3MFv~1{Owk6pFx|z}>*9z*#*f6c!*e(B9Yzg`XdVNzBR2 z$mN^8ow$*U8IW3>mz9}?o0*H5lZBI+or9YOg-PDt^#9YQ_RYlx;-vzVbTV?V{AS_| zRCIN5aCL#WDLL7jx|*0d{j;($vNJM6u>a(;{|C{a2nwQ@*_r-R!TP_{0GZT09n64C zVn!}THue@kCM6>aGiM+hgrEZaza6;#Uk?9x|JY7ub}s*=Gl|*Txj?qgK<@vzGpU$4 z+q*iMK;p6gZ}I*S{%1Sn%&EP>n{+{{2GiElP8kP4V2Y#_}MH#4y}HT$RA*#*)w zTNID%Mt%7jic#hDhnf~y%xhOafBL#m2JHa2b!^muJ~WeB4)l7&$ZkcS>}1@#Qg4H9 zVsDn&9N)@g^@G?L=N)nJu9wFNGNHH2$K7^+ua~PtUH_(gt-m}gMH8>5`^vI@2iK3Y z&GG)8FAwc`{_j)WZ-cv87n`FLGy*&C-S1%}@7J9^*{8uL?-%}0@fX((Wy9~C;6;D$ z;$i=e@%YUVe}9kfcR|BK9pJ%mccFLnw8f{(c1cg4$5}B!OI1esN8Oyitp{W^&!2Cu zws&`Hy1*yH;X)&aByYFp7lIvc0SjYncaq3*T~`C(R=r+=)o(2yp{c*ZllyW6fa>#RXAWg#DbVXBwcI_e>$+2H7Z z|2ERde^P(ta}L_QU;8r5AW-SUc0ENIU!hfgV@DJ<%~T|S*zomBfTy|^{s zr3v}?c`tj7lc?t{Cg}_njgYjjv>bckJr&6ly6aygg-z9z{5aA7bN$55lKqF6!Xi&` z{QAp?#Mu1dY<*SuX*9o&AVU@?r6YGX_j~hCcPv!K`wkVCPT3#NE4+5RS1MssWs#sU zFFY32EJYl#lsg6v6Txdd?M+hi;~T7hd)Kf3*{d`ws1Bbj@4bcHSzn82NG7;um{s{F zKG@0=1;?F5t4nU*BzKQ^r8T{P7wYg8z7gJ}VwjSaSp3#}D_o3Te)jQhy!&o@aWntQ zbU|jWd-mkJ{2c$HchAqFr|-|9>%CFl^k&>7X!vi-qMLW2)%4czwQIIR9;@N*X%ta* z!(QRHB3k1JIMRgRp8rYMprh*gH^f^_|DEEkHp9AY%Tazq9 z#ro;%*5_v1-GaE{iVO|HRXoi>xrX>=!KEQcy3^9#zc**bOZ9J!5zDJLgSBQm>c8Dq z{@uJ<|K+tMh&CF3)@0GmvS(_lo2y>&Y1gAZF&y-V+~7A=b+@T!*=xSjT`)nqtN!nL zzjEez?7#myK;Iys_*&DE_c&!VrTSjE8~RlKp8A0M{`W>1!lN@ky1@eD4j0ce( zS*ySNfV?cai?YA}94<~=EgC^p?V6u3nJ=F{9mns#4$}Mj{XeeN&o6Ve`-jo*w@*KW z(jIWRtZuyRg&$F}5?Wu82JURTs1=>HNl5Td=*lAnH{Q3RKpVBWjxB{F-6N-yxcK38 z6^~T#Dh7d$9ew`iu7h{PGM^ZA?wm>`D*e>6RU-s;Vc+xOB{|tf>mz186Hg6FaKn>) zM$eA*7KYCDCz?+TEQy*In>QJ!>3)ve+i%}bVaf}#^Z&KjMntQ-{R{OgyZjY=@qV~# z-~FDe_$Hckck)m&HSF*A{^^RM0J|Me$PtUy@dzlVP;T0P`xz+}d=;%UN}DbQF(P6F z?T5$^yic#eJuk>OOT4pc&hc7%ZyZHz(G3$e<`Ye7nVyyJi^(3yn}4Uu{AvI|r? ztK#; zGFrzSNb1VFV|WF$C`f0dY7|^m%{a6a%v~D_KR=d zC z;eWsj7!tQZCs4^24vAdNd&f6NNu7o6-BY1F1`}RXeelhq6-gZzym>;ZrtTq65U6B^ zt%pgw&%uC6Tle5Hv^vx(E=qB-4qHHr^i`^S;M5KBD24?vD~!jnk>&?p$gv)F5Ak;T&l#nRs1CZJ*EDAQQW3mFKNcljO4@728NLYwfq61Gs zp+8jtHW!Z*-s; z)x26kt9Rcw#GSO9=0g{@xD3bfQ1Jh8PXar~5)gmcY+Txk;7@hP6)JuoRpX?Y16SPzW_TDn0=z?NGJ&p9JfHnm%&(T}- znB3LSZMll{$nsCUJoR{Qb9E7K!CHk0x^?Bl#NVJF;u!n)4^MIpyqRNq#MC@3J<4nV z$g`*R^?*#0VS&DQokRiOrSDq*?^u7YY4FRX;m zUzVR7V2P8MqJ25==yMb`FDb6iP`V@p75t>S40`~xeGE^_hCPJg(b`F_g8a^i z?LGKGhTc&yc40#1{Dt?sSJA_C03?DbawO~+ckEr%`0x+w4-SzFH-_<>-^x>KgiqA< z!OC~wl=;&d>a~xUde9j!b#5NLV*#Nk?(U*a06S`YJ*eejrC$XOn)J-L=e_VDeGI6- z`tkDp_DdlUKJNMUhXd+0C8cjrDAN@9Bl#jK+r$q6axVu_2<7!+s0g%#mg|7?UUaBX z@3vq;l!rpmb3*ZZ`4b~p2HG99mhc0gpuWylXy4%TQ|NK!7D9kC?HVirH0>IiFjfNc zd8{W-!Vb45ylGI;c~7~6Jry_F2rJSMgb0HM;iN+#DEiOEmoN=wMGnp0!jy3RxC*pu zYBt;Xbe~6*Te4PXm0RjS@qG;6tD!KB!=6eV7QKZ_p})cbS!AK`0q5ueZ~;HWDxtSb zPd{X#xI26Ep*)BS%Y^Etf#3sh+3uh+P~5!>92BXa)mlIvm|LNE_yv3@?qWSMkb-=3 z0%D*6NJFIC1%2xxP~{F}yDl*Ga6K@+SO)B*&?`hxvZ3BxNF(|9c>z_xUE$EI0Ljp- zkX-1DH4-rARpk~wfEMi<6H;khEG8RJR%x0b0aWA)Q-2P3LcN9xjRsr4 zckd2UfBbKW3y4B_xJDaA9!XkVMINbGU4*zJvEiPF-hCBLTkBE~Mu3Jq5h4_R+;iwY zxlnJGuVTV!m_4k(N+e*pgL`vxkpmOe2o;boiW6`i6$1x(g!gWM^Zon#w{hH&@3k!< zf!~O&N8TIwZ=z>AU6;*yzLxKP?osk(@0saQ8lLp~jK+|8iifYUEH~-)8O@bnv`urE zBEU#r4v!E2cq#AVYq<#`7oyl8CL$H0ShU>(d>HQ}G}?(W8xfkTo>-eE%h4_xVs8!$Oh~5N^5B9vU8#rTrFj-a zvGp~-?%;yV2^2_8nnDo$F-Ma<)7gU^JxUV}VJEb_KcUd(pB{aP(B`Wwq#lUx z;34Gr`_E{$x^T?wuB8TF%O`6QT~(S>%bXz`Pu^BX<~iG=lf!>8iwYESj|h&7(=6st z(d5rEpwT#iR;u}oHV)$fg@!t> z5Kti4guqO%)(#bha-b|vCmHL^47l7>j-^}jhZD;&hZH-rh4M8WOCB4|Y}ri>bx?lp zV-GXiD;o1$4X7d!`2_sN;HsD>Gujz4kdUOh*&+&8zWY(diTC~!c|dMyxdc>aY$jsR zhPl*->D6Ek#SdPr_lMB81Df%;!iq!01<HmAr%0JpHcaTlBb{28&Zy@pK42d`ur z>44mYsxv4r9GZ_ox#=QB#Ti5?R1_1(`LO^9Y4;H8mNQpznvaGzfLJ6mpUXi=*d9%$ zWJ=B*Nrr?5S9 z$zlFtI~@>CV0lPjj+Mt^EHG-30`Swxj!{_o3#Nl9YtqQjw|k950BA3G5iAkK(!a&f z`DMU0*rRXK!YKJvcEI73>>vjy5p}=|_~vBXKni)=6Z!4C5ECxdl}}y>0C`i>n%g@) zzO5Dis&oQSS|d3blkeNfs#>e1$bwVM?Az&VBA?+;V$8`Qaq4L-_$WBYaG#!}%4XF| zZ0fthK%ptJlb&>PuBaem_f@F&z;4@9jXqt4B2qT4JA4m>#7|ypEcCUzJS&#Qj;OhI z)5<+G9$Y87z2}!|b|l#=%}K0$^+O5j2!qy|SvpA>##zdx6b3#?Un}|Vo7DYobx1x- zd9aYRlFQM>p0yndk|kAyga2p>{OgbB?~r%H4>z&1Eg6HWRPA~yOaSQM1n*Mh_cU~^_ zU*KkL`8EX!o}YT5R7qjvjrZZr*p%KcT7bUO2-4q{P;5b>sf474Z=U?yS79;MfNizC zE3~v>x?};U2n)(xtN}jOdjR=P!6+K~4h2D$|C5}``S9E@liV1=e)r!5SkPdJ7^yfP zuW8rcgmPnK-eS!secob2MWQ6oLWx+@BQCx0(F}-A?(z>vV6Vkx1W;f9Npzs9I!<=v zxPrnP$^CD_$TKk!>tKRSpc5ideaAFNbq;hGonS*M?b?Ky>^29&^Lr~1D^1{7#4HJ? zl_mm%mBT+XU&)5cfvjt4{-(VD0p%pAhMVg4L0DNIB55;=#8kewxs31zqpGd5v`MXB zbF@rLOLan$Cpne!ZRoKlm5PM_E;#NJ&HM=b8bFFb^e5ST4#Zc9=ORUURW4@Ulqei7$0Uk&{1Z*& zqgdMn`9bv=c>_ZzFZs2&WVmS-hN~3dTQ(+&y18U{2%M{nRLIv0eSJL?&%BSg$PtEr zHlMwODyvKkay2Rq=i_MK%FtHdOZ?UOtegTWheo>(p!<1QIgU>AtVSC-bD7Angf=E& zjXZP(_9Tx7XwzsjJUiZd;dN-Hj2`t+ec(_h;qiy*;L!Kwf71DU{#jcX@2C&?gWOna zea|&Cz8{w(?!$@7CUO@OYT^>YrE^VbHb?-pJmpH*RSsQ2o`u zS#R2+>!5@bu zXj#+NQ1Ust(U)j_uI*j2#>_@acH2_SUz?(mXO~Hr{iCXv*RiX+}G)5Hu`3)AC{ku^V3coMR$%t^^%`bTYYOX;Q_Cyy7F~8uE+ht-a{J)~LC#-4cKh4d6;^ilnAvJO zBk>tIt@b`7TR&%tjeaDeL#4_52?qo4p^I7AP)_T|~ULVrQ+mt4LL1Pjbdp96g zB9K`$YrVs#uOG?Q?dIWuS(J@{TC2JS+um%*qq9h6YPNxn!U{%mJ>753X~JK zI3wwch%~1P!vcRXFDoR>&B*C>g2y1E9T&lrP&4O*EOQ2IG1H4tM&c$nSba!o!!LVI zVc!$*`C{hNG@&{}Kgb8=e*8Kd>?1|G~>z<;`VU z)sV#MaV~P`lOU1z6Ex%uA_W_?QOb`xy($^^C7cDtK`fkQjBwgW?ktXIDAtLYH-_&V z@yPb$BkV2bFVvuo10QIwGJd%H=7LzvThkhEXhGf>)waM~-aBHe$6rOIp+Ro0*LNDz z8(ZSq(;Lt#nj+q>JQ!j>`uQ@X#GhL(#JW_W7V%?@sQXbKaKn{1+%tQzIWkhj20l8fo^p=ZZ ziMYZw{kce9oogbBO$5TfMQSigQHgG!MSBH>6%A&sAxD=YOm?DMiSFPHVczfg!(@p_ zUYT!5l1-f5<(a14YuGZzgp)?H>~c!77+V$lGj<+TaHX z?O`e0ey`Fl5t>-4xozf|HEb7B023FJr%=u0p`IQr^`s;ak`r5E;_=3?@ihffjgdG} z=c&Fa!xGc@f7=#E+Z94vIeqTK;Y7PgQS{`=*)7PK#=cZ}(m@v~hVQ-W(?v}Z;|abV zCJ0j7&l*Yf#H`$p-|zEQmlQY>$E1JTyn+$A77rH+K8pPG4PiNX9|NgR@#hDTwo|+m zE)Ps0hXIn{7m=3`q}Wc#;{+a2H~V z$0_(B3oa2VY(X3H7XtWV*t}(?jeO$pT?AJgNRgkc`k#}gtnBEb_+te?r_AQCw0tp+ zFi=mwGGpU&?D@{RA3emxD4x7zo1GBOl+Nn{8*_2O_=(Gr#_*ZcQV3ac%c(C+I||J4 z2yN(|1PC2Qzc1&HhpBR2UWbqn8$}|FPD9z;JjwC&$Nz{oTrr_H{L#{pFIGSL{0C$o zF6gS34o}3o=`s?Bk|7%|-r7F{vX@`W!Q~VQm)oZM#7$0poKVoW)-+H(+*0qeeUz}j zV6w&|$ZLwckJk3(1eNFyhFKfrx4WKXxE_3c0)!3(6|`faYFuxWcVpR0EKripAnhJ zX-f&|IN@YLLw%`#EP)J_uvXp9XtL`-t6HYz{QZ^8a>d?l*K=Gv(bd^eRXC}u1pRllupAhTMJtzYd?G-^}Hn!cZ?2I)EKJd38fQY_SCcTTfvrt(!LD*~8!On>VWQ6BDcb!BZL- z9JJ?tH&Y9*nXk-`PVdV#XB(P-?sg=5O(0#+GpC{=5e1Vv5Sfl-%+j0hqz8G=qc3oOF zVVyM1e$8pZdo3O68Hx6rjqXRp#=vn%vyp6sPpew4{S+smzHJp!Xt?SbNI^H2no!LJ zvNojG4y_`tzjOQO-lwLg@kepInt&LDQB^iU&eA1hfj z>BcuU9#Z2lr^z$%CZ&f)o|N7)O}d=k!u_R2N-vvKgPd`4#$HO#e>5L`Iuyuc5}?@c<19{5si+RKf?ScmjT&S*z< z1t4A@9)N#_8A)n9Ivq;FQ{3QLekO?WJ3CtatmR}p!xma4vW+T=hXa~SQXe@kxR5N0 z`CNZTsWuT!kyjMdn9@8^&C%7Lb)>ib5#^7 z%gZ|aWD>`*-8Qv2cpV$0TeIPiC-`$uR7y(kXi57=gDEbr6ZNxtL0_n)#V9SmN8-;0 z)7SM+e%P@MdwQ4cggr^l<~Q99d)YIGuxVA2)e}m$SvU>g$s{gCO4psO6c+xDh>E?y%`24|1 zZ0_FPtgGbOMy+U&KN7Wyn`$pZI0`GtqZyFDUzSIA33CQ;?XAzsTf0l#9l-CuJ>nkg zxQ|fM#M+?BeMg>tm3?6(qB%=rct6`LZcgc3Ia^k&VWWIGoBHE(^SU#ZH4JrTeZIIm(V*EBSJS%r zfnTKeQgdDC^!7_M+1}e#>z{Q+&sa@kXd%Q}Eyo~1$ZUZ(t-B!>bQrE_%OQa9&vSlk zL1^T|6ifC8q3c#keE9fB9*C+1Z|2EEe1kl?PP#Lnxb3^vz6S2K8$Us`ykR`S3xD4? zW83bb+s2>v{2ilzW8tsISiMmny0#zOmPX+z*1%z+S84JMUFW|2_NSJsx9cYxTq*kx zX6yBfoq2I-tI^)JHaTsyd5-aK7Z*YX&}Z%Mi0v-FnII!1|DDG8?=T6^|C;6apTi{o z$Jr1T=Ksus{2zux{=@j+rbBqxng4%Ghg9p2|D=$1%~{mU21(ujjj=FCLuZv5X$q+% zM~Hy7%niG5^84L9-n-)Y-iczi5y-jFtz8^CA-#+{& z=GxZ@3;p<&!y7F_r(j0ag*Zw5po8ygUq7FC#!3>Z4!`shzC1TxT)?uuT@OCSknHZV z863`$P&W!qJ$W!`g}I{$x~BO1sZKr9vu4v`tfRZXl9bF_w4>!IYLk@Q9aco`2WIJQ zD&!Ck%KLY_fCUD3J;&}k1;f`b+H#9fh^KbdI>s7~?+%?m_Mf%xg~sn{hiyOc?>{T& zITIK>iXlj%6|Fac1_Od3^Y*e_70&D3Zi8 zw#fbz!XQzk`~JIX>tOer+42jr!M*o&RHo1SXTdH?96DIK!#n=dH&;QXr>-u|_HMZ< zy>isHrB^fKN)V|UhHA$!>aXMJ9| z!RwdBBI0m`=q=^kP87Q~PF(k#BQLoa#k9W^;Qbb6V(ql+twunMBxSvPFZym`WJ;|1 z_<)BgX$|G0SFW2-#t3L}oL#*=PcHj>c*RAVI*lal#4OW?pVhI?7v5*gsPe8*mmess@yB4ervqC??+JizW}GBJ6Wz4c5mGbDRD=|la+>FrgRj_(SjjuVNxa-r?_VKT881nB zko2TSv^x`9d2j=1$}VSy(DKmuITzzPQ(J8Nx+3SfI^1}DJ>(rXsLQR7_3a2UGorn} z8XcHBDOg<@<~kc}R$=LyHHfi0!S>*80*{KjzP?3Xjftx_c7$hA49Y&JCVvw;d;3mM zNIAQ4>R0dBZs2d+QSWGG#Gc_sQe&gHtk^c;3jy|fU9!L)gIye*Z+#wS#-_lwiSP~k z&tD#r?QWd#&z}SBZkExrwij&eb_sZ~oH~~j38xYw6GAs7ZmwdC@70?-&&ohJAaLcV zH4l;Db75A;N5akj5N;cnUR`&`UXHEnz~e)yuf^s)LtF!0xEWKPPmf{$6v&sZLl8%~ z3`G`LLBTrvdjC1JrN@m-As;gb$D_)Z^2)3>j`@_Vzh3W93z9P>&mQ1@x~K_Whql78 zchz`bc!xI8vo>Be1L*9U%guGo)5B@}9WlqnaTeXRyXfQIunsMst#|I+wuJdjdEc{7 zwh?6W9%RO;i$3}j6OEU5&&!63>!7TK?hV2BlN~Wr4Dh1&o0r@lNn@3bjf>^GP5=A% z`ge;lT7%;b(;N5pcmLNbrVIb~*N2zb#qg0sI#JUh9Vf|U6}|;*-FU4r69$fN6oWeT z-w&kf(&WOIbs$#40Rv*|A7^qsVQfkB;THqEHUJqs`Sy0jL(ht7z`0WOczU@cj{dn>+$igPEjg$iTr z#kD$()M4h;KrLAlf_M)8g+E%QIS_N(`&e9K#dB1bNi{9qkO@wFBYV@;(llfj?^+Du zW+j<0up}}J>$DM?M>P&;{{C$J98_L%0hY>4fYz)sXycA6s@9|Rgs8l)VO&vu4+u+V_r!5c6E5CRY`>CH)X;Q zovKn*vU*v?w_wG}aI#XTkqq~15@4O$w=`E04mu3kTTA+=IP6A@UCdfAf=>IBz)FsVkZ!#8GFaUasDkF}7lOB=W!hE&!b39x2p z){JR1eO-CPx0e3t`3qp3Q+8oEr1P5t@(Y~ zPCB*L+8%<@`p>ZLqYnhx&dPF7pZtSh zVWejfJqqmE?OcFY?j_Fho(vECSWk0LQ&$w54{I%~3>!LU*KXzRFGGaNI_K{4oHb+3 zyz86m{eAq5;>~>HY-(J6&Ak~<8qBwE?dtKai>suCzLzKd+&><3yQp(blc63cjZ6e#Q&d(a7S7;_mE}mi^u|VH@2Qp5 z5CJn=g)rqauetMI8YVa4E4gSUdnP7tvfKhw#NeGkKhsgb9E1z<9%X(U*$Xng^4`Eoutz2%L0hIhrTYz9I z%9s(|r3l*SsvYbVwZp|}3h4gMIDQ873Jru{>o~0PPz|suLVlEp6n=gOA#&(CvL6&2 zsz;&6*u8}NcOL$pFhp(2e(!aw<&9Q-5qK4(Q&# zgfurm5W8NiSz2b~1A>dxNJULEr0Z}%dcSTYX53Ye^aLX6pKKu5WnAQC;ef%Nhkax@ za?|jdZmE$^*jALLu!9~SyO|QG)BnC|xwb}pA zP=@$h`K2qp76jts4~Pk=dh&|idAPj$ICwD*yC*eLxD>nNe)DhppQ69lG&dW{!5Lx) z(DZZcZ;~>e%!}8?smqx@iViv)n2Q5+YtaqMDX|7>pF{^aIUy(qJZc(!=}s}lxCvM^ z3*6;fV4TJG*vF}a7RaQwmc*pyb9;t*x8BE<`JXKuI!Tw(V%VzaLuk}Co$X9{w3ZoI zbdU^}Dp)FzDMS|8u-tkk*z+N@iSzJ2)Ha_R#;|-TSR2A-&<e&4qIdEjp_-Z?6!1$c)7(xZ*y$lO^Y`jT5R)3(rdvXbP9&1X z+W38F=4pG4(?72ouqaU}p6oi_CziA%5W~HxVfkQCYE*KRBxw+Ck;k_#r83;n?~qzU zyK1=TI6dknA@wQ7t>abL-WX?sMH^g4@s6#34@%Q%kdtcF;jOOWeNs+O(x&sPK0}>f z_^Fnyb~?!X5ZYF?rr8Ej6plBwhF5Xc_45oBmn0IYX=h}qOUYI!D&8PFCGX0Vcu-pV z02tTFt*xwA$dqCWy|d_RWX6KqRr|-i2Tucg_A(TJJ&i}pIEqK>xZ1#^*K-?+7pea! zio}48rN@RPXCwx2Mu;%~=$+v6g(YH8@v*OOhttOhIzz;ey6!L*Nuz#8s!Qqj#|XoR zP{btvXVE7nru$wzVtS1}JYrz@5h?~C53(THZlO+8rJbRk1l5Eysj=~^)+w5h01zke zDwdn>&c0EFlSsjhXC*Uif4F-!DMzFW80*>)a&u`L z{;sILOa@LOfjysU^qTkf`OqSy$wy5Xk_Q1?iN<+%4gGo@?&Gw%fn9!FfI~AeVJVG{xcCZpgiHKt#$Qix-0G?hu3vZX z67bpup6k~a4EbFj$^O7myr56gm6eql#>QuslE#eumg5OGE8>m5p-5Y*k7Aw;eC)IWWlrTd=3 ziDn0morlna-}U$YA$t&Be6j$>G->~9VwFNW*h?JAT zn*dVt9Vrf$!CXl%;`}9P@Gu?skkz& z_b1Gp7N$*XWt#Ij>>!Sl-Ci8YBE`t7+u;l0WCz|>1WX&r%JkZFn8gOFgDCVmqOB#P zWk1^mJa<02E(8)HH1K5Vd9tzWviOI3z7bjc3AK4W9)XWpODjL?Aw%KjZDV2|FC9&m2N$&T2t zJ%QcVX=AxTkiwzFz(OVg&^*UdR?(M=O+HAh z6il6gb|jJ#;rQ7aOgKov^SSyL_m2;Srb%ju%7ul&ZN70knGm9+%0#*CJ=ACM$d%*b zHs$&4)X(uhXu^AgK#L~$b9F*DQFdcL{iY;xXESI z;Mto|S=B8mW#AsD zAQ2xe9Dx!?Mwt>x$@Vb7rl5+z#il5@Mo<>rff1J`0ip<}lvl91{-&v8OSTj?jK(1V z%J42=L}Fv}k;|kkN&l3ttIQTju|%AYrPc=aN~cueiI3g|QS-dMA}GVmNMlj}OQcgG zI$M*DmFtrCAWG7u4P?GM$`(RXnCJJo6c!V(WJM(H7v=zE%ALrSVT>6gl5oTkBa?8D z$s>~@uT%zOe99J~*QgTEEn_ zotY!cfHTBW7!|naW-PN7)7Y7wseh3WY$@FQMMIzDsJz&6tLM4YQaCb;oK%TxmaVQ( zAB|@F4`W!>4rg<6?yy?tu%E%1)kuYls~7{0*y7GhAUCa)l5bZb8Q|uJ-Lce7HBliM zMb&Xr+}yS$?ZF)M5AnG+EEB+B0ymvptw@zRW|o#BVua_th3;(f#6nqL)7wRl<@ou0#iY za9K$XinClH>^+fK3ra^d{!TPO?x*a4Zj4V#xY8dLM0r-S5>2-}D}#l3TJ7dzI7&SJ zes&LYp9v4Qax=zAvIMU6zeM~*NuH=}0u73I*gdyT;h-KRX$%Vb82LJOBJxrc9r5E8a@WQ%M7!DWdt69 z;xANq(*eR*eVYhLYSXVBg>S6;bH|Fhv`EcI(^Ix#s&iRTy-UHXEI%YO;vo&v6c8>hgZ1o0^M51}577z1Sy z7I$^}NPAay7SNxs9Li9LuAC%AlCFN)H5Bh?tl=0HaJ%bgPE*du(F@9wZr_WFS3Sy* z?jF?}3CM7BtAzjyEODen zjbh=ELse0OLU`*WrA76DB2uEA+^KuQ79t5sfat^!(!ZkEQ8^6c1zWShAv)w4!lDc= zKNCW9My{kp*KN}hnSEE;$&8XFRAaKoq^Xlw$qP^vW1*2ta{7jwS|$DzPiFR|Cz7Y+ zCM7x14>Ig)iL4}q&;sS9MSo~fyN=PisbG+&B=MfcoGI-5+G~i}lNOY}>PS=qiUfyP zVU{I^1Wj{Dl_MlYkOQPil9Yf9!6C;Z8B(GJ&iqo;C?(ROfu=~hQ9&UG@Oes$vRIHKH%_<8V56MGLy$TtQ5xhF zCwj6#m9i?Mcu-DA#iEBogP=*raZf25>)kZs%3Xi{l^!I7mH7_6_06 zKEcXT4(U(qE{JA$Qgc$%Wx-ewbnPjx2p!0hhoDbuqEq4mzmeXS0Kfe ziedZee!f%!}O8uzb8cJkEon+E- z-X0ymGaAx-0kcV1Z|}<#%B5Y*tUd#h==;sH*0#{p)6VCM0ff-TT~Qt}h_&eQI&C-J#74 zsRK%0f=9tGG?33H%aR*Y^a!1Ve#wqr)j|At_U2}+8ulnV%qjLzR z@3cEyL#nB<_7Tkv6&eF3xVt7D8dp9shf6I(9`O?hF^B}+%m(5UWILll*|ArY;`CVY z#J_)F){t66c%+r>v24VuK4N0937T~HFqb*SeU7~}onEX~)cE>gVc$^56>;sQjboJ2 z!|VE4DsA++=w4VJs!xX&VR}+bpm$#()hal;k9UzYUnoEZex&+`3HOzl63-TS{&${v zStIeWA88qL3^BqdWd3%nz1QIx+-6wuQP`A-tTb0QMhb4%kL3A+y)=E$UfDgPY+*iL zWmK!#FC&#N^K!*39*#GRG3ne22uwK>#h4Na2SLonPVlYFFkkFZ$S4&lb<*j=F(u@F zl?vncGHM}_VMeRq_X?6BkvSY-hhnj-L2OZ1diX5%0{qd3cp~^L%1Z&v#v7U1@P(&4 zeMq_Ja7J*^QkW83d!HfkFkD@X;0gs$$SnCmkgTCdeMo=wF(vXT;`)%dtx(7i6s=v1 z2J+peLa|16Xkzf0lQ1P>bZ?Hs7-NLJkwdXyE0~eU5V&!W$Y9!-Vdmjb$kKg;@mU-y z5JRwvy@4_Ldgy%-z2c*xSo|z7eG$;Kh3^Xyqh@T+NJn$h{u#A8{B()#ZF+IvU z0Eq! z%rN1U%J_jYI7U}FebK0cUVfEM?*(Hw5#>|VG&H)ns(34LnIB+R=&@Wu3_q|n_i0k+ zQr0M&yf_nYsX01Rq9V~5#yjZr&Bt6c%@A4DSuL!-8r-Ex&~=>H+eIfZ|Kj654Id+J zrY!*Tm@q93YMzFg^eX}M-8*Mex%5k*(sWAbh^`xHr%XyFkrQakeRQmQl$7)%X;$)7 zd|fGw9D0=Opj8%KDO3c`KWEnJF|H(d)zjf-?PwHy8MiAjmOGLN=xn>S&ys<7dLX&saLaYM6#^uwE zvAsAoa4Mz5M(S=a!-YYwPS?}(;F1iep2aPlm^n$`x}4xOy*AU6Q{Pw|pq7~%`MS-x zN;}WSp=%=*dXiC}6i^T+;2eRUFt)dvBDn~fW;gS624501C5+XmVUJMUZ$BmoLMFCJ~a4ML3{(g!4C@i?L{J{ zqZf0wQWb9q?oHe;HQ_V~5oR8K2yo!xa=xGwoL@bLr zjOoFLwQSyz_q9lo+zFD*BJRut$*W@E$YhVqQ#AJDFs6&vB1Cy7k=V4|ndFc{*?rMa zw>{=@TOS;C9LV7y>bMP-26NsOQEpH$4A@LUz?YX!!e{^` zZy}+CP?TPk-aCeXNC_o$0;u%fmEHsdFCt9@1XPM3y;o@#x*)yt0$#n|d;j&n_p-9G z&YA4lGiT0Od(G@M=L2TKY{jm1RK^L>7;9{W6MTq-6Xc8#h)}2UmK2CJ>FQ`nDOV56NAE}wwWJ0?Mz}uzn5QWKkQC*d zu=UjrWu!`(NQvTBJLOHHD@J=vB@tVS%hm?+DBR1whMB(srCdm|Ts3rKQYXv)LwNPc zBS<8>yCC;B=oi`0GY*~hCXI?oTQ|Bya4wX?_1(?2U86E^LWksD>U0|_OLHNSP^uU| zc6Xe&xEWemKWSTIJT+-+TVhYIlhGrozq-@>5fik1eGc(wE;JUYD$jN8zwM516`DTP zjg_l?Q$d_e9IcASMK`gg4AW8UT5DQehnr0XaBs~F%;;$O74T$nvpcO-YT-uhjwcVz zl_a(EtCu8kEv*-GHP-az`LZYBkAZSc#hlRU9{8(jXFKqN7XLoEZa>B(g3I1D}j6TH$Gd;S~eVxMC z4PjJ$YLY=*Snhz(s7+025EDgS6?Gr6hJ&lD5l;?XDS_4i(IOtG&MT=I$EQ4syr3%3 z{4Vh#;uUGa6@@zWg?aYZmrhP_d=AQHB>R^oS0~j%gShzcw=3XE`uFp!r9noNc{v^U zcu5ktS!2Ze*D1|;)-=s?;;uU10VScln(HL8Ng4tfH(Ja$x^P-&{1adCl^kn{k$PEu zUud4xUtl0LPf+jMlU3m!T!xmKN+-P&0uXvQM6WuEnvPwqrLt?jU+Q9=5=LGS;Nfzg zo;33yMzU3d%9e8DPU6G#yg& z;mApZilwIxsY`SEU!9`8%VK?kLwqQr*nUBIsb$miRy;cov(KAR^?1dK zXJ^-RtaJ5FTBy;=8=Di{b+=HbUv#!xXWm~yf8PVkFdv=9W@_xd<@Y(Wx9dJLHlBQ+ zWYk_3+G)`U^gmcAySe#(>_*ic3vXYk*FAKrO@1fcN=|3FH79kG1~-?Dk!Khz!`R^2 z;+$i)*WtU5n;NlX*9`ZYV4J4g7B{ReuqGh(Lb=cff+eLjOB( zr_?|V$*6RtalLG|AAh+cE@Ppb@G7pN39vel=>fphgx^7#{|@`&45(J3vR<3r+jH$9 z9mhW4#tm%(XyC>ri*$_*8b8qynFK`2+MC?* z-FKc0ds;1cI_a8^Mu+%aov)n{S(d%d&{*$FcywKjM?U~ZT!;Q+ zQGSOK6#*bmg-PFJ->=+kX07pN8S^ZWN9?2;keF@;>Nzt)_Q=B0eek%-IO9b#mWb6z zixA<;>$q1c1SSM2B%!Lv*-#^KO(rpd}9z7W) zo)Lra%zaPCO15bFL7>)Rx%>>V!kxunbW=kMSB!U}9Kvwp^HveIM}Bv)*i{oLWhn^*cGcm%XOy5oAM~fPcfswt{B%3t!m8TV~!qahb8Z zCbI>!UPkmPfulU9`m^XnyYO*>Cmv+e4<7BQ9eF%?xp<>KpVdB=n=XI!ik=6{MKdo*KEg7M3^_DdPhHr@C) z?DNW=ZOU%WAzn{92i-HT5Ff=qPk+9GzKh*7x}#TOgTKjeNNtS{>R#`<8V{ z07MQmNWZqi-Ea5FAMpV=JgjG#lc4^NHg1x74!42`1S49S(rT}uccpX|uC*^h#!l|o zgD1lkq&&15&FkzTHi^-V!d5UbEwAmUrp5OUpa`00hl8E>@uGM6J2L zj7C{_q*bgMjXr0-;gJ>tifwM|_fzktAWX3GSBNp>z@hti#;%k!KAXpr42Z8Gdb!|+ z8k??kWt&a07*>iT83OQ&YPz95yn$ItiWeQx@q5zolkGpgvLwoaN9yj`Pr6)%?9Sn#h0^21Y>KJ zuUuk~A98V~W=v7BE@hZ`?Y-WeKEu4{Z=c=J`_XnCJyM4icl;3V-7Q1Hz$>|i)N>21 zVbPJcmY1=wY+&I!V9h#LR?5=uE8?W$_>Dz5q*CqEHPn#;4~}>SZ$`bvI?GO~HDU#0 zX+Dlx*xVmCWuWU2lQPI)uhHmu{8IRKkDzJ~tI-39exlnZpNZdYDuN8Q1qqU5=ydCu zM{Ina;`|g1qil?dw`8DOAlR>kG;+WnqEtep+mN5j8T`~mvA7bZ1irfISUd2;6SyD` z_&<4L%_?_TYz%-5yLzcQ$y$55j0Gs!iozH;Om#w{6R9HSdV6m#M7DMbl0u`e&x6NO z8H@mPu2?p`$41oNjtmv75@TX8F+oRu3*#ctVO7f6blv+KjX~)Jm!aytqY20OL#zkDJ zHRw?%K(*qPJWz?te5 z!)wZE^7SaP)~$`s?}&XxKQe!Un=#oeTvSnn&x4d@d93(z6Z#az)LyB1$*@uGgsHbU z=LNnBF;tP1m(&2TH?nIf+pvjp-)CcSWLe|PWc|q608H#qv?g%@`GGQ-)V zmBVAmbBSw%TAz1_3&mrq9IGQ(Uic^BpH#gyh9%HgFgTE+#s`6%6` zkbx?Q-nb%67bfRj=^D9-_eF`CuQhC5ZcZzL>xj#i3$7bfqJhw<9daL1TsB%3Bass- z#Ou?xE2u)=eOSd!6A_WATBVw$8vVhAhWlDBV?XZV(l+GK>d^gALXTfhL$7g}V_0;U zx1?r?Ni--lI)CWaMa!V`t!Bi%#sGVqoCa}?Ys@}01qTsv$y)WH|W zXTitAFU7AR`5wa8Ox>R)Y+JG*(`#!!V$NDdS~lunyQ{j(jcl3ht#9$|3!SI>qO;~UW6%p7uNn6I z&^wI`p5YFt3Wz%sJ!8Z+#-0lN8dxm-{!Q|Iw9JznJegq`vIpG{6y8d)I4fJW@5a?* zm|4UNp1}|L0{hl-_ufS{rv#&!V+hHJ%LoJLt*Erf`&NUd<_=ju zDR@T;@QoN|H16+Hwz6liD^d1`gTwj5*I~IC_&wVLfd$oSMXwyb34EiEl~vv9}e~UN(!F&7_5{D7)v#_A-nHa z2UXkI2XIvh@PYhl1#HYT;`RH}^2&GoS4<*lA{1JoqOTmDPKHfzjfuUo`&L+Tn_10^ zoldP(jaPLB`PHd$Ke^i=*#bS0P=$EWmFv)}-=#k{vNAbUbB)UY^FjdgBvVC$+hw>? zN6aIMN2{+jtqinkB44Ogs2MYuj+-GgtE-pM?y5V=(FV7DOKsK)Cr0bN>&sTZj}7V< z=@}UBIh9$icl$IQ_TcA-M4%s|VMk1&iqPGF?!&rTmHgtWrDp#*|E2q3xajVf?r#1x zenhGBvnTGGmhawn&Ugh3er$7ihAgUi#Do*d7RnTmzQ4B9EEDP*`y!?aZM$#gc)2?N z3DvUcG;BC|fPF1yh3Upsud15&1x25HJJGL4GLCt49BV5X@6!aRo;m|j}wcyvAxwN->(|da7xSY6$F2>y2Y_;yQbFteS|C~>k zkC?^rui;CC0z&IR5@z2RvY>wR5l6{`1`TCd^|a1w1MSE0b1Pb-$Z6$QEDas?2aEcL zr3*D~PQ6n`Zgl9H&shTv5l3lzjQ+wW_c~S?NlYzjy~%rKderrK+_TB+7$Qg`A#!TEeLPr}Zt=8f z>}=p0VjVTMePX~+W@G;7wN`-JEdPq*S^Z;ADxuo-@^#*ukNp=9=rOMg6-8-e`{V8f zZ5{n9Z3q9Aw-fyd0akFr@OJH-FcjePy!Ed$13M=fCpWvF0wR#SosA6wL;gKS`>rPVR0%v)|I-i#+^in)`z>e37PublmTtE|A0LLNF%TwQ|H{znIMZ!sw4N##YWY z@)$?%SYcqof2GzJ3H|?LPRQ?bDkB^`5GXsi6{ZCEd7T$A_?>fnQ78OAEMW5V^HBZp z`j-WMS)_yYe>L+LPx)8uf0iYfLPG`!77)a|@Ali3{|-$45zSw93=s%!1r!v32nzll z{=eSJ`wtc{3KtfBQ}A*{*boT_Pow9844wh`-4&SAm)R?=nF_2>7467}>w(6BL69W2(Q48GiW( z6NF$YvcJi|V!|*?JpUm($4~!V27!pe{;3OrKw= 1e-06 1 0 0 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 0 0 +Lac >= 1e-06 0 0 0 1 0 0 0 0 +mu >= 0 0 0 0 0 1 0 0 0 +qGlc >= -50 0 0 0 0 0 1 0 0 +qAce >= -50 0 0 0 0 0 0 1 0 +qLac >= -50 0 0 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 Lac <= 50 mu <= 50 qGlc <= 50 qAce <= 50 qLac <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 Lac >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 qLac >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 -5e+01 + +$sys$times +[1] 2.501389 3.341944 3.997500 4.523333 1.950000 3.250000 4.083333 4.766667 + +$sys$data_meas + X Glc Ace Lac +[1,] 0.111888 NA NA NA +[2,] 0.172368 NA NA NA +[3,] 0.234360 NA NA NA +[4,] 0.368928 NA NA NA +[5,] NA 13.79485 0.3882408 0 +[6,] NA 12.68220 0.8870384 0 +[7,] NA 11.30399 1.3291071 0 +[8,] NA 10.09895 1.8844280 0 + +$sys$nb_par +[1] 8 + +$sys$nb_conc +[1] 4 + + +$result +$result$par + X Glc Ace Lac mu qGlc qAce qLac + 2.175607e-02 1.423913e+01 2.230921e-01 1.000000e-06 6.177683e-01 -6.738506e+00 2.670036e+00 -2.161155e-06 + +$result$lastp + X Glc Ace Lac mu qGlc qAce qLac +-6.338184e-09 -2.399736e-07 9.031099e-08 0.000000e+00 7.155641e-08 1.395308e-07 -4.110591e-08 4.962801e-13 + +$result$hci + X Glc Ace Lac mu qGlc qAce qLac +0.008874653 0.606211378 0.261132563 0.248840203 0.097812350 1.512414586 0.653046518 0.630398636 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.5630465 + +$result$laststep + X Glc Ace Lac mu qGlc qAce qLac +-6.338184e-09 -2.399736e-07 9.031099e-08 0.000000e+00 7.155641e-08 1.395308e-07 -4.110591e-08 4.962801e-13 + +$result$normp +[1] 3.034179e-07 + +$result$res + [1] -4.933851e-01 -4.462513e-02 1.136444e+00 -6.582460e-01 -2.390893e-01 5.890855e-02 4.684049e-01 -2.882241e-01 2.723460e-01 -2.888603e-01 -1.419084e-01 1.584227e-01 4.111195e-06 2.546781e-06 6.387617e-07 -1.851742e-06 + +$result$prevres + [1] -4.933845e-01 -4.462468e-02 1.136444e+00 -6.582465e-01 -2.390891e-01 5.890854e-02 4.684047e-01 -2.882242e-01 2.723458e-01 -2.888602e-01 -1.419083e-01 1.584228e-01 4.111194e-06 2.546780e-06 6.387603e-07 -1.851744e-06 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] + [1,] 2.344639e+02 0.000000 0 0 1.275962e+01 0.0000000 0.0000000 0.0000000 + [2,] 3.940864e+02 0.000000 0 0 2.865308e+01 0.0000000 0.0000000 0.0000000 + [3,] 5.908437e+02 0.000000 0 0 5.138564e+01 0.0000000 0.0000000 0.0000000 + [4,] 8.176176e+02 0.000000 0 0 8.046175e+01 0.0000000 0.0000000 0.0000000 + [5,] -5.538293e+01 2.173913 0 0 -1.405147e+00 0.1788105 0.0000000 0.0000000 + [6,] -1.528641e+02 2.173913 0 0 -7.101811e+00 0.4935402 0.0000000 0.0000000 + [7,] -2.717560e+02 2.173913 0 0 -1.667815e+01 0.8773969 0.0000000 0.0000000 + [8,] -4.269433e+02 2.173913 0 0 -3.169906e+01 1.3784381 0.0000000 0.0000000 + [9,] 5.047278e+01 0.000000 5 0 1.280569e+00 0.0000000 0.4112641 0.0000000 +[10,] 1.393115e+02 0.000000 5 0 6.472178e+00 0.0000000 1.1351426 0.0000000 +[11,] 2.476626e+02 0.000000 5 0 1.519950e+01 0.0000000 2.0180129 0.0000000 +[12,] 3.890914e+02 0.000000 5 0 2.888869e+01 0.0000000 3.1704075 0.0000000 +[13,] -4.085320e-05 0.000000 0 5 -1.036506e-06 0.0000000 0.0000000 0.4112641 +[14,] -1.127602e-04 0.000000 0 5 -5.238649e-06 0.0000000 0.0000000 1.1351426 +[15,] -2.004607e-04 0.000000 0 5 -1.230264e-05 0.0000000 0.0000000 2.0180129 +[16,] -3.149346e-04 0.000000 0 5 -2.338281e-05 0.0000000 0.0000000 3.1704075 + +$result$retres +$result$retres$res + [1] -4.933845e-01 -4.462468e-02 1.136444e+00 -6.582465e-01 -2.390891e-01 5.890854e-02 4.684047e-01 -2.882242e-01 2.723458e-01 -2.888602e-01 -1.419083e-01 1.584228e-01 4.111194e-06 2.546780e-06 6.387603e-07 -1.851744e-06 + +$result$retres$sim + col +row X Glc Ace Lac + [1,] 0.10202031 13.363622 0.5699994 7.192095e-07 + [2,] 0.17147551 12.606017 0.8701895 4.762324e-07 + [3,] 0.25708887 11.672162 1.2402163 1.767289e-07 + [4,] 0.35576307 10.595841 1.6666928 -1.684658e-07 + [5,] 0.07256926 13.684869 0.4427100 8.222389e-07 + [6,] 0.16200709 12.709297 0.8292663 5.093561e-07 + [7,] 0.27108894 11.519451 1.3007255 1.277521e-07 + [8,] 0.41347150 9.966368 1.9161126 -3.703487e-07 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace Lac +[1,] 0.0098676902 NA NA NA +[2,] 0.0008924936 NA NA NA +[3,] -0.0227288744 NA NA NA +[4,] 0.0131649307 NA NA NA +[5,] NA 0.10998098 -0.05446915 -8.222389e-07 +[6,] NA -0.02709793 0.05777205 -5.093561e-07 +[7,] NA -0.21546618 0.02838166 -1.277521e-07 +[8,] NA 0.13258313 -0.03168455 3.703487e-07 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT2_res/KEIO_ROBOT2_46_res.txt b/validation/validation_results/Berges_2021/Berges_2021/WT2_res/KEIO_ROBOT2_46_res.txt new file mode 100644 index 0000000..26e803e --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT2_res/KEIO_ROBOT2_46_res.txt @@ -0,0 +1,23 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0217560744110283 0.0224226334896717 0.0221982308074859 0.00466595928425975 0.0150816055449889 0.0334501715815602 +Glc 14.2391296096261 14.2317602089275 14.1878007639613 0.38585547516061 13.5843579968648 14.9719814420028 +Ace 0.22309205021038 0.210362003431633 0.185631746237091 0.137093778917671 9.99999999965959e-07 0.490513235646213 +Lac 1e-06 0.0911992139781477 0.0713415595251186 0.0767314535898862 9.99999999993061e-07 0.250411762232749 +mu 0.617768313350809 0.61507596357349 0.613203324473826 0.0472469719651441 0.519864730959202 0.707021170642829 +qGlc -6.73850604554828 -6.68634017434654 -6.82472918200775 0.986256744584259 -8.36916661691319 -4.84058009201081 +qAce 2.67003622693389 2.71958369176574 2.74185522698645 0.386864463520996 1.916232341112 3.35710684612966 +qLac -2.16115500228865e-06 -0.0290564142692957 -0.035105232793923 0.209573466539953 -0.420875497988719 0.391913744907455 +res 2.53617064887967 20.0165648996058 18.7846409816961 5.9156613527584 11.4504826375608 33.513117330003 + + +Goodness of fit (khi2 test) + +khi2 value 2.53617064888075 +data points 16 +fitted parameters 8 +degrees of freedom 8 +khi2 reduced value 0.317021331110094 +p-value, i.e. P(X^2<=value) 0.0399771068372085 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT3.txt b/validation/validation_results/Berges_2021/Berges_2021/WT3.txt new file mode 100644 index 0000000..80acb70 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT3.txt @@ -0,0 +1,11 @@ +time X Glc Ace +2.87694444444444 0.160272 NA NA +3.67805555555556 0.254016 NA NA +4.09222222222222 0.353808 NA NA +4.565 0.482328 NA NA +0.05 NA 14.3578917771037 0.020872091489987 +1.95 NA 13.8846272141345 0.404924565191357 +2.83333333333333 NA 13.6666522742018 0.7986598127634 +3.98333333333333 NA 11.814445529021 1.4360266762163 +4.88333333333333 NA 9.36769778000465 2.06211842173537 +5.16666666666667 NA 8.60212893644277 2.44464598736867 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT3_res/KEIO_ROBOT3_46.pdf b/validation/validation_results/Berges_2021/Berges_2021/WT3_res/KEIO_ROBOT3_46.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2e9b87dcdfa3be1ca27cfc26ce0886fd089626dc GIT binary patch literal 21484 zcma&NbySp?E1;oZ?d4Tii==_aebHIK{QNTPaYAySqan6et8Q4n>0p2z=>p zz3GtqM%nXR_o7ZftR?9dJ>;l&wlmxo6OR@7OWtel)^`Y-j^kMX4_;W599z$ko zke&ni$IO|J?7jE9?O=6{gB7QLe<(9EykumT3c4IiI-?1`KVKOwq!CHCvroz{(DQF{ zlvMDWPbq8{54wYI7t%b#Hp!))wuO2F0v@(8V2a8~cl${j_nT&cX@g1xc~VkOe`zIm z>@<>|VdtH}LElDu1ILm!#)3Bj$L{*J&!iqN=Az6VMJIOy?gvZ6CE;|Lmrm~_bM9IV zANX$-4!8ZPN6W!Uz4uSGw1qvX+l4`Q=RSp|Zed;$j(%ys3z@q2QLE$k|6Zt0@PmEw z|2TjdSw3wqO^~afuL#wIOa9Gdw@5M!+GC;h;v(%W9HxOm4UVBznUD)G914#zzHFQb z+&Rk5T)r4`4Up8+@t26B%4F|AKh~}1Yj3ifbV#zx@XwgDl`va88n=TKFcwD+qc_QL!yr2gbV&>v#y;cRm zwSyE-^|-A5UW1R8cH4~Q7mv&imv)1O8h@BRr%)z8bQ5t=-V7ydHlR=IS^NE11^+JW z{=q55am$XQ;|iCfaZ28P=iK>y?VRrNJJ_v)Q;7LijO!S)ez=$@k-JLt_$YfP$To;e zf|e$4^~}i?wcc@9c1PsT$GTCE3HTV0#5maAy~Mq@vd_fgcE1mrn2+Lbv3cEcb>AsI zcBGZ!n^izy#1Y3SRkGh{eKawhy3%!Z@3yUUeC-5+yKi4SDo=yU_It^wDt5wFNQ|7j zYA|R9=N~9gaC9#E8lpLc40n8$T;D;qTy&1Hg~Gb)HkA*-6}OE$fW%4g-?M6{>bBOO zmbSv2tNzU8b8y}8hO6-^Yo&ynmE3CEc7P7oN2Z&LN%Qc=i|jWoF%VZLs@}Q{^V|KDv$)*KVBPjF>+>|W+}**@R+U->s_y=b{fgej zA==$bB8k{1(_9FvT+8t6!x5TL;;7`+(@xYd;UsHIVP&3vkG^~>+<5nW!;C)q8u)rP zLHC8rRlvnC^kL5==N+RRIZd9^dl%K_->+D5q|$J=*eFq99PRF218TSGd4w=*^1y zt9fkTwBLRu5bniM@ILNn}M0z z&o@t5*8$N<2FDf;z2l&X&p+NSJ-Mh+Q#cnt^u{nCp*ys~H(t=X1uQ?gL?^lTZlQNP z=L*LT4ZbP=^`F3F1AJqM&=n3`dcv^89MFMkn4CrWvVj$X|sNsEN zT_LSN<*~UqbX4KF@55Lh#+Bhu+)*SoWYPzera_h$tGg8^8Z(K7br0f&e*z0N&O2^c z2E4*NsB~{GWLViBym*!AwGuIo2^u?5J883L%=Eq>-pkft8N^c{gE!X8>_;zsMQzmWj z6@PEaUf`ux-yQT!DkuRYR{9R}Z|E$RM;4o=D3(k|Y2GZ>`@b39$}Fm1O+sgtFqM;M zW2A1_HAO=eOFn(`yx=Vf|K=${VJ%Wh{OuKkX2&|AJwfTwgf)I?>Wgo$$JwZ5XK>S| z*|M}n{i0um<;{-U*S=!S52q?=`sP_ei7Hl_TF8cAGss;+F3tUyMqJilSmcQuBc$Bg zAQP|MAvf_iP5lE=gmAg1y8#2WGKO+lT38x>n$zC9!z;epcZadOx$h38$7`eycN!8> zQf7B2>1NsTrOmlQXJdrQ5ZvXD>WA2DG1{W-Y9XDL(lPHDYIDo zd=p1$&P(^ArH;dN8*KSJ3?)?GJYDBV+1BWX=}V8)p^Aq?!1NE!%0jpef~7|2+3JW? z&^OOa`om(+iLZlsX+Y8|=kUQZ`kg1DV{T1-I$OV{^IK>2q&%64wIT} zse^Am6)0{7N-=IowU{+%gEW#~*7{)Yg6D3ndd~EgHcG?cd7@_<+HJDWjlLmin$UEp ztOearD!p&TQ=9hK1j&-NY6P6PR@%`h+AcK(tZu=-&Aa_Nqdmfx?a7Xfcbjd?0~>nd z9$+Ef6CF%bTkG)XSbm_YC9y8H;U?bKP#!|Axa81B+$MwPixS+4OcMk2RqDF9+wxub zq4Fxy=Z}wG-#ch43Db*yySTFQ*%u!3fVcqq3U|<5Mmcr6vaj;V;S^I0A`B8 z;u)pcgu8*>AMK*-OeF{A;us^gr_Le4R3#p+e!Nq&%mZo1>&qSg6rz>uF9Z`d)2v7n zHa~)e3$I94Va#_iP>t=9{FE=3I#3pq;Qhw)!ZDv=vlOMGk*NOtw`O!^@=x}UOLqbT zu|Wj^MyquP`{Sd#Ey_DbVTHqtM%$NT8fn3)XK|EoXh4#5kFyuVdpPd79Zv-sbX7wE z?^YXz15i`G1r@-QJDlJWg~>c~YFjM<3InPHM7Lk*$32y3!fFH?*$#|yjP)Ddmb*1S z`#vJY7)shN>v_SVOcNfhpZy{v?a3%e?gv)fB6@PSNJu~?>(w(XpTX5L4=0_n8gd-0 zS9|z1Go6;F*n!*I?h!!{Z#?Yo_9XVJVN(A$SNY&Y(tD-hXVxoaf)-gb176pNf)((Z z_UgtPe1&2mv=!2O+f5JltIybN>{l_H+pJei&b7ZdyPP8mRA@-x___=7t2yF|o;*uz9 zW+lopX?Y%mn9*6$%q=-~Al}uF*j@^1VQhGlCy@P0-YiMh3N$_eWw zy=O1;$R;f-n#r|1IW)Go_aM2q@$_N8DyyT7cmfsA7=gAAsdkGIg+L$@P{eKiw9T7y z^^M#)c=e2ts5=Qrr7%&p_V7Y|pOyRgYT&S;oHo_-iS;TY5p*vb3^~MuBYM)6IlmfX zr&A~{Y`u#0^eZgZWj`gP_ zfyQHfL@oB!=ovZ-0q9)l4-*K)A|RuVVe#E5(0IPDp+on5U3mUGkxuM33i7vg;cK67 zusTsshpNVhT(30C@K(LXTiE~;BrkUlb`}lJGNzmNo^>T6N(**$|p*_u?X{( zYf62~%j_0AbF7nXY;!DJ{mT%hW1@*A$WP84_aAFJC>fAPbVMPsmoGR-Jr`jtNN_9u3Idfz4ZD}CAAisC#InoC~W6j9qDF4=D}DVqid3X)2iq zWSo2zRH$<@4Pw$4tSSFo+9uIVj57JxT(K?<_;ozwGtDJ9S;SxAm?gii(q%ziFJIwmVR>pUBV;%aDFdhrk@GIuLPd zY*yy+^&OPlsp~ixjQFJMIJ|RBr-OWC&cUzwNl-WAw!|<iWtz^s@3fc>a|JsMbyyB*TE;CINraV)PaI=-m9+2-<^c_ekzBoP8Ug94i2MP#5ZX=Gj0e{lxZFw`bM zEdLsx;*d9cp9t%RqKzU&q@OZcTw<+&*f3H*bj?+XkEp}_$nl@)Nx})G-CW_+B)?L1 zkXi9>nuJ;L$>N1rYmAb}>wuBC4IN+WWqu*_`PM6p%VBKXNvQF4n{n;;S zgS^`-QhbIK`L5xF<;TW-rsq4Qkk%Rqzpq5}x^THuG~7)#ddsVExRp99kt`w>4D#+R~R#G2F(TE>h$@H0Xp@zKcpyhS%|j-IV3D)BiDIE?&C zCONF>GyRsw0aP{=f}MdX2h&FYB`VxC(||4%%rb5%J0gg7rPm^5iDj;o@jJXFzf8<% zN7e~2C=%$s^zCLXii&?(1eEaW+E5yvQyMtdopB@L%_mv99D?UOFI_H#`AHpxhUq3A zrGIyIPSHMaF+Q8GpqrtU201fMz!#Nto6*T{h3*tS3Je9ye-w{RozQ+E5G)d_)O{`P zO?GVJmd#jiYHmjMEQF=Do~o2$*!G+^q$^2#YS$i5NXj5UCzoPuQtV2UZ(K}2e&c(_ z*u^6$rgZx)28xZAsQKc(cs-5zNaqN0!{|GK)rbOp9VcfcbpIwFq7McDEAb4QMqjY+ zn$oO9fzQoH|E{wdb0UKKtL;egeBV>wS&5iSMh-uuFG{a)y2N58KYo-Lw+eM;3B6vp ztn$@DF*Q9Y8(UaAm+e|pqJ=_8Sx1j1VaQP9^Gdlc1r*r>SmfF}lw{@#ndC?yeK^ae zlm3blsDl*MqE_?8$FAR(otR$?LOhe{8jE8B?0q9b103pJPs7Mk+_ldWk`k2B@&bTh zz!z|+RCsLY8|Pvf+#9v`Zcm#5ADq}-Q(W*bO!iCua2JQ-dE<~0LUe!8ZBSR~3)7Ny zW__{_@Wb5)kCbcuiKn0c^W-L(7%4g>G`6@KtlP&>*vbRC>w)n93@|q`M4`V#ixw!R z`z|q1Y>C!68h{ElIg5f#n1f+tu&(}Ja(&jmU2+4S;7n$Ac_VAa=XH8UxeRVHv|!V< z02?h$uSu^(5tX>iHVDdLE02prL7fX*emOv9-+IdHD32-r@&vT@X}_h6Rnh%nzN23vMy%Ka)5W92Y{S@AVmaKt!B*WfBQn={%>hW@GYY5tXONMeVu|^NyjIqUFHD5|1*TmPYNoB9Dx$+5TNe zTnkCvo!5y+w4UlJ{fW~CvRW^U?y==$)RG4v__EOv=8Gaqp<&Yo?~+(#mq|yw&C4}O z=D#eVgvYxdLEkHy5{5X64)RVS zrn5~C@)mLO`Fm$XY7t#@9OmWD0`uoQdrLe_h4NExDLtpfBBB9Oq#YQfgR+%y?Go5nhE85G$_nz zhxc#z8QeldSze1D{k`DMw3)Wd^Jy= zbU+A@7?;_fC)q2h$Rz%9XY*?o>GJL6pc!?`)WKWISBZ|n;3lpguw%FGbuVOJ8sz)t zbusREkPkmW(Bha!uJHhFX22*`M>2u50(=(B^Tm;u!2Ui)18d+Q6R(RL@oT0P*7-OB zjh{1y*LRILtz#v9!vo8$eQzXGT3mjz=`@F6N<#{8rrtD@jMBi=i?=_0bjgBkr zQq$cjWn?u+`wVli(a%;@!=+3e&DOOqF1?S<)$sICHgke|k$!;dg-g%#%~Z(;Zn5*S z_f}(@Xu*3zY9s7&xPd-vqh;P3`8uz=&Jy3G->&%?Ro<@I)Ed^EacRrl_K2m8EEGfP z6h1LYo0$duBD1&BKkl3i=Q-<~Tqhsx={zoe#y071#4w)7^gh|RJsu^tLw4P;07F z38jm2bSl(UrSjFwVR)eq)_ z?L36s`d%tl???yIAIx=nMG)A9q-+UfS&$l$B6-rL<>W+MvMOJH$@=Y1zP=t<^}`xb z$l;|7+EDJR<4gJaUl^c>dgK!nJe|~IHZHc7mh`BePE{(8SUiYB@fnx@?{pF|7oBV? z;)bgFbN~>_{!xvGO#j{Q_YabTFLlP@g7T$SAr{9aPO**%Vp~Ov_#bI*l3M@tX9HA%57A)$RZ z)%?*4)*dcgFISAk8>d%@o#Jg*tFPem+c4<}sG7JxP0?$H_++vdVmzEG^94hD#QcI< zd&K;&rw%(WbqUWp2d(aLnus1ntVfnCISd0#RM+UnmMr(+{w;S~93fz`-h<)Vyj>5? zDvoYZR^6U;YoQVkZ!4h^jlYWfUc3?*npJax-JdN@()h4qEk|{c^Su(M4iXyQcE>7w(Zo;DYV zL9UwNiHj(#(+^I(tILKsn6ZsS@3CTMwCn(KXL??m#zB%{TW?xtU$*p<=KSJaao%TO zy>}`UDw(t@l<}E0s5uIuZyArTjgyhmmny=1!M_&P7}mgHgQ^*R%7@Gv=Bc2`v3iCd z8&NI(??n|q_IGY0R&07H4TchfU`WfV>wC+Sd~p=itT3@7sEth88gHQ@0x*a;u_DxZ(A_?8xxuy0pWmyv&DQ zm{`gd;SEa4-x&}Jq*In1>8A6rXw@YKe$+$jQyG4u*XM*a$P_KbaO~6N&(K0dSFo%2 zmBox@kI}y&eMCw4le7dB6FR@eqV)LZs331A331o9;MnjHn4wTUjlggU^2l5q{EEh< zb_=?=<#xN6&TH!9qGKh#Au6>U$lXP=g>)|VlkDi+1lzYEsytdK0p6UbFa-_uMKh7= zdcu7yi&(NeFJ)(r`D2B6Z^2BnICX<4?w69S!O^3?jebWjrdLZR?ngiepgnizR4{4i zx7>h!Ba=K067Jztmp^i9#rQ2|J_iAE&g?Dn11)}77x@xLs**eOiI=6~SwpEBHaAgX z8!2_oTTbl=kUXpA{@K}0P%h}@q0l&4R z0MZBk9(ER9TGyUjU-)#?a8I`>Z~fa*n5QLs{^iNX$2G~3QEl(!$vcqcQTZh-tt-(f zfObW^iHIXnnct*tjSda z6r2C}tLC?A!@sr|7(Dp^=j^gfR<05m76oBsV@1H48NwP1IJQM&L!h-|Zk!?apfdvp z8iHP+#&7iTm!Mu28#+fiCQd?a6ZZ06hkb6qq}7bzzS_!FeMt#$nnydnX}(EhQSk6t zX2p1uRO=qQk;weo5+?E~m%WL=obn}}D=_th)oA4k-vxo9m09UB{glhlbxq8FvJmuV zdGEY6z!~T5vX71!uk5h9wzRZ6*G7kR53ql&JBiQe zXc@=fLO@rtNM@xe+1-JuJiAQ|b%T@kcCSx1mTeh;h%Pty{w|mKSa-G@+Lt@#l8db> zBgRBM_iZho+UB1i<5_P{&&Whqr$Iv7*yNk^tPvRMz=EKNOk=ZJa74Oe?)v7* za#`>1E6?!T8OfsBE8dk^;ZNfWGHSp%F~k&i^dSp^nZt|KK>XCDmX@UxKPO$9 z?OlT=?D?0ZIrq7L@GW4#?RmDd$81F+1m3l-_t<)hlsrDOllmc1`*+AMG( zsm@P@5v971xNb{KtqIKA6PaFtZf~AGg#}`LUoo!d-h@S>BRw=s{2ku-cE9IRyH=61 z@wDPArKs|FlN(HlY6VeecXM!diJ-A=L`s*MlD%dC%AbNpHeb&GSzF^ulj$ zgKlcWRo*9gu7AmELUk-_nOsepqgud;+g3RQOFHj~B>EI$1|oKQV7EZht>sbsg6--9 z%3!$gl*glY|HC~PN)EoE&PB`q@*=#3_>;@=R;Vvm)nR~8Z@(4l0UF`7&&GL&t#3tL z`{mmG{h6S(I#WPv_hzSx*-!tThh6Gf(}32cpLsnm0jb_MYtK*H`zJ%a@blh=u#q){ zIsaci_kY>+BLBlB|8JZA|LD5&^8DXy_x~XNSKnQjPw4;dyH^{lfNe&BtHHfnTtK?^ z)BVF!8>b<3Tt?}yNDVw)t|TJ$ugB}G>4K#=8X!|15-GjezQq)7r+(gz6S$q{xAM7&D?D5Db=;rEfqjlr)CYk2>I)k=1 z!>w=IY(3~{^Te+A=LHdM&@*ci!G^?6l;FQ=PqaYy-D$RM?;Y4 z@~1%t$=%qa3;jDwf)>@njHWB9{9WbPImgT{mswN)CTeSw?jYK zr0j@0C5&`Cr50cKi}Q0u<}$YHB_pXiwAv--{tnX%mnhUZ)!n6FcB0r~ZmlHd#(Myn zy7y)jT!xwK7VidCPjvoR<7sX;0smM`CC*%}lC-u@fVLCZh>mSE&i!z!sFn&=AO#ER|S9W$OMHuqZY<-|5zfPy6R&6i1sib zz4N;K@N#l>BJ^&*1}x?E=RzO+6)d&iI0?6o%`kN##TCG(1a&jjaNOpiIA32IDIK=& z1Z}Z1Rjxt*2m`&E$&Cf$j?8?Y=o>k>a~1e)SF5+lIhQOY6=!w!CvEoHQYJ(^ zr{H74T{_lucy065`YZIM_C~n|?t3;qRghHnOIY#8Z23T1gTH*Pa;x-*4`c7G+s)D~ z=58sdQB3}Vyt@l<1JWNh>#snKmX^w?7V}5r(q=kNZvKH!>4oo3S(28nVK(Nw!^*Yb zu>D#-TBXxPZjQGQ(!{V)-RG(b3-hbDKWSXk=%2j3nun8j{A%KD=vr{U;d-`vF7@?X zfqd1v%s4@o?PM8D$B`JETag`EmAGlDjHX6<9_g@TOzn}nU1KJm@geeXs&3QN(6onf zo&!(~--|6)n^?-Dhqu&i^v*wy+9%@7+@&bUOu#y1DY%{nQwtvH>I&mE={*InX@$b0rNre`# zO>8U_0|x34p$l_9*SFk88#;R$BjhbpN#a?;2y3S1mYLwg&J$l%cg5QAEq-g5#JRc7 zR({QMhS%1Qa5j@?PM@LLHc65*YMGsPd? zyKIeZebUKDs6l*YC#0_cjA>qdjd2~g1lO!lghzoXi(g_GH6lE z_Qa4bQ~}}6?`e?9rrRKvl>QJae80#X`OFN}AX888O_8h>{)+oP-S<1R7|)AQwGt6Y zWI-|5Eks!O6*1qG#piuz7%7wjD)lo!f#dR9-?MBJFw8#v2w*u?)c+xsh2}r!uipUQ zlOe`WNDdCz#Nbe)b`QZ-^WlFi7%pA$!Y`suWR+8Jp_LJ%u{iTj{PR%AaA*7weV!*x zOZ(2L_TAU$lgwfB*dfv<^WdyC?kR1eE5-fERft zHK6qJP+CJ>MGpWn#T1@lM}32TWo_scBs61$>VOJDUd4S$bTBSJ$-^{LnK^Za4w~Fs z3@uod4-G+x^uc~lbr3_jLmIl?0P`wZ6guZGVo9=)o(o;4oAD}Y`&E`%r4RPMDF!OUP?{HstJoMyZ$E{rf#Q0lfy5zEsL zs0~W@2-K~}2MVV?;B12-frxBBAg1Z$Pm2M%%EUtyib9b?F6!XP?`gGz8Fx21>bz~Cj0bZuWX%8X-IAxgIe6ok?(XMQAItN*$w zlx7<-5@KhP5Sr1&(Dn0Mw<0~x9;YH7!Yt7lqX0?d?r~W+6bUj@=QzrFN}l6@pkCA6 zYk1K3R)rM7z)fsl+WWzvf0lgjKTCdea6fk&?W_3^)Tt%t*4M584Eqvn%J7qX_55e-C?T(6`wuuzj8C>tTTi;D5m7@%%X_s%NmDlirS4s88^odAwNX1q zqYEm`GaC`a+t*xG!Ug^kdk-Kv2)l)Z%B#kKC7e#n%PHRwS*=UMvXe45}Cm z%#xmeBx}{(8i{E(;CvQ?3Z@eBtN+BSF=IKEZ+zVJ)reFp9EBDQZBWF>U};B2#jteq z_;g_fSl-Q_e`3+v@og5$4IV|f^3nfXdBT#&sL=gu->qF;rzdI+9Gbc76JJUTRfN9U z-&^_HUgL$s(Z++9HZRPG&oXUcGe<}i-czHd+(q#-+XfnnS&sGVeGM_!n9<4-1=q2E z@bZIe?dnu{f;oJwb?+^@$qke%(-;R1KN?Y>jo=X5ywzfkID*b=RVm(+eyOi_;62r9ws;-W+w;d#KY3V*aO2fsIks5M;Gq6CJ8w|N8i4{goCX5xv<13DS_u|7BTFAYp z)saYHXmyf|N?hNIc~=9gK>{Ner{2bEil{Zn{nNk#`zHb?i6y^=>%5J=1GhbVwz&9`s(-RzZOSE_)6t&K|)3wJXJz1PaumUQpWc!k`dn^4-)oa)!^3^-qSwT zM=o-!3XuD(d1wwhGu);~r0yF11HO@qTtVY?-gDoA<1D6AcWBPw!lM3AOs@eU2m;DK z>sz=bZ|OnTEFH9_b85Vvi*1@(5VATGGIF8&TX+3inl4V5n~1=u_7c$vJDFSdT3O$M znYVac+rZbYy6Z{lQ`@5ipp+B*dSJmwYg>*=sTk3Ne-H$u_O~;7(t4Y^$>RwHp<&G8 zsQQyAV(ec-5TFQ?k1rU{zFH9t(YCC|YH}MM5OjVomO^b=@4zx8si!1@-21Wrz)bP^ z^;W+LM5yqLP<}s3Ubr+rZC#y<8pX#tr0vxOm~ zMF4B1?VU<$hp22$IMBGbR0*;p`&MnBX8W5G#IHag#-9IlcJ`aP)gMudm1_>QffnZ0 zQYGN*PAaq33b@ZpcQR58fet+i2kKAHGOkX{HX$e^1ez@}`@HBu-;May7EbMd&+gQu zXEUeAePU75g{~*7BWmeyAmHn5QYxu+wO^RM4AKycao~_C3rZh5`wvFU{{-mb=;ws1 zIcv``W)!>CW*|`0smvBeKx=!VW~sTdG9?JxJeU4n#vZ2{Jua)RT~I}W8h4qJD+W3- zLaOaasr`rFj7Q&;!YNd?5$&!(Gnn6sg$u;+kj^o-MUmz#*Li%WuIyr-`&y08|CRDN8iTZ{7P#H6|R;!G2))TE|f^C#4Mj6cgzrXkLtGzi!jFk)v=TOw1s4l`@6Vcn>pnL(WEdF=e zl*Wkz9}p7}VRH2e(aLDyP_ta(;dIDB#hom!z~kycJFPQ5F6B`RTM;^)pS6Yt^b5q; z0QZe@h8kK0fc8WdGNapPkogQ2LhxmQH)YPJpYJR0o*E5&DIQ3t1pSbnv-e;oxx7}- z>X(l-)&U#6bGW^6D45ery}5`@k;G}x{pG_({VzOt|MkI-AG4BY54l6%am~6Ziy=7U5p+#pvI~NSc>BtZkfHT@?5U(6@(v z(tC!bQ5rF)0^X_>eKE8B9JgQN3|pSc$Z|jaLq12);(O&+S=}w})i_qGsAs;&M}9v^ z+XMTn%|uY!@1}f=N}zRa7Ze;*_t9a86uGJ%2Q^MH_laS>?!ugRrA}0u4@Wk7SG@8! z`eboUI{KI1U2Td!T!+QC97&B_`c*ahWYP9J89HcjMM-j@SQMr43D0V2Q(T}Ewba)k))26yA_uf~ z#9ILgU}RuP22c)4(gySi(txo;@*t|VNPt{`84dt~4ygu&0H-+F0d)e9yjf&G3n>YL zh1tb>>AEA1q6q*na1qZZ1t_maAp>r(Eu(N(Utt3v{DsJLEcZMJ0JpYlxP2L`0Ho3 z%yG!M9a=Og;6Nqb6B{7#xrWYrtieh9Q_Y|tX(cHjx^RICkuz0F@v*vH(|7)^D-_!6YV_>ja z7_|~Dm9nk(oUvug9A20K@)X)xu2@pPNOpU4Hc=V}_zSZM-_ zyW?2`i(Urv?m0O3YknUnolczuVdA6cT_$?>RbW=>zQ{AuRJxtcWvP|vz4qW&vRG$q=nr4BK550hgqk*VK6$-KQE^IKw5I+G@|ELuDf92iQ; zO161>7pG}+#>ZSvIY(QjB<1ape7BrR&8j!LoK^_XB~&uCui-7J@ku z0-52QM?GKmCb*X9r_$ROhwQnmp`Zq;PxV>5JSR-b_jDGqYehrdD(iU4->!wG-kJ>9 z31q6g$=@?vv*#&kr?ba4P>-vq^Fe9KQW{b8D30V}nXEudp(6_ z$U1BM89HHKlidAag}7z@dWs$<`D=``#(K6HnoeAk6d6${?RvvioejlZQk>9il+Nl}?i8D5wx<75X;3o&l? z)25A7jhem4P_;a0vfn-1a~YNTNxLZ}D5XC6fvDGh#gf%;t|QIbWx3VQ=l256&CT%X zn~r9-s@C_fJm#ipg7Y$L(;MuM{`$AGZl2tB8+Ue2`X*DC@)uZVGV-rm&-Ued-?oI! zUF;&h6PUi!oW0Ohh>qe4z4A3+9l!E5EYl+-b0Iuajvhs}s;OJVhiYA(I2)1Z;;k>7 zcYj*HF_*jyK>X5>nJxDp3=5}%iXk5TXw7+Trn5&2w&Nna4q&lgohSGiHAc?AqvA4n z+@fWfegG^Tdb7Nup6!6^qGHoh-vyMzT5xtGH7e{p(SeB%;Y{7;5NV9@H44%}(Jx9* zINyrTzI36k6>z~J0@H1vU&kr`c=wy26J3ecsWK;~yw0ZYJbkme<#zcMjia>|RqfkM zaUyWD(xYk@3*zyoXpCV_;3O9G>o&n?Y68*8nyyXPI&g7k9%rSYr*wFwWqh8bv--&4 zjmyIa*`AewYzGb(O1oM9bzQEVi0IMI*72Cd;k^v1!Anasd3}oYvmT$EYw2<+-|m?u z+bhu5M&RzXe0i_0L|6;(%M}|WSMrNy}7I9A)b7(V96GlI>1) z4JYE%59JtQ&MnGSV3YDpJ|Q2i@=Sf<4t4JO6xVzjK?b>en!D;hN_9pgNgXd2y+CZ2 z@b7af@!x9ZJV48cOYI`*`~nF3=?@JjIz(1G{uj~ip(#lO|9o(pIyWHk2bqP@EKx2A^Hpn%#?tQ#&x{gr{yjQB6lDc(=K~y=v0ht|_Nxy*?N%Kf9PxT(;h^y6jgtGpP{9wl5F4(A2 z{%hE1j&p8xAMIYz97?c$m^#5@G4Rywsorl_{;9rk*7fO^P?X5CaGS^kOyOb)A#Gz= zArC5Ny+xT%;s`Ee<;nRL+*eQ_8^Bqd4n>}K2N=d1{M$E=2mBA zAe*hUXHUY6Yj^U_s;3D&B-^rm!Fm>@`!}zAV#8Nqb=xcQ&b9GDD(5zg!B@K!v9l{$UNH7HcGU&JEtz%8@ zsllb%_n!h%5mUNig(toz(CKZzZeYvoqmiZLcW(Hb+8yyik{g8cOHwOBnwcK%S+JmddneguRfJM1F0ox)`?B1?SV{`3rg`jpqf6KNSuVIC7nwIF+JzT=@dGb*!lW; zw==TlF?`O>*70uZQ-fQ82%ZaY*V%C@cX~}~%$n1F;mdm6>8jk2cS~?u$dohD_jPQR zjok!yE(e#AM$k30|Mu+*NSI67U4smG&2hcQj_G(Ru%of{$zZ&Vr-<;j1fLdC z9DOF$M@dpNtaMJw3DUpS)B3k3vOUAI5icG;zR)51ElWd6lKwlrg1zk|Y$DDfF7rpc zLnEn>CcF*z(Q9L#Fr+nrI3$W?##D(Fov?Le8?&#S+Y+a*n??lLwQ@cQ&=omlw`||; zH8R^hyM}zm0BF76$Lu?b1Bfdi-L0?grweD#(g9q!krc%e}c%w@WU*^pIoz)<^?EKIgn!M|O=1Rsfg|=uLe*rq*w=rQ{);{aVfn0>XmfG!?08l*Pfas`01 zDwHr}Uo*Jk&%*+Riue;|AJ7bpn1*KX>yul`IndgT(%~o>LP)j_9F7)kfaqRF1eiNeom- zZ70NHh(eOyq3U|8ED`GIUh9c~Jla9T#2p^KiSGs)FSJF(ZTjcO(UL(1hW##)$;ZzkcoC5%bFpCHT#r3{Z- zuoM{>ChM6fdJlxOH^nT`88_`CN{YE1h*c!I{xW={(DrGccGEJDkSk|s7nA(Nqg!w1X}za<(R%0XauEnoW9~ZBFB= z;)sd}ACVXpoXhicX1Koe7f)8+cJ-|=iNWd8)KW9~4?9q*{hi8w7jb2~9CB)YowV3OC8Z(8DrWlBHJQ@XVg zQ^X7okaZKwUEicLGre*dvbY2Toj1P{dLddVy!E7ybBC&VYWa7^)LqL`xp!l1emxm- z->SRQ%WH9UL&HL&Z%{H$bghrdS6MQe$i-x=Ck~Hemq5gVx(wqAF@wRG{m*-LO}qBZ zxSAB_b^(!;wDegw6sK;13uvlAH7V8L$CS1V%-?Avg_lfFl}Xb8h3~iE4#19#wvOPg z)dpWuVcVmA?qzNe+%o$^SMBf$Nj(e-(+-z2d6v=+*IAYnl#}Wb z+s9b=1F!t{yGPj&%uEe*{KL+&`tho=w)ZhKsUYYl!@3VF<%)s4?NKTa_M5=?N#T|Z zemBPrucPF8CP+#;DZhtCvFCi*Io^2Of$kRez%MFYo-fukY(#0KU~6Vi=jATJ_ba1O zW=Au4F%wkFRIS8kgTJ zFbY&kIKCxmB|JAUpd{YvD4MeS> zY>4-us&2VDwCwCz3G_FWnjt-*Y0X4c;O+sQ_SDdFNzMH&d$4a7Hjl#J3$Z6vN3F`E z7p-7yVv6dErai!0qahfwuym)>7g?JgfBiVd#22Xx4o3k3R2F;RQ<6d_qupO)>{)s! zRkEDxfkjZCUHTrJLK3t&;&2&_XN$?Yw%Ue5(uhz?O65Q+ zcRFsok{u{6QUJXnwB#CM);fp@uh&&_AWAP#Y;s^DN_AMetx^)u*uT!G=(fQJRhH+I zle(f&>nI04*7n(Crt&bKbKvyv-OzF#ERn?zKW}}K0pH3rY4^;#(T2d#0bW${DE>6@ zNK)$^+epNJI&%JGFPbtLr~GnYQVkY=YV2M)iR91NBwh4eAz`U@ef5WdgSic|vf(X1 z<6o>{{_~FWl`B1?E3;x5F*bpovS~KWnFKn@Rl>Nf^k|P~!s45W=x3MNreazdCK{uL zES>`P><9BglkapBWL%wJj_l3#8lVYx0cW9R<0IrZ?bR4TOe_JYs7SA15l)X1J_=`) z&v>0L<#|K%r!<$z&tU0bb$9F>uEJW!_wK!KO+0#P0J_u~o;H!rDY)foiv_iggzUsD z9agECdsa>qt0*4Xf2Vh6ZrTF+_E)*m^Ui;viwXq2rrZD=)SKWvDy!eIYX2D;mc}XvtJ>1k^xWeKLr8?9skv!kQ6=hFl=qomVkizW#ze>&o8p^K? z;39;|p5~wOlC8ol%ow8VyX^ZqjZyP&%nU}>LH3X@l*pc4pHD)zC|S!g_EOp?WUYt^ z)%OnnHvj+m&iURm=gfPbxzBx``@D1Rd7gXj`#YC+y|MghC9QY;%44g*-nKZD*n;D5 z%9qko0M@<2iDAJbr`}bTJYatV+;uBQNv-~Av_F22Oh`%o`s~E{FVu-$hXK2c=3;!1 ze>+;^aBjd;v;q7cqTSO?!@Rx5b4aMksNHO?t=;oVM;iSEL3jL<7h&Z?>0_l6rS5W5 z`*mxP*iyQ7dPQ>}mq(|qe!R0AQ-hMJ`K=Q(RfM{Z{#p&hBUyxNg%x}^xtnW_kA>Hk zFOWy&kMMWq=WYFza;GFYo|Ov+QZq91-L5)OTCR(SzkQLusAs;wXJ;v?nbhavX_sP{ zgr3IaHw8U7s9R=JPYy{=xvg)=Ql1JW+)DU-ThE2G;9@uQui@6TN!gJIL|gD(mwTtb zice;txNVDRp(1A^#uiRq)2}i4+j_=8aBLmb`E@z-2B3y`H*dfJU?4fn0mcy_b6|7r zGY6bNjt9wSlg9xy#<}4!8YDl!fpIDbB@Y7>7w}IB`OCK%57lq5>Wcf&=g^f(KLw0l<-)HlaH5035Y>3j#Wz+I|#W3krj1!qCvQ z09Cd;1n&_@MF9R66NJ%11Mn@s8H$=D0?EsQjKOYcdYkKN09zKoU%?L;7>1h+5#!qd zs;{Z3f$_$<0h`91zIR}>zQ;?Q0TCfGoPlcL&f~E-#-PwsAgAQ}I*vdpq5kpI6C*-D zXd{^^zLplF`=V)$ijAg8Jh4~$&Yd-9*4xvlmne4>&cS1F|1y&pO3RY0WtLdD3nBd~ zG*2_JLM%3Nhgrq!PKef!Ct2V?ioRPJX|NYgtI;{ zvgHWfoog%bda5nvQrsC=_8q(5GqDhuUXd#+HTKbUnA4bpp2QQ<_~}B8^?QNO>qiGq z#y2y4%f3=)CkAISO^u)WNFQ~C2t7or+GI%7m^@6qqhQ<%Gw2nw3qx2Zdw-O12wF+Q zaVsq$B2*w<-o4|v_ix6eCN3%QHN_{oLWHJv(d!URlGt#Hew11}=}iSB=oE@cI%!O9 z(%Zs~Ad5|sMuf>u_%prId+73h0BYM!+QCe;}b86fk--9L|sbek9$p{8BfKv zb;I^5UOGGuf072V6MpT*PDM?#b+Ex(NGM zpF{h2H^iG_pjWiDx(bZ|qm*igPW~9yG>s@VdiHfXcgxrO(Yln2PwBjUDYnc7qJO9b zA7YX|$_sD=x*h9Vq;j?EvV87|>rYF~T&IP7rP|aQeeK*Q9+H67)k4(rnf1_#^ z0GPDZSZ34?OtbLc-+AXgZ!Ht|D;8#T>6o3KuJBi30+)Aa0YU~a^nTz8J`Fo*5U3O(|kvs;ZPBC?Z5&^(#~Xm$$Uj*r=gA92yrDe2$~WR*y!#&LXe9cH zbMT7Zyv&!+j8}Vl`B1({U94VWQKy3do3=LG)aVM=BN4&K@f#_**14#>QZshb%;FP6 zRzuQ%a(?19);V{hr@wcai6Wy6$&8cJvB^pAJ2+iA&AW_V6J!g|#m2)E_J_j`{O~x1dQ;@q1* z=lan%KT!61ByZy7#SG(IQVFwbU-=plV$pU=5sSk z8#UJ>R`T~+br|dBRBBG;_hO?sTapudi`|ytg%qUE7axiGPxayT@&WAuW&x1_^8u^N z9BVRP#J?O|Yh1HnQ)UxoV`VF2tJ(7*N~T4i#VP7bRQaX&OQ+*e`+Xp)2y6MhuwF$X zvgw=#%2UzKeZbYLM*#Z>VJ!dLBVcqls#4JqeiMEG5#4jJn{~3GCt9{|->H2Xacpr1 zjQ9qV(^?3)1p5Kma9J+d2AOO-h;5sLN99b-+F1`$Ch_@MYDd&*{<9Wm2eC^x%hF^Y z-)UcY>iE&|W!=rG^E4{)46&o;8P<0&>rau>_nMm?e+>`M3-8SB!3^}@hxb>Ed|-=f z=frxrXZmU!_g5-AuROUtGTLl67xd(_kWiuFb;G!>JpcA3`qCd$m+EHfyc}np3W&RF zv}ziO=Dtq834!73EZkJ?EZyXeh@z4+rBmv(GtMK4OvXw?_hJ7E=UXUVR9to)mx%>_F?Z6KE9b=)Bp(Sb^_pe@{s^{mhst>Dk zhxLSMH>--0^;|nwE;lUgnc|xAjSTAx?VHbCeGuQ05=j+F;Na#e=Lp%4;Wy*yzZY8X z`YJeLl?jw>B{*s{|$?ar}-G5oDQ9oUJyiS+Rz zp*5MYIB3>tXRZ7+1yzz@Hm9+6J^Tdyq_xD+HWfiRzjTAJU;xc}g zy>diVvQd@gT4JiFr5*NM4duR9@A~^2&mdTX91)uwh*&xPuUYW%qn=_)xHXi%M;yOT+xb^rAn6`z7<9pVIIwc8X?wS?kl zF;AtRplk69g{8(KhJF%4hGmAw3|^8ZiB0sYJvLWes85rsaJRa12{h|&>(?W*&&FyF zO54cMpd!x>-EQ<|$Lc;zxOV*7++9{;h1!$Q(<6Ib7FR~TneX$_^+9vjOTUo8=k0`>q@tQ@hnS>sCS)^$gv~gS|R0pMS>jh0^fV0g3s9*+VD5_cv-f3W_EIyB1eP234)S9pCzm zay+i|GT*Jvo%Db4X`_Ox zS17^R&1tUw4Y|boesInN`?`oS+d;PD(ZbR7(Bn=EkSxWZ@!0jNgEo!jSq=Nh^8=k5 ziLYnP9+O_^)rvMgZ1_BFy;e3=<4vTE*?9|5Yu;oHG{&x9Up)}4@TJ0O22edQqpJMg zwK@DacC13`B<|aC@ZD+A&zQD|Uah6W&vZK^sZ!9B&UC*G{gLFfqPCOAzB#UUzZvzt z=eL1?2_8p&bzI&UEKheSzW3zYzyfZO@?`mo4W!)N`PyBx5bsyAvmW0XQhoX5>lP~( zkDW{np8mXl`NKj{yh(O2%WA~Z`rp!a_|LqZ^DnlZHW9?w;fWwzkCC_jY}w$6>O^n+ zcL66<3-9iZ1A%%BVx9w_fP{MBi9X(d(=Tc8W*+`M&D}!xZKml^3!l@JO_Co&2nUm0 zj0c$gf|>iK(XBrA7_z$-=*Vdd$msi-T5l%w|HqghrjId^tugg*g!4EG9*Y4>fba9% zjKQz?z|A`0|F8h&>HlCsR)a)v`=4fhVhVr6{(D&h78>dRTn+|<{W|ksIfPr${87hn zLa`VCCWnB*ehvT6S2F&=0;sTQ;THuzFPu9k3_!p*LCb$#01AneM*{A^4;cd7yJB1b z@rMkK0{=+A$>53#ilF&zGNd9{8Eum(BEgz(y9~X3JQxhY*x~xEA1G7$n+%OWfyLGD z{m}9XV6cCa!BL2RkjW#q`;34oD1veSO&0+}DsJ}=0YiaxH6Joq5n@= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 2.876944 3.678056 4.092222 4.565000 0.050000 1.950000 2.833333 3.983333 4.883333 5.166667 + +$sys$data_meas + X Glc Ace + [1,] 0.160272 NA NA + [2,] 0.254016 NA NA + [3,] 0.353808 NA NA + [4,] 0.482328 NA NA + [5,] NA 14.357892 0.02087209 + [6,] NA 13.884627 0.40492457 + [7,] NA 13.666652 0.79865981 + [8,] NA 11.814446 1.43602668 + [9,] NA 9.367698 2.06211842 +[10,] NA 8.602129 2.44464599 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.02440762 14.50537535 0.21647433 0.65128991 -5.74029199 2.19615092 + +$result$lastp + X Glc Ace mu qGlc qAce +-2.374394e-08 -3.419003e-07 1.824129e-07 2.326241e-07 -4.014780e-07 3.771852e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.008568722 0.423153447 0.182065774 0.083021290 0.735508577 0.314548689 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.6358412 + +$result$laststep + X Glc Ace mu qGlc qAce +-2.374394e-08 -3.419003e-07 1.824129e-07 2.326241e-07 -4.014780e-07 3.771852e-08 + +$result$normp +[1] 6.061809e-07 + +$result$res + [1] -0.06585852 0.69101071 -0.15211950 -0.25406334 0.30513678 0.15182711 -0.66936181 0.05685430 0.38565723 -0.23011361 0.99163247 0.11159449 -0.71750986 -1.00024045 0.26041971 0.35410364 + +$result$prevres + [1] -0.06585611 0.69101228 -0.15211914 -0.25406547 0.30513751 0.15182710 -0.66936226 0.05685354 0.38565717 -0.23011306 0.99163157 0.11159430 -0.71750961 -1.00023978 0.26042001 0.35410351 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 325.6252618 0.000000 0 2.286522e+01 0.000000000 0.00000000 + [2,] 548.6729867 0.000000 0 4.925583e+01 0.000000000 0.00000000 + [3,] 718.5570363 0.000000 0 7.177054e+01 0.000000000 0.00000000 + [4,] 977.6584441 0.000000 0 1.089316e+02 0.000000000 0.00000000 + [5,] -0.6342151 2.173913 0 -3.890929e-04 0.002696674 0.00000000 + [6,] -49.0676751 2.173913 0 -1.408449e+00 0.208635065 0.00000000 + [7,] -102.1267980 2.173913 0 -4.560316e+00 0.434241710 0.00000000 + [8,] -237.3435052 2.173913 0 -1.604361e+01 1.009181249 0.00000000 + [9,] -441.7964304 2.173913 0 -3.838502e+01 1.878512214 0.00000000 +[10,] -535.2118691 2.173913 0 -4.985221e+01 2.275713347 0.00000000 +[11,] 0.5580751 0.000000 5 3.423806e-04 0.000000000 0.00620235 +[12,] 43.1769079 0.000000 5 1.239360e+00 0.000000000 0.47986065 +[13,] 89.8660747 0.000000 5 4.012832e+00 0.000000000 0.99875593 +[14,] 208.8494849 0.000000 5 1.411751e+01 0.000000000 2.32111687 +[15,] 388.7570331 0.000000 5 3.377675e+01 0.000000000 4.32057809 +[16,] 470.9575814 0.000000 5 4.386725e+01 0.000000000 5.23414070 + +$result$retres +$result$retres$res + [1] -0.06585611 0.69101228 -0.15211914 -0.25406547 0.30513751 0.15182710 -0.66936226 0.05685354 0.38565717 -0.23011306 0.99163157 0.11159430 -0.71750961 -1.00023978 0.26042001 0.35410351 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.15895488 13.319513 0.6701679 + [2,] 0.26783625 12.359862 1.0373162 + [3,] 0.35076562 11.628944 1.3169543 + [4,] 0.47724669 10.514174 1.7434489 + [5,] 0.02521554 14.498255 0.2191984 + [6,] 0.08691330 13.954468 0.4272434 + [7,] 0.15450352 13.358746 0.6551579 + [8,] 0.32675153 11.840598 1.2359787 + [9,] 0.58719722 9.545100 2.1142024 + [10,] 0.70619600 8.496277 2.5154667 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.001317122 NA NA + [2,] -0.013820246 NA NA + [3,] 0.003042383 NA NA + [4,] 0.005081309 NA NA + [5,] NA -0.14036325 -0.19832631 + [6,] NA -0.06984047 -0.02231886 + [7,] NA 0.30790664 0.14350192 + [8,] NA -0.02615263 0.20004796 + [9,] NA -0.17740230 -0.05208400 +[10,] NA 0.10585201 -0.07082070 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT3_res/KEIO_ROBOT3_46_res.txt b/validation/validation_results/Berges_2021/Berges_2021/WT3_res/KEIO_ROBOT3_46_res.txt new file mode 100644 index 0000000..f8336f8 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT3_res/KEIO_ROBOT3_46_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0244076154218182 0.0241210826233665 0.0242454454797088 0.00305436587981422 0.0185822087941339 0.0299736460308275 +Glc 14.5053753487478 14.4821621954881 14.469073059416 0.234542455768876 14.0577346026405 14.9751736359511 +Ace 0.21647432911298 0.221510964640078 0.215136837518264 0.105732182933392 0.0262150873940809 0.41469094594303 +mu 0.651289907203958 0.655339455069455 0.653436295237363 0.0274002101202294 0.605400674889595 0.705097013057007 +qGlc -5.74029198772018 -5.72731302870365 -5.70693605954904 0.422711013191574 -6.53503199872252 -5.02182560012581 +qAce 2.19615091952663 2.20723832191625 2.1908631447366 0.204586763446644 1.877313070061 2.57179498525552 +res 4.04294047882464 23.3160941566864 22.650881175349 6.73366156871433 13.8111896466059 39.5010468201464 + + +Goodness of fit (khi2 test) + +khi2 value 4.04294047884105 +data points 16 +fitted parameters 6 +degrees of freedom 10 +khi2 reduced value 0.404294047884105 +p-value, i.e. P(X^2<=value) 0.0546109323904727 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT4.txt b/validation/validation_results/Berges_2021/Berges_2021/WT4.txt new file mode 100644 index 0000000..2495f2f --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT4.txt @@ -0,0 +1,14 @@ +time X Glc Ace +0 0.034776 NA NA +1.195 0.06048 NA NA +1.61361111111111 0.077112 NA NA +2.36138888888889 0.117936 NA NA +3.28638888888889 0.208656 NA NA +3.81944444444444 0.297864 NA NA +4.41083333333333 0.409752 NA NA +0.283333333333333 NA 14.2116830953905 0.0427639227773716 +1.91666666666667 NA 13.5430595208886 0.339709465505823 +2.7 NA 13.0030707860023 0.649267054264322 +3.61666666666667 NA 12.3099913190415 1.09746732275799 +4.05 NA 11.846995811448 1.34586285565091 +4.75 NA 10.2207308621112 1.83260326757302 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT4_res/KEIO_ROBOT4_40.pdf b/validation/validation_results/Berges_2021/Berges_2021/WT4_res/KEIO_ROBOT4_40.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7e9efc0745aed11930c6e7591684011c9f979b27 GIT binary patch literal 21803 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 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 0.0000000 1.1950000 1.6136111 2.3613889 3.2863889 3.8194444 4.4108333 0.2833333 1.9166667 2.7000000 3.6166667 4.0500000 4.7500000 + +$sys$data_meas + X Glc Ace + [1,] 0.034776 NA NA + [2,] 0.060480 NA NA + [3,] 0.077112 NA NA + [4,] 0.117936 NA NA + [5,] 0.208656 NA NA + [6,] 0.297864 NA NA + [7,] 0.409752 NA NA + [8,] NA 14.21168 0.04276392 + [9,] NA 13.54306 0.33970947 +[10,] NA 13.00307 0.64926705 +[11,] NA 12.30999 1.09746732 +[12,] NA 11.84700 1.34586286 +[13,] NA 10.22073 1.83260327 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.03103335 14.14588144 0.12107475 0.58553889 -4.80108987 2.25825700 + +$result$lastp + X Glc Ace mu qGlc qAce + 4.670761e-09 7.112782e-08 -2.086803e-07 -4.294613e-08 -4.880016e-08 5.411510e-07 + +$result$hci + X Glc Ace mu qGlc qAce +0.004444856 0.239742950 0.104515899 0.036074085 0.568641290 0.248748019 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.3602471 + +$result$laststep + X Glc Ace mu qGlc qAce + 4.670761e-09 7.112782e-08 -2.086803e-07 -4.294613e-08 -4.880016e-08 5.411510e-07 + +$result$normp +[1] 5.879614e-07 + +$result$res + [1] -0.18713235 0.09979696 0.13588093 0.28750910 0.19675968 -0.36976534 0.04563357 -0.24287032 0.16440190 0.34937705 -0.05367369 -0.37516671 0.15793177 0.49954647 0.14669739 -0.33124859 -0.50621909 -0.31151335 0.50273717 + +$result$prevres + [1] -0.18713258 0.09979665 0.13588060 0.28750879 0.19675958 -0.36976514 0.04563437 -0.24287046 0.16440188 0.34937708 -0.05367361 -0.37516664 0.15793176 0.49954747 0.14669801 -0.33124828 -0.50621930 -0.31151389 0.50273598 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 50.000000 0.000000 0 0.00000000 0.00000000 0.0000000 + [2,] 100.659349 0.000000 0 3.73293699 0.00000000 0.0000000 + [3,] 128.619076 0.000000 0 6.44069745 0.00000000 0.0000000 + [4,] 199.279456 0.000000 0 14.60355807 0.00000000 0.0000000 + [5,] 342.520550 0.000000 0 34.93286648 0.00000000 0.0000000 + [6,] 467.994451 0.000000 0 55.47145258 0.00000000 0.0000000 + [7,] 661.650625 0.000000 0 90.56867460 0.00000000 0.0000000 + [8,] -3.216643 2.173913 0 -0.01453247 0.02079178 0.0000000 + [9,] -36.930607 2.173913 0 -1.29957880 0.23871255 0.0000000 +[10,] -68.796757 2.173913 0 -3.61182630 0.44468940 0.0000000 +[11,] -130.335241 2.173913 0 -9.72136678 0.84246267 0.0000000 +[12,] -173.128077 2.173913 0 -14.82420756 1.11906757 0.0000000 +[13,] -269.871108 2.173913 0 -28.10573475 1.74439647 0.0000000 +[14,] 3.479879 0.000000 5 0.01572174 0.00000000 0.0478211 +[15,] 39.952845 0.000000 5 1.40593061 0.00000000 0.5490389 +[16,] 74.426781 0.000000 5 3.90740225 0.00000000 1.0227856 +[17,] 141.001302 0.000000 5 10.51692059 0.00000000 1.9376641 +[18,] 187.296116 0.000000 5 16.03735537 0.00000000 2.5738554 +[19,] 291.956170 0.000000 5 30.40578421 0.00000000 4.0121119 + +$result$retres +$result$retres$res + [1] -0.18713258 0.09979665 0.13588060 0.28750879 0.19675958 -0.36976514 0.04563437 -0.24287046 0.16440188 0.34937708 -0.05367361 -0.37516664 0.15793176 0.49954747 0.14669801 -0.33124828 -0.50621930 -0.31151389 0.50273598 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.03103335 14.14588 0.1210750 + [2,] 0.06247593 13.88807 0.2423400 + [3,] 0.07982961 13.74578 0.3092682 + [4,] 0.12368618 13.38618 0.4784105 + [5,] 0.21259119 12.65721 0.8212917 + [6,] 0.29046870 12.01866 1.1216430 + [7,] 0.41066469 11.03312 1.5852046 + [8,] 0.03663357 14.09996 0.1426734 + [9,] 0.09533007 13.61868 0.3690491 + [10,] 0.15080951 13.16378 0.5830174 + [11,] 0.25794891 12.28530 0.9962235 + [12,] 0.33245186 11.67442 1.2835601 + [13,] 0.50088289 10.29338 1.9331505 + + +$result$it +[1] 6 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.0037426516 NA NA + [2,] -0.0019959329 NA NA + [3,] -0.0027176120 NA NA + [4,] -0.0057501758 NA NA + [5,] -0.0039351915 NA NA + [6,] 0.0073953029 NA NA + [7,] -0.0009126874 NA NA + [8,] NA 0.11172041 -0.09990949 + [9,] NA -0.07562486 -0.02933960 +[10,] NA -0.16071346 0.06624966 +[11,] NA 0.02468986 0.10124386 +[12,] NA 0.17257666 0.06230278 +[13,] NA -0.07264861 -0.10054720 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT4_res/KEIO_ROBOT4_40_res.txt b/validation/validation_results/Berges_2021/Berges_2021/WT4_res/KEIO_ROBOT4_40_res.txt new file mode 100644 index 0000000..0260d3c --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT4_res/KEIO_ROBOT4_40_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0310333530829463 0.0315264910549587 0.0315354397181959 0.00410401569238524 0.0240840336618418 0.0405349162716046 +Glc 14.1458814356202 14.1503550053304 14.1470907615895 0.212168814566187 13.780603468891 14.5592139049331 +Ace 0.121074746711062 0.133392557557418 0.133971630360329 0.0794662234685088 9.99999999998766e-07 0.282279544988252 +mu 0.585538892459058 0.584941458261113 0.583522456094578 0.031192234742122 0.526484740799651 0.643939823377127 +qGlc -4.80108986606804 -4.69700188933503 -4.63759722449243 0.570071430710397 -5.70924055891962 -3.74510773470152 +qAce 2.25825699630613 2.22032012418663 2.19638115370088 0.252009744702445 1.69944258852944 2.7214848859998 +res 1.68711334416446 32.5441695481739 32.2004628567251 7.20051338804515 19.4738330761443 46.5915305247108 + + +Goodness of fit (khi2 test) + +khi2 value 1.68711334416884 +data points 19 +fitted parameters 6 +degrees of freedom 13 +khi2 reduced value 0.129777949551449 +p-value, i.e. P(X^2<=value) 8.55657141098212e-05 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1.txt new file mode 100644 index 0000000..86e9d79 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1.txt @@ -0,0 +1,17 @@ +time X Glc Ace +1.69472222222222 6.1992000000000005E-2 NA NA +2.3002777777777799 8.6184000000000011E-2 NA NA +2.6983333333333301 0.11037599999999999 NA NA +3.43611111111111 0.17841599999999999 NA NA +3.8211111111111098 0.20865600000000001 NA NA +4.2011111111111097 0.3024 NA NA +4.5980555555555496 0.378 NA NA +4.9950000000000001 0.54583199999999998 NA NA +5.3752777777777796 0.60933599999999999 NA NA +1.35 NA 13.6276813815462 0.216958848225059 +1.91666666666667 NA 13.5792133323062 0.371914222400848 +2.86666666666667 NA 12.6200457520069 0.707537683463011 +4 NA 11.2499817544224 1.46436775470691 +4.8 NA 9.36560347817446 2.13574936032777 +5.18333333333333 NA 8.20020915137498 2.54657962639804 +5.58333333333333 NA 6.55172432249331 2.88518116059672 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1_res/KEIO_ROBOT6_1.pdf b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1_res/KEIO_ROBOT6_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..698a1677f8e4c915be5ad1d0391b574038af782e GIT binary patch literal 22539 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 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 1.694722 2.300278 2.698333 3.436111 3.821111 4.201111 4.598056 4.995000 5.375278 1.350000 1.916667 2.866667 4.000000 4.800000 5.183333 5.583333 + +$sys$data_meas + X Glc Ace + [1,] 0.061992 NA NA + [2,] 0.086184 NA NA + [3,] 0.110376 NA NA + [4,] 0.178416 NA NA + [5,] 0.208656 NA NA + [6,] 0.302400 NA NA + [7,] 0.378000 NA NA + [8,] 0.545832 NA NA + [9,] 0.609336 NA NA +[10,] NA 13.627681 0.2169588 +[11,] NA 13.579213 0.3719142 +[12,] NA 12.620046 0.7075377 +[13,] NA 11.249982 1.4643678 +[14,] NA 9.365603 2.1357494 +[15,] NA 8.200209 2.5465796 +[16,] NA 6.551724 2.8851812 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.02070843 13.90270361 0.26090354 0.63597381 -6.74767540 2.59298878 + +$result$lastp + X Glc Ace mu qGlc qAce + 1.030079e-08 1.282740e-07 1.254888e-07 -9.974672e-08 7.011575e-07 -6.425619e-07 + +$result$hci + X Glc Ace mu qGlc qAce +0.005691808 0.548725697 0.237018693 0.056291237 0.942993947 0.404379410 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.9137875 + +$result$laststep + X Glc Ace mu qGlc qAce + 1.030079e-08 1.282740e-07 1.254888e-07 -9.974672e-08 7.011575e-07 -6.425619e-07 + +$result$normp +[1] 9.730184e-07 + +$result$res + [1] -0.05731851 0.16230572 0.24085807 0.28731773 1.32992196 -0.14165602 0.37968007 -2.47536771 1.13912728 -0.05161219 -0.43528810 0.30885269 0.16442423 0.22827852 -0.03011187 -0.18454328 0.79376656 0.45122453 -0.04165618 -1.06572178 -0.85843352 -0.44502693 1.16584732 + +$result$prevres + [1] -0.05731950 0.16230452 0.24085676 0.28731630 1.32992059 -0.14165719 0.37967932 -2.47536769 1.13912851 -0.05161226 -0.43528806 0.30885293 0.16442461 0.22827871 -0.03011199 -0.18454393 0.79376584 0.45122376 -0.04165695 -1.06572228 -0.85843333 -0.44502612 1.16584908 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 146.91029 0.000000 0 5.1558204 0.00000000 0.0000000 + [2,] 215.92684 0.000000 0 10.2857025 0.00000000 0.0000000 + [3,] 278.13111 0.000000 0 15.5414738 0.00000000 0.0000000 + [4,] 444.65559 0.000000 0 31.6401107 0.00000000 0.0000000 + [5,] 568.01623 0.000000 0 44.9466623 0.00000000 0.0000000 + [6,] 723.29711 0.000000 0 62.9256824 0.00000000 0.0000000 + [7,] 931.00662 0.000000 0 88.6490366 0.00000000 0.0000000 + [8,] 1198.36415 0.000000 0 123.9570804 0.00000000 0.0000000 + [9,] 1526.23538 0.000000 0 169.8906452 0.00000000 0.0000000 +[10,] -31.36339 2.173913 0 -0.5003788 0.09625334 0.0000000 +[11,] -54.97896 2.173913 0 -1.3074506 0.16872883 0.0000000 +[12,] -119.73550 2.173913 0 -4.5784440 0.36746480 0.0000000 +[13,] -270.53541 2.173913 0 -15.5109159 0.83026536 0.0000000 +[14,] -465.26874 2.173913 0 -33.3906401 1.42789636 0.0000000 +[15,] -600.08618 2.173913 0 -47.3483785 1.84164720 0.0000000 +[16,] -780.59701 2.173913 0 -67.5034514 2.39562972 0.0000000 +[17,] 27.72026 0.000000 5 0.4422555 0.00000000 0.2213827 +[18,] 48.59268 0.000000 5 1.1555790 0.00000000 0.3880763 +[19,] 105.82720 0.000000 5 4.0466185 0.00000000 0.8451690 +[20,] 239.11040 0.000000 5 13.7091901 0.00000000 1.9096103 +[21,] 411.22379 0.000000 5 29.5120310 0.00000000 3.2841616 +[22,] 530.38103 0.000000 5 41.8484584 0.00000000 4.2357886 +[23,] 689.92397 0.000000 5 59.6623468 0.00000000 5.5099484 + +$result$retres +$result$retres$res + [1] -0.05731950 0.16230452 0.24085676 0.28731630 1.32992059 -0.14165719 0.37967932 -2.47536769 1.13912851 -0.05161226 -0.43528806 0.30885293 0.16442461 0.22827871 -0.03011199 -0.18454393 0.79376584 0.45122376 -0.04165695 -1.06572228 -0.85843333 -0.44502612 1.16584908 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.06084561 13.476848 0.4245505 + [2,] 0.08943009 13.173567 0.5410950 + [3,] 0.11519314 12.900222 0.6461360 + [4,] 0.18416233 12.168459 0.9273368 + [5,] 0.23525441 11.626373 1.1356492 + [6,] 0.29956686 10.944019 1.3978635 + [7,] 0.38559359 10.031276 1.7486112 + [8,] 0.49632465 8.856421 2.2000833 + [9,] 0.63211857 7.415649 2.7537416 + [10,] 0.04886715 13.603940 0.3757120 + [11,] 0.07006971 13.378981 0.4621590 + [12,] 0.12820952 12.762118 0.6992063 + [13,] 0.26360090 11.325617 1.2512233 + [14,] 0.43843665 9.470612 1.9640627 + [15,] 0.55947863 8.186358 2.4575744 + [16,] 0.72154511 6.466834 3.1183510 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.001146390 NA NA + [2,] -0.003246090 NA NA + [3,] -0.004817135 NA NA + [4,] -0.005746326 NA NA + [5,] -0.026598412 NA NA + [6,] 0.002833144 NA NA + [7,] -0.007593586 NA NA + [8,] 0.049507354 NA NA + [9,] -0.022782570 NA NA +[10,] NA 0.02374164 -0.15875317 +[11,] NA 0.20023251 -0.09024475 +[12,] NA -0.14207235 0.00833139 +[13,] NA -0.07563532 0.21314446 +[14,] NA -0.10500821 0.17168667 +[15,] NA 0.01385151 0.08900522 +[16,] NA 0.08489021 -0.23316982 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1_res/KEIO_ROBOT6_1_res.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1_res/KEIO_ROBOT6_1_res.txt new file mode 100644 index 0000000..df75319 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_1_res/KEIO_ROBOT6_1_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0207084337676758 0.0208976077000703 0.0209356075734266 0.00219256831340121 0.0168484877927683 0.0246485140032572 +Glc 13.9027036100327 13.8993536184307 13.8913215414689 0.204897237029866 13.508785529863 14.2417769957412 +Ace 0.260903544535617 0.272093547195377 0.274905646574454 0.0761138756168814 0.127672831776765 0.425469011902609 +mu 0.635973812785956 0.635126547735 0.633988658630189 0.0208370088956886 0.602287459268798 0.67683144556754 +qGlc -6.74767540047978 -6.71938746799311 -6.74928442189449 0.370928367541282 -7.33013669475001 -6.00854404944626 +qAce 2.59298877697441 2.57625927570946 2.57724406714981 0.150183038358901 2.26019801035397 2.85883149031973 +res 14.1951277011697 41.0447985862981 40.0077470087054 8.07046900932179 28.4020267716968 58.7778655067074 + + +Goodness of fit (khi2 test) + +khi2 value 14.1951277011868 +data points 23 +fitted parameters 6 +degrees of freedom 17 +khi2 reduced value 0.835007511834518 +p-value, i.e. P(X^2<=value) 0.346755341837859 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2.txt new file mode 100644 index 0000000..330c040 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2.txt @@ -0,0 +1,17 @@ +time X Glc Ace +1.69472222222222 9.2231999999999995E-2 NA NA +2.3002777777777799 0.12096 NA NA +2.6983333333333301 0.14666400000000002 NA NA +3.43611111111111 0.22226399999999999 NA NA +3.8211111111111098 0.26611199999999996 NA NA +4.2011111111111097 0.32659199999999999 NA NA +4.5980555555555496 0.41428800000000005 NA NA +4.9950000000000001 0.63050399999999995 NA NA +5.3752777777777796 0.79531200000000002 NA NA +1.35 NA 13.6314464876018 0.198784176667544 +1.91666666666667 NA 13.5227482068367 0.337257134190014 +2.86666666666667 NA 12.5609507702081 0.621968821144039 +4 NA 11.3750632304105 1.30831565908841 +4.8 NA 9.31992576685056 1.97187177862311 +5.18333333333333 NA 7.53324535081232 2.31121478647947 +5.58333333333333 NA 5.96517290124761 2.73382285300386 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2_res/KEIO_ROBOT6_2.pdf b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2_res/KEIO_ROBOT6_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a5b6db98f6c47502e5e23f00234a956c932e32d6 GIT binary patch literal 22391 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 literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2_res/KEIO_ROBOT6_2_log.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2_res/KEIO_ROBOT6_2_log.txt new file mode 100644 index 0000000..0945090 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2_res/KEIO_ROBOT6_2_log.txt @@ -0,0 +1,211 @@ +$sys +$sys$params + X Glc Ace mu qGlc qAce + 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" + +$sys$nconc +[1] "X" "Glc" "Ace" + +$sys$nflux +[1] "mu" "qGlc" "qAce" + +$sys$metab +[1] "Glc" "Ace" + +$sys$weight + col +row X Glc Ace + [1,] 0.02 0.46 0.2 + [2,] 0.02 0.46 0.2 + [3,] 0.02 0.46 0.2 + [4,] 0.02 0.46 0.2 + [5,] 0.02 0.46 0.2 + [6,] 0.02 0.46 0.2 + [7,] 0.02 0.46 0.2 + [8,] 0.02 0.46 0.2 + [9,] 0.02 0.46 0.2 + [10,] 0.02 0.46 0.2 + [11,] 0.02 0.46 0.2 + [12,] 0.02 0.46 0.2 + [13,] 0.02 0.46 0.2 + [14,] 0.02 0.46 0.2 + [15,] 0.02 0.46 0.2 + [16,] 0.02 0.46 0.2 + +$sys$te_upc + X Glc Ace mu qGlc qAce + 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace mu qGlc qAce + 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$u + X Glc Ace mu qGlc qAce +X <= 50 -1 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 +mu <= 50 0 0 0 -1 0 0 +qGlc <= 50 0 0 0 0 -1 0 +qAce <= 50 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 1.694722 2.300278 2.698333 3.436111 3.821111 4.201111 4.598056 4.995000 5.375278 1.350000 1.916667 2.866667 4.000000 4.800000 5.183333 5.583333 + +$sys$data_meas + X Glc Ace + [1,] 0.092232 NA NA + [2,] 0.120960 NA NA + [3,] 0.146664 NA NA + [4,] 0.222264 NA NA + [5,] 0.266112 NA NA + [6,] 0.326592 NA NA + [7,] 0.414288 NA NA + [8,] 0.630504 NA NA + [9,] 0.795312 NA NA +[10,] NA 13.631446 0.1987842 +[11,] NA 13.522748 0.3372571 +[12,] NA 12.560951 0.6219688 +[13,] NA 11.375063 1.3083157 +[14,] NA 9.319926 1.9718718 +[15,] NA 7.533245 2.3112148 +[16,] NA 5.965173 2.7338229 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.02110581 13.91028150 0.24438955 0.67174721 -6.17928386 2.04695394 + +$result$lastp + X Glc Ace mu qGlc qAce + 2.754235e-09 6.918794e-08 -4.695705e-08 -2.703232e-08 7.677494e-08 1.887973e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.005711139 0.607981177 0.261655391 0.055129556 0.888473432 0.377652411 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 1.034694 + +$result$laststep + X Glc Ace mu qGlc qAce + 2.754235e-09 6.918794e-08 -4.695705e-08 -2.703232e-08 7.677494e-08 1.887973e-08 + +$result$normp +[1] 1.182417e-07 + +$result$res + [1] -1.317143632 -1.099812123 -0.868128095 -0.500893687 0.438875722 1.411800485 2.448393043 -1.284352777 -0.723361245 -0.017024896 -0.264931513 0.460135701 -0.265584053 -0.208768319 0.559246606 -0.263073526 0.702833537 0.379386055 -0.003572324 -0.918191178 -0.875328213 -0.197908446 0.912780567 + +$result$prevres + [1] -1.317143911 -1.099812461 -0.868128467 -0.500894086 0.438875348 1.411800184 2.448392900 -1.284352640 -0.723360667 -0.017024986 -0.264931567 0.460135718 -0.265583959 -0.208768234 0.559246638 -0.263073611 0.702833716 0.379386199 -0.003572257 -0.918191224 -0.875328326 -0.197908570 0.912780463 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 156.09238 0.000000 0 5.5831879 0.0000000 0.0000000 + [2,] 234.44670 0.000000 0 11.3822058 0.0000000 0.0000000 + [3,] 306.31714 0.000000 0 17.4449180 0.0000000 0.0000000 + [4,] 502.81442 0.000000 0 36.4650623 0.0000000 0.0000000 + [5,] 651.21761 0.000000 0 52.5191675 0.0000000 0.0000000 + [6,] 840.59317 0.000000 0 74.5335934 0.0000000 0.0000000 + [7,] 1097.46048 0.000000 0 106.5038086 0.0000000 0.0000000 + [8,] 1432.82095 0.000000 0 151.0530326 0.0000000 0.0000000 + [9,] 1849.83369 0.000000 0 209.8628815 0.0000000 0.0000000 +[10,] -29.52684 2.173913 0 -0.4833758 0.1008512 0.0000000 +[11,] -52.46873 2.173913 0 -1.2829304 0.1792109 0.0000000 +[12,] -117.18061 2.173913 0 -4.6179984 0.4002392 0.0000000 +[13,] -273.71268 2.173913 0 -16.1961068 0.9348863 0.0000000 +[14,] -482.70131 2.173913 0 -35.7612251 1.6487027 0.0000000 +[15,] -630.34183 2.173913 0 -51.3412266 2.1529801 0.0000000 +[16,] -830.81617 2.173913 0 -74.1568950 2.8377153 0.0000000 +[17,] 22.49649 0.000000 5 0.3682838 0.0000000 0.2319577 +[18,] 39.97591 0.000000 5 0.9774642 0.0000000 0.4121851 +[19,] 89.27986 0.000000 5 3.5184512 0.0000000 0.9205502 +[20,] 208.54158 0.000000 5 12.3398075 0.0000000 2.1502385 +[21,] 367.76994 0.000000 5 27.2464634 0.0000000 3.7920163 +[22,] 480.25720 0.000000 5 39.1168606 0.0000000 4.9518542 +[23,] 632.99852 0.000000 5 56.5001094 0.0000000 6.5267452 + +$result$retres +$result$retres$res + [1] -1.317143911 -1.099812461 -0.868128467 -0.500894086 0.438875348 1.411800184 2.448392900 -1.284352640 -0.723360667 -0.017024986 -0.264931567 0.460135718 -0.265583959 -0.208768234 0.559246638 -0.263073611 0.702833716 0.379386199 -0.003572257 -0.918191224 -0.875328326 -0.197908570 0.912780463 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.06588912 13.498328 0.3808537 + [2,] 0.09896375 13.194080 0.4816390 + [3,] 0.12930143 12.915009 0.5740842 + [4,] 0.21224612 12.152016 0.8268340 + [5,] 0.27488951 11.575770 1.0177214 + [6,] 0.35482800 10.840430 1.2613107 + [7,] 0.46325586 9.843021 1.5917130 + [8,] 0.60481695 8.540826 2.0230792 + [9,] 0.78084479 6.921577 2.5594727 + [10,] 0.05226919 13.623615 0.3393509 + [11,] 0.07648265 13.400880 0.4131344 + [12,] 0.14478122 12.772613 0.6212544 + [13,] 0.30998916 11.252895 1.1246774 + [14,] 0.53056110 9.223892 1.7968061 + [15,] 0.68638469 7.790499 2.2716331 + [16,] 0.89797043 5.844159 2.9163789 + + +$result$it +[1] 8 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.026342878 NA NA + [2,] 0.021996249 NA NA + [3,] 0.017362569 NA NA + [4,] 0.010017882 NA NA + [5,] -0.008777507 NA NA + [6,] -0.028236004 NA NA + [7,] -0.048967858 NA NA + [8,] 0.025687053 NA NA + [9,] 0.014467213 NA NA +[10,] NA 0.007831493 -0.1405667431 +[11,] NA 0.121868521 -0.0758772397 +[12,] NA -0.211662430 0.0007144514 +[13,] NA 0.122168621 0.1836382449 +[14,] NA 0.096033387 0.1750656652 +[15,] NA -0.257253454 0.0395817139 +[16,] NA 0.121013861 -0.1825560925 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2_res/KEIO_ROBOT6_2_res.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2_res/KEIO_ROBOT6_2_res.txt new file mode 100644 index 0000000..5ab0a23 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_2_res/KEIO_ROBOT6_2_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0211058132231425 0.0212954541477968 0.0211689846241484 0.00192310141162844 0.0179487930688219 0.025169273141844 +Glc 13.9102815027141 13.8980754647887 13.8984984539419 0.187581249855792 13.5934776657632 14.2605737836008 +Ace 0.244389547448615 0.250289847472858 0.248932190444026 0.0771778813183895 0.128396735279641 0.384765930517539 +mu 0.671747213285856 0.670429410855552 0.669963624474398 0.0174410307709234 0.637854106477387 0.702320768031297 +qGlc -6.17928386172899 -6.17727320160841 -6.11426451083082 0.353415739812146 -6.94321024210717 -5.63542740328909 +qAce 2.04695394245446 2.03446777807302 2.05567378390769 0.14730514995609 1.74101809182244 2.29589828265569 +res 18.2000485999683 40.2577701704235 37.9583833553346 9.94966853046689 23.5903976600824 63.4011381087844 + + +Goodness of fit (khi2 test) + +khi2 value 18.2000485999696 +data points 23 +fitted parameters 6 +degrees of freedom 17 +khi2 reduced value 1.07059109411586 +p-value, i.e. P(X^2<=value) 0.623673190726694 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3.txt new file mode 100644 index 0000000..7be32d7 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3.txt @@ -0,0 +1,17 @@ +time X Glc Ace +1.69472222222222 6.8040000000000003E-2 NA NA +2.3002777777777799 0.10584000000000002 NA NA +2.6983333333333301 0.12247200000000001 NA NA +3.43611111111111 0.18143999999999999 NA NA +3.8211111111111098 0.238896 NA NA +4.2011111111111097 0.28123199999999998 NA NA +4.5980555555555496 0.37043999999999999 NA NA +4.9950000000000001 0.60631200000000007 NA NA +5.3752777777777796 0.66376800000000002 NA NA +1.35 NA 13.4255093136864 0.198987511992196 +1.91666666666667 NA 13.5798053445577 0.339570808822952 +2.86666666666667 NA 12.8678920218922 0.637954102999748 +4 NA 11.0688792784027 1.32559135330493 +4.8 NA 9.27686657061253 2.00109343568648 +5.18333333333333 NA 8.04165234247458 2.41251681196779 +5.58333333333333 NA 6.25080870331257 2.76301779935182 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3_res/KEIO_ROBOT6_3.pdf b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3_res/KEIO_ROBOT6_3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..234efdb5d3291d5d594d344ae8e31fe06572f692 GIT binary patch literal 22396 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 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 1.694722 2.300278 2.698333 3.436111 3.821111 4.201111 4.598056 4.995000 5.375278 1.350000 1.916667 2.866667 4.000000 4.800000 5.183333 5.583333 + +$sys$data_meas + X Glc Ace + [1,] 0.068040 NA NA + [2,] 0.105840 NA NA + [3,] 0.122472 NA NA + [4,] 0.181440 NA NA + [5,] 0.238896 NA NA + [6,] 0.281232 NA NA + [7,] 0.370440 NA NA + [8,] 0.606312 NA NA + [9,] 0.663768 NA NA +[10,] NA 13.425509 0.1989875 +[11,] NA 13.579805 0.3395708 +[12,] NA 12.867892 0.6379541 +[13,] NA 11.068879 1.3255914 +[14,] NA 9.276867 2.0010934 +[15,] NA 8.041652 2.4125168 +[16,] NA 6.250809 2.7630178 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.01927487 13.84849206 0.24072009 0.66411102 -6.64780364 2.36937829 + +$result$lastp + X Glc Ace mu qGlc qAce +-1.134540e-08 -3.518228e-07 2.435532e-07 1.229066e-07 -2.498493e-07 -1.561439e-07 + +$result$hci + X Glc Ace mu qGlc qAce +0.007062246 0.740448142 0.318991782 0.074723421 1.225900575 0.522407174 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 1.251179 + +$result$laststep + X Glc Ace mu qGlc qAce +-1.134540e-08 -3.518228e-07 2.435532e-07 1.229066e-07 -2.498493e-07 -1.561439e-07 + +$result$normp +[1] 5.33983e-07 + +$result$res + [1] -0.43202538 -0.85175513 -0.33979016 0.36868897 0.24636739 1.62918965 1.90155874 -3.73174024 1.03299110 0.31086333 -0.49433224 -0.26379321 0.48691072 0.19326156 -0.06832427 -0.16458590 0.70761854 0.38979787 -0.02242046 -0.87002251 -0.81330969 -0.45474464 1.06308089 + +$result$prevres + [1] -0.43202425 -0.85175377 -0.33978868 0.36869054 0.24636884 1.62919078 1.90155922 -3.73174092 1.03298864 0.31086382 -0.49433191 -0.26379321 0.48691033 0.19326115 -0.06832449 -0.16458568 0.70761760 0.38979710 -0.02242084 -0.87002231 -0.81330912 -0.45474396 1.06308153 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 154.08532 0.000000 0 5.0332839 0.00000000 0.0000000 + [2,] 230.36443 0.000000 0 10.2137997 0.00000000 0.0000000 + [3,] 300.06994 0.000000 0 15.6066509 0.00000000 0.0000000 + [4,] 489.79251 0.000000 0 32.4392617 0.00000000 0.0000000 + [5,] 632.49008 0.000000 0 46.5838107 0.00000000 0.0000000 + [6,] 814.05399 0.000000 0 65.9187555 0.00000000 0.0000000 + [7,] 1059.59477 0.000000 0 93.9086599 0.00000000 0.0000000 + [8,] 1379.19731 0.000000 0 132.7863761 0.00000000 0.0000000 + [9,] 1775.44001 0.000000 0 183.9494699 0.00000000 0.0000000 +[10,] -31.57813 2.173913 0 -0.4714327 0.09155876 0.0000000 +[11,] -55.95025 2.173913 0 -1.2470517 0.16222415 0.0000000 +[12,] -124.28267 2.173913 0 -4.4624657 0.36034959 0.0000000 +[13,] -288.23669 2.173913 0 -15.5350121 0.83572371 0.0000000 +[14,] -505.58329 2.173913 0 -34.1157491 1.46590615 0.0000000 +[15,] -658.46799 2.173913 0 -48.8493006 1.90918550 0.0000000 +[16,] -865.44205 2.173913 0 -70.3608520 2.50929343 0.0000000 +[17,] 25.88634 0.000000 5 0.3864593 0.00000000 0.2105852 +[18,] 45.86550 0.000000 5 1.0222769 0.00000000 0.3731155 +[19,] 101.88135 0.000000 5 3.6581289 0.00000000 0.8288040 +[20,] 236.28349 0.000000 5 12.7349047 0.00000000 1.9221645 +[21,] 414.45446 0.000000 5 27.9665578 0.00000000 3.3715842 +[22,] 539.78247 0.000000 5 40.0444611 0.00000000 4.3911267 +[23,] 709.45049 0.000000 5 57.6786641 0.00000000 5.7713749 + +$result$retres +$result$retres$res + [1] -0.43202425 -0.85175377 -0.33978868 0.36869054 0.24636884 1.62919078 1.90155922 -3.73174092 1.03298864 0.31086382 -0.49433191 -0.26379321 0.48691033 0.19326115 -0.06832449 -0.16458568 0.70761760 0.38979710 -0.02242084 -0.87002231 -0.81330912 -0.45474396 1.06308153 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.05939951 13.446842 0.3838743 + [2,] 0.08880492 13.152491 0.4887853 + [3,] 0.11567623 12.883507 0.5846553 + [4,] 0.18881381 12.151394 0.8455916 + [5,] 0.24382338 11.600744 1.0418517 + [6,] 0.31381582 10.900114 1.2915669 + [7,] 0.40847118 9.952606 1.6292731 + [8,] 0.53167718 8.719304 2.0688407 + [9,] 0.68442777 7.190259 2.6138159 + [10,] 0.04724526 13.568507 0.3405110 + [11,] 0.06883290 13.352413 0.4175302 + [12,] 0.12935844 12.746547 0.6334699 + [13,] 0.27458096 11.292858 1.1515869 + [14,] 0.46709603 9.365767 1.8384316 + [15,] 0.60251389 8.010223 2.3215680 + [16,] 0.78584147 6.175099 2.9756341 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.008640485 NA NA + [2,] 0.017035075 NA NA + [3,] 0.006795774 NA NA + [4,] -0.007373811 NA NA + [5,] -0.004927377 NA NA + [6,] -0.032583816 NA NA + [7,] -0.038031184 NA NA + [8,] 0.074634818 NA NA + [9,] -0.020659773 NA NA +[10,] NA -0.14299736 -0.141523521 +[11,] NA 0.22739268 -0.077959421 +[12,] NA 0.12134488 0.004484168 +[13,] NA -0.22397875 0.174004463 +[14,] NA -0.08890013 0.162661824 +[15,] NA 0.03142927 0.090948793 +[16,] NA 0.07570941 -0.212616306 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3_res/KEIO_ROBOT6_3_res.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3_res/KEIO_ROBOT6_3_res.txt new file mode 100644 index 0000000..faa4579 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_3_res/KEIO_ROBOT6_3_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0192748660808494 0.0195146579825119 0.019354796033023 0.00200744341910352 0.0158795931931639 0.023145287972475 +Glc 13.8484920642798 13.8468670179116 13.8631315442893 0.158514283720555 13.4857672771136 14.1069745510498 +Ace 0.240720088600995 0.228032133362436 0.233124518011192 0.0806067892605793 0.059628996182921 0.367194508519684 +mu 0.66411102252026 0.662610760732899 0.662587077441092 0.0200309431316388 0.627605645851042 0.702316284407328 +qGlc -6.64780364196254 -6.606435625221 -6.61820715818219 0.327754838082676 -7.19158321575962 -5.93180957300894 +qAce 2.36937829246753 2.37946239460266 2.38510634249221 0.141298041989887 2.07250870253255 2.64835765659545 +res 26.6126495209184 43.3871724149194 41.7565761959713 10.6400678480773 28.7477167201982 66.9177384851204 + + +Goodness of fit (khi2 test) + +khi2 value 26.6126495209406 +data points 23 +fitted parameters 6 +degrees of freedom 17 +khi2 reduced value 1.56544997182004 +p-value, i.e. P(X^2<=value) 0.936001318953676 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4.txt new file mode 100644 index 0000000..19998ad --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4.txt @@ -0,0 +1,17 @@ +time X Glc Ace +1.69472222222222 7.2576000000000002E-2 NA NA +2.3002777777777799 0.10735199999999999 NA NA +2.6983333333333301 0.145152 NA NA +3.43611111111111 0.2268 NA NA +3.8211111111111098 0.29332800000000003 NA NA +4.2011111111111097 0.35985600000000001 NA NA +4.5980555555555496 0.47779199999999999 NA NA +4.9950000000000001 0.66679200000000005 NA NA +5.3752777777777796 0.80740800000000001 NA NA +1.35 NA 13.6584585436063 0.231295258121677 +1.91666666666667 NA 13.4569126198258 0.381290089942336 +2.86666666666667 NA 12.9817069855121 0.751702154042582 +4 NA 11.0194527088201 1.51250682348908 +4.8 NA 8.90228756407925 2.20037511457438 +5.18333333333333 NA 7.46723781923564 2.62492815792516 +5.58333333333333 NA 5.66355841746783 3.01384977322893 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4_res/KEIO_ROBOT6_4.pdf b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4_res/KEIO_ROBOT6_4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6b097f7dd2f9ec13a96869c88b40766f3dbdb6bd GIT binary patch literal 22408 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 literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4_res/KEIO_ROBOT6_4_log.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4_res/KEIO_ROBOT6_4_log.txt new file mode 100644 index 0000000..cd42cb7 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4_res/KEIO_ROBOT6_4_log.txt @@ -0,0 +1,211 @@ +$sys +$sys$params + X Glc Ace mu qGlc qAce + 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" + +$sys$nconc +[1] "X" "Glc" "Ace" + +$sys$nflux +[1] "mu" "qGlc" "qAce" + +$sys$metab +[1] "Glc" "Ace" + +$sys$weight + col +row X Glc Ace + [1,] 0.02 0.46 0.2 + [2,] 0.02 0.46 0.2 + [3,] 0.02 0.46 0.2 + [4,] 0.02 0.46 0.2 + [5,] 0.02 0.46 0.2 + [6,] 0.02 0.46 0.2 + [7,] 0.02 0.46 0.2 + [8,] 0.02 0.46 0.2 + [9,] 0.02 0.46 0.2 + [10,] 0.02 0.46 0.2 + [11,] 0.02 0.46 0.2 + [12,] 0.02 0.46 0.2 + [13,] 0.02 0.46 0.2 + [14,] 0.02 0.46 0.2 + [15,] 0.02 0.46 0.2 + [16,] 0.02 0.46 0.2 + +$sys$te_upc + X Glc Ace mu qGlc qAce + 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace mu qGlc qAce + 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$u + X Glc Ace mu qGlc qAce +X <= 50 -1 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 +mu <= 50 0 0 0 -1 0 0 +qGlc <= 50 0 0 0 0 -1 0 +qAce <= 50 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 1.694722 2.300278 2.698333 3.436111 3.821111 4.201111 4.598056 4.995000 5.375278 1.350000 1.916667 2.866667 4.000000 4.800000 5.183333 5.583333 + +$sys$data_meas + X Glc Ace + [1,] 0.072576 NA NA + [2,] 0.107352 NA NA + [3,] 0.145152 NA NA + [4,] 0.226800 NA NA + [5,] 0.293328 NA NA + [6,] 0.359856 NA NA + [7,] 0.477792 NA NA + [8,] 0.666792 NA NA + [9,] 0.807408 NA NA +[10,] NA 13.658459 0.2312953 +[11,] NA 13.456913 0.3812901 +[12,] NA 12.981707 0.7517022 +[13,] NA 11.019453 1.5125068 +[14,] NA 8.902288 2.2003751 +[15,] NA 7.467238 2.6249282 +[16,] NA 5.663558 3.0138498 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.02414272 14.01493874 0.29069672 0.65476235 -6.10646735 2.12425426 + +$result$lastp + X Glc Ace mu qGlc qAce +-4.607551e-09 -9.659235e-08 1.879625e-08 3.919368e-08 -1.448636e-07 7.576180e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.004233918 0.427164889 0.184098185 0.035818449 0.582374007 0.248424548 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.721544 + +$result$laststep + X Glc Ace mu qGlc qAce +-4.607551e-09 -9.659235e-08 1.879625e-08 3.919368e-08 -1.448636e-07 7.576180e-08 + +$result$normp +[1] 1.948488e-07 + +$result$res + [1] 0.03276575 0.07570184 -0.19355649 0.11111071 0.06778396 0.90376057 0.61557208 -1.56114717 0.39281354 0.07970430 -0.01436904 -0.46251620 0.28443627 0.26268364 0.14669577 -0.29663474 0.85327897 0.52913138 -0.13781845 -1.12643560 -0.86588598 -0.39979851 1.14752819 + +$result$prevres + [1] 0.03276621 0.07570239 -0.19355589 0.11111136 0.06778457 0.90376107 0.61557234 -1.56114733 0.39281273 0.07970441 -0.01436898 -0.46251624 0.28443612 0.26268352 0.14669574 -0.29663457 0.85327895 0.52913139 -0.13781836 -1.12643547 -0.86588592 -0.39979855 1.14752795 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 151.66335 0.000000 0 6.2053376 0.0000000 0.0000000 + [2,] 225.46348 0.000000 0 12.5211075 0.0000000 0.0000000 + [3,] 292.59516 0.000000 0 19.0611457 0.0000000 0.0000000 + [4,] 474.30902 0.000000 0 39.3472910 0.0000000 0.0000000 + [5,] 610.29505 0.000000 0 56.3009564 0.0000000 0.0000000 + [6,] 782.70213 0.000000 0 79.3865527 0.0000000 0.0000000 + [7,] 1015.01276 0.000000 0 112.6761438 0.0000000 0.0000000 + [8,] 1316.27456 0.000000 0 158.7333711 0.0000000 0.0000000 + [9,] 1688.42645 0.000000 0 219.1135915 0.0000000 0.0000000 +[10,] -28.79761 2.173913 0 -0.5375491 0.1138552 0.0000000 +[11,] -50.84221 2.173913 0 -1.4161400 0.2010114 0.0000000 +[12,] -112.19415 2.173913 0 -5.0311574 0.4435744 0.0000000 +[13,] -257.94481 2.173913 0 -17.3568100 1.0198188 0.0000000 +[14,] -449.48433 2.173913 0 -37.8644158 1.7770956 0.0000000 +[15,] -583.50654 2.173913 0 -54.0416733 2.3069700 0.0000000 +[16,] -764.28036 2.173913 0 -77.5746034 3.0216832 0.0000000 +[17,] 23.04097 0.000000 5 0.4300930 0.0000000 0.2618668 +[18,] 40.67886 0.000000 5 1.1330536 0.0000000 0.4623262 +[19,] 89.76655 0.000000 5 4.0254292 0.0000000 1.0202211 +[20,] 206.38165 0.000000 5 13.8871843 0.0000000 2.3455833 +[21,] 359.63243 0.000000 5 30.2953203 0.0000000 4.0873198 +[22,] 466.86360 0.000000 5 43.2387447 0.0000000 5.3060311 +[23,] 611.50074 0.000000 5 62.0674428 0.0000000 6.9498714 + +$result$retres +$result$retres$res + [1] 0.03276621 0.07570239 -0.19355589 0.11111136 0.06778457 0.90376107 0.61557234 -1.56114733 0.39281273 0.07970441 -0.01436898 -0.46251624 0.28443612 0.26268352 0.14669574 -0.29663457 0.85327895 0.52913139 -0.13781836 -1.12643547 -0.86588592 -0.39979855 1.14752795 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.07323132 13.557127 0.4499555 + [2,] 0.10886605 13.224789 0.5655657 + [3,] 0.14128088 12.922481 0.6707296 + [4,] 0.22902223 12.104184 0.9553900 + [5,] 0.29468369 11.491810 1.1684164 + [6,] 0.37793122 10.715424 1.4384975 + [7,] 0.49010345 9.669280 1.8024194 + [8,] 0.63556905 8.312633 2.2743554 + [9,] 0.81526425 6.636753 2.8573430 + [10,] 0.05843483 13.695123 0.4019510 + [11,] 0.08468548 13.450303 0.4871164 + [12,] 0.15774319 12.768950 0.7241385 + [13,] 0.33130263 11.150293 1.2872197 + [14,] 0.55938731 9.023122 2.0271979 + [15,] 0.71898055 7.534718 2.5449684 + [16,] 0.93424548 5.527107 3.2433554 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] -0.0006553242 NA NA + [2,] -0.0015140479 NA NA + [3,] 0.0038711178 NA NA + [4,] -0.0022222271 NA NA + [5,] -0.0013556914 NA NA + [6,] -0.0180752213 NA NA + [7,] -0.0123114468 NA NA + [8,] 0.0312229466 NA NA + [9,] -0.0078562546 NA NA +[10,] NA -0.036664030 -0.17065579 +[11,] NA 0.006609731 -0.10582628 +[12,] NA 0.212757472 0.02756367 +[13,] NA -0.130840614 0.22528709 +[14,] NA -0.120834419 0.17317718 +[15,] NA -0.067480041 0.07995971 +[16,] NA 0.136451902 -0.22950559 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4_res/KEIO_ROBOT6_4_res.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4_res/KEIO_ROBOT6_4_res.txt new file mode 100644 index 0000000..43b6f92 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_BW_6_4_res/KEIO_ROBOT6_4_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0241427187638244 0.0238995646093821 0.0240645702765881 0.00206449629209005 0.0201565892650511 0.0275923688915505 +Glc 14.0149387379447 14.0245076630551 14.040573591562 0.19071677916376 13.6469152271611 14.3544601653459 +Ace 0.290696718286393 0.287025163140172 0.291439271821165 0.0827134335878548 0.139891185272735 0.449646155595672 +mu 0.654762345428378 0.657616797291072 0.655738129809264 0.0171038342182684 0.629976774179519 0.691085030572781 +qGlc -6.10646735123524 -6.11834695978105 -6.15516418707285 0.296893682791537 -6.69239719356834 -5.49840896356456 +qAce 2.12425425827842 2.1480641330888 2.15791092517405 0.129978939386339 1.91620316329499 2.36904952893267 +res 8.85063727575347 43.2333684307271 42.4293188482739 9.89663064840995 28.3196032757244 67.7779874698168 + + +Goodness of fit (khi2 test) + +khi2 value 8.85063727575628 +data points 23 +fitted parameters 6 +degrees of freedom 17 +khi2 reduced value 0.52062572210331 +p-value, i.e. P(X^2<=value) 0.0551686701442287 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1.txt new file mode 100644 index 0000000..e1cb0dc --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1.txt @@ -0,0 +1,17 @@ +time X Glc Ace +1.69472222222222 6.9552000000000003E-2 NA NA +2.3002777777777799 0.10130400000000001 NA NA +2.6983333333333301 0.12096 NA NA +3.43611111111111 0.20412000000000002 NA NA +3.8211111111111098 0.238896 NA NA +4.2011111111111097 0.3024 NA NA +4.5980555555555496 0.41731200000000002 NA NA +4.9950000000000001 0.61236000000000002 NA NA +5.3752777777777796 0.74239199999999994 NA NA +1.35 NA 13.691967702492 0.217679548051463 +1.91666666666667 NA 13.4334101547541 0.361661828101966 +2.86666666666667 NA 13.2134196553455 0.708645965795666 +4 NA 11.0297672618978 1.39397786370358 +4.8 NA 9.27619410964019 2.05615745786491 +5.18333333333333 NA 8.01371108153914 2.53164955352933 +5.58333333333333 NA 6.15445854862287 2.8513055571961 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1_res/KEIO_ROBOT6_5.pdf b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1_res/KEIO_ROBOT6_5.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9284353bf6cf91e9cca9ffd4c65fe8731fa943ff GIT binary patch literal 22314 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 F{V&?&X3qcs literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1_res/KEIO_ROBOT6_5_log.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1_res/KEIO_ROBOT6_5_log.txt new file mode 100644 index 0000000..44f1b67 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1_res/KEIO_ROBOT6_5_log.txt @@ -0,0 +1,211 @@ +$sys +$sys$params + X Glc Ace mu qGlc qAce + 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" + +$sys$nconc +[1] "X" "Glc" "Ace" + +$sys$nflux +[1] "mu" "qGlc" "qAce" + +$sys$metab +[1] "Glc" "Ace" + +$sys$weight + col +row X Glc Ace + [1,] 0.02 0.46 0.2 + [2,] 0.02 0.46 0.2 + [3,] 0.02 0.46 0.2 + [4,] 0.02 0.46 0.2 + [5,] 0.02 0.46 0.2 + [6,] 0.02 0.46 0.2 + [7,] 0.02 0.46 0.2 + [8,] 0.02 0.46 0.2 + [9,] 0.02 0.46 0.2 + [10,] 0.02 0.46 0.2 + [11,] 0.02 0.46 0.2 + [12,] 0.02 0.46 0.2 + [13,] 0.02 0.46 0.2 + [14,] 0.02 0.46 0.2 + [15,] 0.02 0.46 0.2 + [16,] 0.02 0.46 0.2 + +$sys$te_upc + X Glc Ace mu qGlc qAce + 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace mu qGlc qAce + 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$u + X Glc Ace mu qGlc qAce +X <= 50 -1 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 +mu <= 50 0 0 0 -1 0 0 +qGlc <= 50 0 0 0 0 -1 0 +qAce <= 50 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 1.694722 2.300278 2.698333 3.436111 3.821111 4.201111 4.598056 4.995000 5.375278 1.350000 1.916667 2.866667 4.000000 4.800000 5.183333 5.583333 + +$sys$data_meas + X Glc Ace + [1,] 0.069552 NA NA + [2,] 0.101304 NA NA + [3,] 0.120960 NA NA + [4,] 0.204120 NA NA + [5,] 0.238896 NA NA + [6,] 0.302400 NA NA + [7,] 0.417312 NA NA + [8,] 0.612360 NA NA + [9,] 0.742392 NA NA +[10,] NA 13.691968 0.2176795 +[11,] NA 13.433410 0.3616618 +[12,] NA 13.213420 0.7086460 +[13,] NA 11.029767 1.3939779 +[14,] NA 9.276194 2.0561575 +[15,] NA 8.013711 2.5316496 +[16,] NA 6.154459 2.8513056 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.01821068 13.93073534 0.29767694 0.69091499 -6.46461601 2.28868869 + +$result$lastp + X Glc Ace mu qGlc qAce +-1.554463e-09 -6.937193e-08 5.862033e-08 1.801878e-08 1.032958e-08 -7.154911e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.004686388 0.533319893 0.229899322 0.052283835 0.840501447 0.358410793 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.9138642 + +$result$laststep + X Glc Ace mu qGlc qAce +-1.554463e-09 -6.937193e-08 5.862033e-08 1.801878e-08 1.032958e-08 -7.154911e-08 + +$result$normp +[1] 1.174814e-07 + +$result$res + [1] -0.54119768 -0.60330956 -0.17365190 -0.42602607 0.81550385 1.47143813 0.96126726 -1.90366368 0.22305126 -0.05191387 0.05903120 -0.75468471 0.80293517 0.28012103 -0.07104914 -0.26443968 0.86491756 0.51235599 -0.17055537 -1.00012068 -0.78118789 -0.63789427 1.21248466 + +$result$prevres + [1] -0.54119752 -0.60330936 -0.17365168 -0.42602584 0.81550406 1.47143829 0.96126732 -1.90366382 0.22305083 -0.05191376 0.05903129 -0.75468468 0.80293512 0.28012095 -0.07104921 -0.26443970 0.86491731 0.51235578 -0.17055550 -1.00012068 -0.78118776 -0.63789408 1.21248493 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 161.24613 0.000000 0 4.9763865 0.00000000 0.0000000 + [2,] 245.01498 0.000000 0 10.2635879 0.00000000 0.0000000 + [3,] 322.57701 0.000000 0 15.8509499 0.00000000 0.0000000 + [4,] 537.04593 0.000000 0 33.6050779 0.00000000 0.0000000 + [5,] 700.70424 0.000000 0 48.7585396 0.00000000 0.0000000 + [6,] 911.08261 0.000000 0 69.7024757 0.00000000 0.0000000 + [7,] 1198.57477 0.000000 0 100.3611485 0.00000000 0.0000000 + [8,] 1576.78508 0.000000 0 143.4281092 0.00000000 0.0000000 + [9,] 2050.59014 0.000000 0 200.7271211 0.00000000 0.0000000 +[10,] -31.35379 2.173913 0 -0.4444702 0.08832296 0.0000000 +[11,] -56.12697 2.173913 0 -1.1896461 0.15810847 0.0000000 +[12,] -127.07192 2.173913 0 -4.3462309 0.35795889 0.0000000 +[13,] -302.21364 2.173913 0 -15.5301733 0.85132935 0.0000000 +[14,] -540.25684 2.173913 0 -34.7627935 1.52189195 0.0000000 +[15,] -710.25037 2.173913 0 -50.2416490 2.00076007 0.0000000 +[16,] -942.81953 2.173913 0 -73.0803446 2.65590243 0.0000000 +[17,] 25.53065 0.000000 5 0.3619216 0.00000000 0.2031428 +[18,] 45.70287 0.000000 5 0.9687007 0.00000000 0.3636495 +[19,] 103.47167 0.000000 5 3.5390331 0.00000000 0.8233054 +[20,] 246.08543 0.000000 5 12.6458533 0.00000000 1.9580575 +[21,] 439.91839 0.000000 5 28.3065217 0.00000000 3.5003515 +[22,] 578.34010 0.000000 5 40.9105882 0.00000000 4.6017482 +[23,] 767.71568 0.000000 5 59.5075987 0.00000000 6.1085756 + +$result$retres +$result$retres$res + [1] -0.54119752 -0.60330936 -0.17365168 -0.42602584 0.81550406 1.47143829 0.96126732 -1.90366382 0.22305083 -0.05191376 0.05903129 -0.75468468 0.80293512 0.28012095 -0.07104921 -0.26443970 0.86491731 0.51235578 -0.17055550 -1.00012068 -0.78118776 -0.63789408 1.21248493 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.05872805 13.551631 0.4318926 + [2,] 0.08923781 13.266163 0.5329576 + [3,] 0.11748697 13.001847 0.6265343 + [4,] 0.19559948 12.270979 0.8852857 + [5,] 0.25520608 11.713264 1.0827354 + [6,] 0.33182877 10.996336 1.3365517 + [7,] 0.43653735 10.016620 1.6834039 + [8,] 0.57428672 8.727754 2.1397053 + [9,] 0.74685302 7.113120 2.7113393 + [10,] 0.04628156 13.668087 0.3906630 + [11,] 0.06846086 13.460565 0.4641330 + [12,] 0.13197750 12.866265 0.6745349 + [13,] 0.28878094 11.399117 1.1939537 + [14,] 0.50189974 9.405050 1.8999199 + [15,] 0.65409402 7.981028 2.4040707 + [16,] 0.86231195 6.032816 3.0938025 + + +$result$it +[1] 8 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.010823950 NA NA + [2,] 0.012066187 NA NA + [3,] 0.003473034 NA NA + [4,] 0.008520517 NA NA + [5,] -0.016310081 NA NA + [6,] -0.029428766 NA NA + [7,] -0.019225346 NA NA + [8,] 0.038073276 NA NA + [9,] -0.004461017 NA NA +[10,] NA 0.02388033 -0.1729835 +[11,] NA -0.02715439 -0.1024712 +[12,] NA 0.34715495 0.0341111 +[13,] NA -0.36935015 0.2000241 +[14,] NA -0.12885564 0.1562376 +[15,] NA 0.03268264 0.1275788 +[16,] NA 0.12164226 -0.2424970 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1_res/KEIO_ROBOT6_5_res.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1_res/KEIO_ROBOT6_5_res.txt new file mode 100644 index 0000000..3e1a64e --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_1_res/KEIO_ROBOT6_5_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0182106832833438 0.0182682265987779 0.0182393001817155 0.00172358775324926 0.0150242072908224 0.0219039187838677 +Glc 13.9307353392969 13.9321768817505 13.9226972407902 0.176852316152322 13.5965701947182 14.2665274310905 +Ace 0.297676942476435 0.311832401843659 0.300886227334831 0.0867423047925591 0.160974400117537 0.477855718375345 +mu 0.690914990873694 0.690939567344309 0.690790824730606 0.0184329785924607 0.65566103949386 0.725965085307239 +qGlc -6.46461600658701 -6.45399700327946 -6.41403167498113 0.289903477083837 -6.93355791442434 -5.95047947916729 +qAce 2.28868868774298 2.29005771560736 2.28816301455939 0.147243921178236 2.02008231964877 2.54560071064851 +res 14.1975112336225 40.5999805645397 38.9625549729905 9.51131981729286 26.8346198536872 59.8411195649485 + + +Goodness of fit (khi2 test) + +khi2 value 14.1975112336233 +data points 23 +fitted parameters 6 +degrees of freedom 17 +khi2 reduced value 0.8351477196249 +p-value, i.e. P(X^2<=value) 0.346925126575966 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2.txt new file mode 100644 index 0000000..f984210 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2.txt @@ -0,0 +1,17 @@ +time X Glc Ace +1.69472222222222 6.8040000000000003E-2 NA NA +2.3002777777777799 0.10735199999999999 NA NA +2.6983333333333301 0.12096 NA NA +3.43611111111111 0.20714400000000002 NA NA +3.8211111111111098 0.24796800000000002 NA NA +4.2011111111111097 0.33263999999999999 NA NA +4.5980555555555496 0.41126400000000002 NA NA +4.9950000000000001 0.65469599999999994 NA NA +5.3752777777777796 0.79531200000000002 NA NA +1.35 NA 13.59384334762 0.211549540761834 +1.91666666666667 NA 13.5126898844233 0.364578675109333 +2.86666666666667 NA 12.6400827109594 0.703181908636072 +4 NA 11.2693273658292 1.48906738467552 +4.8 NA 8.98522134798277 2.12877346230347 +5.18333333333333 NA 7.54822371280061 2.53132428480182 +5.58333333333333 NA 5.8625527468519 2.89336820619209 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2_res/KEIO_ROBOT6_6.pdf b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2_res/KEIO_ROBOT6_6.pdf new file mode 100644 index 0000000000000000000000000000000000000000..499214a50fc21e6756121f82f7ec997bde0bae4b GIT binary patch literal 22563 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 literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2_res/KEIO_ROBOT6_6_log.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2_res/KEIO_ROBOT6_6_log.txt new file mode 100644 index 0000000..f233f42 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2_res/KEIO_ROBOT6_6_log.txt @@ -0,0 +1,211 @@ +$sys +$sys$params + X Glc Ace mu qGlc qAce + 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" + +$sys$nconc +[1] "X" "Glc" "Ace" + +$sys$nflux +[1] "mu" "qGlc" "qAce" + +$sys$metab +[1] "Glc" "Ace" + +$sys$weight + col +row X Glc Ace + [1,] 0.02 0.46 0.2 + [2,] 0.02 0.46 0.2 + [3,] 0.02 0.46 0.2 + [4,] 0.02 0.46 0.2 + [5,] 0.02 0.46 0.2 + [6,] 0.02 0.46 0.2 + [7,] 0.02 0.46 0.2 + [8,] 0.02 0.46 0.2 + [9,] 0.02 0.46 0.2 + [10,] 0.02 0.46 0.2 + [11,] 0.02 0.46 0.2 + [12,] 0.02 0.46 0.2 + [13,] 0.02 0.46 0.2 + [14,] 0.02 0.46 0.2 + [15,] 0.02 0.46 0.2 + [16,] 0.02 0.46 0.2 + +$sys$te_upc + X Glc Ace mu qGlc qAce + 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace mu qGlc qAce + 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$u + X Glc Ace mu qGlc qAce +X <= 50 -1 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 +mu <= 50 0 0 0 -1 0 0 +qGlc <= 50 0 0 0 0 -1 0 +qAce <= 50 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 1.694722 2.300278 2.698333 3.436111 3.821111 4.201111 4.598056 4.995000 5.375278 1.350000 1.916667 2.866667 4.000000 4.800000 5.183333 5.583333 + +$sys$data_meas + X Glc Ace + [1,] 0.068040 NA NA + [2,] 0.107352 NA NA + [3,] 0.120960 NA NA + [4,] 0.207144 NA NA + [5,] 0.247968 NA NA + [6,] 0.332640 NA NA + [7,] 0.411264 NA NA + [8,] 0.654696 NA NA + [9,] 0.795312 NA NA +[10,] NA 13.593843 0.2115495 +[11,] NA 13.512690 0.3645787 +[12,] NA 12.640083 0.7031819 +[13,] NA 11.269327 1.4890674 +[14,] NA 8.985221 2.1287735 +[15,] NA 7.548224 2.5313243 +[16,] NA 5.862553 2.8933682 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.01735309 13.79405049 0.33038795 0.71209359 -6.40121483 2.21495008 + +$result$lastp + X Glc Ace mu qGlc qAce +-3.979379e-09 -1.788102e-07 1.523807e-07 4.808386e-08 9.834137e-09 -1.786227e-07 + +$result$hci + X Glc Ace mu qGlc qAce +0.005193433 0.631968615 0.272349241 0.060630779 0.961015898 0.409317428 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 1.093731 + +$result$laststep + X Glc Ace mu qGlc qAce +-3.979379e-09 -1.788102e-07 1.523807e-07 4.808386e-08 9.834137e-09 -1.786227e-07 + +$result$normp +[1] 2.99205e-07 + +$result$res + [1] -0.50162683 -0.90357136 -0.12108139 -0.33431199 0.78590770 0.64926345 2.36309425 -2.31949098 0.10899629 -0.11248977 -0.37690167 0.23626922 -0.02534733 0.44680645 0.32343216 -0.49176906 1.03009530 0.61578466 -0.05552265 -1.40519772 -1.02775520 -0.45617076 1.29876637 + +$result$prevres + [1] -0.50162640 -0.90357083 -0.12108080 -0.33431135 0.78590830 0.64926392 2.36309444 -2.31949131 0.10899513 -0.11248949 -0.37690145 0.23626929 -0.02534746 0.44680624 0.32343198 -0.49176911 1.03009466 0.61578410 -0.05552301 -1.40519772 -1.02775486 -0.45617024 1.29876707 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 167.13866 0.000000 0 4.9153276 0.00000000 0.0000000 + [2,] 257.24681 0.000000 0 10.2685071 0.00000000 0.0000000 + [3,] 341.54818 0.000000 0 15.9928036 0.00000000 0.0000000 + [4,] 577.58496 0.000000 0 34.4397591 0.00000000 0.0000000 + [5,] 759.76681 0.000000 0 50.3787069 0.00000000 0.0000000 + [6,] 995.86042 0.000000 0 72.6005099 0.00000000 0.0000000 + [7,] 1321.16431 0.000000 0 105.4163755 0.00000000 0.0000000 + [8,] 1752.73072 0.000000 0 151.9244669 0.00000000 0.0000000 + [9,] 2297.83720 0.000000 0 214.3370251 0.00000000 0.0000000 +[10,] -31.56340 2.173913 0 -0.4280559 0.08556544 0.0000000 +[11,] -56.96708 2.173913 0 -1.1564598 0.15443246 0.0000000 +[12,] -130.94818 2.173913 0 -4.2951204 0.35498835 0.0000000 +[13,] -317.74593 2.173913 0 -15.6687668 0.86137968 0.0000000 +[14,] -576.67918 2.173913 0 -35.6089929 1.56332365 0.0000000 +[15,] -763.80899 2.173913 0 -51.8466238 2.07061519 0.0000000 +[16,] -1021.95904 2.173913 0 -76.0048348 2.77043598 0.0000000 +[17,] 25.11963 0.000000 5 0.3406669 0.00000000 0.1968005 +[18,] 45.33706 0.000000 5 0.9203647 0.00000000 0.3551946 +[19,] 104.21468 0.000000 5 3.4182573 0.00000000 0.8164732 +[20,] 252.87704 0.000000 5 12.4699360 0.00000000 1.9811733 +[21,] 458.94821 0.000000 5 28.3392988 0.00000000 3.5956444 +[22,] 607.87485 0.000000 5 41.2619635 0.00000000 4.7624149 +[23,] 813.32271 0.000000 5 60.4881955 0.00000000 6.3720027 + +$result$retres +$result$retres$res + [1] -0.50162640 -0.90357083 -0.12108080 -0.33431135 0.78590830 0.64926392 2.36309444 -2.31949131 0.10899513 -0.11248949 -0.37690145 0.23626929 -0.02534746 0.44680624 0.32343198 -0.49176911 1.03009466 0.61578410 -0.05552301 -1.40519772 -1.02775486 -0.45617024 1.29876707 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.05800747 13.428597 0.4568423 + [2,] 0.08928058 13.147474 0.5541166 + [3,] 0.11853838 12.884467 0.6451223 + [4,] 0.20045777 12.148070 0.8999306 + [5,] 0.26368617 11.579691 1.0966010 + [6,] 0.34562528 10.843117 1.3514707 + [7,] 0.45852589 9.828221 1.7026454 + [8,] 0.60830617 8.481803 2.1685335 + [9,] 0.79749190 6.781157 2.7569912 + [10,] 0.04538117 13.542098 0.4175685 + [11,] 0.06793946 13.339315 0.4877355 + [12,] 0.13363416 12.748767 0.6920773 + [13,] 0.29950924 11.257668 1.2080278 + [14,] 0.52944013 9.190752 1.9232225 + [15,] 0.69561009 7.697002 2.4400902 + [16,] 0.92484550 5.636339 3.1531216 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.010032528 NA NA + [2,] 0.018071417 NA NA + [3,] 0.002421616 NA NA + [4,] 0.006686227 NA NA + [5,] -0.015718166 NA NA + [6,] -0.012985278 NA NA + [7,] -0.047261889 NA NA + [8,] 0.046389826 NA NA + [9,] -0.002179903 NA NA +[10,] NA 0.05174517 -0.20601893 +[11,] NA 0.17337467 -0.12315682 +[12,] NA -0.10868387 0.01110460 +[13,] NA 0.01165983 0.28103954 +[14,] NA -0.20553087 0.20555097 +[15,] NA -0.14877871 0.09123405 +[16,] NA 0.22621379 -0.25975341 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2_res/KEIO_ROBOT6_6_res.txt b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2_res/KEIO_ROBOT6_6_res.txt new file mode 100644 index 0000000..f35d5ca --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/WT_MG_6_2_res/KEIO_ROBOT6_6_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0173530944873719 0.0176969546597148 0.0175497559219396 0.00163712796335265 0.0147441990780824 0.021231361183361 +Glc 13.7940504858562 13.7722534418636 13.7541148620129 0.193951929380396 13.434659666677 14.1286592584224 +Ace 0.330387951885417 0.33798672355325 0.346094148269184 0.0798680481348011 0.203747207244234 0.487339657224166 +mu 0.712093592432316 0.708970094177806 0.710315108317948 0.0181258816172601 0.671654248862777 0.743227408968407 +qGlc -6.40121483201611 -6.298385802121 -6.32303185881187 0.330780407706951 -6.92669910422484 -5.6976299714541 +qAce 2.21495007650282 2.20015984117314 2.18109561175562 0.132976987364394 1.97167869745329 2.47890472942852 +res 20.3361955511877 40.8588669856541 40.3998630844336 8.82637083360652 25.6206566867706 60.6289387963322 + + +Goodness of fit (khi2 test) + +khi2 value 20.3361955511932 +data points 23 +fitted parameters 6 +degrees of freedom 17 +khi2 reduced value 1.19624679712901 +p-value, i.e. P(X^2<=value) 0.742604411452865 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/artI.txt b/validation/validation_results/Berges_2021/Berges_2021/artI.txt new file mode 100644 index 0000000..9f4409e --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/artI.txt @@ -0,0 +1,11 @@ +time X Glc Ace +2.87694444444444 0.184464 NA NA +3.67805555555556 0.297864 NA NA +4.09222222222222 0.361368 NA NA +4.565 0.47628 NA NA +0.05 NA 14.381245810333 0.0160850202994414 +1.95 NA 13.5621449331404 0.439526057291736 +2.83333333333333 NA 13.3766030275724 0.788742133512994 +3.98333333333333 NA 11.6425454396719 1.46200912027406 +4.88333333333333 NA 8.87425168742146 2.00766963832224 +5.16666666666667 NA 8.27929544860947 2.21451931058294 diff --git a/validation/validation_results/Berges_2021/Berges_2021/artI_res/KEIO_ROBOT3_24.pdf b/validation/validation_results/Berges_2021/Berges_2021/artI_res/KEIO_ROBOT3_24.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c77013f1e0050731d3070413b635f4302ffce0b9 GIT binary patch literal 21396 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 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 2.876944 3.678056 4.092222 4.565000 0.050000 1.950000 2.833333 3.983333 4.883333 5.166667 + +$sys$data_meas + X Glc Ace + [1,] 0.184464 NA NA + [2,] 0.297864 NA NA + [3,] 0.361368 NA NA + [4,] 0.476280 NA NA + [5,] NA 14.381246 0.01608502 + [6,] NA 13.562145 0.43952606 + [7,] NA 13.376603 0.78874213 + [8,] NA 11.642545 1.46200912 + [9,] NA 8.874252 2.00766964 +[10,] NA 8.279295 2.21451931 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.0400583 14.5425875 0.1842287 0.5409104 -5.5707415 1.8926772 + +$result$lastp + X Glc Ace mu qGlc qAce + 8.628424e-09 6.970587e-08 -6.076661e-08 -5.216992e-08 1.590144e-07 1.829245e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.01281145 0.45144417 0.19239921 0.07645416 0.70511943 0.29682970 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.6482606 + +$result$laststep + X Glc Ace mu qGlc qAce + 8.628424e-09 6.970587e-08 -6.076661e-08 -5.216992e-08 1.590144e-07 1.829245e-08 + +$result$normp +[1] 1.922702e-07 + +$result$res + [1] 0.27187014 -0.24815516 0.25408673 -0.15225773 0.32615584 0.45308485 -0.72092952 -0.53378365 0.63332641 -0.15785394 0.85993140 0.03500050 -0.47847478 -1.04529347 0.01706968 0.61176668 + +$result$prevres + [1] 0.27186952 -0.24815551 0.25408670 -0.15225719 0.32615569 0.45308492 -0.72092936 -0.53378347 0.63332637 -0.15785414 0.85993170 0.03500059 -0.47847481 -1.04529363 0.01706955 0.61176661 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 237.0313124 0.000000 0 2.731679e+01 0.000000000 0.00000000 + [2,] 365.5933336 0.000000 0 5.386529e+01 0.000000000 0.00000000 + [3,] 457.3956054 0.000000 0 7.497969e+01 0.000000000 0.00000000 + [4,] 590.6827689 0.000000 0 1.080159e+02 0.000000000 0.00000000 + [5,] -0.6137780 2.173913 0 -6.174429e-04 0.004413577 0.00000000 + [6,] -41.8967378 2.173913 0 -1.918822e+00 0.301272589 0.00000000 + [7,] -81.2735102 2.173913 0 -5.746625e+00 0.584424519 0.00000000 + [8,] -170.7067922 2.173913 0 -1.816933e+01 1.227524622 0.00000000 + [9,] -291.8033198 2.173913 0 -3.985150e+01 2.098309945 0.00000000 +[10,] -343.8415755 2.173913 0 -5.033397e+01 2.472508530 0.00000000 +[11,] 0.4796259 0.000000 5 4.824900e-04 0.000000000 0.01015123 +[12,] 32.7394655 0.000000 5 1.499429e+00 0.000000000 0.69292695 +[13,] 63.5097485 0.000000 5 4.490598e+00 0.000000000 1.34417639 +[14,] 133.3958066 0.000000 5 1.419810e+01 0.000000000 2.82330663 +[15,] 228.0245485 0.000000 5 3.114125e+01 0.000000000 4.82611287 +[16,] 268.6889240 0.000000 5 3.933259e+01 0.000000000 5.68676962 + +$result$retres +$result$retres$res + [1] 0.27186952 -0.24815551 0.25408670 -0.15225719 0.32615569 0.45308492 -0.72092936 -0.53378347 0.63332637 -0.15785414 0.85993170 0.03500059 -0.47847481 -1.04529363 0.01706955 0.61176661 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.18990139 12.999380 0.7085385 + [2,] 0.29290089 11.938606 1.0689398 + [3,] 0.36644973 11.181139 1.3262915 + [4,] 0.47323486 10.081378 1.6999389 + [5,] 0.04115647 14.531277 0.1880714 + [6,] 0.11502057 13.770564 0.4465262 + [7,] 0.18547410 13.044976 0.6930472 + [8,] 0.34548949 11.397005 1.2529504 + [9,] 0.56215725 9.165582 2.0110835 + [10,] 0.65526489 8.206683 2.3368726 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] -0.005437390 NA NA + [2,] 0.004963110 NA NA + [3,] -0.005081734 NA NA + [4,] 0.003045144 NA NA + [5,] NA -0.15003162 -0.171986340 + [6,] NA -0.20841906 -0.007000117 + [7,] NA 0.33162751 0.095694963 + [8,] NA 0.24554040 0.209058726 + [9,] NA -0.29133013 -0.003413910 +[10,] NA 0.07261291 -0.122353322 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/artI_res/KEIO_ROBOT3_24_res.txt b/validation/validation_results/Berges_2021/Berges_2021/artI_res/KEIO_ROBOT3_24_res.txt new file mode 100644 index 0000000..f7a2a46 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/artI_res/KEIO_ROBOT3_24_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0400583005808705 0.040812497757501 0.0406947104029199 0.00469619250141634 0.0321197008229288 0.0504330868062839 +Glc 14.5425874712114 14.5316839580694 14.5071312370624 0.260292120057308 14.0343271085276 15.0149961775423 +Ace 0.184228700083603 0.178139097562502 0.179979909879515 0.113027866524311 9.99999999995709e-07 0.432246923070877 +mu 0.540910374516628 0.538619119318319 0.537990288379013 0.025970037496472 0.490628728765662 0.588538778929052 +qGlc -5.57074147768217 -5.54254161708276 -5.51441290780975 0.435860613635522 -6.44235901654118 -4.67305919026635 +qAce 1.89267724660841 1.88029832094419 1.8727212065108 0.177141300435775 1.54370663757176 2.21701628968164 +res 4.20241836950397 23.0737919036505 21.860583155898 7.88046507843202 11.2746290113276 41.8517611256094 + + +Goodness of fit (khi2 test) + +khi2 value 4.20241836950504 +data points 16 +fitted parameters 6 +degrees of freedom 10 +khi2 reduced value 0.420241836950504 +p-value, i.e. P(X^2<=value) 0.0622461694682842 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/hemX.txt b/validation/validation_results/Berges_2021/Berges_2021/hemX.txt new file mode 100644 index 0000000..99e8d3c --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/hemX.txt @@ -0,0 +1,11 @@ +time X Glc Ace +2.87694444444444 0.16632 NA NA +3.67805555555556 0.260064 NA NA +4.09222222222222 0.328104 NA NA +4.565 0.44604 NA NA +0.05 NA 14.1334758215365 0.0275345280503521 +1.95 NA 13.9013951003329 0.447037313738487 +2.83333333333333 NA 13.3975521580251 0.857935788195311 +3.98333333333333 NA 11.7518002418634 1.43577373966348 +4.88333333333333 NA 9.18584051118 2.25913839748539 +5.16666666666667 NA 8.36932489281138 2.57909039828179 diff --git a/validation/validation_results/Berges_2021/Berges_2021/hemX_res/KEIO_ROBOT3_18.pdf b/validation/validation_results/Berges_2021/Berges_2021/hemX_res/KEIO_ROBOT3_18.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c3ad1219875ea3e070b047cc0bc5938873a43823 GIT binary patch literal 21470 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 Hv|0WGHR{N* literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/hemX_res/KEIO_ROBOT3_18_log.txt b/validation/validation_results/Berges_2021/Berges_2021/hemX_res/KEIO_ROBOT3_18_log.txt new file mode 100644 index 0000000..0e7d224 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/hemX_res/KEIO_ROBOT3_18_log.txt @@ -0,0 +1,180 @@ +$sys +$sys$params + X Glc Ace mu qGlc qAce + 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" + +$sys$nconc +[1] "X" "Glc" "Ace" + +$sys$nflux +[1] "mu" "qGlc" "qAce" + +$sys$metab +[1] "Glc" "Ace" + +$sys$weight + col +row X Glc Ace + [1,] 0.02 0.46 0.2 + [2,] 0.02 0.46 0.2 + [3,] 0.02 0.46 0.2 + [4,] 0.02 0.46 0.2 + [5,] 0.02 0.46 0.2 + [6,] 0.02 0.46 0.2 + [7,] 0.02 0.46 0.2 + [8,] 0.02 0.46 0.2 + [9,] 0.02 0.46 0.2 + [10,] 0.02 0.46 0.2 + +$sys$te_upc + X Glc Ace mu qGlc qAce + 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace mu qGlc qAce + 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$u + X Glc Ace mu qGlc qAce +X <= 50 -1 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 +mu <= 50 0 0 0 -1 0 0 +qGlc <= 50 0 0 0 0 -1 0 +qAce <= 50 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 2.876944 3.678056 4.092222 4.565000 0.050000 1.950000 2.833333 3.983333 4.883333 5.166667 + +$sys$data_meas + X Glc Ace + [1,] 0.166320 NA NA + [2,] 0.260064 NA NA + [3,] 0.328104 NA NA + [4,] 0.446040 NA NA + [5,] NA 14.133476 0.02753453 + [6,] NA 13.901395 0.44703731 + [7,] NA 13.397552 0.85793579 + [8,] NA 11.751800 1.43577374 + [9,] NA 9.185841 2.25913840 +[10,] NA 8.369325 2.57909040 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.0299979 14.4716496 0.1814192 0.5890563 -5.9989838 2.4300875 + +$result$lastp + X Glc Ace mu qGlc qAce +-9.408047e-10 1.961363e-09 1.409640e-08 7.574887e-09 -4.713594e-08 -1.421831e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.00853389 0.35714258 0.15421300 0.06764924 0.63313739 0.27222422 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.5214232 + +$result$laststep + X Glc Ace mu qGlc qAce +-9.408047e-10 1.961363e-09 1.409640e-08 7.574887e-09 -4.713594e-08 -1.421831e-08 + +$result$normp +[1] 5.181483e-08 + +$result$res + [1] -0.149198156 0.088479986 0.303748083 -0.227190676 0.715308982 -0.190830527 -0.525299587 -0.361975437 0.364654344 -0.001857774 0.787919013 0.004707405 -0.717671514 -0.425696798 -0.022379009 0.373120903 + +$result$prevres + [1] -0.149198078 0.088480032 0.303748089 -0.227190747 0.715308977 -0.190830553 -0.525299620 -0.361975460 0.364654372 -0.001857716 0.787918943 0.004707372 -0.717671522 -0.425696770 -0.022378967 0.373120944 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 272.245758 0.000000 0 2.349544e+01 0.000000000 0.000000000 + [2,] 436.419835 0.000000 0 4.815193e+01 0.000000000 0.000000000 + [3,] 557.003865 0.000000 0 6.837673e+01 0.000000000 0.000000000 + [4,] 735.878405 0.000000 0 1.007715e+02 0.000000000 0.000000000 + [5,] -0.661761 2.173913 0 -4.987222e-04 0.003309134 0.000000000 + [6,] -47.687142 2.173913 0 -1.656074e+00 0.238459433 0.000000000 + [7,] -95.349800 2.173913 0 -5.130149e+00 0.476796435 0.000000000 + [8,] -209.171002 2.173913 0 -1.698754e+01 1.045959065 0.000000000 + [9,] -370.900421 2.173913 0 -3.868805e+01 1.854686618 0.000000000 +[10,] -442.290278 2.173913 0 -4.945776e+01 2.211671420 0.000000000 +[11,] 0.616557 0.000000 5 4.646551e-04 0.000000000 0.007611008 +[12,] 44.429698 0.000000 5 1.542950e+00 0.000000000 0.548456697 +[13,] 88.836584 0.000000 5 4.779715e+00 0.000000000 1.096631800 +[14,] 194.882812 0.000000 5 1.582714e+01 0.000000000 2.405705849 +[15,] 345.564713 0.000000 5 3.604532e+01 0.000000000 4.265779222 +[16,] 412.078025 0.000000 5 4.607936e+01 0.000000000 5.086844265 + +$result$retres +$result$retres$res + [1] -0.149198078 0.088480032 0.303748089 -0.227190747 0.715308977 -0.190830553 -0.525299620 -0.361975460 0.364654372 -0.001857716 0.787918943 0.004707372 -0.717671522 -0.425696770 -0.022378967 0.373120944 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.16333604 13.113726 0.7314912 + [2,] 0.26183360 12.110621 1.1378322 + [3,] 0.33417896 11.373852 1.4362851 + [4,] 0.44149619 10.280927 1.8790106 + [5,] 0.03089457 14.462518 0.1851183 + [6,] 0.09461227 13.813613 0.4479788 + [7,] 0.15919347 13.155914 0.7144015 + [8,] 0.31341713 11.585292 1.3506344 + [9,] 0.53255471 9.353582 2.2546626 + [10,] 0.62928541 8.368470 2.6537146 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.002983962 NA NA + [2,] -0.001769601 NA NA + [3,] -0.006074962 NA NA + [4,] 0.004543815 NA NA + [5,] NA -0.3290421295 -0.1575837886 + [6,] NA 0.0877820542 -0.0009414745 + [7,] NA 0.2416378252 0.1435343044 + [8,] NA 0.1665087117 0.0851393541 + [9,] NA -0.1677410110 0.0044757934 +[10,] NA 0.0008545493 -0.0746241887 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/hemX_res/KEIO_ROBOT3_18_res.txt b/validation/validation_results/Berges_2021/Berges_2021/hemX_res/KEIO_ROBOT3_18_res.txt new file mode 100644 index 0000000..b73a864 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/hemX_res/KEIO_ROBOT3_18_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0299979024017838 0.0303261301195554 0.0302203545847507 0.00379505250794635 0.0238119602130571 0.037860084159796 +Glc 14.4716496162677 14.4782113357598 14.4729207167056 0.261728676709937 13.9653293385039 15.0180750915885 +Ace 0.181419247404345 0.18246800853899 0.175753395004706 0.112309332255876 9.99999999999841e-07 0.407828810416279 +mu 0.589056281074826 0.588084006350584 0.587501008298994 0.0271710457416349 0.540765794416159 0.6398560582699 +qGlc -5.99898384969104 -5.97802144516725 -5.96189809505006 0.509080827374942 -6.92190749484408 -5.05778348290984 +qAce 2.43008750636859 2.41350198878156 2.43826819064783 0.20307765663859 2.03485750476992 2.7242909624074 +res 2.71882136877649 22.8974312096937 22.5131150487526 6.78835448711662 12.8369290891765 37.257279983657 + + +Goodness of fit (khi2 test) + +khi2 value 2.71882136877652 +data points 16 +fitted parameters 6 +degrees of freedom 10 +khi2 reduced value 0.271882136877652 +p-value, i.e. P(X^2<=value) 0.0127109129710629 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/modF.txt b/validation/validation_results/Berges_2021/Berges_2021/modF.txt new file mode 100644 index 0000000..097111b --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/modF.txt @@ -0,0 +1,11 @@ +time X Glc Ace +2.87694444444444 0.148176 NA NA +3.67805555555556 0.24192 NA NA +4.09222222222222 0.322056 NA NA +4.565 0.382536 NA NA +0.05 NA 14.2532679913876 0.0179647286936219 +1.95 NA 14.0904825899408 0.416068258072687 +2.83333333333333 NA 13.5451913151602 0.738217696058503 +3.98333333333333 NA 11.8535655359681 1.41736843460368 +4.88333333333333 NA 9.44599723101056 1.93437059934784 +5.16666666666667 NA 8.90318490242077 2.43945209185069 diff --git a/validation/validation_results/Berges_2021/Berges_2021/modF_res/KEIO_ROBOT3_27.pdf b/validation/validation_results/Berges_2021/Berges_2021/modF_res/KEIO_ROBOT3_27.pdf new file mode 100644 index 0000000000000000000000000000000000000000..777baad0be5eef4de81765db5789d9b69f10d3f2 GIT binary patch literal 21370 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 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 2.876944 3.678056 4.092222 4.565000 0.050000 1.950000 2.833333 3.983333 4.883333 5.166667 + +$sys$data_meas + X Glc Ace + [1,] 0.148176 NA NA + [2,] 0.241920 NA NA + [3,] 0.322056 NA NA + [4,] 0.382536 NA NA + [5,] NA 14.253268 0.01796473 + [6,] NA 14.090483 0.41606826 + [7,] NA 13.545191 0.73821770 + [8,] NA 11.853566 1.41736843 + [9,] NA 9.445997 1.93437060 +[10,] NA 8.903185 2.43945209 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.03306798 14.63465596 0.13013649 0.54196143 -6.16777154 2.42634308 + +$result$lastp + X Glc Ace mu qGlc qAce + 2.486187e-08 6.200139e-07 2.262689e-08 -1.813357e-07 -3.079925e-07 -5.064172e-07 + +$result$hci + X Glc Ace mu qGlc qAce +0.01256163 0.46239959 0.19896573 0.09074611 0.87918523 0.37573610 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.6595123 + +$result$laststep + X Glc Ace mu qGlc qAce + 2.486187e-08 6.200139e-07 2.262689e-08 -1.813357e-07 -3.079925e-07 -5.064172e-07 + +$result$normp +[1] 8.773527e-07 + +$result$res + [1] 0.45308280 0.04025727 -0.91245849 0.49982608 0.80663208 -0.35278051 -0.61270704 -0.22154213 0.55784454 -0.17744695 0.58119163 -0.04010030 -0.34310421 -0.76543521 0.67993943 -0.11249134 + +$result$prevres + [1] 0.45308099 0.04025624 -0.91245864 0.49982757 0.80663075 -0.35278094 -0.61270695 -0.22154148 0.55784516 -0.17744654 0.58119151 -0.04010088 -0.34310493 -0.76543567 0.67994004 -0.11249008 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 237.7492257 0.000000 0 2.261819e+01 0.000000000 0.000000000 + [2,] 367.0095652 0.000000 0 4.463782e+01 0.000000000 0.000000000 + [3,] 459.3674084 0.000000 0 6.216225e+01 0.000000000 0.000000000 + [4,] 593.5240579 0.000000 0 8.959555e+01 0.000000000 0.000000000 + [5,] -0.6795759 2.173913 0 -5.643417e-04 0.003643486 0.000000000 + [6,] -46.4427006 2.173913 0 -1.756332e+00 0.248998403 0.000000000 + [7,] -90.1509303 2.173913 0 -5.263848e+00 0.483336185 0.000000000 + [8,] -189.5305788 2.173913 0 -1.665962e+01 1.016151321 0.000000000 + [9,] -324.2367418 2.173913 0 -3.657003e+01 1.738366418 0.000000000 +[10,] -382.1574215 2.173913 0 -4.620144e+01 2.048902984 0.000000000 +[11,] 0.6148793 0.000000 5 5.106158e-04 0.000000000 0.008380017 +[12,] 42.0212865 0.000000 5 1.589126e+00 0.000000000 0.572696328 +[13,] 81.5684278 0.000000 5 4.762722e+00 0.000000000 1.111673225 +[14,] 171.4869863 0.000000 5 1.507360e+01 0.000000000 2.337148037 +[15,] 293.3689225 0.000000 5 3.308850e+01 0.000000000 3.998242761 +[16,] 345.7754675 0.000000 5 4.180300e+01 0.000000000 4.712476863 + +$result$retres +$result$retres$res + [1] 0.45308099 0.04025624 -0.91245864 0.49982757 0.80663075 -0.35278094 -0.61270695 -0.22154148 0.55784516 -0.17744654 0.58119151 -0.04010088 -0.34310493 -0.76543567 0.67994004 -0.11249008 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.15723762 13.221548 0.6860398 + [2,] 0.24272512 12.248661 1.0687644 + [3,] 0.30380683 11.553523 1.3422251 + [4,] 0.39253255 10.543784 1.7394472 + [5,] 0.03397629 14.624318 0.1342030 + [6,] 0.09514384 13.928203 0.4080481 + [7,] 0.15356480 13.263346 0.6695967 + [8,] 0.28639686 11.751656 1.2642813 + [9,] 0.46644677 9.702606 2.0703586 + [10,] 0.54386426 8.821559 2.4169541 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] -0.0090616198 NA NA + [2,] -0.0008051248 NA NA + [3,] 0.0182491728 NA NA + [4,] -0.0099965515 NA NA + [5,] NA -0.37105015 -0.116238301 + [6,] NA 0.16227923 0.008020175 + [7,] NA 0.28184520 0.068620986 + [8,] NA 0.10190908 0.153087133 + [9,] NA -0.25660877 -0.135988009 +[10,] NA 0.08162541 0.022498016 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/modF_res/KEIO_ROBOT3_27_res.txt b/validation/validation_results/Berges_2021/Berges_2021/modF_res/KEIO_ROBOT3_27_res.txt new file mode 100644 index 0000000..1c563f0 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/modF_res/KEIO_ROBOT3_27_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0330679811012228 0.0328842107167822 0.0322175418625119 0.00439125601365933 0.0259242391848779 0.0423547179464665 +Glc 14.6346559642446 14.5832222166511 14.5829216406402 0.263631395083863 14.1039455397173 15.0837822086556 +Ace 0.130136492431645 0.144063639884268 0.132019487313911 0.106447220964569 9.99999999992066e-07 0.350645424301129 +mu 0.5419614272975 0.544426542171532 0.547643511304925 0.0278249426526385 0.486467120809161 0.592284486422235 +qGlc -6.16777154422387 -6.15398287067173 -6.13757552821649 0.527542678078952 -7.27488993811706 -5.20630760949523 +qAce 2.42634308313529 2.41296328532004 2.38705926184245 0.210775673492536 1.9818598292832 2.79625226096573 +res 4.34956470786741 24.6268849480881 24.2916479592055 6.93826981999056 11.9526323657938 38.1039334171718 + + +Goodness of fit (khi2 test) + +khi2 value 4.34956470787918 +data points 16 +fitted parameters 6 +degrees of freedom 10 +khi2 reduced value 0.434956470787918 +p-value, i.e. P(X^2<=value) 0.0697971683616367 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/nanE.txt b/validation/validation_results/Berges_2021/Berges_2021/nanE.txt new file mode 100644 index 0000000..0bffbc1 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/nanE.txt @@ -0,0 +1,11 @@ +time X Glc Ace +2.87694444444444 0.152712 NA NA +3.67805555555556 0.216216 NA NA +4.09222222222222 0.312984 NA NA +4.565 0.418824 NA NA +0.05 NA 14.4771749259809 0.0189549416820499 +1.95 NA 13.86609892062 0.43593225944473 +2.83333333333333 NA 13.2572108454472 0.809168226761888 +3.98333333333333 NA 12.0009505532612 1.52733310430626 +4.88333333333333 NA 9.31889075322955 2.25252254345599 +5.16666666666667 NA 8.91292399789472 2.68604141592259 diff --git a/validation/validation_results/Berges_2021/Berges_2021/nanE_res/KEIO_ROBOT3_19.pdf b/validation/validation_results/Berges_2021/Berges_2021/nanE_res/KEIO_ROBOT3_19.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b1201602fa26a3f950c0d9dfb055b42360904816 GIT binary patch literal 21335 zcma&NbyOTtuqTYW1c%_kU4y$zaCe6gEVvIAT!RO92rdaO!JWZ^yTf3E54w~0-tIeR z_k6qGKh?MDR{g5#cK12m{p(AoE+far#mDcqT-}-vHXH2B7(*t z?Pg=)VejHBW8q;##V8}h&B?{b#mW7ViaJ2kM|n_1^*f|3|<-zkl9tHqIXZ<<24P;_Lxc-Khlr zBb-Ci#@)r!%?gUg`@iA+bNHXj@yW*7&f_x`zW^T}6^ER?qX)DD4mn5Y;>g%oxmer$ ztJ~cJx@JyjJ~_XQRqDuxUDtceTr);LEWQY?cg4l)2ZtbhRiHwriIr)v6g@BF3pR>K)1dcujb{)Q?apM z(1p0j>&a6Opz}>Nq33OT|6(Jk7j@ybdS64=FX8zk!)F^2y^N1cK!?D;sI_;W+(P;C z+yOfXJwdzK)1`nHddHvp+~RHXZS!_4i8jF z86t9)9@6twB{Kt-T-TxVXJxO|O;KJUmB;M^JYPSz;utp{J#*zRCV~CfbH(?=N3ZWf zi4wuLr*56&FDC&FQS3mPmhYagUwo2S)A>AKvw-x&9BpP399MpoB8h9dHA3k@BiE*G zJ(*_Kg|TFmBrVad{s#A8!M$3K}_OCw_sR+sqa8(~GY6d$|)hOkLvb-Y0&r73S<23!_~=`u#&x*EcDA z7rqX57gd_o((Fs3j`Q5I~ZYdDkf6i4|--orsF(7VVa_>IlH5?qEYmlg% zClBO^V2g;dX@RuXlTm)T<4(sTGDw_hI3?!)#M-EmJe6_JP+J<+Ln35GA48qN1T4ND z4i9H?4Cp``jI401Fap zj5o%f411Fxjs!GLs=3NM>{py&h6%#mhBkEccdA+#f z+Mq#HMlL2hVX905L4ES%=Wc7E`Uac)%}o)?Zd0ni2ZuLzke$%6o#(4N$d}ddYyX@# zJnco`d(~V1Z8Q_(_f*oxaa8E4Pjx}Bb=YrL;NpA;y8QrxHV| zLy5%kBQMcG>bX+M=MoP~-IK=L+30buF-0Y0wMDp6QjZ_1#{+|@3deH%QD2o9%5`Eu zsZ-R`Ou3n9?Vrm%`aaoWrK*yJN+oLvsn_E&=5i7Ut12;!4DZSvrvv$w^l+IFnM`o@ zXl%5U^peds8BK6d;!?3%?1vSP8-Wa^<6`-#>`wuj?K{_s#}Z)W0*^tUyprB?K*@g& zUZ8`&hbglgQ&Lr>5Z299kL7;9>_a

IZij(WXk0fEVfoX&I&iqp2gI}D)+#U%$ZHIyZ|!g#(BQ* zm%5Mbq&gGZY@|9HDjcQO!ePRd;ytO*XbL^{s~nd>NXtFqsV~Yr((Vsa&v&kcOLrfI zN>k?I@EJ|)6k3_cr9)MYBf{6RXW2BRG=bI z$6u*6m1FkeOQ;{VE13{xN_6leBG~>3QGyGpa zdX|A&;H?X*3LzXTVRd#NpO->}^gpr=5hZkLwG zfp_6|A2_FrME}b9fAt^#6|_?PCno$8MQCfFZ_$g7#!!TKw2S-iL$TEUtjzdP;f8f3P``4?{Q)@J3nQijayLz5N=5 zn90_D<;f@n)Dvn(%({YDEj}^|_MJ^6Z@$ z$(yT4(u4j33mZU?uiByFWaaErgep_m{Gk(RC?|kyQN0S9eG~nG@HqhY4j)qX#B*3|sWwV0zgv}? z{Ox*q!|_dUlfZveV+Y?~qkAjBfTBu9jP1@cnG@2yr2J9w?}GrX@&4`}Xv_c6|H`)^ zgOJX+foPB;5t*uiQQWSR>h))~wIleONVDR69RI-N(d&&5Lb6qy-mIlaua8{1xPj=e$cd%TR0=n#TP-qm z$)&^YBf_OyZv%NND6bmNRgg%U8Q_sw!=~J2Pa`E8g;#Vpi5VJh7i5@b#zCZ+?y=8j zPvM6DxgrdlIP5<9u$z9wvfDs2W7O$J`v^b`04-lyDc{6{x4s{-*=#+uk%>pwjW0M1 zyD!tukpt6&0cJOcl0|w!zjoUOAQV7BN&(!L>hEULn`b`G!wzwWS#1SWGc4lk&$e8M zJ78n#d?DPfQi%kap!J=$0sN?8_rE*)R5NCEw2u&_q6_|LG5_ZwpIVI%Vz@7@iZ`*~ z(eFpYDn%Sal%X;`&bWd6Pw2QW1Q1uc{3YlL=ZoXM{CaRwzR7Z10~_D@xG3L@1%=84 z9lphavxePof`s!}(nB$Dy9UeUi+Y^F#@wCj;GAKol26~u^J;;{p>Q*n=p~YYc@ZX4 z=YvQ4XptI-sL(=sF0^tFCq1QNnaCiO4>#NTLP|`2Cb=32pp$I8X`m8X7SX{0Ko^uYfSRyhvy8G{vM-JSR^Pf7?~oI6szHdhf@y$rw} z3Ebq&we$zqasUH58;aPAYefe{PSNnZUBL zoQSSKef5O%L+IG6_9D#jE!uS*s4SQPb0Uv%*T_{ssx?>(;h}(XClxn@5{>%hVfBsC8uS?bO7o z>Jl641GZy{OwVypy z`cfjZ_uzB3a5M2KlviSIX}S6sj_*-t!8=7o`vr`6dVUC>JQiwxgj zph7Q{H1F={K6;`SbRw|DY^Q`GFSB+)+=}QoNfSuY;Zsn)pmz}6cy}F`Zg3d!Y*uw zlVPtwfNUNmre89?Kp->3OFmlxa*f0g1))MM+nj0do8w4VwiD zL0bikR1PG{p&#%;?V1eF|z07<5(BH-Jxij_Uj|#7s6Dl?}ZnM`U66D zvM5~NGmbf^u>=>zmSDxCl*~!uyxJhB-=NG6H?nfkpbXl`CdtZ>#*D#Kvf<~#dKitE zr#G-hfe%BB#zGJzW@2f330_q`ByXcH;yG7F+%CjHJU8TB5nWP%vBu!@u{X2W2MP%Nzu&< zDNlAayTlKtIAuwXmWXq)4^Vg0bB=u?ix}}Lb+;SyTG9wN@`A~&&!2pbM)jgY)7>GC z_oiX_4rW#?O#GLP=WAmSzQKN6-00RIB)fY00M`j#sVwrd`Ry zSC7tjOXoOhkLEM%V5Fx~WDz0R;RwAQpi0OM6_6*10)e}~CrpN;@{TGwU<8a$GD-Yx zY$?Vs8oEHD_%`tQS7<(fb(Y|F*3AWsEZrpHoZVmJ{gVP4K5s&h6q+a)C~=-y3qw(N zEuL-t!o!$0*x_hx5sYaSMDk-%evl{=k?5zM1fbhm7KMWwwx7QTIN<|f-sek)8;+pp z*1@=m35ZBbbPHtSc!{AJl5rDmahwF@CJN=db_)r~B3~I~`i^9pJE{=x^}qXA6h*sB zkVXHeTxoCBw0ApztSI`UJ+WB^7>z`dz~rhq@cGT|~MY&eat?uoK-IgPh2} zwaK&HSFt^g9@ZAff$CdI;m0J2H-H2p^T{gQoWK2P;e2(%7WY=W&LVQ1Lov zfQ6>I^fyr2ly8SDeOu_1eY@qfpt63bq6zg;4o!rIyC3e|Q4UKd+)+-Ui@c~4#_>Tt zt^d5B5hv_X4o~Jt$#|lWodR0rlrJLQwD`L0Y;i&~WAbv_P z6#XG}iX=uv=MY1&*C|=!5JNVv9Z~9gd4vp0yTHl3#^GtNY(j4lu)sZ{q=3*jyoAbl z?0v7SG}IoB9dW90=m-n<^#_Z@0An74h>#uTJ0AUC?>wiH@U?S!aAF7f&0p}pseKxj)y8srDyK-2U!6jyIAVnIQNpTJGR7EPPub2 z_=!{YitWYj3E5M}vVro4yyP>Us*5iPQ$Jj&$zy%OrhM0vLt|w_%0D~HqM208A?MCX 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 E0TrExNB{r; literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/nanE_res/KEIO_ROBOT3_19_log.txt b/validation/validation_results/Berges_2021/Berges_2021/nanE_res/KEIO_ROBOT3_19_log.txt new file mode 100644 index 0000000..5db7936 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/nanE_res/KEIO_ROBOT3_19_log.txt @@ -0,0 +1,180 @@ +$sys +$sys$params + X Glc Ace mu qGlc qAce + 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" + +$sys$nconc +[1] "X" "Glc" "Ace" + +$sys$nflux +[1] "mu" "qGlc" "qAce" + +$sys$metab +[1] "Glc" "Ace" + +$sys$weight + col +row X Glc Ace + [1,] 0.02 0.46 0.2 + [2,] 0.02 0.46 0.2 + [3,] 0.02 0.46 0.2 + [4,] 0.02 0.46 0.2 + [5,] 0.02 0.46 0.2 + [6,] 0.02 0.46 0.2 + [7,] 0.02 0.46 0.2 + [8,] 0.02 0.46 0.2 + [9,] 0.02 0.46 0.2 + [10,] 0.02 0.46 0.2 + +$sys$te_upc + X Glc Ace mu qGlc qAce + 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace mu qGlc qAce + 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$u + X Glc Ace mu qGlc qAce +X <= 50 -1 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 +mu <= 50 0 0 0 -1 0 0 +qGlc <= 50 0 0 0 0 -1 0 +qAce <= 50 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 2.876944 3.678056 4.092222 4.565000 0.050000 1.950000 2.833333 3.983333 4.883333 5.166667 + +$sys$data_meas + X Glc Ace + [1,] 0.152712 NA NA + [2,] 0.216216 NA NA + [3,] 0.312984 NA NA + [4,] 0.418824 NA NA + [5,] NA 14.477175 0.01895494 + [6,] NA 13.866099 0.43593226 + [7,] NA 13.257211 0.80916823 + [8,] NA 12.000951 1.52733310 + [9,] NA 9.318891 2.25252254 +[10,] NA 8.912924 2.68604142 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.02541033 14.48354477 0.17587463 0.60977891 -6.20420879 2.74828845 + +$result$lastp + X Glc Ace mu qGlc qAce +-3.131541e-09 -4.983747e-08 8.878846e-08 3.176623e-08 -3.845236e-09 -1.631140e-07 + +$result$hci + X Glc Ace mu qGlc qAce +0.009883538 0.447497930 0.194950560 0.092285949 0.872834072 0.380722803 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.6580152 + +$result$laststep + X Glc Ace mu qGlc qAce +-3.131541e-09 -4.983747e-08 8.878846e-08 3.176623e-08 -3.845236e-09 -1.631140e-07 + +$result$normp +[1] 1.94954e-07 + +$result$res + [1] -0.292775881 1.157053533 -0.242934460 -0.387022682 -0.003552391 0.058564133 0.064976125 -0.418469072 0.749055067 -0.450573861 0.802326061 0.007599654 -0.516512244 -0.832347559 0.292573031 0.246361057 + +$result$prevres + [1] -0.292775647 1.157053610 -0.242934564 -0.387023130 -0.003552285 0.058564131 0.064976063 -0.418469173 0.749055057 -0.450573794 0.802325620 0.007599401 -0.516512356 -0.832347435 0.292573347 0.246361422 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 288.9700213 0.000000 0 2.112490e+01 0.000000000 0.000000000 + [2,] 470.9837451 0.000000 0 4.401843e+01 0.000000000 0.000000000 + [3,] 606.2992437 0.000000 0 6.304586e+01 0.000000000 0.000000000 + [4,] 808.8905091 0.000000 0 9.382982e+01 0.000000000 0.000000000 + [5,] -0.6847562 2.173913 0 -4.372077e-04 0.002804529 0.000000000 + [6,] -50.5191957 2.173913 0 -1.494005e+00 0.206909472 0.000000000 + [7,] -102.3586509 2.173913 0 -4.696425e+00 0.419226279 0.000000000 + [8,] -228.8601777 2.173913 0 -1.586660e+01 0.937333579 0.000000000 + [9,] -412.3698006 2.173913 0 -3.673038e+01 1.688926685 0.000000000 +[10,] -494.3114780 2.173913 0 -4.720175e+01 2.024531973 0.000000000 +[11,] 0.6976535 0.000000 5 4.454422e-04 0.000000000 0.006450417 +[12,] 51.4707146 0.000000 5 1.522144e+00 0.000000000 0.475891786 +[13,] 104.2865553 0.000000 5 4.784881e+00 0.000000000 0.964220441 +[14,] 233.1707128 0.000000 5 1.616544e+01 0.000000000 2.155867233 +[15,] 420.1367024 0.000000 5 3.742219e+01 0.000000000 3.884531376 +[16,] 503.6217346 0.000000 5 4.809079e+01 0.000000000 4.656423537 + +$result$retres +$result$retres$res + [1] -0.292775647 1.157053610 -0.242934564 -0.387023130 -0.003552285 0.058564131 0.064976063 -0.418469173 0.749055057 -0.450573794 0.802325620 0.007599401 -0.516512356 -0.832347435 0.292573347 0.246361422 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.14685649 13.247888 0.7232354 + [2,] 0.23935707 12.306739 1.1401378 + [3,] 0.30812531 11.607055 1.4500780 + [4,] 0.41108354 10.559504 1.9141133 + [5,] 0.02619700 14.475541 0.1794201 + [6,] 0.08344808 13.893038 0.4374521 + [7,] 0.14300258 13.287100 0.7058658 + [8,] 0.28833079 11.808455 1.3608636 + [9,] 0.49915137 9.663456 2.3110372 + [10,] 0.59328807 8.705660 2.7353137 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.005855513 NA NA + [2,] -0.023141072 NA NA + [3,] 0.004858691 NA NA + [4,] 0.007740463 NA NA + [5,] NA 0.001634051 -0.16046512 + [6,] NA -0.026939500 -0.00151988 + [7,] NA -0.029888989 0.10330247 + [8,] NA 0.192495819 0.16646949 + [9,] NA -0.344565326 -0.05851467 +[10,] NA 0.207263945 -0.04927228 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/nanE_res/KEIO_ROBOT3_19_res.txt b/validation/validation_results/Berges_2021/Berges_2021/nanE_res/KEIO_ROBOT3_19_res.txt new file mode 100644 index 0000000..25afbb8 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/nanE_res/KEIO_ROBOT3_19_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.025410329464326 0.0255335150967367 0.025506782819247 0.00297696082319314 0.020155874872756 0.0316600146550032 +Glc 14.4835447714838 14.484977598302 14.4795295378541 0.249244581083165 14.0430032095384 14.8720795295863 +Ace 0.175874633155677 0.17228738115087 0.148434792324253 0.104862221818308 1.00000000000054e-06 0.394889858239569 +mu 0.609778906127111 0.610026607160205 0.609019177079453 0.0254523495968555 0.56151631857958 0.659986824475349 +qGlc -6.2042087943223 -6.19812401435304 -6.18792296583726 0.537085134155794 -7.14303822411358 -5.27914181796082 +qAce 2.74828844877795 2.76455331936844 2.79115007380304 0.215905519197045 2.38673637321181 3.14787013879391 +res 4.32984020782234 23.8384873254891 23.5309821714795 6.65221188323636 11.6738880004981 36.3358352386968 + + +Goodness of fit (khi2 test) + +khi2 value 4.3298402078232 +data points 16 +fitted parameters 6 +degrees of freedom 10 +khi2 reduced value 0.43298402078232 +p-value, i.e. P(X^2<=value) 0.0687569370022944 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/wbbJ.txt b/validation/validation_results/Berges_2021/Berges_2021/wbbJ.txt new file mode 100644 index 0000000..43abc6e --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/wbbJ.txt @@ -0,0 +1,14 @@ +time X Glc Ace +0 0.033264 NA NA +1.195 0.061992 NA NA +1.61361111111111 0.074088 NA NA +2.36138888888889 0.123984 NA NA +3.28638888888889 0.182952 NA NA +3.81944444444444 0.2646 NA NA +4.41083333333333 0.40068 NA NA +0.283333333333333 NA 14.2712504741774 0.0454642313012119 +1.91666666666667 NA 13.735146205263 0.403736854038142 +2.7 NA 13.275729370858 0.704609285752942 +3.61666666666667 NA 12.5045715615216 1.22593760228419 +4.05 NA 11.6233553875376 1.45722163387323 +4.75 NA 10.1257130725276 2.06840275504759 diff --git a/validation/validation_results/Berges_2021/Berges_2021/wbbJ_res/KEIO_ROBOT4_26.pdf b/validation/validation_results/Berges_2021/Berges_2021/wbbJ_res/KEIO_ROBOT4_26.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a25e3949339fb37daa8c70d15bf0d83de2b5384e GIT binary patch literal 21869 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 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 0.0000000 1.1950000 1.6136111 2.3613889 3.2863889 3.8194444 4.4108333 0.2833333 1.9166667 2.7000000 3.6166667 4.0500000 4.7500000 + +$sys$data_meas + X Glc Ace + [1,] 0.033264 NA NA + [2,] 0.061992 NA NA + [3,] 0.074088 NA NA + [4,] 0.123984 NA NA + [5,] 0.182952 NA NA + [6,] 0.264600 NA NA + [7,] 0.400680 NA NA + [8,] NA 14.27125 0.04546423 + [9,] NA 13.73515 0.40373685 +[10,] NA 13.27573 0.70460929 +[11,] NA 12.50457 1.22593760 +[12,] NA 11.62336 1.45722163 +[13,] NA 10.12571 2.06840276 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.02815175 14.33755054 0.13834000 0.59566871 -5.54466198 2.68276874 + +$result$lastp + X Glc Ace mu qGlc qAce + 5.909210e-09 4.914170e-08 -8.331540e-08 -5.489004e-08 1.757853e-07 1.037719e-07 + +$result$hci + X Glc Ace mu qGlc qAce +0.005438048 0.303694532 0.132684663 0.048528299 0.775289302 0.340799452 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.456174 + +$result$laststep + X Glc Ace mu qGlc qAce + 5.909210e-09 4.914170e-08 -8.331540e-08 -5.489004e-08 1.757853e-07 1.037719e-07 + +$result$normp +[1] 2.325366e-07 + +$result$res + [1] -0.25561238 -0.23135185 -0.02387654 -0.45332151 0.82136109 0.46459039 -0.55625071 0.03939741 0.09500603 0.03287911 -0.35732215 0.11187205 0.07816755 0.58093097 0.02464643 -0.29914031 -0.60593462 -0.15262724 0.45212478 + +$result$prevres + [1] -0.25561268 -0.23135226 -0.02387699 -0.45332197 0.82136080 0.46459039 -0.55625008 0.03939733 0.09500607 0.03287920 -0.35732206 0.11187210 0.07816738 0.58093136 0.02464660 -0.29914029 -0.60593477 -0.15262745 0.45212455 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 50.000000 0.000000 0 0.00000000 0.0000000 0.00000000 + [2,] 101.885251 0.000000 0 3.42755605 0.0000000 0.00000000 + [3,] 130.738710 0.000000 0 5.93893283 0.0000000 0.00000000 + [4,] 204.103786 0.000000 0 13.56825254 0.0000000 0.00000000 + [5,] 354.115181 0.000000 0 32.76188200 0.0000000 0.00000000 + [6,] 486.456157 0.000000 0 52.30572717 0.0000000 0.00000000 + [7,] 691.884248 0.000000 0 85.91310860 0.0000000 0.00000000 + [8,] -3.720307 2.173913 0 -0.01525435 0.0188890 0.00000000 + [9,] -43.143628 2.173913 0 -1.38077662 0.2190518 0.00000000 +[10,] -80.827226 2.173913 0 -3.86178923 0.4103816 0.00000000 +[11,] -154.237637 2.173913 0 -10.47467480 0.7831061 0.00000000 +[12,] -205.619642 2.173913 0 -16.03303329 1.0439864 0.00000000 +[13,] -322.466705 2.173913 0 -30.58638721 1.6372505 0.00000000 +[14,] 4.140138 0.000000 5 0.01697578 0.0000000 0.04344471 +[15,] 48.012313 0.000000 5 1.53659492 0.0000000 0.50381924 +[16,] 89.948442 0.000000 5 4.29758559 0.0000000 0.94387779 +[17,] 171.643093 0.000000 5 11.65672407 0.0000000 1.80114408 +[18,] 228.823470 0.000000 5 17.84233388 0.0000000 2.40116879 +[19,] 358.856525 0.000000 5 34.03800908 0.0000000 3.76567617 + +$result$retres +$result$retres$res + [1] -0.25561268 -0.23135226 -0.02387699 -0.45332197 0.82136080 0.46459039 -0.55625008 0.03939733 0.09500607 0.03287920 -0.35732206 0.11187210 0.07816738 0.58093136 0.02464660 -0.29914029 -0.60593477 -0.15262745 0.45212455 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.02815175 14.33755 0.1383401 + [2,] 0.05736495 14.06563 0.2699103 + [3,] 0.07361046 13.91441 0.3430767 + [4,] 0.11491756 13.52991 0.5291153 + [5,] 0.19937922 12.74371 0.9095131 + [6,] 0.27389181 12.05013 1.2451024 + [7,] 0.38955500 10.97350 1.7660254 + [8,] 0.03332748 14.28937 0.1616505 + [9,] 0.08817362 13.77885 0.4086662 + [10,] 0.14059945 13.29085 0.6447812 + [11,] 0.24272880 12.34020 1.1047506 + [12,] 0.31421200 11.67482 1.4266961 + [13,] 0.47677088 10.16167 2.1588277 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.0051122536 NA NA + [2,] 0.0046270452 NA NA + [3,] 0.0004775398 NA NA + [4,] 0.0090664394 NA NA + [5,] -0.0164272160 NA NA + [6,] -0.0092918077 NA NA + [7,] 0.0111250016 NA NA + [8,] NA -0.01812277 -0.116186271 + [9,] NA -0.04370279 -0.004929319 +[10,] NA -0.01512443 0.059828058 +[11,] NA 0.16436815 0.121186953 +[12,] NA -0.05146116 0.030525489 +[13,] NA -0.03595699 -0.090424910 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/wbbJ_res/KEIO_ROBOT4_26_res.txt b/validation/validation_results/Berges_2021/Berges_2021/wbbJ_res/KEIO_ROBOT4_26_res.txt new file mode 100644 index 0000000..f2d2610 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/wbbJ_res/KEIO_ROBOT4_26_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0281517523591484 0.0282005702502064 0.0277517057367555 0.00351592270405845 0.0225108942424459 0.0360331908655369 +Glc 14.3375505392 14.3773306456837 14.3777832036502 0.180161288537838 14.0393378978959 14.712083799045 +Ace 0.138339999085853 0.155748792544396 0.151443093734544 0.0898792156493899 1.00000000000054e-06 0.327005879758154 +mu 0.595668714648596 0.596253916491524 0.596426830125486 0.0304093787932387 0.535204471008549 0.651008793674437 +qGlc -5.54466197649962 -5.65767701398929 -5.56511771538386 0.59188017650838 -6.70565031307767 -4.57578771559776 +qAce 2.68276873989823 2.65798579894943 2.65781840533171 0.253556219958309 2.21003005793342 3.12531117889759 +res 2.7052307672247 32.9169632375837 32.0844382340395 8.18522812662219 18.1671458153862 48.4888821967775 + + +Goodness of fit (khi2 test) + +khi2 value 2.70523076722629 +data points 19 +fitted parameters 6 +degrees of freedom 13 +khi2 reduced value 0.208094674402022 +p-value, i.e. P(X^2<=value) 0.001194507519427 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/yacC.txt b/validation/validation_results/Berges_2021/Berges_2021/yacC.txt new file mode 100644 index 0000000..1fc9e75 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yacC.txt @@ -0,0 +1,15 @@ +time X Glc Ace +1.8288888888888888 6.8040000000000003E-2 NA NA +2.2613888888888889 9.0719999999999995E-2 NA NA +2.7741666666666664 0.12852000000000002 NA NA +3.2088888888888891 0.157248 NA NA +3.7063888888888892 0.235872 NA NA +4.2258333333333331 0.30693600000000004 NA NA +4.6355555555555554 0.39916800000000002 NA NA +4.9675000000000002 0.61236000000000002 NA NA +2.8 NA 12.4666356397146 0.613437693310656 +3.73333333333333 NA 11.6883669752675 1.04999023315843 +4.28333333333333 NA 10.0643404666098 1.3339759251594 +4.75 NA 10.0260087770084 1.71744125206341 +5.11666666666667 NA 9.23878389031604 2.01267427870097 +5.43333333333333 NA 8.47013840794951 2.34198962316039 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yacC_res/KEIO_ROBOT5_1.pdf b/validation/validation_results/Berges_2021/Berges_2021/yacC_res/KEIO_ROBOT5_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..af64126949af125dc2eb611838f1d35e2fc106c6 GIT binary patch literal 22106 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 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 1.828889 2.261389 2.774167 3.208889 3.706389 4.225833 4.635556 4.967500 2.800000 3.733333 4.283333 4.750000 5.116667 5.433333 + +$sys$data_meas + X Glc Ace + [1,] 0.068040 NA NA + [2,] 0.090720 NA NA + [3,] 0.128520 NA NA + [4,] 0.157248 NA NA + [5,] 0.235872 NA NA + [6,] 0.306936 NA NA + [7,] 0.399168 NA NA + [8,] 0.612360 NA NA + [9,] NA 12.466636 0.6134377 +[10,] NA 11.688367 1.0499902 +[11,] NA 10.064340 1.3339759 +[12,] NA 10.026009 1.7174413 +[13,] NA 9.238784 2.0126743 +[14,] NA 8.470138 2.3419896 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.01493126 12.69519335 0.47208911 0.73331625 -4.12420612 1.80929690 + +$result$lastp + X Glc Ace mu qGlc qAce + 3.832716e-09 2.254843e-07 -8.180812e-08 -5.690308e-08 -1.828156e-07 5.041644e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.006535277 0.951012226 0.413667448 0.095545211 1.429417247 0.621633050 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 1.119201 + +$result$laststep + X Glc Ace mu qGlc qAce + 3.832716e-09 2.254843e-07 -8.180812e-08 -5.690308e-08 -1.828156e-07 5.041644e-08 + +$result$normp +[1] 3.110494e-07 + +$result$res + [1] -0.54755154 -0.61621062 -0.71687255 -0.00971844 -0.48368347 1.20669015 2.39666529 -2.10177605 -0.74329901 -0.44942609 1.67975036 0.04022321 -0.08243055 -0.44481792 0.54459988 -0.22754524 -0.23352588 -0.41246528 -0.03808590 0.36702242 + +$result$prevres + [1] -0.547551971 -0.616211124 -0.716873111 -0.009719022 -0.483683985 1.206689879 2.396665444 -2.101775306 -0.743299259 -0.449426178 1.679750370 0.040223295 -0.082430433 -0.444817794 0.544600062 -0.227545189 -0.233525907 -0.412465359 -0.038085981 0.367022374 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 191.17267 0.000000 0 5.220468 0.0000000 0.0000000 + [2,] 262.52239 0.000000 0 8.864167 0.0000000 0.0000000 + [3,] 382.36080 0.000000 0 15.838070 0.0000000 0.0000000 + [4,] 525.92235 0.000000 0 25.198381 0.0000000 0.0000000 + [5,] 757.46584 0.000000 0 41.918947 0.0000000 0.0000000 + [6,] 1108.64687 0.000000 0 69.952289 0.0000000 0.0000000 + [7,] 1497.19930 0.000000 0 103.628148 0.0000000 0.0000000 + [8,] 1909.83434 0.000000 0 141.654346 0.0000000 0.0000000 + [9,] -83.05821 2.173913 0 -2.292433 0.3007035 0.0000000 +[10,] -176.68833 2.173913 0 -6.933129 0.6396816 0.0000000 +[11,] -270.53951 2.173913 0 -12.575905 0.9794599 0.0000000 +[12,] -385.92544 2.173913 0 -20.380359 1.3972026 0.0000000 +[13,] -508.75584 2.173913 0 -29.443202 1.8418972 0.0000000 +[14,] -644.93701 2.173913 0 -40.181603 2.3349269 0.0000000 +[15,] 83.80692 0.000000 5 2.313098 0.0000000 0.6916182 +[16,] 178.28105 0.000000 5 6.995627 0.0000000 1.4712677 +[17,] 272.97823 0.000000 5 12.689268 0.0000000 2.2527579 +[18,] 389.40429 0.000000 5 20.564073 0.0000000 3.2135660 +[19,] 513.34192 0.000000 5 29.708612 0.0000000 4.2363637 +[20,] 650.75066 0.000000 5 40.543812 0.0000000 5.3703319 + +$result$retres +$result$retres$res + [1] -0.547551971 -0.616211124 -0.716873111 -0.009719022 -0.483683985 1.206689879 2.396665444 -2.101775306 -0.743299259 -0.449426178 1.679750370 0.040223295 -0.082430433 -0.444817794 0.544600062 -0.227545189 -0.233525907 -0.412465359 -0.038085981 0.367022374 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.05708896 12.458096 0.5761041 + [2,] 0.07839578 12.338266 0.6286740 + [3,] 0.11418254 12.136999 0.7169699 + [4,] 0.15705362 11.895890 0.8227449 + [5,] 0.22619832 11.507017 0.9933443 + [6,] 0.33106980 10.917215 1.2520916 + [7,] 0.44710131 10.264648 1.5383738 + [8,] 0.57032449 9.571635 1.8424000 + [9,] 0.11636623 12.124718 0.7223577 + [10,] 0.23071218 11.481631 1.0044812 + [11,] 0.34532808 10.837026 1.2872707 + [12,] 0.48624334 10.044511 1.6349482 + [13,] 0.63625017 9.200866 2.0050571 + [14,] 0.80256164 8.265522 2.4153941 + + +$result$it +[1] 8 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.0109510394 NA NA + [2,] 0.0123242225 NA NA + [3,] 0.0143374622 NA NA + [4,] 0.0001943804 NA NA + [5,] 0.0096736797 NA NA + [6,] -0.0241337976 NA NA + [7,] -0.0479333089 NA NA + [8,] 0.0420355061 NA NA + [9,] NA 0.34191766 -0.108920012 +[10,] NA 0.20673604 0.045509038 +[11,] NA -0.77268517 0.046705181 +[12,] NA -0.01850272 0.082493072 +[13,] NA 0.03791800 0.007617196 +[14,] NA 0.20461619 -0.073404475 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/yacC_res/KEIO_ROBOT5_1_res.txt b/validation/validation_results/Berges_2021/Berges_2021/yacC_res/KEIO_ROBOT5_1_res.txt new file mode 100644 index 0000000..306cd37 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yacC_res/KEIO_ROBOT5_1_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0149312594582037 0.0151325434663916 0.0150756007139449 0.00152642819613739 0.0124847473623253 0.018072120681204 +Glc 12.6951933485984 12.7007362829714 12.6792498504522 0.228063773147337 12.3517280496521 13.2147372436799 +Ace 0.472089112613883 0.487126126322924 0.484657686194374 0.102387478009547 0.251858953383713 0.663723365868439 +mu 0.733316254625636 0.731207994901515 0.731473606699808 0.0204973698309728 0.69157925456723 0.769720187554821 +qGlc -4.12420611775723 -4.17370409250853 -4.17169195429504 0.432570437778494 -4.95500362334854 -3.32960525775913 +qAce 1.80929690268653 1.77486030609753 1.76119613193926 0.184544030846284 1.47128169991195 2.117434851473 +res 17.5365447474385 35.6496282289464 33.6419219213886 8.59734587382932 22.963686947518 54.0148692936888 + + +Goodness of fit (khi2 test) + +khi2 value 17.5365447474409 +data points 20 +fitted parameters 6 +degrees of freedom 14 +khi2 reduced value 1.25261033910292 +p-value, i.e. P(X^2<=value) 0.771289406834309 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/yadG.txt b/validation/validation_results/Berges_2021/Berges_2021/yadG.txt new file mode 100644 index 0000000..9193e9b --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yadG.txt @@ -0,0 +1,11 @@ +time X Glc Ace +2.87694444444444 0.14364 NA NA +3.67805555555556 0.210168 NA NA +4.09222222222222 0.305424 NA NA +4.565 0.379512 NA NA +0.05 NA 14.6623106015952 0.0174910824772209 +1.95 NA 13.9354652335065 0.401462077467418 +2.83333333333333 NA 13.6961492022904 0.681097708022526 +3.98333333333333 NA 11.8947709766137 1.34232105330484 +4.88333333333333 NA 9.84409004912274 2.10382966968185 +5.16666666666667 NA 9.1249594635205 2.29211417997483 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yadG_res/KEIO_ROBOT3_15.pdf b/validation/validation_results/Berges_2021/Berges_2021/yadG_res/KEIO_ROBOT3_15.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cefe3bf21a42d74e04772eaf1e8fac26c55aaac1 GIT binary patch literal 21349 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 literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yadG_res/KEIO_ROBOT3_15_log.txt b/validation/validation_results/Berges_2021/Berges_2021/yadG_res/KEIO_ROBOT3_15_log.txt new file mode 100644 index 0000000..a975f02 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yadG_res/KEIO_ROBOT3_15_log.txt @@ -0,0 +1,180 @@ +$sys +$sys$params + X Glc Ace mu qGlc qAce + 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" + +$sys$nconc +[1] "X" "Glc" "Ace" + +$sys$nflux +[1] "mu" "qGlc" "qAce" + +$sys$metab +[1] "Glc" "Ace" + +$sys$weight + col +row X Glc Ace + [1,] 0.02 0.46 0.2 + [2,] 0.02 0.46 0.2 + [3,] 0.02 0.46 0.2 + [4,] 0.02 0.46 0.2 + [5,] 0.02 0.46 0.2 + [6,] 0.02 0.46 0.2 + [7,] 0.02 0.46 0.2 + [8,] 0.02 0.46 0.2 + [9,] 0.02 0.46 0.2 + [10,] 0.02 0.46 0.2 + +$sys$te_upc + X Glc Ace mu qGlc qAce + 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace mu qGlc qAce + 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$u + X Glc Ace mu qGlc qAce +X <= 50 -1 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 +mu <= 50 0 0 0 -1 0 0 +qGlc <= 50 0 0 0 0 -1 0 +qAce <= 50 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 2.876944 3.678056 4.092222 4.565000 0.050000 1.950000 2.833333 3.983333 4.883333 5.166667 + +$sys$data_meas + X Glc Ace + [1,] 0.143640 NA NA + [2,] 0.210168 NA NA + [3,] 0.305424 NA NA + [4,] 0.379512 NA NA + [5,] NA 14.662311 0.01749108 + [6,] NA 13.935465 0.40146208 + [7,] NA 13.696149 0.68109771 + [8,] NA 11.894771 1.34232105 + [9,] NA 9.844090 2.10382967 +[10,] NA 9.124959 2.29211418 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.02798571 14.70022019 0.12982758 0.57125708 -6.36246892 2.56271706 + +$result$lastp + X Glc Ace mu qGlc qAce + 2.218863e-09 2.983493e-08 -2.183555e-08 -1.934230e-08 3.884650e-08 9.269752e-09 + +$result$hci + X Glc Ace mu qGlc qAce +0.009546667 0.386488266 0.166668293 0.081240075 0.785819069 0.337089644 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.5571272 + +$result$laststep + X Glc Ace mu qGlc qAce + 2.218863e-09 2.983493e-08 -2.183555e-08 -1.934230e-08 3.884650e-08 9.269752e-09 + +$result$normp +[1] 5.780087e-08 + +$result$res + [1] 0.05666376 0.93115419 -0.77810028 0.01131970 0.06277894 0.27589187 -0.55868472 0.18143070 0.20639000 -0.16780678 0.57987088 -0.07359608 -0.21664844 -0.58056003 -0.28129191 0.57222557 + +$result$prevres + [1] 0.05666359 0.93115410 -0.77810028 0.01131987 0.06277888 0.27589187 -0.55868468 0.18143076 0.20639000 -0.16780683 0.57987099 -0.07359604 -0.21664845 -0.58056009 -0.28129196 0.57222555 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 258.6557248 0.000000 0 2.082523e+01 0.000000000 0.000000000 + [2,] 408.7641483 0.000000 0 4.207532e+01 0.000000000 0.000000000 + [3,] 517.8750422 0.000000 0 5.930898e+01 0.000000000 0.000000000 + [4,] 678.4505814 0.000000 0 8.667529e+01 0.000000000 0.000000000 + [5,] -0.7015441 2.173913 0 -4.931666e-04 0.003085784 0.000000000 + [6,] -49.5473917 2.173913 0 -1.597913e+00 0.217937226 0.000000000 + [7,] -97.9588451 2.173913 0 -4.888324e+00 0.430877959 0.000000000 + [8,] -211.4426340 2.173913 0 -1.591146e+01 0.930043330 0.000000000 + [9,] -369.8464438 2.173913 0 -3.573480e+01 1.626792155 0.000000000 +[10,] -439.0790746 2.173913 0 -4.547826e+01 1.931316107 0.000000000 +[11,] 0.6499168 0.000000 5 4.568741e-04 0.000000000 0.007097304 +[12,] 45.9011551 0.000000 5 1.480321e+00 0.000000000 0.501255620 +[13,] 90.7499665 0.000000 5 4.528588e+00 0.000000000 0.991019305 +[14,] 195.8823825 0.000000 5 1.474052e+01 0.000000000 2.139099659 +[15,] 342.6291150 0.000000 5 3.310505e+01 0.000000000 3.741621956 +[16,] 406.7668549 0.000000 5 4.213148e+01 0.000000000 4.442027046 + +$result$retres +$result$retres$res + [1] 0.05666359 0.93115410 -0.77810028 0.01131987 0.06277888 0.27589187 -0.55868468 0.18143076 0.20639000 -0.16780683 0.57987099 -0.07359604 -0.21664845 -0.58056009 -0.28129196 0.57222555 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.14477327 13.399480 0.6537484 + [2,] 0.22879108 12.463718 1.0306608 + [3,] 0.28986199 11.783530 1.3046311 + [4,] 0.37973840 10.782517 1.7078257 + [5,] 0.02879659 14.691189 0.1334653 + [6,] 0.08525487 14.062375 0.3867429 + [7,] 0.14121107 13.439154 0.6377680 + [8,] 0.27238088 11.978229 1.2262090 + [9,] 0.45547133 9.939029 2.0475713 + [10,] 0.53549360 9.047768 2.4065593 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] -0.0011332718 NA NA + [2,] -0.0186230820 NA NA + [3,] 0.0155620056 NA NA + [4,] -0.0002263974 NA NA + [5,] NA -0.02887828 -0.11597420 + [6,] NA -0.12691026 0.01471921 + [7,] NA 0.25699495 0.04332969 + [8,] NA -0.08345815 0.11611202 + [9,] NA -0.09493940 0.05625839 +[10,] NA 0.07719114 -0.11444511 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/yadG_res/KEIO_ROBOT3_15_res.txt b/validation/validation_results/Berges_2021/Berges_2021/yadG_res/KEIO_ROBOT3_15_res.txt new file mode 100644 index 0000000..24c1cb7 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yadG_res/KEIO_ROBOT3_15_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0279857102311709 0.0279142648835117 0.0272950709418283 0.00455641832906775 0.0213047025626266 0.0389331460025499 +Glc 14.7002201902878 14.6920311905822 14.6813912610916 0.285076627870653 14.1748294951323 15.2284464365717 +Ace 0.129827582293568 0.149343545908664 0.142720310047699 0.0994508582925671 9.99999999995709e-07 0.36137606481385 +mu 0.571257075100079 0.574145736069901 0.575093071737889 0.0345603484157525 0.498488858677081 0.6332306363534 +qGlc -6.36246891934106 -6.34123813433843 -6.34593837530829 0.555623378708465 -7.37641570417121 -5.37907764673586 +qAce 2.56271705585499 2.53505025803781 2.54281976256069 0.218050094919631 2.15833534757325 3.01296373772576 +res 3.10390664128377 24.205414192046 23.8831955582188 6.90751264135034 12.6041879539954 38.7334125364396 + + +Goodness of fit (khi2 test) + +khi2 value 3.10390664128386 +data points 16 +fitted parameters 6 +degrees of freedom 10 +khi2 reduced value 0.310390664128386 +p-value, i.e. P(X^2<=value) 0.0211281371992478 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/yaeR.txt b/validation/validation_results/Berges_2021/Berges_2021/yaeR.txt new file mode 100644 index 0000000..834f889 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yaeR.txt @@ -0,0 +1,9 @@ +time X Glc Ace Lac +2.50138888888889 0.1134 NA NA NA +3.34194444444444 0.15876 NA NA NA +3.9975 0.21924 NA NA NA +4.52333333333333 0.343224 NA NA NA +1.95 NA 13.5107039141088 0.357959997470828 0 +3.25 NA 12.927053986867 0.98303230304942 0 +4.08333333333333 NA 11.6400359577813 1.41734939532875 0 +4.76666666666667 NA 10.3870251277912 1.99636221676328 0 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yaeR_res/KEIO_ROBOT2_8.pdf b/validation/validation_results/Berges_2021/Berges_2021/yaeR_res/KEIO_ROBOT2_8.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cc4259ebdeba10869e7c0e90d3f19e1dea623afd GIT binary patch literal 23740 zcma%hWl&tv^Cj-?5*Q@7yE8C21Pdg%ySuwf@Zdfn1d<>b$lw;-0tC0}4T_Qc|&6APz-0dB# zyy!H2yxo1g;bB^yZq`0lHlF{y0^EY!yl~rpa=HC8v0+I|W7)V`|5L&LKh)6i=mxmk z(DBGwcw0ET+0pT6S=iZl(Fwo-Z|VMLfXM$A@DKM7?P=rc{a$Yc4EV{9@OTowq-&Njy+a7O0Gw72l5PgQC_`-JO&b9Y;m8h>!a z;W-$jWH@R})(Trb5I3MqPtWUnyqjSJb_6}1|E&dt1#iukR7<@NOu4c50tN+4XOuKc zK3^Sgiln}T-cFsqZ07)jf-j#WnwiR#9$#)(&o0JSN4BlWYhF5E?tz^nPuNdVH6b|71MRdwH^cSVU*8UY9y&*Z6|$0&>&Vrm@0b^ROsh%&!wPlI62(V_D~_ z{$+SQh@M?z-*wd`Vk)QSkcQ?IwX-8tQekfS! z9rpA&uUZCRs2E_xl07gvmw7%qPJfvN7}}9o5*P`#n{ha7I*c-SZdrQV@%PQ^d>p)a z_S)~Qd!+CU*|y8NA5L{HX*}>64!(|Sf5||%>9{DHf6P&TJ(B7$erkQ#epx>cJ9Rwd z0%rdX^D{b?`Vktm5IB-re!7}r*kAVf(Rrx<-CXM+zENj(OO2n(=0Zzy1^oAdN_>?$ zmXVl44E6vup5|3`9oKc?Jfw#);G3mp!x2NUyoTgPjnDC@_#vzB6Knj~)PKJjP@ikf zJbxv;%J0*zw(vkDzS7cBzO(!Dei&fAQQlw&`L_vCqZxM?KLl8J_yE8E*2AeEy8PV` zlhRnzn3D6`?70-yGBhyn!>7wvI2n85MT1|Y>|n`Ex!K~p9Ngypq?Y5busZ~}dUmy~ zuo5U_SPET&4FbHMTHCWza;iJ?tE=NEYHB)jT^er*duFZy#D`)n)t$M=KduSj#}WlI zwf?C#bwb$Hbtd)&gN?>@q4~1R>ycmAaFd9&s zGyCfZz5o7_b^pQ00DK;Wi7F1id}vW}DB#q*nXJoGu~5?xvEylvUckIRVt@V-4*r|exP z>lj;avB$5M-A($_WuFaO8ddgQ=dAayR4;^5a~!O@06ev!#x4fI$v{)Hm%E=d>#2=r zcXsj2K*8Wi&2AnF%Y7Y0d$x!P&8OSdm+^ts&=)D-J%`FH&nme`*USA=PCO50))Ddo zFFE)CfsW`~x-73ur8RP%93A*AXc7sWfs4|;6|E|)RU4r-q~{v01ln%fV$gLQ5g_=6 z*+mZ~0&SomN2@*t4o7IQ(eJ|-9+e0!7a~al_VY_L_t(1JYK0TwT5JgNASj{?ovwnv z>MA+-ZFk+ALS^E^y(b|%Bj+W9uByImGsZi@P5wAc(7WDRYMF4YtmPu}a4k|q1Oiq@ zT~+hPkRmP02zY{o5)mXd5L0Mqs!XMFrAj3U0Rxyw#$JekeVs1^9aJv)1s%jBX+XZqlXXQh0%b7iU>YxB^b<*Va&*cD}b0>r;sFx*!cvo)9}HDC$%b- zy6f@LiHIziSxtQ{jNnCmHv)Eu9g97@*!K+pG1@Nl6&}E5Cw_^@NB#(=ouQ2O+4z5G= zh~5w#Z9RXuVE_ic-a|!{JXQ}oGEYVI2L)vTXw$li1yFDoTbq1Xws3eSr4R`9-6K<< zK5r7;7=aK5o+|z4YoES7_Z&~%)~867-aMK1;!>=111iHV5Q-7?KZTtks4r`r=5%U@ z&ChM8PMhV2@FM6&l%a$P6CzBk{*FW-de*Z4HTKKQQD!L$NLugxf*vMOw}kz4{)_s~ zX`w_KaCfO88Q$qejf8O~bHuY9PM(Z}awh*Ygyp}<>$gsL{K5a-2+cSHh4w=`VhK%c-^wElrI;hR67jTe^p)8!^xmpMU^q{_ zLGv1dG`+1gBK2J?mNM;`1VCGQ7b*RcbUR4uEU(Iz_%7u_X+UXLj@@6(RLqQDcJx$p z%q(Y<9F>#rQ*#%n>twT;-0+&>be%Dc$l@p5u^HOsKv zY(3&56;ImkmT;d5VQ`ZmP$T(XETDBLc5vAKU;w=D*oiE=w7FkYH>WG9p+N%N3E$J- zH--Kl+byd7Ak~b3EnOQdh*cSb#JYh90btKl@>pMZ^%6IWnpw1^H(+xnDNS<)JZ_w; zil2WN5V#OJp`&x#L&t~{UT9EK`$o1u@-(;UN9C~1G4}AO>Z$UadjE|3xQnq&6A3r%Kc^mke{6}n&Z+G~wSeOy#oyLHAFaji5KB>+gCkoBMccSG7TI z;C%%sSQ^O>y+doQxFd`rl@!A)ju!4GFB}UL~yM`IlZ6KD7b2wVYh04W0p!h(2TF=j)Wa7$lKL@^hX0 zO`N-LNb6X4-+#0tOPAc?-ErL<+#v?*MeuHPVnuVEA@_Y41oTS(?ik`BBhpY>J2|O^ z7f8S(K#Tms+^H?#9f};$s&f|G)t<&{E*Tq5x(U%OTBV6-WdzGa6g=ji>w9*%Z$P$! z_c4}9|F!o7Gmg=nrx!rdlujUVuFn8akbM7lCAI4>p_%rYsoyh)?LHF!CgdP+lCUXV zO9JT@>BUYm7G*SHfc;Jc^(5l%BhoEMvd5pZwY|i@Di8$c?YZwIY+~6I!C1yd0&YT% z9#4C%W{zPP%g9K=s3$Qf2%C_kyR374g*KIlAUau@2l7S@#AJa(W+$06B5? z_~U`Io5@ZY9>oELxt)2X6=M*B9F37LzIml|5Squ^foe1J%FS1G?LO(R#3&A$8nJPF zj@Gu#D=8qzd4C`w_Xs_Kb!B+5?}RV$;6U2Cc5&_qX9wP+1#5IUn%1UWbNgSObY8I* zn@DmrQIC{xihrzZ;q*+Qk>C`y!JGGqnh0`1&SvKNo~V$4AUCz3QcJ_dROEIvn; zSy5n@V$TS0iWG$hZ`H=8RL~K;GIULJxhE=mMJkE|QQIJOV@h(0gZZ$|C~$tCxqHPS z+h*_DSRwKaa+g+7gxwSk&i9PkP&kK)u@A4VfcM3^d8K7i6r4IifPU$_?a|u0xql&X zm)7r<`rml5;$yOff_&fLnl>~LS-h;6|&B4OEvDw42B^x{W? zovm2(5acK;=oBk2Z|;$Bf;@gOQ{24j@__lH@amp(M}loP%W^-hX(LexzvjV+Oa}n^db!8Y%`0c{ zIl}3OUjO=GYh8dCn{|mu!A{AAh-0(VtdGW<>9W6tY|i@2Hr2dx;gpq(Ot*{x?rLP! z;HO}suzg*&()s0RUx%_eCyj#NQ{7o9={dYO#Y(Zpgz$SraY_(^6b)my*Tj;RC`MpG zDdxn|-~_>y^)d*hW|M^B>KkQ5TKbd+9%VCokWFk-VTuVo;+_kyVdRP}3fjaJQ4*Pq zTUl>RX$6x!V|cNpI(}&dWwO?Wu8<`*mWmC5=EM^E^s6gjej=3iqFk`o#77T2tdtBq zGyKSv{y@U3QUs!_*|sdv8HEX?J+5pN#H(34R`ES9ML~piRE6+Tr3{$~9aIj~38T>_ z#49oqq{!mPN4(OCL_PdcmWGwc$cj=aImI!OXA)U_!XCtS%$W4j0V3*1T8cA7DRGzZ z;v}hVlsyMh8CH);NEEw_rmUoVINAnNcyYKdK9j}_WDiM-OIsE3ius07RujURDN4y& zixK#NQY4&~|2_H@vw$yxRQ6}YD>Qy{l=g@uQdzgN5QIQ}E|B_V~*0b4-U>8-}uSklTxBcWmgehZO!daAUet~A@2nMh0L+cTxQ7h~Gp^ zBGac6&7i*EHMg13NQR2%0aEQdr)uZaXJZaU%QUY@j5XN`5LVlsR#H5RO{Nr)IoprKEw0zb3m|Sf5-Eh1Tv-Y1sK9gC2B@x z>~_XR8H9!v>{J>V73};;K08>QW4f?Yti)3a#qLpibyq;88Soa+$upZ?1S5YY=7m%|1JGPT45vU- zd_vmYUK)1GTDjcpUgQqudJ3L_oOZ;1ia?X-UnIt+E;T<%@z;rD!i_)4!N%gBS+XkS zW{u_&_EQ?ua1_v4UXLhe@WB@(zSnBXZ{bVsc)8q;7Re{uHSQt;Xr&HP_g)>Q$D4dY zB!i!FG#Mrw)AX1_)AV_tKjW#GWQ)J{5kE*vL(x!Hq{*f?2qnw_I~_z@W75;Ip|zSS z%aVai-;yjMvyGzk>cqXeWf;;Z$`iMaI#HpivkZY(Sa}p}y}-7KIh3(<33jI@$sloy zviyj|ZHlf?h=Hk0FB^f^Cz(kizV+b~A2|LQ_EqlvTf@CH)(bIuO1i6P>uCiQu!wgz z2ivZK>omP~rnk59-lS5TGv~J`JcGZ*@IJ|;f0g?Zl>XVd%om%FEb)vWl4L761yAgR z{>?r{z*o73Am#VN?T4SkEqSAdS^4eav*x5wM#4vLYq+^%+B82TqV(1}xIKAFeE02a zhG|}^|E-)MV%-TFE@;vIh;01b&AD=h^gVt)7uWN??`-XBLg4amWDEZSmS^Q6eMF_G zmjM{CRkkM(ujktMH_A9J#el?@ENe5rJNW0hLLlREgh!i|e#x>=Txt)EVP(;z4|@MO zp3sedT)FK0i3Yoyyu&)t2s)ZXV+;P1{=Q52uN-?i54v>iIT5=LmOaC5q0I=zYc z!u~}2QFx(JZ$|TF8_*Hp1DsJan}|Me)P5gozh-Lsr;XcQ+v>7qcCnfxY2rKu8X~nC zRQ>RE`*N`(#gJn5W+?XZ4VEKJ{5!e9l8BbX;9^I_>cC=00EgX#p-!scLR*Kn6a3u! z0|6S62Mw+~<`^ve5zxNU9WNet+j@jV&WLOxbU92&x((*EAir~pJ^0gb-L zV*DxA5j&bPvjbm*N5%;h?du=$@`{2PjAm~lZ%P(deGZ}gO0T*xs%f|z7cJQ@tE3c< zPrs_4G{s~3X`|qc7kf5m%QDMC33bbBQ;)zrxww({DC{&Js8zC zoM2y=zQLq!pSf|U zHfV)sPQEe}o4(ohtvw!L9k*~XQ*0@MhHP7Vwl!#GR}YweM=~5*ly-T>-^MYNNH7G} z9$THFIl&xla@V0DSr!0C*w1W{Xu?1Wgl??bB3WVSCU? zLlr%uKSqD!wfy3mSNfU-cMEnw}3|fbF7V_(%3KZHJ zr)hD7@Qk+C>(DIZJbHY_Dsop7i)i7OAg&^~heHfhn>DN24{t0ih^sV?Fs8j2gYl>E zWDij^A!eRdEFmWJ1c!05#g3}?S#|ViYwS%*9ATY$&=GVPw$f(GzT=f8upC&;o;j4Z zkjFRmmRvxLR#8y+lrhPkRnLmz58=)8o@Xrl;zXTf*FJOhRmTNV`ZSn|(4OFpA*%`f zNGqdxqk*-Um!c#IvH66!BS_&^c!o6b(N7KX%O6t6AV?8MCG9iG8m<(@XL&hgo7Sw_Z<2@uG~|dTzgAcz2zfc%FWwRxVNs{e z6Z8?Q&-3=hG79VRwRgvIOe+&!VL{<{iFHg)g!a1181Om=-`}lLmML0#sq#{tjRdYN z)LVr1;aG`qTIyhoK=f#Yz+_w>g!cYOk8sn&s(r5sClsG>S}0qjsa+se>D(W8)rmvV z_2|;Mg*5aDYUM_vD>UjZ#6YW+$(+Rra_XdGl>E}7eN4fLj#pQiD6v;xh3(7e7i8TC zdl3Q+KNcYG?faum7{T=pD+b`ox-}Y!MUftjV_*GTU&I~*7db?PcFNR#Q77;|<}5?Y zUCb+{@KSTL6Mn_`^w(et{rKqf9Jt8hh4vW7@Py575JgsSl;N*Gm1968F1732hgjpx z)xy}nL!O8vKkF6KSQ^5ki{Rb5dU!Xn;s?K$9$(ozu$oC28lgIX$p$=;9y@wt%|}@x zetLE63%(|Iv$u(=>U5*u?+@I&JzcG>%_-LUDHjFF$Tg_Bo<)0k^>Y*?*?nt+%d`#? z48j#ESWF{=>Ox=0R3=MrFo^o{%`-UF(c?U0yRQU}q4mGWZ>qL|VB2@p-hs>bMT;Ca zAB5ZDJkhQJtbS)tv*Of`A;519!8fN3v1Q&jZu~FM9!zz`I!4Udi(Jx21*ZKtV7kpk ztkE5{$rr7$(&y%Ww9QE^0o<_n8uwW+2`?NveCI=siMEQ)5J}s$ z$q@YkXY)!+6fkA1OTwlfsw6!ZU`cmJtGm#HE;0O3Bg!LU@E6*qJYoO6t=#>T1Fx;- z?-_H+viK>}GZWfUcd8_d)vb}^OcBwN_l>(&yGz4BkeHlp6#ac5YRAWMy`9Bhw;aO( z6!@$!2@D1{&Bz-G!^FgdZo0*lgT${X0cX)eIO!j7TQE{ zX9_%~J={U1`Y%X__1t5uanp$5m!rjRx^YRQ)Q$`*H(vW`OuE693ESl2)>x!Fz8JQW z^7UmK+J2H+w7N|Kg^Z91*CL+aTyFl?xp7gI}~V1u8!nfvZ*JjPbSMUiy2$-`dwl;)z))GrzIzl@k;g=LF*|Ecl|* z5ZU?C&}3}0Ow$VtWbL=;kD1e3!OJY=+S^Nmg~os3T*7jBryB6KvT~Z>tVWJ|Z?Kd% zS)9XXa2N)b^ZoftJ5FAVm`&F%Rmev<_VYCT!sZ(qPl)<3TjBdkB^u8k71`p}?Qzyo zF2HGe5jIBe!Q@1rgS4voa=Zm_)Y~{?N$)APnr!MAffCMMY|@<=B7C-=Z)t(Vj_0G* zgzSmeqtq1>7(+z(>!0xqw7F$yJnJgv6m#O)=z-W*u>FHXG`I_&g%{AZJe*h+nDhGIo=n}ma;v=aFvK-vIJMHB0GQA(e8b&fzvADiOn1C}z!Pb?;! z1~EJ(0F4dsSzmA8mWr^l@o4WyKS>Y1lQ?{e@9|2%@pX-OJv>rCN*kX}jT%g2j;J)) zr;a#MzTNi51Xu6XpY+)3waDcmOTVXTJW6-Ps+JtW#U8x=y1DP8!(1{`D*3_#7JV$I7(|%@L`saAla^)K zAT6tmqSo*+NbXOqB8^1hbOlHkKSYjQ@YtOwmHEMP0~GU_P(yL1(mAd-22*a+a>$p+ zll9^Et~-j|5EXQGLZn>#N4=xn5OZ&I54x^$0_Y1C6Ze(4n(+E&Qe(0e;LBto4IV(t z;#15=?dy`+`Sr7iU?Rk^46k26RK)B;f#-eHA6uiW7@T64TY5jX3NMbWr+?QY6}~=w zW3Z6zg8SCIZ1BxwB)w)a#~Mn2%mylu)}8`g>f{59CzZqruUgt>>^$vq6Lcv7Il01( z-vF_iYEk<69QSPFtv^-7pN-{!dWhv`@UH~yk0ibfik=}`0|1UQq$3h<**YVk!lyxx z7FBv{wo}ICAi>J-Xs5&_FPNiGPLFEhV>5Fb5$A4Y2X3LXZ=R0FCA43bFH1Nio>2ns zCxHy^=dMpIC`m|~z=qzjn@$s9lQo9@(08PN`NnK;Y7YnL&cuna=B_PzH;ixBeM}PG zwnzhd-2YYt)tJ@4sF7h7d?v(rYz)gW)wy;|{qAd06rJN1ma*ehqBjV_m{_@LE4JGd z3~k#E;L^|6fX)>Z&vgJYkB2Wey|P+ME~v~fQ1gYjvU|H80AWE`ex0R=I8M0k<7~n| zIiC*YJ`kPG@fDiBW}G|jy7#HE@;A{tmkW=W<7=zoXyrII9yn{M+2hpm-P!GNm(sW! zeQ9~NbXm20sQW$Z&uW`BH#@+wPeK$Z1xpNrB3E1+k9U01XtR;%-3q)ReKA#9@_oH} zeZ=wYqScqZANt_^W7$;F$?C9W%9dHdCFCY7?BzVsZuJT1sXJ;09~}9w8I1oLArbo@ z6CD42gyjD^5yHp&{~8JT58{8B2@w+z6aD{~2?W;4P(q9ZC!i3Ea-f30~`cp&%NBAjlW#5*S_3?J3<*> zU_Ei)$lIO|<2qqCJ+;r^VYy&fZSBp&%{Whhg|Vl@ua`rgj)Bmbzbn;k9Z&1mA5O#W zA8zn39vZ`*&q_L!@?{bM}J8Ef2DhwWLihcTia8N{(@D&*$+~ z8}qoN3Y;mI+gfCfxe?xlJ0Hqa zZi*RBU6+mc3iVw6wQloX(CEntP3JbE9;e5?&w%CFEG4ejh|JbhzZjfPM!5Q2p1-O~ z+m_A8xwL_IiHW%RZw|K?yn+muxSMB>{a&}FFEJa{#I?uZDdjU~;b;D;o)bN?nm4*8 z{Y%C0O%=IG|9>pbIPGu#){^)Y<+da#p=V#0`7iErExq?KSUQ!kHn)DdTJ+9E9RX$E zmyWb>Za6e8?vBXdhIBd;-`tC9wOnTVT^}~qRB-on99>$M&XP&;0j$HQ1KYWD`WibR zBR@ofUbw{xT1I)O@eP_T6k0}G|8{a4w?9w1yoYeTGTAX1up%p{G`Vvk?`b&S<8M4K zGR1$U|Gk87KfZ3-`u9)*Q)$jFw$;@TJuSaK2FQ>#tyu*j_;Gur+Y223D zA*ZCT-%EI@spSy|N@dzo>`krTb2gh?GZN|;%xAMc960G>?$RTd(AR+28W!Mg0DQ_H zBVVNegxb1Wyt@3T+vx3Z@ZMGDC63&^(?v1#OliW6(J1uC!q6o$m7Wxq#8~HU94?++e6Nme0)bvHr-Cmo_*KD``rNd$9&2_!jBi5PXckzm%xY4qfX9btjxAA8L6Sq zFLzHRp?AlrzzYd!pnQikqr7dE5RZu(%WVD{bHCyDz@uOKYO~qLq)AZ0_mph28PFL0 zVJoik`C`lJ?_%Wqvl)OXOPYQ|@%CC0C-@7q-w@P1rwYk-m;K5%JE?E;MPIG+%V&Kj z#v7|Dre*Wx0ev;rIV+l8!(m*p*~K;HUPEE$Us$0jZ$7!LfpNe zcxbdl5;dihy1RrGS3uIt+p6tU4>+_>4-SPKyn)Pq8#76QT6fgGavHK)e6*=znzusj zH57kwN`%%#&Lcvy$6nydK0r_`xyHia?RW`Fgj!Ra!1EQoz%}vXjQx#=dOx3%II(Sy z!&ULuuNFYEapXF6s+fArFXJHD{ffuEhWfsQPWyG#Y_kXaIJ6@HRWm}qt1SOHe4v}n zxIY>Hps$u=kpex4xn-RFcGE!Yq@p|lPbDbq2!A#<4$b6N)xse!=5W#-h=5gf@~KkQ z%zfLx)Hx(h`;TG0hJ)`YoQ8NCvMsCsNHtni38l3vR`~?g4Cp&qO7qQTSU^`lLS}oP zNg=b_5PmBz%30~RRnW8`xXZ?+8DPbgx0)@XROJH;{jGn<-ciCkYso#Vua@nz3V)u` zD@o9k#CcrEtW>ZR5ziTNZ4T`6v}d>a;!!$J@j0XkVDKU|5KH8A@=9Xt07hEkH{TH4 zFZadg)S>P5?Kh_6ibqqX)W+U!S||P+E(+kIDV5spyg|dg*wpD?iCuKd(@0~~ONE== zJgeK-<>E_qTCXEP0QFt;|zXgY=+GJJ(OCq=yxvt`6<+Z&>}* z;ke5xy}v-`P)jL}n$0S|@_dr(`0b_M~N!;5e)HW=^f<79LT)t-kCjc2KyB%9fcp< zc{?B)OqaS2BfhgN6_%C$^R%TA%$RyU_+%9tQ5zU^VW8xy)-m-|!z7(~5A|{Z_2iFM zR7oZnaXp#o0?Yi-3*ecznXtLzf`Q z)AN?)hB;fpaVN=qr|-B>?Hy##g6t6iv&uD*9b*2lz%dc)XZ_=t`}k47bfT0QTY9Iz zG~OCU_ZQf8t(oCD{GOoUd3m|(wAwCt$w#RP0M2$)3?OU6 zIwU(bFL8SZf}bPqSR7ZU?in0cb56rvnI+fSQHA}r)q4opk*_X-o{l)NJcig%yD>dI zC$W6GkxIvh+=TFzT--B_EMAI?0{^D!<(JfTa7w2vifj~AhOBm!cs`Ht-aYm{5KvuR z_b-Y#nrOppJ0h+d33)t1TzieQVa4;S`mhfDrJLX?l2oPKRMP2TICDs6%Hr*HRmfcA zb#!pj<16TCLU1hf6nhcr0upOTeF^Cg&Vjm}3{-_Mc5FT`{c2n;i9ri_u{oxGB!aqe z(w)2@L&Ywla7Lnl(c@Z&if}sx)U7J);^V01uG?A8sOFa0m|Hy~t>tkLLzu-eHH`dT zXLEq#{QE54X>X^Y#BxFjV<&Rh2(KyEc`KgPPFOWf3JHMKZ0k;Tr{cF;Ke@=y%E}PU zX=c! zg!N&uvt-cIrOlVYfzsdd(z8;}@FsbN!k6UW*n9o!d)j+_ziKwe)sfAF$`G^BRV}zS z>BQiwz(?|X{o8vQ=xNNNFg)8pPa!UjNM*w>*CZ1aR2101;BT%g51*(Pnx;rA4*(P&03H-sv>OC9M2{#uMv(J zX3`~79By6XfpyT|48jo#a`xg)cko8GxA~KcAJEvo(?`mvgo96g2Bs#^3 zSSL=*%fgNmAD(U*o(GCm`&*2hz2>X%*C2pnYR4qHrHwmyM)+nOl$BNJ1aAjy<?8jDJj z{WhNGCl{V&_!TpM`j%^O0N+^u>r@mrhZEx(Xr{<%qdV~_(zudDh=_a^(S+PspYM4K z^m|5iqZ?}#vsvrKt42Lr{qJ0}R>gi%la}M9n{!ZoD8^7CHvt>l+szX! z**^*$iZn(uu7rFHdFd>}VH1<;rc%uO|h^@kfe1{LI;V(*4`zWWGUD6zVrJgq)~ z7`F^8Jl<#UG>AAMAZT}nUOAbcPsB%*Yl>oRxpv+$4t@v$KD5jTOSc@Z`-QOS2wn0W zn7nM?0v}J*LNEYsDRR=cYD@0UOj z3D#3?Wdi0+(<>oJWkMPAm*S|v3xuAzA!L%XbEO_`odwXnbe)E~H3N30M7yPJn!K$x*D;^NOQHZWf*`NPdnngt_gm}GME-Aw& zh~B8LQmFk_{f&oOK)7Y?*8p0ro}Tr8+g|~+r9uw10fDro{-5)6EyoKa@wM7?XtjK# zraz*y`fA4RA|}dhrc2747d@87>Zn(}x2G6HCXo}UlazrtO%$W+t`0Nc|Hu!Lg43l^ zOW|uB3DJ%te|uw;>h$kGRRkvhLkwuO4$YHCFA)0TVO;PGA8jl0Woi=GOb@pZq1?B~ zjQCnfZC!A;-Z1hv$@lFVa6QbaksJRuR0^8#x<2U7rEY{=gd6V9T}zfe@Fz>k2&Gju zQ+2=*^H1f)=+U;3lBL7^e#vu}2z`Fv5@uqbaN(M6qy1@1^OJTd;RwYj$x`9F^mKIA zvHXUITa&0;cwHwf_*%GwQaJEZ^3cjl;Fe{$<%kx29QjDH3*J)8xw8;DT`$knD0nHi zq5o^u_3`9Xhn;`Ll3Xk;qv-g@eX`i+#v<`)W0^LdcSKvfw8yb<9LM z(u#0KRO79ha19f5DlZ!QUZ2wQ_c9gL$S%70f|KGCq8|t{eMBi~YfFa3s`{1s2|llX)`d+F44ME_fKDiu`k6!8hx0~xDIhh&^Hb8jb@X64T?UNkYe>NH9=(QD%E18}iu8VGDH6u(TM z%4)35sttxSeqeru!SvyiWOT+m_qAjY<{Mu6%u)gX2$Prsi%GPU7=(!@AEQ;5<_==b zdow|o`G#bNE%Oa?5`pSYDcfia5ozcRJtL{FFF!7;FEMF!20eezo|kw7W{LBuAlNp$r^?o998XSPi5d|JB9D>Pz+XrcvaDa2^4Pd#bs%SFss zSWJR0w8V`c?nqSK5jdlX@=w?@tCS)?gOad;f`9RHMID9}B4R-a`Ob@A?mi)p92bGj zG(9^IIcO-BRTGSYX@kK;PDFyi6o_FBK+^&5XkcdKaSyNak~;d5spf|3u%_2G--7wz zM`4r8G*t|y0#ITB8rF>)77KrsE9mU-xXV_eq(ZQc*d>3cu?Y4DxsWNZDeL`XS1~Y^ z#!#8rwLGt=UoNH~py>SV;(man4Ym76vHn)Nh@DgVpWYSbat=f4BzICHy@B1Q)u>%X|`ZJ7w)9wE^r2X#a}I zQqW{09lJje{o8Z47PG`-52@R}FTxb70{0LAQ?QD_fF(Rv-A^c6{X&On7jVwsh0b&V zm&dK2W_1Y;1R)+kXU;D3PG`~Aq}^V!va#KQ>X#%n9Q~=?!dU(E!B(N}o%rjN!4qt~ zQ9R;Fgj>X2->VLm?cG(MCRBxf>J}Fdw#T z6Q$D?D4s@sN|9Qbb~v5i{1YLklB9=@Wu0V)YPN#Vz4_N;oq%CuUG}5+hKYzeP7G;;e;H3CGbyMv#FfKeeC9nfBx!zlAFpwk`(u3#~ zF$f){lNV4GCkepjM>vFz543~~B%YZBV6xw~1mM}r(yGMQ_oY?&^t22lmT*v)Ha&=| zcZ~!rip~Zy(X{fF9i@hIZP9~F^fyVs_S0W5d@S(67%{m5@|Dz1xp3bRJ?K{@C4=s( z&oLN2n{>zumC3JC7^eF#wW1g2iP=CdxlmS+hh`K8=_efdN-R7uMtPy>cyYP^b`+c7 z*xP6#N7k>i6{5TP%#+J@nnLN!+xm%q;`&yf)Q2G?tzrZWx-pe1gsO62Ur|{;Pwsdv z!D5|g&{Potcrbtj{J`f}fH6bwsTF7nZsFfLsp^)+!Lx=#L|I_^k29nWudXPm( zEQW%1JOfGcAPLw!7?&_n3{RmFHKhW>haRmIqmP+}1nke7#W0;5RZIeQrD~)Hxg=^3 zfQ99y6158WK7P=m@@j@GDpbBt697fO6_ciE6DYK78U7+d0;bwgi`Po#do5qtpG(Z3 zYe!5JuQeLM3c}sdB>^>Er$re&r9Uob z_w>U)wcu!b^s4ZN_EiI?29S=spq@e6%LpOFu^dqPd?7$mQG?kL=K;G0lmC+0+mCd8LNoHtovP?u zI2BP8z67onPo;`Fj7Q{>xnoZ#>OPj8`>D(-LU=1)od>D;+D9*t)pc|IqqyW`+6myhmgCUr9rMaiA9k2{inJtB=VkUG!Uef9; zqIX1JNL~qIO%0=TPEGS$P=WVjY(4WW;qMQ@-$`+<4$KT93tiq(Pn>VW#`_s;Eidk{ z&vkb#5PFShb^`mYj?=C3zOv7Z{*KPVA13P;NJ6JPvcSN@~PbH;*5%xF|(PC1T#bPtJ}ZI2Fmj zR)$fd>(D*A-K=>Sb?u~Uir|(qqH>`&o+1mrT2|IESL*sEI$$Mr9+kDOh=)|xb8L3y zVR#J@VJLsMRHZjS9id_K*zzHuWEE%9c;#SQf&qY1q@#ke1h--xOi`rv7TC9z5T4OCaUT~S<6alRdWCH{lgL^~mCD;z5299)1& z*+w{5_9v|?Kf7l~o6et+yLj2dtye*=B#4oF(Bn+8t60trCGq=}BClJth~@d?w;;y( zP&kdK$>~abUrTZjqdyt#3Pyu^w8+MSfqktKu8M_tE2BG;f+J8u^aM48a3wxw8V8PL z{C<)w!=Ubl;v{mW$f*h2PnLmU1v0Wqc2h%W(S2_$-RN!=QM}zyBrLk9AzF;FB9TO> zZG<1PC2tjf$Y8ml97J6ya^6_M5vgD}LT33)u}Z1uLvkHTJE3GKrdw|?3MQ7+09^i7 z0L`sp7n-V@eA~fF{Jm&lJ-x*Qbp#o_j5Fc2WEma)K*nP5OvFjDIUgxpnw$tJ(C@=f zd*(g3SUO_(LV>Y@@qn|QtUv0{oE^&&eWrLe7bgPX|m~N+KaTm^ynxK{i0NMzDtWQ#VK!{V}T}`dnPwvuC zc0=*i4rJth?H8Uk!K0W;9;&+yp?mrCu&4Ffy+YDXIUn&z5Amwdt7(eY_aoe2Ntj|zw+j4=?f`P?u>-vn`=91sCesYF{H#F8_ zg15#hqKnC5QpvJ<2j!%^Zxr-Y?R_P#F+^UQ1gM~W&f8a|(Ifq`I1uqu#Rj@3V_5aL z!E0`!!j46;!}YTA!`DPbFI5S{NdNsd{^xQ|5hM%>-=7=?U+_O?9jmH`BE{m4g=O*% zAx?t)ASXL$t>LbnUN&^20eS~D?sUl^da4FUv216mm?IH_B&J^^_C(#lzLO#sLJH?=-~m8CYzeyCVJATmvAJ=7%L6%9`GK04i_vynoMkY z8+DBAU}f@^D3p%t2M2ltqC*Ml=Vo7~^<5b%FM7m@hSrP&FFLMHT9Y_>ew1JgK~*zI2|B3l%;!`8UUoFK{(T{-Dxkw%2gCiG0jgKF1@>AsZwsIbb(9)f4&H#U zE2rc+afnWOLVcRFomm&2av^eZUEqLXTD+n^qv`_27^yaz%|dYh<|T{tN7u*%g_{^J z*{UsHM36g@UUrUmF9g+lT=ps{PYL^y)O55UhoRrEH*SgA5Ez_nGzTs*TKIC@&NN=M zElAvDHkZP`fuhuvl{krL5I-)7$X*sEMp;NoE>0=n%puL`cd)F82BA#$hL=C%A_fCN zh-Eo@iK@&Gc{V84_~jcuDtHui=^$+J(PEHH)}WsX9(9IsNMB2PP(>u4RZl3Eo28`h zR_=YxW?Gas2x-qz-OoQlYZlY0*l4?FBFopulpAJJ)(h)-sMN>N5NK73DXu zKL-pfc1x2!QsI11Q|P9G={CE>594@EM?zNh9nVHJNC4y#ZPL{U{Ex4rlfG@;;=X$O z6YAZkDwy|L@tW0uu^$URY~~_RwzoDA)>IyxCmOKMrY1)}XSRma1W2@uep6XAS#X$% zMF^-wQHUkGh;&a>Mx1Fbu)c)uKI7@1+(PtBPMQ0#BfWG7j;)%?DhVbES^&+GpcPP@WDKX)fv1?{1$HuC` zKdg70Q|UDKINzx~WRYXxNPTIA<4(z$`qGt19gAdPHqFQIhHM8MEt`fbvMz>hwLL8J>e#iZlbsr0YPKu#kSRLgK{P$Eoj{l13I zWUh~SGY7J<)iGoXv)w*)Uu7N8jDr=l8duA3?cN9W*G@`9CdjSFxYh`^rXVc0f!%2K zH<*|bBwRaN!@IF-*pgBU0zEjse~K){d|uH^w&xHj1a`T#GTED2l{5+xs_DoUMOIkFrssr_j#u;u2P111&+cFmjxaw_bS*$_S9eZ*)5#P5Lu#7_Eb_R zQ7JbX54B-Yh_Bbw`#^V({waaYl@^Cuw9ltFI1rH{?rfk6+c{ zy1x#TE^FV`W`@Qc)8Hvrb$mT$#C$uR=s(&@fp<;sbH^ObM?KGLF_MxSaL+lGB2(Ya zUtJ1r^~g>+@M(E*7%(~O7`#xs-_lcS8&Z34d?~HKONwA2=i8|xZ@XlLT#7d&|8QJs zDMvFwuy>&DsgIQB;nG^&VW?EgPA>gn0<-r>N+0Iwsp|OgDyQU$X5G%bXSLI#U7AxP zuR~3j)8gZiljbqxiSGF6`hga@vhK0tK>OjN@v%t9nX%KO@UJf32h%QfhtozUM@k9T z3XG0+Aa$pG%-;Ku0y}Th&8db{eC5jR*?;v@!Tury{ofj@&KN!#;Qzwdf&E4KA%Xk> z*?~bt1^)Mjs(hr9-H1Fz?Iv=$hhVX-yHoP1GUgI=7$+BRi(+PC__i_PA?0vN7%$rh+BZHd58kxdxMJX~#%Cpgn*j2^31r+L`6J~kdYw5F?H zbYhK>A$*~l)}}yY#=y#EHz2;balfo$%-ef-^!4>(??HphALgbGcXmeRPJYDbjtkVi zqZ3~qly-^_+>2-kqa~qiO-Le+^F^rIbv+!WZ1GiB0K1AWsMFQ9Owq%aIIofzP`5hQ zU6K&l@Ss3jI(0Vf^uA-pHG`Ci_PXG?pj3j+=P#7W5@ia7&qw+ogP(aU%|gg1N&STL=G)hTS-m z^J`|thbnA~kFaK!Lg&az-wZFRWsGKT}-PZlN6zKSfKZdCV9Ub*UKT$$TaUm=-py`5V*svwssc!(<* zZDp2YsAI~^n6t~nd`n{XCatsNJ-$?QMib6MrX-4WebdBueGRcG9qnj@_Z?{}O{HNG zt+DN$)yDAq*KE+#5Iy(Zxr2RMN7*B-Ml|)Brqolf8VU2`V$Es%rCTGVVW(|(y4vX? zVwf17mP-koVlSd*q5oRo&X8h1+dF?>-yFdZB`Y&WupamfF{S}NYb(_NpD%_QU;}_l zX6JOy7lSC9n^~F2+PQ-D&N@kjL<`A-*^vks_S5e(MTDKTor9*miRn*GM-2s8@J|cCS>XLg|LmFQ%w0Xm zEd)Z=#L?Ugd~V#}*MPI5U-6PTgQD4uw^0PWG$RFZ@D53lt} zMbu-Rro5=oWrbm>#YfEl*c$@i32h=0$VB!s)wcML0?OUc+uf|Xe(<|7jz4(xJa!Vy zFN$u$18&fFICf8&ug{EfPDhGT)kZuwrl*@H+N*%qa+vy~ZUsp<+szcwd#DIuaYc{v z%{gkCS@W7kbHV+1r`@n76x)o}dm%cVXi&$+rtZ#rd{k^XA@m&jnn95r9C>vLHkd%K%P{GHWr04@rFOHS|G+9fC?YBXwc)j?qu>l|ko;Jr#O z$Gq3DgY-(cfK`}nUOIFTY-2@(Ww3;;R&^ZQWemXz`%vpd?)jLh(!)@raf-+Cdfw=$ zz7lrIBW}pT+Cd7rH^RsRtx-F+Hf!R#86y&nf*}lrZ7tlh1%==z$OcL8rM%j^*l?0LR1p_Cyhn+N)4|DNxh(C) zgvE7@5={KW>^f%6leAd@cfTvVCm}xR5bby3i7dZ!(n`zb9c8K@2QQ~m?_Pd&bPq=W zjCE5QcTxJv0xswi-p5ar8O25Q!l;n%QxnHL*SH3 zDc~<;e+lJlIw2rJ$miQ(j5ms{0VPlN;a(@{l%@y>Y^9*l2u6VstqdOmb)H?B!No^V zsxiDEVn@g-;?PJhrE0ukcpJ2sX0f2Rz=gV8iFE-{ma6`M>VU?b@G6uzyZ&Awr8R!B zv8o7BQ~+Il+d5o?na{86Q>;C%2gPcDYQxJ3N*xj@-yBLG3QDo`a4041XL;G@u584V zEP2nUGI6Y=ho3QJGFOBtKF?{@qb9g{6Q*|O1!+4oP2f~|T-x0T1d zxgL^iQ!2|pO7H6FUcf@}h|wp7^T{JqUt<^-iWexiL=I>O{L@S$U{RO6?=W!C6yp@r z7hma%5)GtpjxfnC(s?H~z_1i{p~<1}zBTM4$rFkvR8R25qdfhuPND2SiWuqNPzkx- zs6BDdp3@#_4=Sgxrus&)7ICp@bG>83d{5rvq8E`=R0<0hD1sO$QDm=~@TNs$0%??2dXl-ffzl$%>NpqEZthkX&W!R<| zn%}5?FH0)}rS(0iw*;;|BrmEZif}7-2>*dUt3b`u6f%XFR1f1iB{gdVsByTkr#u1E&LV zZC-6v?b=0-FG63gzb*JO_r~qb#+Tdu!(Zh4zvc4xd-nJBm*u+Tj`vAh#ajhDnt8a~ zBa*j)BDaa^U|3Cz77d;s9S9KY61XaWe6ZTbfJq$a9r)4L-ut#!EMr^i_4}2yq_;JQ z!+@Pka_tsnh16oid}g<45J^MK^X@lhTd-`DpwqDvd*ybeeIQ?Lss_0J9JT-w!@YA$86k($b^c8m0)?WEAZeh#!mdXs;*#O46O>SY&b#ql{-{@ zF$oRU=27>0dHs1wd8>F*bm?`P^lXY3%MKpc*d^JHJ@9M^x(|Aw`Jm5qGcP}Z_v^>z zonieS`r{RO^Ui2bTT9!PvJq34zT}6@_v`9wzn=K}XZW|Kb(!?`e1i294QvpEH(<|8but$C7d~&5*KE?Wa%4DYE%Y2c!=-1_U zvtEM5UeUO9=ULU}g?Z9>mq0&^4`wB8_j5!;T%ad&6!AsU0%Gq=CLnc+o;sgO<2JuI z`~ub*)(+M+xdgde>Fyac8KCsn8AdIxEiYOWP4n*~n+?PILO_j9EvC~M)32v;=ni;B zE9`I7OQwlT98PG|r-P@yTVozjOpy~;Qh4O~3iKZnIbZ_l3XOX>!g%&OlbJ3aRo)$_}># zM~wvT%jfZrwG=6{i4WnW{G0IL;?Cl*;>?c3mn-^0>?Blz=7^#24^>S9L+E~=M!64$ z@K@7unlYOk!eYCM$qva-JL8I>AIcq^KRh?<41Mp_8}#U<>J@%8MrF;n0~>(fX63mf zmkRjqNz^vmb@`SClv+LV<|^Uifp}E#Ss183zuWUFy=dEONiUox>}Hd&P`UM+k&t1o zL6LH+)$F&*%u258bV~V3*Kd#8&DqxO#daZMjXZ~=OUw&9)2z{VJMT^oERBqoF>)dK z&=BSkfWqWRXsXZ_^-}!ha~(nU|F+uMqfNaZK_7Ax7q zU#r}z3YIqp`|jpwBk%3n78tK}xz`#Ggac zK`AP8DT$J?PK)2a&-9trD7mjChDtc*L#pl8tuaHJ^B(A=@4L%VZr`?#ib%WZq72Op zmMdrMa~(fiVhvVdu<{OP%Wx97-cD zc%r{`)K~D@=uO?=Y457}8ftLs7)f7XVfeCI-P>`3cgg0oD&7UeU$IuSc3mpoYhnM= z*2Zd1gldWx?ry;5;lI*$*k5@&$serXo3;R!*UA=v1)t@ue;pyMY-Ma6t$qneAaYg~ z7UlpT_>2Io2Nn>7*jU**If4y-OM}nz@Ly@}PZaTanhw!)x{o?16Q2oTK(cFM17yEI z=6-JU=a_pY_7-x0Blk@J=I~#s^?5@7|Ckg0`<#mA*3RZAD^nAo1o(BG=P~#lhkRZq z{68!JdHPwXetP|<1zuS@YqS4q=B(oQY39$^|0+v>LPG`&zhC+9T;-q9{IiZB zftZ?rp?q*C^!M=pwTR@g`0tLgNB!J~VUSJ_XL4HB71^7=H9C(;@ z_5$1fDT4_CH`3o^Fi~MZ>z^_a{(tHM9z%g*=x@4!j303QZ!#zpe)h=gpEA*Z$wWl? zf$Hz?<3yoncg^2qFcATff7*qK2nqo){@XY>T=-w}0UU4mKmCKlMbB=ezw7ct&uZO& z$Y5uG75|j|D}HePzg;iN!Nkhi+yNkrgCUw$?&iR61cuzQwXg#N2F{-p+S#GNKc5<& Y*MuexsPkVFm`4ak!p?qERi5O30KrR)=l}o! literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yaeR_res/KEIO_ROBOT2_8_log.txt b/validation/validation_results/Berges_2021/Berges_2021/yaeR_res/KEIO_ROBOT2_8_log.txt new file mode 100644 index 0000000..546212c --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yaeR_res/KEIO_ROBOT2_8_log.txt @@ -0,0 +1,176 @@ +$sys +$sys$params + X Glc Ace Lac mu qGlc qAce qLac + 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "Lac" "mu" "qGlc" "qAce" "qLac" + +$sys$nconc +[1] "X" "Glc" "Ace" "Lac" + +$sys$nflux +[1] "mu" "qGlc" "qAce" "qLac" + +$sys$metab +[1] "Glc" "Ace" "Lac" + +$sys$weight + col +row X Glc Ace Lac + [1,] 0.02 0.46 0.2 0.2 + [2,] 0.02 0.46 0.2 0.2 + [3,] 0.02 0.46 0.2 0.2 + [4,] 0.02 0.46 0.2 0.2 + [5,] 0.02 0.46 0.2 0.2 + [6,] 0.02 0.46 0.2 0.2 + [7,] 0.02 0.46 0.2 0.2 + [8,] 0.02 0.46 0.2 0.2 + +$sys$te_upc + X Glc Ace Lac mu qGlc qAce qLac + 50 50 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace Lac mu qGlc qAce qLac + 1e-06 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 -5e+01 + +$sys$u + X Glc Ace Lac mu qGlc qAce qLac +X <= 50 -1 0 0 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 0 0 +Lac <= 50 0 0 0 -1 0 0 0 0 +mu <= 50 0 0 0 0 -1 0 0 0 +qGlc <= 50 0 0 0 0 0 -1 0 0 +qAce <= 50 0 0 0 0 0 0 -1 0 +qLac <= 50 0 0 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 0 0 +Lac >= 1e-06 0 0 0 1 0 0 0 0 +mu >= 0 0 0 0 0 1 0 0 0 +qGlc >= -50 0 0 0 0 0 1 0 0 +qAce >= -50 0 0 0 0 0 0 1 0 +qLac >= -50 0 0 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 Lac <= 50 mu <= 50 qGlc <= 50 qAce <= 50 qLac <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 Lac >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 qLac >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 -5e+01 + +$sys$times +[1] 2.501389 3.341944 3.997500 4.523333 1.950000 3.250000 4.083333 4.766667 + +$sys$data_meas + X Glc Ace Lac +[1,] 0.113400 NA NA NA +[2,] 0.158760 NA NA NA +[3,] 0.219240 NA NA NA +[4,] 0.343224 NA NA NA +[5,] NA 13.51070 0.3579600 0 +[6,] NA 12.92705 0.9830323 0 +[7,] NA 11.64004 1.4173494 0 +[8,] NA 10.38703 1.9963622 0 + +$sys$nb_par +[1] 8 + +$sys$nb_conc +[1] 4 + + +$result +$result$par + X Glc Ace Lac mu qGlc qAce qLac + 2.193189e-02 1.411303e+01 2.002845e-01 1.000000e-06 5.994293e-01 -6.200146e+00 3.068956e+00 -2.279991e-06 + +$result$lastp + X Glc Ace Lac mu qGlc qAce qLac + 9.504713e-09 1.495541e-07 -1.581743e-07 2.117582e-22 -1.058810e-07 3.476969e-07 8.916974e-08 -5.489135e-13 + +$result$hci + X Glc Ace Lac mu qGlc qAce qLac +0.01024215 0.66380094 0.29265994 0.27448615 0.11223184 1.74161099 0.76500376 0.73032777 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.6135628 + +$result$laststep + X Glc Ace Lac mu qGlc qAce qLac + 9.504713e-09 1.495541e-07 -1.581743e-07 2.117582e-22 -1.058810e-07 3.476969e-07 8.916974e-08 -5.489135e-13 + +$result$normp +[1] 4.330486e-07 + +$result$res + [1] -7.583236e-01 1.912522e-01 1.080332e+00 -6.567829e-01 2.153908e-01 -3.884344e-01 1.676977e-01 5.345872e-03 4.571125e-01 -5.363415e-01 -1.558107e-01 2.350396e-01 4.074700e-06 2.490861e-06 5.948413e-07 -1.846333e-06 + +$result$prevres + [1] -7.583244e-01 1.912515e-01 1.080332e+00 -6.567821e-01 2.153908e-01 -3.884343e-01 1.676978e-01 5.345697e-03 4.571129e-01 -5.363415e-01 -1.558109e-01 2.350394e-01 4.074700e-06 2.490862e-06 5.948430e-07 -1.846330e-06 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] + [1,] 2.239514e+02 0.000000 0 0 1.228601e+01 0.0000000 0.0000000 0.0000000 + [2,] 3.706591e+02 0.000000 0 0 2.716751e+01 0.0000000 0.0000000 0.0000000 + [3,] 5.490788e+02 0.000000 0 0 4.813922e+01 0.0000000 0.0000000 0.0000000 + [4,] 7.525309e+02 0.000000 0 0 7.465498e+01 0.0000000 0.0000000 0.0000000 + [5,] -4.988245e+01 2.173913 0 0 -1.269885e+00 0.1764500 0.0000000 0.0000000 + [6,] -1.352663e+02 2.173913 0 0 -6.295230e+00 0.4784799 0.0000000 0.0000000 + [7,] -2.374798e+02 2.173913 0 0 -1.459236e+01 0.8400412 0.0000000 0.0000000 + [8,] -3.690822e+02 2.173913 0 0 -2.743132e+01 1.3055607 0.0000000 0.0000000 + [9,] 5.678901e+01 0.000000 5 0 1.445708e+00 0.0000000 0.4058351 0.0000000 +[10,] 1.539949e+02 0.000000 5 0 7.166846e+00 0.0000000 1.1005038 0.0000000 +[11,] 2.703604e+02 0.000000 5 0 1.661277e+01 0.0000000 1.9320949 0.0000000 +[12,] 4.201841e+02 0.000000 5 0 3.122937e+01 0.0000000 3.0027896 0.0000000 +[13,] -4.218972e-05 0.000000 0 5 -1.074046e-06 0.0000000 0.0000000 0.4058351 +[14,] -1.144059e-04 0.000000 0 5 -5.324397e-06 0.0000000 0.0000000 1.1005038 +[15,] -2.008563e-04 0.000000 0 5 -1.234197e-05 0.0000000 0.0000000 1.9320949 +[16,] -3.121634e-04 0.000000 0 5 -2.320094e-05 0.0000000 0.0000000 3.0027896 + +$result$retres +$result$retres$res + [1] -7.583244e-01 1.912515e-01 1.080332e+00 -6.567821e-01 2.153908e-01 -3.884343e-01 1.676978e-01 5.345697e-03 4.571129e-01 -5.363415e-01 -1.558109e-01 2.350394e-01 4.074700e-06 2.490862e-06 5.948430e-07 -1.846330e-06 + +$result$retres$sim + col +row X Glc Ace Lac + [1,] 0.09823351 13.32381 0.5909333 7.097791e-07 + [2,] 0.16258503 12.65820 0.9203998 4.650116e-07 + [3,] 0.24084665 11.84871 1.3210832 1.673357e-07 + [4,] 0.33008836 10.92564 1.7779825 -1.721042e-07 + [5,] 0.07058578 13.60978 0.4493826 8.149400e-07 + [6,] 0.15386674 12.74837 0.8757640 4.981725e-07 + [7,] 0.25356278 11.71718 1.3861872 1.189686e-07 + [8,] 0.38192396 10.38948 2.0433701 -3.692661e-07 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace Lac +[1,] 0.01516649 NA NA NA +[2,] -0.00382503 NA NA NA +[3,] -0.02160665 NA NA NA +[4,] 0.01313564 NA NA NA +[5,] NA -0.099079767 -0.09142258 -8.149400e-07 +[6,] NA 0.178679760 0.10726829 -4.981725e-07 +[7,] NA -0.077140972 0.03116217 -1.189686e-07 +[8,] NA -0.002459021 -0.04700789 3.692661e-07 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/yaeR_res/KEIO_ROBOT2_8_res.txt b/validation/validation_results/Berges_2021/Berges_2021/yaeR_res/KEIO_ROBOT2_8_res.txt new file mode 100644 index 0000000..304d877 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yaeR_res/KEIO_ROBOT2_8_res.txt @@ -0,0 +1,23 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0219318910390378 0.0227597476831781 0.0224665683296566 0.00435774777164813 0.0149332520482741 0.0311684984514086 +Glc 14.1130312164877 14.1438959020434 14.1222200971268 0.36734736483327 13.3672713630615 14.9127036114129 +Ace 0.200284454432145 0.192513001738239 0.179960017563088 0.12897365373252 9.99999999979837e-07 0.447479209087677 +Lac 1e-06 0.0945739677332041 0.0668010729356037 0.089950273613638 9.99999999991066e-07 0.303109474348127 +mu 0.599429299918394 0.595873804275454 0.593471959818216 0.0459645713992243 0.516107842012692 0.687784114896493 +qGlc -6.20014590062461 -6.30388519492873 -6.30352801834894 0.970672857304069 -7.90209855175058 -4.19264759611313 +qAce 3.06895553846714 3.03426668959843 3.02529279267435 0.408731944450241 2.16504842470442 3.83480703799369 +qLac -2.27999059143303e-06 -0.0179063871089237 -0.00486621545488 0.249981892267559 -0.495472300632213 0.385078295833399 +res 3.01167413518766 20.8953821374491 19.6870871306959 6.87502284395614 11.3195043565087 36.0756111326464 + + +Goodness of fit (khi2 test) + +khi2 value 3.01167413518974 +data points 16 +fitted parameters 8 +degrees of freedom 8 +khi2 reduced value 0.376459266898717 +p-value, i.e. P(X^2<=value) 0.0663772056723945 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/yafJ.txt b/validation/validation_results/Berges_2021/Berges_2021/yafJ.txt new file mode 100644 index 0000000..765655e --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yafJ.txt @@ -0,0 +1,9 @@ +time X Glc Ace Lac +2.50138888888889 0.111888 NA NA NA +3.34194444444444 0.17388 NA NA NA +3.9975 0.252504 NA NA NA +4.52333333333333 0.359856 NA NA NA +1.95 NA 13.4691540474642 0.320140259065198 0 +3.25 NA 12.5718581148689 0.996182209325596 0 +4.08333333333333 NA 11.9953770530925 1.25551097896958 0 +4.76666666666667 NA 11.1595708900597 1.71802568265367 0 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yafJ_res/KEIO_ROBOT2_17.pdf b/validation/validation_results/Berges_2021/Berges_2021/yafJ_res/KEIO_ROBOT2_17.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9a355eef38da40e3882795849e74660721e86ba5 GIT binary patch literal 23631 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 z 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

= 1e-06 1 0 0 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 0 0 +Lac >= 1e-06 0 0 0 1 0 0 0 0 +mu >= 0 0 0 0 0 1 0 0 0 +qGlc >= -50 0 0 0 0 0 1 0 0 +qAce >= -50 0 0 0 0 0 0 1 0 +qLac >= -50 0 0 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 Lac <= 50 mu <= 50 qGlc <= 50 qAce <= 50 qLac <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 Lac >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 qLac >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 -5e+01 + +$sys$times +[1] 2.501389 3.341944 3.997500 4.523333 1.950000 3.250000 4.083333 4.766667 + +$sys$data_meas + X Glc Ace Lac +[1,] 0.111888 NA NA NA +[2,] 0.173880 NA NA NA +[3,] 0.252504 NA NA NA +[4,] 0.359856 NA NA NA +[5,] NA 13.46915 0.3201403 0 +[6,] NA 12.57186 0.9961822 0 +[7,] NA 11.99538 1.2555110 0 +[8,] NA 11.15957 1.7180257 0 + +$sys$nb_par +[1] 8 + +$sys$nb_conc +[1] 4 + + +$result +$result$par + X Glc Ace Lac mu qGlc qAce qLac + 2.508668e-02 1.370547e+01 2.441916e-01 1.000000e-06 5.849991e-01 -3.977954e+00 2.342603e+00 -2.091387e-06 + +$result$lastp + X Glc Ace Lac mu qGlc qAce qLac + 2.963037e-09 7.618631e-08 -6.315297e-08 2.117582e-22 -2.933974e-08 -7.645802e-08 9.674555e-08 -2.655984e-13 + +$result$hci + X Glc Ace Lac mu qGlc qAce qLac +0.008624795 0.516703917 0.228709690 0.219695510 0.082798605 1.248019167 0.549445988 0.534319461 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.4863019 + +$result$laststep + X Glc Ace Lac mu qGlc qAce qLac + 2.963037e-09 7.618631e-08 -6.315297e-08 2.117582e-22 -2.933974e-08 -7.645802e-08 9.674555e-08 -2.655984e-13 + +$result$normp +[1] 1.608346e-07 + +$result$res + [1] -1.753802e-01 1.668187e-01 3.772599e-01 -3.072030e-01 -2.758270e-01 3.527140e-01 4.632330e-02 -1.232103e-01 6.896923e-01 -8.997801e-01 -8.399105e-02 2.940789e-01 4.045249e-06 2.446546e-06 5.606464e-07 -1.841458e-06 + +$result$prevres + [1] -1.753805e-01 1.668186e-01 3.772599e-01 -3.072027e-01 -2.758270e-01 3.527139e-01 4.632334e-02 -1.232103e-01 6.896924e-01 -8.997800e-01 -8.399112e-02 2.940787e-01 4.045249e-06 2.446547e-06 5.606471e-07 -1.841457e-06 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] + [1,] 2.160119e+02 0.000000 0 0 1.355508e+01 0.0000000 0.0000000 0.0000000 + [2,] 3.532081e+02 0.000000 0 0 2.961236e+01 0.0000000 0.0000000 0.0000000 + [3,] 5.183014e+02 0.000000 0 0 5.197733e+01 0.0000000 0.0000000 0.0000000 + [4,] 7.049797e+02 0.000000 0 0 7.999785e+01 0.0000000 0.0000000 0.0000000 + [5,] -3.147347e+01 2.173913 0 0 -9.131093e-01 0.1984851 0.0000000 0.0000000 + [6,] -8.417484e+01 2.173913 0 0 -4.458464e+00 0.5308425 0.0000000 0.0000000 + [7,] -1.463437e+02 2.173913 0 0 -1.022963e+01 0.9229059 0.0000000 0.0000000 + [8,] -2.255293e+02 2.173913 0 0 -1.906500e+01 1.4222841 0.0000000 0.0000000 + [9,] 4.262961e+01 0.000000 5 0 1.236772e+00 0.0000000 0.4565158 0.0000000 +[10,] 1.140116e+02 0.000000 5 0 6.038820e+00 0.0000000 1.2209378 0.0000000 +[11,] 1.982170e+02 0.000000 5 0 1.385564e+01 0.0000000 2.1226836 0.0000000 +[12,] 3.054709e+02 0.000000 5 0 2.582282e+01 0.0000000 3.2712535 0.0000000 +[13,] -3.805810e-05 0.000000 0 5 -1.104143e-06 0.0000000 0.0000000 0.4565158 +[14,] -1.017852e-04 0.000000 0 5 -5.391229e-06 0.0000000 0.0000000 1.2209378 +[15,] -1.769606e-04 0.000000 0 5 -1.236979e-05 0.0000000 0.0000000 2.1226836 +[16,] -2.727128e-04 0.000000 0 5 -2.305363e-05 0.0000000 0.0000000 3.2712535 + +$result$retres +$result$retres$res + [1] -1.753805e-01 1.668186e-01 3.772599e-01 -3.072027e-01 -2.758270e-01 3.527139e-01 4.632334e-02 -1.232103e-01 6.896924e-01 -8.997800e-01 -8.399112e-02 2.940787e-01 4.045249e-06 2.446547e-06 5.606471e-07 -1.841457e-06 + +$result$retres$sim + col +row X Glc Ace Lac + [1,] 0.10838039 13.13908 0.5777377 7.022228e-07 + [2,] 0.17721637 12.67100 0.8533883 4.561324e-07 + [3,] 0.26004920 12.10774 1.1850887 1.600029e-07 + [4,] 0.35371195 11.47084 1.5601571 -1.748438e-07 + [5,] 0.07849894 13.34227 0.4580787 8.090498e-07 + [6,] 0.16793618 12.73411 0.8162262 4.893093e-07 + [7,] 0.27344028 12.01669 1.2387128 1.121294e-07 + [8,] 0.40782275 11.10289 1.7768414 -3.682914e-07 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace Lac +[1,] 0.003507610 NA NA NA +[2,] -0.003336371 NA NA NA +[3,] -0.007545198 NA NA NA +[4,] 0.006144055 NA NA NA +[5,] NA 0.12688044 -0.13793849 -8.090498e-07 +[6,] NA -0.16224841 0.17995601 -4.893093e-07 +[7,] NA -0.02130874 0.01679822 -1.121294e-07 +[8,] NA 0.05667672 -0.05881574 3.682914e-07 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/yafJ_res/KEIO_ROBOT2_17_res.txt b/validation/validation_results/Berges_2021/Berges_2021/yafJ_res/KEIO_ROBOT2_17_res.txt new file mode 100644 index 0000000..a6cccf2 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yafJ_res/KEIO_ROBOT2_17_res.txt @@ -0,0 +1,23 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.025086679779663 0.0257528925919203 0.0254863794103163 0.00471649375278555 0.0174445620300158 0.0349820754664873 +Glc 13.7054734549666 13.699877184611 13.7224484944981 0.298297197809713 13.152311124261 14.3591828175589 +Ace 0.244191619657268 0.201918870500307 0.187582924199014 0.136372337472832 9.99999999987122e-07 0.460627250894721 +Lac 1e-06 0.0675133302567826 0.0488236655348782 0.0651137371669487 9.99999999992887e-07 0.205259725815291 +mu 0.58499907901067 0.58251779638997 0.582040753151522 0.0431387982391577 0.506775394485388 0.671045946043866 +qGlc -3.97795410056887 -3.89712896799884 -3.94501206602975 0.784687005086656 -5.48159091869165 -2.39563750350705 +qAce 2.34260323125667 2.43723148761652 2.45690114582234 0.352959293850076 1.76742583457219 3.01188186834109 +qLac -2.09138721448791e-06 0.021473035238973 0.00900850222839176 0.189318356608278 -0.340703179509717 0.400239132222298 +res 1.89191616266955 19.5516192099069 18.8512416112436 6.11622904742312 10.7194721058358 32.0328459034608 + + +Goodness of fit (khi2 test) + +khi2 value 1.89191616266979 +data points 16 +fitted parameters 8 +degrees of freedom 8 +khi2 reduced value 0.236489520333724 +p-value, i.e. P(X^2<=value) 0.0158520386091432 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/yahJ.txt b/validation/validation_results/Berges_2021/Berges_2021/yahJ.txt new file mode 100644 index 0000000..fcf8ba6 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yahJ.txt @@ -0,0 +1,11 @@ +time X Glc Ace +2.87694444444444 0.161784 NA NA +3.67805555555556 0.258552 NA NA +4.09222222222222 0.378 NA NA +4.565 0.585144 NA NA +0.05 NA 14.2181504166793 0.015991232229232 +1.95 NA 13.786019452882 0.422845019076729 +2.83333333333333 NA 13.4673227039794 0.792222292200696 +3.98333333333333 NA 11.8180172020272 1.45667330104467 +4.88333333333333 NA 9.24583068057176 2.28596594075861 +5.16666666666667 NA 8.48188793002252 2.50471695994088 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yahJ_res/KEIO_ROBOT3_31.pdf b/validation/validation_results/Berges_2021/Berges_2021/yahJ_res/KEIO_ROBOT3_31.pdf new file mode 100644 index 0000000000000000000000000000000000000000..09eca60d94d8978276d039a988709f3c0f20a00f GIT binary patch literal 21509 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 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 2.876944 3.678056 4.092222 4.565000 0.050000 1.950000 2.833333 3.983333 4.883333 5.166667 + +$sys$data_meas + X Glc Ace + [1,] 0.161784 NA NA + [2,] 0.258552 NA NA + [3,] 0.378000 NA NA + [4,] 0.585144 NA NA + [5,] NA 14.218150 0.01599123 + [6,] NA 13.786019 0.42284502 + [7,] NA 13.467323 0.79222229 + [8,] NA 11.818017 1.45667330 + [9,] NA 9.245831 2.28596594 +[10,] NA 8.481888 2.50471696 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.01510086 14.18294867 0.29760316 0.79491385 -5.21003133 2.10643947 + +$result$lastp + X Glc Ace mu qGlc qAce +-1.206500e-09 -3.902305e-08 4.632332e-08 1.969139e-08 3.279463e-08 -8.106620e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.007724334 0.581965995 0.251914501 0.119560974 0.955679170 0.412586891 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.927465 + +$result$laststep + X Glc Ace mu qGlc qAce +-1.206500e-09 -3.902305e-08 4.632332e-08 1.969139e-08 3.279463e-08 -8.106620e-08 + +$result$normp +[1] 1.0819e-07 + +$result$res + [1] -0.65610597 1.12428453 0.63061704 -0.81707659 -0.08524949 0.06424196 -0.27513350 0.25224162 0.50993550 -0.46603609 1.41617206 0.11645356 -0.77059464 -1.24914732 -0.43550638 0.92262272 + +$result$prevres + [1] -0.65610579 1.12428464 0.63061702 -0.81707688 -0.08524941 0.06424199 -0.27513350 0.25224156 0.50993545 -0.46603610 1.41617183 0.11645340 -0.77059473 -1.24914727 -0.43550618 0.92262296 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 492.2299303 0.000000 0 2.138460e+01 0.000000000 0.000000000 + [2,] 930.5355220 0.000000 0 5.168361e+01 0.000000000 0.000000000 + [3,] 1293.3448695 0.000000 0 7.992362e+01 0.000000000 0.000000000 + [4,] 1883.3448675 0.000000 0 1.298292e+02 0.000000000 0.000000000 + [5,] -0.5777125 2.173913 0 -2.195437e-04 0.001674453 0.000000000 + [6,] -52.8875709 2.173913 0 -9.722303e-01 0.153290381 0.000000000 + [7,] -121.2409402 2.173913 0 -3.493814e+00 0.351407137 0.000000000 + [8,] -323.7507389 2.173913 0 -1.418099e+01 0.938365538 0.000000000 + [9,] -676.9767604 2.173913 0 -3.811225e+01 1.962162818 0.000000000 +[10,] -851.5838381 2.173913 0 -5.137576e+01 2.468247422 0.000000000 +[11,] 0.5372152 0.000000 5 2.041537e-04 0.000000000 0.003851243 +[12,] 49.1801807 0.000000 5 9.040774e-01 0.000000000 0.352567875 +[13,] 112.7420156 0.000000 5 3.248900e+00 0.000000000 0.808236414 +[14,] 301.0559863 0.000000 5 1.318691e+01 0.000000000 2.158240738 +[15,] 629.5210538 0.000000 5 3.544060e+01 0.000000000 4.512974482 +[16,] 791.8882693 0.000000 5 4.777435e+01 0.000000000 5.676969071 + +$result$retres +$result$retres$res + [1] -0.65610579 1.12428464 0.63061702 -0.81707688 -0.08524941 0.06424199 -0.27513350 0.25224156 0.50993545 -0.46603610 1.41617183 0.11645340 -0.77059473 -1.24914727 -0.43550618 0.92262296 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.14866188 13.307562 0.6515260 + [2,] 0.28103769 12.439943 1.0023083 + [3,] 0.39061234 11.721768 1.2926698 + [4,] 0.56880246 10.553873 1.7648552 + [5,] 0.01571314 14.178936 0.2992256 + [6,] 0.07115307 13.815571 0.4461357 + [7,] 0.14359652 13.340761 0.6381033 + [8,] 0.35822394 11.934048 1.2068438 + [9,] 0.73258603 9.480401 2.1988647 + [10,] 0.91764111 8.267511 2.6892416 + + +$result$it +[1] 10 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.01312212 NA NA + [2,] -0.02248569 NA NA + [3,] -0.01261234 NA NA + [4,] 0.01634154 NA NA + [5,] NA 0.03921473 -0.28323437 + [6,] NA -0.02955132 -0.02329068 + [7,] NA 0.12656141 0.15411895 + [8,] NA -0.11603112 0.24982945 + [9,] NA -0.23457031 0.08710124 +[10,] NA 0.21437661 -0.18452459 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/yahJ_res/KEIO_ROBOT3_31_res.txt b/validation/validation_results/Berges_2021/Berges_2021/yahJ_res/KEIO_ROBOT3_31_res.txt new file mode 100644 index 0000000..0b8658b --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yahJ_res/KEIO_ROBOT3_31_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0151008566406257 0.015402095286252 0.0154804331263144 0.00192726195532725 0.0118729555989705 0.0193255614241483 +Glc 14.1829486686973 14.1599459507844 14.1564671633646 0.233115495753844 13.7585781367586 14.6235223522028 +Ace 0.297603161853604 0.294833258122243 0.287583893571709 0.10739005184916 0.0863459755973094 0.518733739088075 +mu 0.794913854170709 0.792681311232777 0.792012308477462 0.0267986836498316 0.743489723148003 0.84362726276875 +qGlc -5.21003133110475 -5.11968363411517 -5.09225508262423 0.425337386631193 -5.98855545155261 -4.39208918406209 +qAce 2.10643947050864 2.10798543168045 2.09514627658087 0.189388731672828 1.77691619948693 2.45808558397739 +res 8.60191372782534 23.7988728700312 23.6518278714707 6.05327815035969 13.7314249805056 36.6880776259407 + + +Goodness of fit (khi2 test) + +khi2 value 8.60191372782569 +data points 16 +fitted parameters 6 +degrees of freedom 10 +khi2 reduced value 0.860191372782569 +p-value, i.e. P(X^2<=value) 0.429746833083044 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/yahO.txt b/validation/validation_results/Berges_2021/Berges_2021/yahO.txt new file mode 100644 index 0000000..1f60c36 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yahO.txt @@ -0,0 +1,14 @@ +time X Glc Ace +0 0.034776 NA NA +1.18888888888889 0.057456 NA NA +2.27694444444444 0.099792 NA NA +3.12833333333333 0.1512 NA NA +3.77138888888889 0.216216 NA NA +4.41555555555556 0.300888 NA NA +4.82277777777778 0.397656 NA NA +0.0666666666666667 NA 14.6214296800077 0.00801209303512972 +1.71666666666667 NA 14.796643473525 0.34393831838864 +2.8 NA 13.3684971401723 0.744427522087894 +3.63333333333333 NA 13.0618154867972 1.23164211503433 +4.26666666666667 NA 12.3017208355208 1.77085778008479 +4.88333333333333 NA 10.443630544426 2.19326809749828 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yahO_res/KEIO_ROBOT1_42.pdf b/validation/validation_results/Berges_2021/Berges_2021/yahO_res/KEIO_ROBOT1_42.pdf new file mode 100644 index 0000000000000000000000000000000000000000..86a45c7c0ca6ffb69fe422c4df19c79fa16cb4b4 GIT binary patch literal 21767 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 HCi8y)Q_sbp literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yahO_res/KEIO_ROBOT1_42_log.txt b/validation/validation_results/Berges_2021/Berges_2021/yahO_res/KEIO_ROBOT1_42_log.txt new file mode 100644 index 0000000..2bbc4a1 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yahO_res/KEIO_ROBOT1_42_log.txt @@ -0,0 +1,195 @@ +$sys +$sys$params + X Glc Ace mu qGlc qAce + 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" + +$sys$nconc +[1] "X" "Glc" "Ace" + +$sys$nflux +[1] "mu" "qGlc" "qAce" + +$sys$metab +[1] "Glc" "Ace" + +$sys$weight + col +row X Glc Ace + [1,] 0.02 0.46 0.2 + [2,] 0.02 0.46 0.2 + [3,] 0.02 0.46 0.2 + [4,] 0.02 0.46 0.2 + [5,] 0.02 0.46 0.2 + [6,] 0.02 0.46 0.2 + [7,] 0.02 0.46 0.2 + [8,] 0.02 0.46 0.2 + [9,] 0.02 0.46 0.2 + [10,] 0.02 0.46 0.2 + [11,] 0.02 0.46 0.2 + [12,] 0.02 0.46 0.2 + [13,] 0.02 0.46 0.2 + +$sys$te_upc + X Glc Ace mu qGlc qAce + 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace mu qGlc qAce + 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$u + X Glc Ace mu qGlc qAce +X <= 50 -1 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 +mu <= 50 0 0 0 -1 0 0 +qGlc <= 50 0 0 0 0 -1 0 +qAce <= 50 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 0.00000000 1.18888889 2.27694444 3.12833333 3.77138889 4.41555556 4.82277778 0.06666667 1.71666667 2.80000000 3.63333333 4.26666667 4.88333333 + +$sys$data_meas + X Glc Ace + [1,] 0.034776 NA NA + [2,] 0.057456 NA NA + [3,] 0.099792 NA NA + [4,] 0.151200 NA NA + [5,] 0.216216 NA NA + [6,] 0.300888 NA NA + [7,] 0.397656 NA NA + [8,] NA 14.62143 0.008012093 + [9,] NA 14.79664 0.343938318 +[10,] NA 13.36850 0.744427522 +[11,] NA 13.06182 1.231642115 +[12,] NA 12.30172 1.770857780 +[13,] NA 10.44363 2.193268097 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.02859629 14.89178128 0.09809659 0.54044826 -6.11104447 3.24020714 + +$result$lastp + X Glc Ace mu qGlc qAce + 7.559748e-10 -2.151930e-09 -1.130921e-08 -6.227155e-09 6.291146e-08 9.087022e-09 + +$result$hci + X Glc Ace mu qGlc qAce +0.007401222 0.394182338 0.172796061 0.059120901 1.108494412 0.497680053 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.5973918 + +$result$laststep + X Glc Ace mu qGlc qAce + 7.559748e-10 -2.151930e-09 -1.130921e-08 -6.227155e-09 6.291146e-08 9.087022e-09 + +$result$normp +[1] 6.490227e-08 + +$result$res + [1] -0.30898557 -0.15430723 -0.09508432 0.19429571 0.16601402 0.50347520 -0.50735528 0.56193254 -0.86786452 0.82206158 -0.32736538 -0.71924847 0.53048424 0.48187158 0.08138087 -0.19577655 -0.41706646 -0.62014704 0.66973761 + +$result$prevres + [1] -0.30898561 -0.15430728 -0.09508438 0.19429565 0.16601398 0.50347522 -0.50735521 0.56193255 -0.86786450 0.82206160 -0.32736537 -0.71924847 0.53048420 0.48187163 0.08138089 -0.19577655 -0.41706648 -0.62014707 0.66973757 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 50.0000000 0.000000 0 0.000000e+00 0.000000000 0.000000000 + [2,] 95.0645320 0.000000 0 3.231986e+00 0.000000000 0.000000000 + [3,] 171.1591260 0.000000 0 1.114454e+01 0.000000000 0.000000000 + [4,] 271.1644153 0.000000 0 2.425802e+01 0.000000000 0.000000000 + [5,] 383.8545083 0.000000 0 4.139783e+01 0.000000000 0.000000000 + [6,] 543.7025722 0.000000 0 6.865251e+01 0.000000000 0.000000000 + [7,] 677.5510493 0.000000 0 9.344346e+01 0.000000000 0.000000000 + [8,] -0.9018071 2.173913 0 -8.647729e-04 0.004219955 0.000000000 + [9,] -37.5813057 2.173913 0 -1.063069e+00 0.175859598 0.000000000 +[10,] -87.0541553 2.173913 0 -4.332377e+00 0.407365004 0.000000000 +[11,] -150.5633153 2.173913 0 -1.023086e+01 0.704552531 0.000000000 +[12,] -222.0503137 2.173913 0 -1.834256e+01 1.039071903 0.000000000 +[13,] -319.6012290 2.173913 0 -3.115264e+01 1.495555902 0.000000000 +[14,] 1.0997622 0.000000 5 1.054599e-03 0.000000000 0.009705897 +[15,] 45.8307566 0.000000 5 1.296422e+00 0.000000000 0.404477075 +[16,] 106.1633629 0.000000 5 5.283374e+00 0.000000000 0.936939508 +[17,] 183.6133822 0.000000 5 1.247663e+01 0.000000000 1.620470821 +[18,] 270.7924506 0.000000 5 2.236892e+01 0.000000000 2.389865378 +[19,] 389.7567112 0.000000 5 3.799093e+01 0.000000000 3.439778575 + +$result$retres +$result$retres$res + [1] -0.30898561 -0.15430728 -0.09508438 0.19429565 0.16601398 0.50347522 -0.50735521 0.56193255 -0.86786450 0.82206160 -0.32736537 -0.71924847 0.53048420 0.48187163 0.08138089 -0.19577655 -0.41706648 -0.62014707 0.66973757 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.02859629 14.89178 0.0980966 + [2,] 0.05436985 14.60035 0.2526196 + [3,] 0.09789031 14.10825 0.5135425 + [4,] 0.15508591 13.46152 0.8564533 + [5,] 0.21953628 12.73275 1.2428595 + [6,] 0.31095750 11.69902 1.7909669 + [7,] 0.38750890 10.83343 2.2499236 + [8,] 0.02964539 14.87992 0.1043864 + [9,] 0.07231607 14.39743 0.3602145 + [10,] 0.12986975 13.74665 0.7052722 + [11,] 0.20375242 12.91123 1.1482288 + [12,] 0.28691601 11.97087 1.6468284 + [13,] 0.40040076 10.68765 2.3272156 + + +$result$it +[1] 8 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.006179712 NA NA + [2,] 0.003086146 NA NA + [3,] 0.001901688 NA NA + [4,] -0.003885913 NA NA + [5,] -0.003320280 NA NA + [6,] -0.010069504 NA NA + [7,] 0.010147104 NA NA + [8,] NA -0.2584890 -0.09637433 + [9,] NA 0.3992177 -0.01627618 +[10,] NA -0.3781483 0.03915531 +[11,] NA 0.1505881 0.08341330 +[12,] NA 0.3308543 0.12402941 +[13,] NA -0.2440227 -0.13394751 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/yahO_res/KEIO_ROBOT1_42_res.txt b/validation/validation_results/Berges_2021/Berges_2021/yahO_res/KEIO_ROBOT1_42_res.txt new file mode 100644 index 0000000..4816fb5 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yahO_res/KEIO_ROBOT1_42_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0285962885346934 0.0284616406906902 0.0282629773471167 0.00452858768110459 0.0200809552230361 0.037374010667912 +Glc 14.8917812844245 14.8963281608141 14.896836215041 0.212146065786688 14.4953605064081 15.2618477520676 +Ace 0.098096585083065 0.12861956064579 0.122855589204063 0.0860404111038642 9.99999999990418e-07 0.318752994400873 +mu 0.540448261165012 0.543609843264663 0.543303909655064 0.0369438262335551 0.48056328651624 0.619733799760845 +qGlc -6.11104446851624 -6.12491152838225 -6.19509239037358 0.589674041328652 -7.27553303798882 -4.99959979224406 +qAce 3.24020714288057 3.20626885553222 3.20116993264235 0.297776877429322 2.60130078505043 3.74852983915958 +res 4.63940095948319 31.8935412362617 30.6491568047722 7.72904596289374 18.9588517682738 48.1885203068471 + + +Goodness of fit (khi2 test) + +khi2 value 4.63940095948322 +data points 19 +fitted parameters 6 +degrees of freedom 13 +khi2 reduced value 0.356876996883325 +p-value, i.e. P(X^2<=value) 0.0177021709225804 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/yaiA.txt b/validation/validation_results/Berges_2021/Berges_2021/yaiA.txt new file mode 100644 index 0000000..20afe40 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yaiA.txt @@ -0,0 +1,14 @@ +time X Glc Ace +0 0.036288 NA NA +1.18888888888889 0.069552 NA NA +2.27694444444444 0.110376 NA NA +3.12833333333333 0.161784 NA NA +3.77138888888889 0.217728 NA NA +4.41555555555556 0.337176 NA NA +4.82277777777778 0.443016 NA NA +0.0666666666666667 NA 15.8709754542477 0.00975994940138714 +1.71666666666667 NA 15.2773787108012 0.356493538890212 +2.8 NA 13.1884963277773 0.707464102619191 +3.63333333333333 NA 12.658574644048 1.15277135482524 +4.26666666666667 NA 11.7714167817144 1.63608002897089 +4.88333333333333 NA 10.1336156409488 2.07903294817693 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yaiA_res/KEIO_ROBOT1_43.pdf b/validation/validation_results/Berges_2021/Berges_2021/yaiA_res/KEIO_ROBOT1_43.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fff6b78038b1d75cbc3798514fa08fe50e4831bb GIT binary patch literal 21909 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 q= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 0.00000000 1.18888889 2.27694444 3.12833333 3.77138889 4.41555556 4.82277778 0.06666667 1.71666667 2.80000000 3.63333333 4.26666667 4.88333333 + +$sys$data_meas + X Glc Ace + [1,] 0.036288 NA NA + [2,] 0.069552 NA NA + [3,] 0.110376 NA NA + [4,] 0.161784 NA NA + [5,] 0.217728 NA NA + [6,] 0.337176 NA NA + [7,] 0.443016 NA NA + [8,] NA 15.87098 0.009759949 + [9,] NA 15.27738 0.356493539 +[10,] NA 13.18850 0.707464103 +[11,] NA 12.65857 1.152771355 +[12,] NA 11.77142 1.636080029 +[13,] NA 10.13362 2.079032948 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.03138964 15.54347834 0.10301033 0.54050955 -7.43091751 2.75471100 + +$result$lastp + X Glc Ace mu qGlc qAce + 1.205894e-08 3.831700e-07 -1.150700e-07 -9.259361e-08 -2.511613e-07 9.376369e-09 + +$result$hci + X Glc Ace mu qGlc qAce +0.01006697 0.54122819 0.23372748 0.07325509 1.41915574 0.60091597 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.8137286 + +$result$laststep + X Glc Ace mu qGlc qAce + 1.205894e-08 3.831700e-07 -1.150700e-07 -9.259361e-08 -2.511613e-07 9.376369e-09 + +$result$normp +[1] 4.816111e-07 + +$result$res + [1] -0.24491816 -0.49334145 -0.14542748 0.42418446 1.16543868 0.21244504 -0.87643193 -0.74637160 -0.85605863 1.79638253 0.52380858 -0.27685392 -0.44090695 0.49560062 -0.04428522 -0.18885154 -0.34811624 -0.43760063 0.52325301 + +$result$prevres + [1] -0.24491877 -0.49334227 -0.14542841 0.42418365 1.16543826 0.21244546 -0.87643060 -0.74637242 -0.85605899 1.79638255 0.52380888 -0.27685348 -0.44090654 0.49560119 -0.04428501 -0.18885161 -0.34811649 -0.43760092 0.52325283 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 50.0000000 0.000000 0 0.000000e+00 0.000000000 0.00000000 + [2,] 95.0714690 0.000000 0 3.547951e+00 0.000000000 0.00000000 + [3,] 171.1830468 0.000000 0 1.223487e+01 0.000000000 0.00000000 + [4,] 271.2164844 0.000000 0 2.663270e+01 0.000000000 0.00000000 + [5,] 383.9433692 0.000000 0 4.545217e+01 0.000000000 0.00000000 + [6,] 543.8499385 0.000000 0 7.537903e+01 0.000000000 0.00000000 + [7,] 677.7516333 0.000000 0 1.026016e+02 0.000000000 0.00000000 + [8,] -1.0965830 2.173913 0 -1.154268e-03 0.004632178 0.00000000 + [9,] -45.7009480 2.173913 0 -1.419049e+00 0.193049600 0.00000000 +[10,] -105.8675520 2.173913 0 -5.783424e+00 0.447204916 0.00000000 +[11,] -183.1089128 2.173913 0 -1.365807e+01 0.773487290 0.00000000 +[12,] -270.0569549 2.173913 0 -2.448788e+01 1.140772555 0.00000000 +[13,] -388.7105023 2.173913 0 -4.159110e+01 1.641987976 0.00000000 +[14,] 0.9349814 0.000000 5 9.841657e-04 0.000000000 0.01065401 +[15,] 38.9660750 0.000000 5 1.209926e+00 0.000000000 0.44401408 +[16,] 90.2660262 0.000000 5 4.931130e+00 0.000000000 1.02857131 +[17,] 156.1244556 0.000000 5 1.164530e+01 0.000000000 1.77902077 +[18,] 230.2591087 0.000000 5 2.087914e+01 0.000000000 2.62377688 +[19,] 331.4268794 0.000000 5 3.546189e+01 0.000000000 3.77657234 + +$result$retres +$result$retres$res + [1] -0.24491877 -0.49334227 -0.14542841 0.42418365 1.16543826 0.21244546 -0.87643060 -0.74637242 -0.85605899 1.79638255 0.52380888 -0.27685348 -0.44090654 0.49560119 -0.04428501 -0.18885161 -0.34811649 -0.43760092 0.52325283 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.03138962 15.543478 0.1030104 + [2,] 0.05968515 15.154471 0.2472188 + [3,] 0.10746743 14.497562 0.4907415 + [4,] 0.17026767 13.634185 0.8108033 + [5,] 0.24103677 12.661253 1.1714785 + [6,] 0.34142491 11.281118 1.6831073 + [7,] 0.42548739 10.125429 2.1115323 + [8,] 0.03254134 15.527644 0.1088802 + [9,] 0.07938840 14.883592 0.3476365 + [10,] 0.14258017 14.014832 0.6696938 + [11,] 0.22370520 12.899527 1.0831481 + [12,] 0.31502496 11.644064 1.5485598 + [13,] 0.43964438 9.930799 2.1836835 + + +$result$it +[1] 8 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.004898375 NA NA + [2,] 0.009866845 NA NA + [3,] 0.002908568 NA NA + [4,] -0.008483673 NA NA + [5,] -0.023308765 NA NA + [6,] -0.004248909 NA NA + [7,] 0.017528612 NA NA + [8,] NA 0.3433313 -0.099120238 + [9,] NA 0.3937871 0.008857001 +[10,] NA -0.8263360 0.037770322 +[11,] NA -0.2409521 0.069623298 +[12,] NA 0.1273526 0.087520184 +[13,] NA 0.2028170 -0.104650567 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/yaiA_res/KEIO_ROBOT1_43_res.txt b/validation/validation_results/Berges_2021/Berges_2021/yaiA_res/KEIO_ROBOT1_43_res.txt new file mode 100644 index 0000000..d6aa1de --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yaiA_res/KEIO_ROBOT1_43_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0313896367495382 0.0320245445307375 0.0314917450912312 0.00417557778078478 0.0250932192702204 0.040548479730696 +Glc 15.5434783358918 15.5230375781723 15.5385850970755 0.209075509155331 15.1199976808832 15.907214628708 +Ace 0.103010328924012 0.129844836798412 0.125121409749352 0.0735368135406507 1.00000000000219e-06 0.281947907381757 +mu 0.540509549962255 0.537397961643393 0.539689105929648 0.0287930964905528 0.483378590812737 0.591785468276953 +qGlc -7.43091750569651 -7.37920031833386 -7.3594864830016 0.631161612278904 -8.36283234214532 -6.19043957504172 +qAce 2.75471100316149 2.70457546897816 2.71764479996678 0.224181308044788 2.31979522654242 3.16907183906239 +res 8.60800402178097 32.7739507059649 31.3599995051396 9.90663266078334 19.1229697710635 56.2413401518916 + + +Goodness of fit (khi2 test) + +khi2 value 8.60800402178796 +data points 19 +fitted parameters 6 +degrees of freedom 13 +khi2 reduced value 0.662154155522151 +p-value, i.e. P(X^2<=value) 0.198137070020915 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/yaiL.txt b/validation/validation_results/Berges_2021/Berges_2021/yaiL.txt new file mode 100644 index 0000000..61f251e --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yaiL.txt @@ -0,0 +1,14 @@ +time X Glc Ace +0 0.034776 NA NA +1.195 0.065016 NA NA +1.61361111111111 0.080136 NA NA +2.36138888888889 0.111888 NA NA +3.28638888888889 0.190512 NA NA +3.81944444444444 0.29484 NA NA +4.41083333333333 0.418824 NA NA +0.283333333333333 NA 14.3873428882465 0.0395895259152495 +1.91666666666667 NA 14.1321813735476 0.419289197674054 +2.7 NA 13.1621006638913 0.631246058186351 +3.61666666666667 NA 12.3106505317186 1.10241934304351 +4.05 NA 11.9161138049268 1.34894298363053 +4.75 NA 10.3530047360213 1.97140838376132 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yaiL_res/KEIO_ROBOT4_22.pdf b/validation/validation_results/Berges_2021/Berges_2021/yaiL_res/KEIO_ROBOT4_22.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ceae8919de3baedbc264186864bdbf255f68b80e GIT binary patch literal 21781 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 Q4wHkznZ(3&Omvz459j7GX#fBK literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yaiL_res/KEIO_ROBOT4_22_log.txt b/validation/validation_results/Berges_2021/Berges_2021/yaiL_res/KEIO_ROBOT4_22_log.txt new file mode 100644 index 0000000..5111dc2 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yaiL_res/KEIO_ROBOT4_22_log.txt @@ -0,0 +1,195 @@ +$sys +$sys$params + X Glc Ace mu qGlc qAce + 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "mu" "qGlc" "qAce" + +$sys$nconc +[1] "X" "Glc" "Ace" + +$sys$nflux +[1] "mu" "qGlc" "qAce" + +$sys$metab +[1] "Glc" "Ace" + +$sys$weight + col +row X Glc Ace + [1,] 0.02 0.46 0.2 + [2,] 0.02 0.46 0.2 + [3,] 0.02 0.46 0.2 + [4,] 0.02 0.46 0.2 + [5,] 0.02 0.46 0.2 + [6,] 0.02 0.46 0.2 + [7,] 0.02 0.46 0.2 + [8,] 0.02 0.46 0.2 + [9,] 0.02 0.46 0.2 + [10,] 0.02 0.46 0.2 + [11,] 0.02 0.46 0.2 + [12,] 0.02 0.46 0.2 + [13,] 0.02 0.46 0.2 + +$sys$te_upc + X Glc Ace mu qGlc qAce + 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace mu qGlc qAce + 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$u + X Glc Ace mu qGlc qAce +X <= 50 -1 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 +mu <= 50 0 0 0 -1 0 0 +qGlc <= 50 0 0 0 0 -1 0 +qAce <= 50 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 0.0000000 1.1950000 1.6136111 2.3613889 3.2863889 3.8194444 4.4108333 0.2833333 1.9166667 2.7000000 3.6166667 4.0500000 4.7500000 + +$sys$data_meas + X Glc Ace + [1,] 0.034776 NA NA + [2,] 0.065016 NA NA + [3,] 0.080136 NA NA + [4,] 0.111888 NA NA + [5,] 0.190512 NA NA + [6,] 0.294840 NA NA + [7,] 0.418824 NA NA + [8,] NA 14.38734 0.03958953 + [9,] NA 14.13218 0.41928920 +[10,] NA 13.16210 0.63124606 +[11,] NA 12.31065 1.10241934 +[12,] NA 11.91611 1.34894298 +[13,] NA 10.35300 1.97140838 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.02809684 14.41279761 0.13034975 0.61005902 -5.20076071 2.40849728 + +$result$lastp + X Glc Ace mu qGlc qAce +-1.617128e-08 -2.435282e-07 1.437462e-07 1.487478e-07 -1.177610e-07 -4.007403e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.005354867 0.304453045 0.132700355 0.047751933 0.742848729 0.324768074 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.4611681 + +$result$laststep + X Glc Ace mu qGlc qAce +-1.617128e-08 -2.435282e-07 1.437462e-07 1.487478e-07 -1.177610e-07 -4.007403e-08 + +$result$normp +[1] 3.432637e-07 + +$result$res + [1] -0.33395823 -0.33849400 -0.24716195 0.33848893 0.90575171 -0.30186897 -0.22754111 -0.04291500 -0.54576708 0.53598759 0.36111432 -0.21231681 -0.09610301 0.55845269 -0.21360465 -0.17936507 -0.37741356 -0.08568746 0.29761806 + +$result$prevres + [1] -0.33395742 -0.33849284 -0.24716069 0.33849026 0.90575261 -0.30186886 -0.22754278 -0.04291452 -0.54576700 0.53598746 0.36111404 -0.21231706 -0.09610292 0.55845203 -0.21360485 -0.17936500 -0.37741324 -0.08568711 0.29761818 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 50.000000 0.000000 0 0.00000000 0.00000000 0.0000000 + [2,] 103.652437 0.000000 0 3.48020705 0.00000000 0.0000000 + [3,] 133.809986 0.000000 0 6.06659577 0.00000000 0.0000000 + [4,] 211.158543 0.000000 0 14.00986115 0.00000000 0.0000000 + [5,] 371.264110 0.000000 0 34.28148132 0.00000000 0.0000000 + [6,] 513.941253 0.000000 0 55.15327865 0.00000000 0.0000000 + [7,] 737.223425 0.000000 0 91.36448972 0.00000000 0.0000000 + [8,] -3.496883 2.173913 0 -0.01431973 0.01889174 0.0000000 + [9,] -41.136382 2.173913 0 -1.31873812 0.22223727 0.0000000 +[10,] -77.692672 2.173913 0 -3.72158524 0.41973081 0.0000000 +[11,] -149.795126 2.173913 0 -10.20599415 0.80926076 0.0000000 +[12,] -200.730358 2.173913 0 -15.70559877 1.08443582 0.0000000 +[13,] -317.535226 2.173913 0 -30.22724044 1.71546834 0.0000000 +[14,] 3.724674 0.000000 5 0.01525253 0.00000000 0.0434510 +[15,] 43.816051 0.000000 5 1.40464216 0.00000000 0.5111457 +[16,] 82.753658 0.000000 5 3.96401337 0.00000000 0.9653809 +[17,] 159.552945 0.000000 5 10.87082378 0.00000000 1.8612997 +[18,] 213.806153 0.000000 5 16.72867866 0.00000000 2.4942024 +[19,] 338.219818 0.000000 5 32.19627595 0.00000000 3.9455772 + +$result$retres +$result$retres$res + [1] -0.33395742 -0.33849284 -0.24716069 0.33849026 0.90575261 -0.30186886 -0.22754278 -0.04291452 -0.54576700 0.53598746 0.36111404 -0.21231706 -0.09610292 0.55845203 -0.21360485 -0.17936500 -0.37741324 -0.08568711 0.29761818 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.02809685 14.41280 0.1303496 + [2,] 0.05824614 14.15577 0.2493783 + [3,] 0.07519279 14.01130 0.3162832 + [4,] 0.11865781 13.64076 0.4878820 + [5,] 0.20862705 12.87378 0.8430784 + [6,] 0.28880262 12.19028 1.1596095 + [7,] 0.41427314 11.12064 1.6549641 + [8,] 0.03339838 14.36760 0.1512799 + [9,] 0.09046265 13.88113 0.3765682 + [10,] 0.14588468 13.40865 0.5953731 + [11,] 0.25519733 12.47676 1.0269367 + [12,] 0.33241891 11.81845 1.3318056 + [13,] 0.50950372 10.30880 2.0309320 + + +$result$it +[1] 6 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.006679148 NA NA + [2,] 0.006769857 NA NA + [3,] 0.004943214 NA NA + [4,] -0.006769805 NA NA + [5,] -0.018115052 NA NA + [6,] 0.006037377 NA NA + [7,] 0.004550856 NA NA + [8,] NA 0.01974068 -0.11169041 + [9,] NA 0.25105282 0.04272097 +[10,] NA -0.24655423 0.03587300 +[11,] NA -0.16611246 0.07548265 +[12,] NA 0.09766585 0.01713742 +[13,] NA 0.04420734 -0.05952364 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/yaiL_res/KEIO_ROBOT4_22_res.txt b/validation/validation_results/Berges_2021/Berges_2021/yaiL_res/KEIO_ROBOT4_22_res.txt new file mode 100644 index 0000000..135f78a --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yaiL_res/KEIO_ROBOT4_22_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0280968354873362 0.0280301860909688 0.027956119394614 0.0039497890765185 0.0211161892133745 0.0366031985116634 +Glc 14.4127976118337 14.4281656473053 14.4099175150017 0.178883854074117 14.0852348532238 14.7630165887453 +Ace 0.130349753370702 0.123054485253773 0.123102284941996 0.0735928518434984 0.000781238089281573 0.265527785059301 +mu 0.610059018014423 0.612648955631553 0.61011731203898 0.0343608117298973 0.546383717179914 0.681148995244498 +qGlc -5.20076070800957 -5.32488205729423 -5.3118654178553 0.579876125922503 -6.42792743682515 -4.19698368545594 +qAce 2.40849727527431 2.39306752245021 2.38064912609363 0.211140479514392 2.01626864364111 2.7835887168545 +res 2.76478795339491 31.4079624157449 29.9954412598781 7.68477098859129 19.7719262726343 47.5591095577864 + + +Goodness of fit (khi2 test) + +khi2 value 2.76478795340543 +data points 19 +fitted parameters 6 +degrees of freedom 13 +khi2 reduced value 0.212675996415802 +p-value, i.e. P(X^2<=value) 0.00134190594021847 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/yajD.txt b/validation/validation_results/Berges_2021/Berges_2021/yajD.txt new file mode 100644 index 0000000..7411700 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yajD.txt @@ -0,0 +1,14 @@ +time X Glc Ace +0 0.033264 NA NA +1.18888888888889 0.065016 NA NA +2.27694444444444 0.116424 NA NA +3.12833333333333 0.182952 NA NA +3.77138888888889 0.261576 NA NA +4.41555555555556 0.409752 NA NA +4.82277777777778 0.577584 NA NA +0.0666666666666667 NA 15.6566618526162 0.0122465082756402 +1.71666666666667 NA 15.5441605753139 0.377292507322046 +2.8 NA 13.4906825774061 0.834703868075398 +3.63333333333333 NA 12.6014776820772 1.36998975661077 +4.26666666666667 NA 11.6135826720544 1.9474453207621 +4.88333333333333 NA 9.75544126279989 2.42512764218372 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yajD_res/KEIO_ROBOT1_37.pdf b/validation/validation_results/Berges_2021/Berges_2021/yajD_res/KEIO_ROBOT1_37.pdf new file mode 100644 index 0000000000000000000000000000000000000000..63cd86c99c4342e9dcde73d451db35e312a40a14 GIT binary patch literal 21623 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 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 0.00000000 1.18888889 2.27694444 3.12833333 3.77138889 4.41555556 4.82277778 0.06666667 1.71666667 2.80000000 3.63333333 4.26666667 4.88333333 + +$sys$data_meas + X Glc Ace + [1,] 0.033264 NA NA + [2,] 0.065016 NA NA + [3,] 0.116424 NA NA + [4,] 0.182952 NA NA + [5,] 0.261576 NA NA + [6,] 0.409752 NA NA + [7,] 0.577584 NA NA + [8,] NA 15.656662 0.01224651 + [9,] NA 15.544161 0.37729251 +[10,] NA 13.490683 0.83470387 +[11,] NA 12.601478 1.36998976 +[12,] NA 11.613583 1.94744532 +[13,] NA 9.755441 2.42512764 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.02587617 15.51500058 0.18495348 0.63504324 -6.91180279 2.80586522 + +$result$lastp + X Glc Ace mu qGlc qAce +-5.179622e-09 -1.575888e-07 7.705069e-08 4.686116e-08 1.905230e-08 -4.532197e-08 + +$result$hci + X Glc Ace mu qGlc qAce +0.009089977 0.604363382 0.262030554 0.079016722 1.409788645 0.606593338 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.9465539 + +$result$laststep + X Glc Ace mu qGlc qAce +-5.179622e-09 -1.575888e-07 7.705069e-08 4.686116e-08 1.905230e-08 -4.532197e-08 + +$result$normp +[1] 1.881779e-07 + +$result$res + [1] -0.3693913 -0.4980891 -0.3277937 0.2854291 1.1118791 0.8753696 -1.2115808 -0.3344362 -1.2724316 1.3891916 0.7943952 -0.1036740 -0.4730450 0.8882561 0.1671753 -0.4369410 -0.7531384 -0.7967034 0.9313514 + +$result$prevres + [1] -0.3693910 -0.4980887 -0.3277932 0.2854296 1.1118794 0.8753695 -1.2115815 -0.3344359 -1.2724315 1.3891916 0.7943951 -0.1036742 -0.4730452 0.8882558 0.1671751 -0.4369410 -0.7531383 -0.7967032 0.9313516 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 50.0000000 0.000000 0 0.000000e+00 0.000000000 0.00000000 + [2,] 106.3801284 0.000000 0 3.272668e+00 0.000000000 0.00000000 + [3,] 212.2959020 0.000000 0 1.250818e+01 0.000000000 0.00000000 + [4,] 364.5449197 0.000000 0 2.950966e+01 0.000000000 0.00000000 + [5,] 548.4070651 0.000000 0 5.351857e+01 0.000000000 0.00000000 + [6,] 825.5843880 0.000000 0 9.432938e+01 0.000000000 0.00000000 + [7,] 1069.2312199 0.000000 0 1.334348e+02 0.000000000 0.00000000 + [8,] -1.0232173 2.173913 0 -8.887922e-04 0.003830687 0.00000000 + [9,] -46.7240752 2.173913 0 -1.222681e+00 0.174924050 0.00000000 +[10,] -116.3811708 2.173913 0 -5.404309e+00 0.435703984 0.00000000 +[11,] -214.0714303 2.173913 0 -1.362803e+01 0.801433551 0.00000000 +[12,] -331.7730085 2.173913 0 -2.572289e+01 1.242080832 0.00000000 +[13,] -502.1539931 2.173913 0 -4.598169e+01 1.879947536 0.00000000 +[14,] 0.9553691 0.000000 5 8.298577e-04 0.000000000 0.00881058 +[15,] 43.6258623 0.000000 5 1.141607e+00 0.000000000 0.40232531 +[16,] 108.6640862 0.000000 5 5.045956e+00 0.000000000 1.00211916 +[17,] 199.8766312 0.000000 5 1.272437e+01 0.000000000 1.84329717 +[18,] 309.7735703 0.000000 5 2.401724e+01 0.000000000 2.85678591 +[19,] 468.8568125 0.000000 5 4.293270e+01 0.000000000 4.32387933 + +$result$retres +$result$retres$res + [1] -0.3693910 -0.4980887 -0.3277932 0.2854296 1.1118794 0.8753695 -1.2115815 -0.3344359 -1.2724315 1.3891916 0.7943951 -0.1036742 -0.4730452 0.8882558 0.1671751 -0.4369410 -0.7531383 -0.7967032 0.9313516 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.02587618 15.515001 0.1849534 + [2,] 0.05505423 15.197427 0.3138732 + [3,] 0.10986814 14.600833 0.5560622 + [4,] 0.18866059 13.743257 0.9041976 + [5,] 0.28381359 12.707613 1.3246202 + [6,] 0.42725939 11.146350 1.9584189 + [7,] 0.55335237 9.773956 2.5155463 + [8,] 0.02699520 15.502821 0.1898977 + [9,] 0.07697497 14.958842 0.4107275 + [10,] 0.15315397 14.129711 0.7473157 + [11,] 0.25999084 12.966899 1.2193621 + [12,] 0.38871267 11.565893 1.7881047 + [13,] 0.57504620 9.537840 2.6113980 + + +$result$it +[1] 8 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.007387821 NA NA + [2,] 0.009961775 NA NA + [3,] 0.006555864 NA NA + [4,] -0.005708593 NA NA + [5,] -0.022237589 NA NA + [6,] -0.017507390 NA NA + [7,] 0.024231629 NA NA + [8,] NA 0.15384051 -0.17765115 + [9,] NA 0.58531848 -0.03343502 +[10,] NA -0.63902815 0.08738820 +[11,] NA -0.36542175 0.15062766 +[12,] NA 0.04769012 0.15934064 +[13,] NA 0.21760079 -0.18627033 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/yajD_res/KEIO_ROBOT1_37_res.txt b/validation/validation_results/Berges_2021/Berges_2021/yajD_res/KEIO_ROBOT1_37_res.txt new file mode 100644 index 0000000..5ac2f2d --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yajD_res/KEIO_ROBOT1_37_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0258761739098494 0.0259741296628243 0.0258149806686988 0.00269916805965352 0.0217081446740415 0.0303503148743752 +Glc 15.5150005802499 15.5153454871347 15.4773357467519 0.199081431095896 15.1494522066606 15.854165979679 +Ace 0.184953477092617 0.184312382838627 0.17956087396711 0.0780871865288827 0.0502712640765389 0.342620419292339 +mu 0.635043235421176 0.635377729153189 0.634175087994824 0.0230541916199617 0.598583557571946 0.676148620207254 +qGlc -6.91180278892531 -6.91560120328563 -6.97406083317756 0.517552687858669 -7.78321215627917 -5.92390384056857 +qAce 2.80586522443663 2.81024152280803 2.83107962972695 0.195377013882443 2.45418649404795 3.15189050919048 +res 11.6475365709476 32.0486793442351 31.5958768989267 7.42097348543 19.31066318462 45.5628318195332 + + +Goodness of fit (khi2 test) + +khi2 value 11.6475365709497 +data points 19 +fitted parameters 6 +degrees of freedom 13 +khi2 reduced value 0.895964351611515 +p-value, i.e. P(X^2<=value) 0.443264199057056 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/yajG.txt b/validation/validation_results/Berges_2021/Berges_2021/yajG.txt new file mode 100644 index 0000000..251650a --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yajG.txt @@ -0,0 +1,9 @@ +time X Glc Ace Lac +2.50138888888889 0.119448 NA NA NA +3.34194444444444 0.189 NA NA NA +3.9975 0.276696 NA NA NA +4.52333333333333 0.412776 NA NA NA +1.95 NA 13.5490264644724 0.352071366657538 0 +3.25 NA 12.7981633331333 0.885312795453896 0 +4.08333333333333 NA 11.8165902868022 1.28446765468799 0 +4.76666666666667 NA 10.6465012985279 1.71691760299109 0 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yajG_res/KEIO_ROBOT2_22.pdf b/validation/validation_results/Berges_2021/Berges_2021/yajG_res/KEIO_ROBOT2_22.pdf new file mode 100644 index 0000000000000000000000000000000000000000..466d2234496afe0bf6a2d4d1d42ce24b1bd7e418 GIT binary patch literal 23727 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 1e-06 1 0 0 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 0 0 +Lac >= 1e-06 0 0 0 1 0 0 0 0 +mu >= 0 0 0 0 0 1 0 0 0 +qGlc >= -50 0 0 0 0 0 1 0 0 +qAce >= -50 0 0 0 0 0 0 1 0 +qLac >= -50 0 0 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 Lac <= 50 mu <= 50 qGlc <= 50 qAce <= 50 qLac <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 Lac >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 qLac >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 -5e+01 + +$sys$times +[1] 2.501389 3.341944 3.997500 4.523333 1.950000 3.250000 4.083333 4.766667 + +$sys$data_meas + X Glc Ace Lac +[1,] 0.119448 NA NA NA +[2,] 0.189000 NA NA NA +[3,] 0.276696 NA NA NA +[4,] 0.412776 NA NA NA +[5,] NA 13.54903 0.3520714 0 +[6,] NA 12.79816 0.8853128 0 +[7,] NA 11.81659 1.2844677 0 +[8,] NA 10.64650 1.7169176 0 + +$sys$nb_par +[1] 8 + +$sys$nb_conc +[1] 4 + + +$result +$result$par + X Glc Ace Lac mu qGlc qAce qLac + 2.275370e-02 1.395222e+01 2.609959e-01 1.000000e-06 6.363794e-01 -4.707303e+00 2.148831e+00 -1.940109e-06 + +$result$lastp + X Glc Ace Lac mu qGlc qAce qLac +-3.187643e-09 -6.110955e-08 6.273406e-08 2.117582e-22 3.422537e-08 -2.623844e-08 -8.175499e-08 3.156441e-13 + +$result$hci + X Glc Ace Lac mu qGlc qAce qLac +0.006320028 0.434886097 0.189622368 0.183706269 0.066466713 0.985855036 0.429535521 0.419708029 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.4207027 + +$result$laststep + X Glc Ace Lac mu qGlc qAce qLac +-3.187643e-09 -6.110955e-08 6.273406e-08 2.117582e-22 3.422537e-08 -2.623844e-08 -8.175499e-08 3.156441e-13 + +$result$normp +[1] 1.273727e-07 + +$result$res + [1] -3.832457e-01 9.235447e-02 6.474292e-01 -4.010061e-01 -2.316101e-02 -1.978020e-02 8.946460e-02 -4.652339e-02 4.892109e-01 -4.667424e-01 -3.368295e-01 3.143610e-01 4.147163e-06 2.603031e-06 6.838187e-07 -1.856343e-06 + +$result$prevres + [1] -3.832454e-01 9.235472e-02 6.474293e-01 -4.010064e-01 -2.316096e-02 -1.978022e-02 8.946456e-02 -4.652338e-02 4.892107e-01 -4.667424e-01 -3.368294e-01 3.143612e-01 4.147162e-06 2.603031e-06 6.838178e-07 -1.856344e-06 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] + [1,] 2.456371e+02 0.000000 0 0 1.398065e+01 0.0000000 0.0000000 0.0000000 + [2,] 4.193759e+02 0.000000 0 0 3.189002e+01 0.0000000 0.0000000 0.0000000 + [3,] 6.364779e+02 0.000000 0 0 5.789271e+01 0.0000000 0.0000000 0.0000000 + [4,] 8.894285e+02 0.000000 0 0 9.154229e+01 0.0000000 0.0000000 0.0000000 + [5,] -3.953962e+01 2.173913 0 0 -1.054111e+00 0.1911228 0.0000000 0.0000000 + [6,] -1.111293e+02 2.173913 0 0 -5.433681e+00 0.5371660 0.0000000 0.0000000 + [7,] -2.001086e+02 2.173913 0 0 -1.293146e+01 0.9672658 0.0000000 0.0000000 + [8,] -3.178767e+02 2.173913 0 0 -2.485511e+01 1.5365216 0.0000000 0.0000000 + [9,] 4.151361e+01 0.000000 5 0 1.106736e+00 0.0000000 0.4395824 0.0000000 +[10,] 1.166774e+02 0.000000 5 0 5.704955e+00 0.0000000 1.2354819 0.0000000 +[11,] 2.100990e+02 0.000000 5 0 1.357706e+01 0.0000000 2.2247113 0.0000000 +[12,] 3.337465e+02 0.000000 5 0 2.609598e+01 0.0000000 3.5339997 0.0000000 +[13,] -3.748127e-05 0.000000 0 5 -9.992358e-07 0.0000000 0.0000000 0.4395824 +[14,] -1.053441e-04 0.000000 0 5 -5.150815e-06 0.0000000 0.0000000 1.2354819 +[15,] -1.896914e-04 0.000000 0 5 -1.225828e-05 0.0000000 0.0000000 2.2247113 +[16,] -3.013287e-04 0.000000 0 5 -2.356120e-05 0.0000000 0.0000000 3.5339997 + +$result$retres +$result$retres$res + [1] -3.832454e-01 9.235472e-02 6.474293e-01 -4.010064e-01 -2.316096e-02 -1.978022e-02 8.946456e-02 -4.652338e-02 4.892107e-01 -4.667424e-01 -3.368294e-01 3.143612e-01 4.147162e-06 2.603031e-06 6.838178e-07 -1.856344e-06 + +$result$retres$sim + col +row X Glc Ace Lac + [1,] 0.11178309 13.29367 0.5616170 7.285790e-07 + [2,] 0.19084709 12.70883 0.8285886 4.875392e-07 + [3,] 0.28964459 11.97803 1.1621934 1.863385e-07 + [4,] 0.40475587 11.12655 1.5508841 -1.645975e-07 + [5,] 0.07870194 13.53837 0.4499135 8.294325e-07 + [6,] 0.18000075 12.78906 0.7919643 5.206061e-07 + [7,] 0.30590579 11.85774 1.2171018 1.367636e-07 + [8,] 0.47254663 10.62510 1.7797898 -3.712689e-07 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace Lac +[1,] 0.007664908 NA NA NA +[2,] -0.001847094 NA NA NA +[3,] -0.012948585 NA NA NA +[4,] 0.008020127 NA NA NA +[5,] NA 0.010654042 -0.09784215 -8.294325e-07 +[6,] NA 0.009098902 0.09334849 -5.206061e-07 +[7,] NA -0.041153699 0.06736589 -1.367636e-07 +[8,] NA 0.021400756 -0.06287223 3.712689e-07 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/yajG_res/KEIO_ROBOT2_22_res.txt b/validation/validation_results/Berges_2021/Berges_2021/yajG_res/KEIO_ROBOT2_22_res.txt new file mode 100644 index 0000000..4d90a7b --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yajG_res/KEIO_ROBOT2_22_res.txt @@ -0,0 +1,23 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0227537013300903 0.0235097040603341 0.0239743677346592 0.00451467963642033 0.0151135342730753 0.0321365529505838 +Glc 13.9522218374668 13.9418955260667 13.9196633161688 0.39153856391864 13.2010388737543 14.6550149428604 +Ace 0.260995878583757 0.286803176782473 0.288382426397598 0.141310355467626 9.99999999995709e-07 0.537789209056774 +Lac 1e-06 0.0707500738441419 0.0532342972035173 0.0701895423016905 9.99999999997354e-07 0.274120885754308 +mu 0.636379430067916 0.632462263191761 0.627121792854827 0.0463585611045007 0.558434355109882 0.728095242274543 +qGlc -4.70730282429701 -4.66227564459371 -4.62173548734797 0.847770039505886 -6.39518805204724 -3.15906147933122 +qAce 2.14883146541117 2.08673608501811 2.0807522458446 0.354441528606435 1.45553202050132 2.66072911086173 +qLac -1.94010863254893e-06 0.0203877628140947 0.0425619382057281 0.185677026911221 -0.348374588277809 0.377767676613681 +res 1.41592585505544 19.6584248757283 18.6034110744607 5.59118309994982 11.0270881018555 31.5138872278503 + + +Goodness of fit (khi2 test) + +khi2 value 1.41592585505576 +data points 16 +fitted parameters 8 +degrees of freedom 8 +khi2 reduced value 0.17699073188197 +p-value, i.e. P(X^2<=value) 0.00598247852519262 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/yajO.txt b/validation/validation_results/Berges_2021/Berges_2021/yajO.txt new file mode 100644 index 0000000..b8286e2 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yajO.txt @@ -0,0 +1,15 @@ +time X Glc Ace +1.8288888888888888 5.8968E-2 NA NA +2.2613888888888889 7.2576000000000002E-2 NA NA +2.7741666666666664 9.6768000000000007E-2 NA NA +3.2088888888888891 0.111888 NA NA +3.7063888888888892 0.16783200000000001 NA NA +4.2258333333333331 0.20412000000000002 NA NA +4.6355555555555554 0.29030400000000001 NA NA +4.9675000000000002 0.334152 NA NA +2.8 NA 12.3137192766246 0.621801065046665 +3.73333333333333 NA 11.7566393214133 1.07634678352239 +4.28333333333333 NA 11.0555390236118 1.40381688184894 +4.75 NA 10.4071886475874 1.79274589751825 +5.11666666666667 NA 9.45577446308081 2.08506798005448 +5.43333333333333 NA 8.62526786083256 2.40438796152585 diff --git a/validation/validation_results/Berges_2021/Berges_2021/yajO_res/KEIO_ROBOT5_15.pdf b/validation/validation_results/Berges_2021/Berges_2021/yajO_res/KEIO_ROBOT5_15.pdf new file mode 100644 index 0000000000000000000000000000000000000000..68c533f6dd5c96650c45ed303420750332bdc2a8 GIT binary patch literal 22248 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 1e-06 1 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 +mu >= 0 0 0 0 1 0 0 +qGlc >= -50 0 0 0 0 1 0 +qAce >= -50 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 mu <= 50 qGlc <= 50 qAce <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 + +$sys$times + [1] 1.828889 2.261389 2.774167 3.208889 3.706389 4.225833 4.635556 4.967500 2.800000 3.733333 4.283333 4.750000 5.116667 5.433333 + +$sys$data_meas + X Glc Ace + [1,] 0.058968 NA NA + [2,] 0.072576 NA NA + [3,] 0.096768 NA NA + [4,] 0.111888 NA NA + [5,] 0.167832 NA NA + [6,] 0.204120 NA NA + [7,] 0.290304 NA NA + [8,] 0.334152 NA NA + [9,] NA 12.313719 0.6218011 +[10,] NA 11.756639 1.0763468 +[11,] NA 11.055539 1.4038169 +[12,] NA 10.407189 1.7927459 +[13,] NA 9.455774 2.0850680 +[14,] NA 8.625268 2.4043880 + +$sys$nb_par +[1] 6 + +$sys$nb_conc +[1] 3 + + +$result +$result$par + X Glc Ace mu qGlc qAce + 0.01885743 13.26837532 0.30305347 0.58010847 -6.27965454 2.97015073 + +$result$lastp + X Glc Ace mu qGlc qAce + 2.443230e-09 7.646119e-09 -9.177185e-08 -2.956774e-08 1.690428e-07 1.276780e-07 + +$result$hci + X Glc Ace mu qGlc qAce +0.003563968 0.373575758 0.164039923 0.042232284 0.772801065 0.337798920 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.3765425 + +$result$laststep + X Glc Ace mu qGlc qAce + 2.443230e-09 7.646119e-09 -9.177185e-08 -2.956774e-08 1.690428e-07 1.276780e-07 + +$result$normp +[1] 2.328903e-07 + +$result$res + [1] -0.2243254050 -0.1278803669 -0.1246092274 0.4714729426 -0.2963098639 0.7360870444 -0.6372689685 0.1173628447 0.2670556364 -0.1399298552 -0.0703024769 -0.3162803287 0.0975981569 0.1618588675 0.3734104041 -0.1391391678 -0.1942021317 -0.3379755802 0.0001738817 0.2977325939 + +$result$prevres + [1] -0.22432561 -0.12788059 -0.12460945 0.47147273 -0.29631003 0.73608699 -0.63726886 0.11736314 0.26705571 -0.13992977 -0.07030242 -0.31628032 0.09759809 0.16185871 0.37341063 -0.13913908 -0.19420213 -0.33797564 0.00017377 0.29773245 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] + [1,] 144.45629 0.000000 0 4.982029 0.0000000 0.0000000 + [2,] 185.65199 0.000000 0 7.916940 0.0000000 0.0000000 + [3,] 249.96994 0.000000 0 13.076841 0.0000000 0.0000000 + [4,] 321.67018 0.000000 0 19.464712 0.0000000 0.0000000 + [5,] 429.28915 0.000000 0 30.004293 0.0000000 0.0000000 + [6,] 580.25337 0.000000 0 46.239436 0.0000000 0.0000000 + [7,] 735.93970 0.000000 0 64.331921 0.0000000 0.0000000 + [8,] 892.21933 0.000000 0 83.578004 0.0000000 0.0000000 + [9,] -95.89236 2.173913 0 -3.188583 0.2879591 0.0000000 +[10,] -181.69562 2.173913 0 -8.541952 0.5456211 0.0000000 +[11,] -258.82722 2.173913 0 -14.393321 0.7772428 0.0000000 +[12,] -346.61412 2.173913 0 -21.887778 1.0408616 0.0000000 +[13,] -434.34682 2.173913 0 -30.060294 1.3043177 0.0000000 +[14,] -526.68117 2.173913 0 -39.253500 1.5815922 0.0000000 +[15,] 104.31688 0.000000 5 3.468713 0.0000000 0.6623059 +[16,] 197.65828 0.000000 5 9.292395 0.0000000 1.2549286 +[17,] 281.56618 0.000000 5 15.657830 0.0000000 1.7876583 +[18,] 377.06550 0.000000 5 23.810703 0.0000000 2.3939816 +[19,] 472.50585 0.000000 5 32.701206 0.0000000 2.9999307 +[20,] 572.95213 0.000000 5 42.702070 0.0000000 3.6376622 + +$result$retres +$result$retres$res + [1] -0.22432561 -0.12788059 -0.12460945 0.47147273 -0.29631003 0.73608699 -0.63726886 0.11736314 0.26705571 -0.13992977 -0.07030242 -0.31628032 0.09759809 0.16185871 0.37341063 -0.13913908 -0.19420213 -0.33797564 0.00017377 0.29773245 + +$result$retres$sim + col +row X Glc Ace + [1,] 0.05448149 12.882746 0.4854484 + [2,] 0.07001839 12.714560 0.5649972 + [3,] 0.09427581 12.451974 0.6891950 + [4,] 0.12131745 12.159249 0.8276480 + [5,] 0.16190580 11.719882 1.0354600 + [6,] 0.21884174 11.103552 1.3269715 + [7,] 0.27755862 10.467944 1.6276015 + [8,] 0.33649926 9.829913 1.9293771 + [9,] 0.09569928 12.436565 0.6964832 + [10,] 0.16445638 11.692272 1.0485190 + [11,] 0.22626459 11.023200 1.3649765 + [12,] 0.29661125 10.261700 1.7251508 + [13,] 0.36691448 9.500670 2.0851027 + [14,] 0.44090518 8.699723 2.4639345 + + +$result$it +[1] 6 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace + [1,] 0.004486512 NA NA + [2,] 0.002557612 NA NA + [3,] 0.002492189 NA NA + [4,] -0.009429455 NA NA + [5,] 0.005926201 NA NA + [6,] -0.014721740 NA NA + [7,] 0.012745377 NA NA + [8,] -0.002347263 NA NA + [9,] NA -0.12284563 -7.468213e-02 +[10,] NA 0.06436770 2.782782e-02 +[11,] NA 0.03233911 3.884043e-02 +[12,] NA 0.14548895 6.759513e-02 +[13,] NA -0.04489512 -3.475399e-05 +[14,] NA -0.07445501 -5.954649e-02 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/yajO_res/KEIO_ROBOT5_15_res.txt b/validation/validation_results/Berges_2021/Berges_2021/yajO_res/KEIO_ROBOT5_15_res.txt new file mode 100644 index 0000000..037d075 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/yajO_res/KEIO_ROBOT5_15_res.txt @@ -0,0 +1,21 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0188574320160127 0.0186173430881478 0.018262342938242 0.00304612388667033 0.0137807098009295 0.0243405819400393 +Glc 13.2683753236111 13.2633363863807 13.2534112723524 0.239178559426049 12.8330467467121 13.7104349013411 +Ace 0.303053473155435 0.31223946885707 0.321438392358374 0.106047163738442 0.114402339066 0.497162064806604 +mu 0.580108471696076 0.585143405458807 0.587330832621665 0.0335259227330613 0.528661120687825 0.643921510150374 +qGlc -6.27965453582652 -6.28701846251798 -6.33050085041134 0.652976206326567 -7.52833192139996 -5.09414733331951 +qAce 2.97015073116658 2.94902750601874 2.93080843603747 0.299295591453284 2.35116078148309 3.49584068589798 +res 1.98497910019256 36.261422319808 35.5421437912507 7.9050223783808 25.2379826822407 51.4640712444794 + + +Goodness of fit (khi2 test) + +khi2 value 1.98497910019301 +data points 20 +fitted parameters 6 +degrees of freedom 14 +khi2 reduced value 0.141784221442358 +p-value, i.e. P(X^2<=value) 7.94751020147127e-05 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/ybaQ.txt b/validation/validation_results/Berges_2021/Berges_2021/ybaQ.txt new file mode 100644 index 0000000..c19d764 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/ybaQ.txt @@ -0,0 +1,9 @@ +time X Glc Ace Lac +2.50138888888889 0.1134 NA NA NA +3.34194444444444 0.178416 NA NA NA +3.9975 0.240408 NA NA NA +4.52333333333333 0.403704 NA NA NA +1.95 NA 13.8068075193119 0.380478810608258 0 +3.25 NA 12.6742315612711 0.923825238728801 0 +4.08333333333333 NA 11.8049154901105 1.32014536512 0 +4.76666666666667 NA 10.6997698421708 1.84232097364151 0 diff --git a/validation/validation_results/Berges_2021/Berges_2021/ybaQ_res/KEIO_ROBOT2_6.pdf b/validation/validation_results/Berges_2021/Berges_2021/ybaQ_res/KEIO_ROBOT2_6.pdf new file mode 100644 index 0000000000000000000000000000000000000000..11d10799d7132d10458c991ff412657280887a86 GIT binary patch literal 23716 zcmagFbyS?e(UOrJ?5nf?FVP1ZIJ~j-V*Unb|pL=?rJRATo9a?3# z4=x`+S-R6|dV08cdH`-(Zq8Pomey|nb_KWvxp@KGe{wnhGqGVvOJi6&S^ZYD_Jo3&?9>CI_ zR`fsaJUZ6y&Yo_TKs>?!Bi=v2|15`wwUe#KM_N%KVNqHhrB4nXfC3&R2cS3#)|Spz z*8h0BdjK_a#PG?fGaXJ~9CU3RH<;26{bSKeqnwO~j+gSn?&X>sG~^u@69Faq76$ZW zn8qeKw@qMivU~eOiv+VkDLsSK^2q42<;A8!;=^tCrshe|rpO0cZ`cIJIy?H%V;sr37CTbjh`otnUDtmd)z zQg#{STbcoXDpzkA9e$ciqnq0`{T=7_`{grA+6mhXv`#=!*=`)RCAAWefl z`!WZOGX7vIv2tdLaTql}_r0vu(pIo!rd`d9tM3@o=9R{L-+8C;F}oDJ`YbJT$gsWW zppivN`^1lgBEvTIuI`F+vG1tKD#&f2`p(lov}xA1=I*K-^9vjbPd)pM`VH>qmA(3L zocV&v$XUI=oAc8YtoAPck(1y24rXzYeJ5tsZYh;9>RfM|em5i|lD&F3&UlfncqH4u zIdA<`Bi%6ST>+cflpj^>GM za|p}a$&*w>Ju<=Dn?2h+TOHcD7X7)d4ISIhBbPqn`vZ)HJ)~miEX&D;qs5P}ea|Dy zzG7PF=KLjgU~8KdS;&?{1SnecP6!(%T{tbc178yoTC z`X`I}!5xl>Uk8;o_7~rF9AmyZR^3JCb7w;4Hf!&qABSS~d#FoCo!t|5a?{q+i zY86=e)q3J;chD@2{rcmz0Uxy_kf?rvm>d$-QjS4q-z?3DA#J+6l)lQrZ&zgNRLnA4iA*js zC$hz|C>LFm36R`MxaZ|0D0@3Zds37VAurm#<>tw?q4scozB7EVZ`Ty$i<<$CKs}f5 zW_e@`=){xHiNRGrGm*Jk1wYHsfZ@yD4_iE2vK;~D$g9s6EwesscL`tH*5-S?w*vW| z<=P7$EKu7gIc^be6Iyu^Zq_6$u6LdXyn7D4F#?oFq{shwPaPVpNgzFa4NzXmFhN|^ zZvTt4iXX%W7&pei*`tBpyn-oC+a zaD1W+P`(>b2|0-Zn@gR33xzYR;!AJLem-I48Vor}TfdcU*R8)$Jg3TMDnw~#sO`Ds zxl4c&^n0IDo!#_R0(n;90e`&Td4e_C8Eop_tw{_ey01x4J!AzG6DD?gTVY9W1}Gmk zr2{H+y#ehu_WucUniycac9(jBB?&(N#^)-tCSiFI0FxjbhXnMG9&Z4+AnDsN6Uo)P zu?@eF6V4u_EeVTNz?Sfpe9RjVo{M^$Fn19bV2eaE=$+PaIN&WTy?U2$P6}Hb^S0}P zgBU?UOM$2_uO7Nh_l1#n(=yX9QT^J z<2oK}+k^VsAdu$mZ*0=^!^pkMonn1T#LJP(zqz4R*(Okj?(AzTU;Yj3him zeEc!j0aw1A{JTuO=REy9zLp4AlEeaYUC-H`!l=$LAKT_=HZ1#*s$_0D{={A*YEFT- zf<-)=s1+nFBo$kKp&Xz{mi9tO&nlSL1WvWy&z)iWu<;)Gy*$-BJc?)-Qd0h7StYVo zzF7xFHaA~uf}-^sueIGj4*(}TKuT~%6F{&1?9!h9Fm$$Z7j<5_-XC9CB8~jmd#gbL zKZAP%Z^!YY(K{^?0oS1Qh%&$Fg!|+^+dkZUo}Z6okk3zoA-Ge;f;Q3jU$Vk4{a^Dtx4e3qXDjb3pO0y&e-p$<|{w3}7rnqD|Uyp$^ znUjd52OI{xqprDdKXvpS>Ah>daK#niZZ|t^PZ}>>d3E*Lw@li+2WbNm5EMl^_4;mZ z6WupXTBe6$BN4DDZ}Htf;8il7%Jc|Otc!Mid+l}fH%U?elCv5v$)CLlmI^8kdE4Gq zW}pa*9Bj6LKN87V zSTX~U>WL4Mw5Ym4D@mWv?pYrP)~^WCcyC;`V0&(R$qr&?I3QnVpbW0f$1~|8?J6p zk>rRA=V$2`D^t=851!C`1{vI9W96U~A8M?A{*L7~mbKLL3njnMb+QQ_7D{_>Kaam0VV3CUlHFB^ z_nj_fNbPJgn$W-q%fU$|7E1M`MDhgUfqtxh@m-m17)tY-J72n`52ER`mHd>Yc`&Sg z6%jTWp2%*(1SZY?Z!Tr`7otF9OXVOXzr!%g`AJo|t63H-<3@KiGPKG3p{qrIR_+Wu)WpD@JX%LYu&j?HMbMfw~mwuXezAN24RhotH zlMWMb0D7$Y={v=SGbr>|pf7j5IH|<@63cN@aWYVd6fpDN!HLjciT)ZpT_t85oS#6& zNr~l|gG9#8T$cBG-v_y(U~_?ow=7QRMZ~K`aYIqE{YF&YDOdD`?-nWKsDHHjD}IQR zy|TH&1iThdB0QP4im0$WB|+S8`v*o}k?qgH4&ImG`qyJ(alOTDGNdX7qW1e#%yeq? zKS@$zO@FljkPJX#^|cA{QDPwAu_O>62hm`5krDyR(_{iAqM1{m2T{D@2vL5TT{7JR zNRRp6Q0SPUN>roVL}-injW0FM})2yrjRS%3x(P=OszAdUDK-HhH*?+IWWoswDYgyv{QS?gz$ z%Vp~ctp1}SU*<4YX8OKlVG3vAdxDh6@%xg>DP-f4Z9e~BFnShXdu|=BA*}^}a*0#)2#o+jLIOI3Pe}1#rW#U9^Od3q-Z1EkT zMPM*<1n1jnO9kgk?ohc`VK1O|YAwBsd8cJhDM1!P{-cCR=oV7=nmItGt_1tE_-$Pd zCkhg?nl(l-=P|KSR61U-m=pSWO?$8ud(Ix_R44x{N)67t!}k4sNJFOFhle0 zn((o<>sADU^EuTM7p&OcB%nv2jGsIj$D~MqN%BXJrlT|Ht>0R1k<|>?j>>Bw*Fw4s z`+Gz#tJ%kZ3SEqQ|H987kBI70n2b+ObFzUBQE>Ge((X}E>CNv1@i9T9HHS0sn@dKU--Rp{qe$&0^K7tHx3~b$BzP$Sbiy zPKDrd${_89A3rxka4v?5MDWVS1;TFhiCkyO=iK{(q@>A8Im9tJ%|0QLl!4Mm;^-6`Is4eScXkB~7juNXasT-F)%n`L)&0|Q0Q z*(UVs=UfawI=W)oV|*q#XNFLwUF{^MT|PNgX!Z-H(3Q1296yX9U_Wn32~f)$5tfrs z_@W~3Fb@}+I{RB0N)fQ~qAfY|w>va-@%n^emkK(ByuC!fOZNdR>r9uA0wok#N2d=q zi_BAj9z-Rf`vvmSt>>}inOcANn6_?;V4F~0EIsJDrGA(6`>mxzHVS1Ax`jf_U% zMK4R#_zevY-;-5#zX4gxRv{8u+x^*tK!x?aC^|DTF$)5UTzXz{D40`LC+QgBlAQ=4 z)XY>PSZsGtP$~osI*DwJEY(*2HK{ZnU4kZ-V(9E44Dn5nnN0{uyC(53{GC(^dWR7a z`Stb3twH4M)yl@7#-TcLjp0}9S`Ll5C^3|?Eo*^m7p#wFyl=JM_rln0pc@z5XfZhG zLn?VXe6;AT7z<9<%ruxOD2f)e7Pg4wC_idpLt(ED+X`f_l4M!`L^ARhutY0#ZqQ}Y zt_RS3LGHWJSKYukaW9nVg;$_J_~gcs5g!%hJLw*yTWP2jI#&f*@gl=mi1Jdt6Pl}R zU=s1CJh@ z`OL`p@eSS=yjuPNHBK@)ymX`Y{D!h*#G}JB0s|a+vI2yc)K+{dWjvuO8xp5)33u{o z4g0BykSg`p4-v+dTTq*j=rQj8=Up; z=KR7R#!a<4GZ z4hGj~b2H;;@J_UPK1d4Ue-|*Le}-%597j&|^JomQZIfj9P14!s6wF|axnS~NC&4D@ z9`Q}Zx8msLEwHzK$lqUO;6&pc>?S=uX5f&!|BBpDrs8MZjyoTJPhYx*k4nWKVf9OX z?0qPvYC6pXoxIMQeksOn4-mOF z@hw2-Rg7u|pZx3arX($fPeSh+lH%|*qUO->d8n#aXl)9MHUW>9mlJflSc8J!o8*=h zMqkn;34t?kj6gbLcI|J&=EfM8|I%qAp;J{O5^z)TcR=ZkOOo}XJkeS`R3ekqBQJAF zb+GoUztdt0(E@Db0k`9vuHX$USz$Ij`Fr(94L-KnEeb&KcM9cazF|3vn{%7!axWtNO;} ziOSL2_L2zcSUpvAg7%Z*>0WsZkP5}4Bn5e>Oo{R#6N-E|S@bs`%>bsj-*~X`i%Z=-u*gC4hyHdWDpsKaEHzfO45wSI&-&Jo#n&qrkTQt6t{Ndx*a?hn6 zQEF=0Q0i=do#pNSqgV}MIYDiD_3M7G<6%?8*{RrX4>L>4^3JH{;Se+lBx=o`2%NsY zihjpe|1RY1x3{H%&RjIn<(p=UA}Tf7iz0^izIE?>tp?wgx?wVuO}ChS2%FisGF%jS zQ`Bz{?|X0GJbNAAIY3w!IO6fU-nr@vWnEx)9oTHKIN5FBFzl_{)HQLsM9z#`7;$mk z!`u5`$=0m4(08(NZS~HfHr4f-b0*lCRGv8{+ZPMcTwt_qtOfCi3De3WiEVP$N7Ikx z)}Kx-O8M0yNxulCli;$-aZ2UtDZTl0jsYO;c7}-5v*%xpPQUZ z%)G2pzC5f#)Ji7hXC+7KWp(n7keQfrjyUMsI)XITa%&H3?7G0{AJf350~N>-QZq`Z zl!nC=UKhx(#F0LGy^WZau+Tm-;W2e>%?>U(nw)_fzT+95vT!t)^ToD@*VeX~1GP{p zAc5M$G1RJz7FmXOhKTLpwM63eI3LTMn!3=+zl7=R*9D$u`HNxN!S`bqq?cJ4>fZ_3 z)N3skm$T8uu{!DwUd=?0ofFl*^Jq7;)n(yOj7O} zAHwPr8VOGRF-^x)GIX?Zs8eI*vL&Nyh#!fI#7Ey2!eY3rcSB=1|HO2|OJBGY@gZy} zJ<=MBL5td}D=K7$-^MFXFn8q5CRrvGD+G(-l??8Ou!VlC4`EKDzo}(FV%_R0agV(V z=5vU%b}tcD1-e!(3pI4MRDKrHu-` z#&*O&ITCY?3-v0J0m=CT_dIw;8+dO)bNekc7d3|$W8uO|CYiJr^29(?Yb&mJT%4jM z0QiBlPGdBuCZbLLBPCz!x}=vU99o?c5d$`LloBywB*S0{Jq0VgZ! zuIE%5{w0xzg!W)xrt{9cnz)^}-KxTMxOd&ZuGy0F@&{C(lbuzA=5z28L@H zc?tDHmT<3h%o}6ZBhJErhy^1#sLRA6?GKj6_|TKWZ$fFxS`rc{#|9ntQ)3IQ_O{r2 z6S~kb4+|Ws#l+{AT-9deX8Fs}Ty=NJ`iQpRSp&QTTCWfq z{(BaUS@u) zt|IBBY@U|_v3Hk6 z=CSw2En?|wY};j!SSZe5uIYYKiI1c>V?9(% ze5>_~fZ+he5IK>XQVFk!3I?$~lfKg)GF5d=F`4+*dkSI?l_21v;uNAv<>o$&g*%9> z`eQX*W-zA}Rz8zC^u)x^im){^nzewkhJO}z> z+;)?YZq%s=jEj=Guxsa&H{#t&c^kOuox~aC@w5g8xdLVRSY{wZdK@c~TcJ4fsz&+p z1&C=x-qu=X`$<@IKjq(O1!(PlBQKDPR9Ia4OZOMyPZDR9ZKn8^7!7a>Lurb%a-(2! za%H=2+#pfpcPw5i`zpPSSyIB?N-e(ihosQJc)DHxt3X&jj_ObX-p>#aHIOjnaL=pHpRy^#2|mLpbasMVuf;DAs2m_AvSUlwC&3XSiR^r6xwO-c9ivQor z;14(yog6VEe^T@t*{g5`@>x?9JC;hYIh!0D(ooVJy57!_>5D{M7FgI0+QRUETM@S3 z_og^n9tKuf5qBxQA7l?J$17p~wUbmn8_#L4VKQJX^?S?B8Ybn+SLI4iNJ=;_$IM+@ zB69hGoukn)PCTmu8wG`$A-YY-gbVp#Vb;@&xfV$dyxes2vqh#FRt81?m_c&Cd~^y-tKKzbB$ zK}iW!e62NBnZoxrIZUM2nZZn?)lN1Cq=xi0SKsD+Z3oFI&}s7RT`hgkJ^{4MD(q_rJPA6Oz)pJ6RUNzXC5#7QsH&a3gV9juS^QZe~RbP)Js zEQO05XWp;$7(E)ZJ2t3lYpKc?&9EAS&$UpI*z7Iq{pivF4G=b&I3}njHM2YA^)A}H zA2IX0_k)=f2%ni2`yA!a#>gc;g)rIP8D3hyQXgZq~_oQ+*%E z?Sp3CvH9k+$EHId`F^03(ewU6=XA%DU-3Sq<;gv~ACkvY>39z2b6(z9RsHRbz4-0f zYYwA|C+k?*F>xRW$I^#NnT{;6hWk)_#WA(geJOI*)sft6kFuYa@@6l0bM_EC!vA5> zKt$`-`I)=z$MH0`foHP>HqYu4-xy?H8^l#V+`E&p4phY#D zL}lP=)4i?*a{j6k8L9jyO!w!=$q5bEU(MTG8zBvs(dSJSohI2GbfX9EidB4q$*1tcn8+)BKhWaS z@j3fbbg%hr`}%WBJ_z`{f3P5;7t`S2J9MycA7S4xont!Np3mLEgPB@kFGI!MKsviX zW*j*+S$5vh@$92md-6o%-`nH^w2l0C2gZLlkcj=S{*C|HK=S|F55mX$|7r;N590sm z2oVzy5&M64gp`{OS5OYRF0WSZ{y?59A5yk{%gxnEKs)!+ir^Fk1yLtDpm*a7GW_W{ z@yQ`1_l%q}nRtg48ELxw?aP}ZO}C=dcjG4=)tJNWhomQ4 z)!p24;C6U#M_U@qSMup*yP?CMGV$4uEzx`!4EAI5>)bRq5Be9QgVT-hoj06T zx2auucW5pcdSN(z5KybDq$Pch(BXS<0UwC#2;!CA?7!P1ue97HO?wA{`32wszdE8o z#`&pNTc?a5icZC2Foy{EMascqeodZ_v~^(GTga>)Cz6v}U@B}1TjcR+q5`Ik1sP|X zy^&uny7kM|ckxfxJ!2ndpY?7kd*w9FgxhLY>HUqRP?7QJXU4j2M@gJIP1c6G&9%0T z@3o!J{KKH2CtTWB;q{7)<6I2uc&TGoA*=%`ef1{1AS};XV#Rw&7o8Pm+$U{K@J&?ypV7Vyqwh+OQV; zycgp2GVAR&C0eAT*eAW_Z>{Kg=6U*i9tW!_{T}_eDOO9yg{kZG+OT{1&6>=L%I9wT zrf`2*@6Tf7M!r!fkCe9Q9lb6r>lp51A@m%$s(#9fcQzaUIXe!kJ~Q;au7DlY}7|y z6b!nUNR%gi_vMoVwvR`*t&oFr8Gm^{zoZBKud;DItVPf-{_^P+^B5;&F-uP)*7|Q| z)`9h(eDop~)c`nBbd05ztu`f?@a&?@fg*5jAR0LjKZXS1H&+EB1^o~(BuB$Eu{-=E^|L;S*OyOMCkN`d z5$p$lJ5GSE6#nw3z+%adnKDK|vj{(awYdicM3|M9WFg3Zo>%^)OYAyYc?w?7AobquyNfGs_V{auVv1YIlx z70zExHXh;Jl&^syOQ#V;Y9iJQa=YC0^A6uq=)O9}K#w@stVnt{mu^BQgfdS|pzBh$ zg|X*YdxW7ccJ=_kri9K8mWh8^d{`!SHz=VNy@bjHVOUBoGb&>2EgIx&P%p&|}Ok~s|-Q#wAB z9luE+=L>^=Q@W;6=~NEJhP?`U6FSdt>Tcn08dp5R-+Z-e28E7J=L1z~W;Rfny-=%2 z(&+YNGEng<&sJ&#A&o;SpnookIT$B(61Fg~CBe-gpo0XcrG&`|08KT=HTbx3H%Z*g zYYr4448tSbg8~5l?3GU8U_6*NV=$$witq$v&s2sN07q}!!l7ueTVTHh$g`KI+{4)OHA&_8 zUg14h0X>Il8tndZ*_pOTg|HVn@`;Q440hn8C%bP+0Sv|Ug04l z4(4bHLN$>Xi5z)uo(PC;3oG5b_?hpoc~PGKI4UId@UVF?G4)4fyylxr-C3*kqfd## z?5!+o*p*Ht+%ILZ7S?~o+|cAy;VZWreDw>yu6EGm5@^vj9OPz@n=f~Ekq+NpyRno( zSNgaCKl&5kA~RIwvsmfoFk}4Dy-_Cku>v-j2`VH~qw`=t*5s{iZtTGKizXMf6HlDN zZVGpbEH?AW9gTjBx^SW=?!0iJPh0b4JD`CTLW(ypuLdsOjz4FPSsEo$vv0PhU-^uA zit3*%ZX{$*CzGJi^g+s%jL(AQ|~n%%G&2s z7MvobrB$uxp`$i9!#)@ryo{svn#$L%?=h49p#Nm`k?QKXs5oYXhP~Qxslx@Vs%yki zoG$25b4Gh5*m7cCRK$FUq-*f1b!#d;*ZFwWcV9hX?}<#ua#Pk0_o*NU#sp90AF;W> z1?xucRkq0d>K^$iA=V*zg$z#rseIq^?I+u9cl-?|*eK%YC*$p;8>jy-?5BFl;iuO1 z#9`m*C9pTR&7uPexpAy|e5?*=jYA!hwIezU#X4|1JPX6J7rXY6ukT%-+r$@3lnjz> zb^G%yFIj{4lVQoo&@n2)N<&%{H+^fMuIh1o6Bm-57-ZOIF!OZBkh!O8pg*Kxo-1Z0 zI+N5CJ0i&Mot!DXY@%Ruf387NtSrDG@ET(C)-P*C`r$TlyIJrR|7@Hzn?fhNhKHW~SLdjs<+^=Wai-z~u6%vsF=XOCeT2P8cRuzg5 z#|<6-B;h($7vHy{=0qMT=~2`8k;}bxSF55bput2xLViT!b9B_mCAv*;<{sucWrD3K zSc+=Zj#yoM#q)90<3WVln->>nhScdPAW$qo1Gw@FiTq@eUf+>etqO8*aBq!06Gjm-czh;`bpaSVN zD-~>-86G~^_;pDEgP1%1I@#AuwEp{LsfAl{u7@-V3Tj`$YuCx%KF^;UIbcyRtpS2;qS7Q&AppD8DP^e4YR}^ z{|p4L8PNDF7VAQ20Fcmcy-pF4&BJDqWcuBxt6M8M`DZ&eg&{B=M>)BHI(^X23} zN(pHF;@vcWy||lRpiT0Edfm{~o42bfVMIh=@`5^OP%yjY`8d{SL4BldXQ@w~q4dcs z{q2eAjvXV0!j4&$06-FZCfL0eH|n8=u~wK|Q#^|#?>;WpbLkzf zp44l(zW%9d92>X@>Sd^^jWJex&3+C2!wTPr|KdFfWmGw zu=qsWEu6)rXOhY_r5Cj*-4Gr#o|dI&qGLB0WgOz)I)XnEEhq` zaA^S7r)CP|w#x$)G%}~Z)s-@+4o|<&TqF@*eg6T|^Hn9_jmoij1!tF+S#m|UJ!|A^NQI_4KuyRnwq78kcK0gAmHj6V)r0deQX-5SFENc`D5 z9rLTgJONow_DdwfQq@2qxUSM2@_*>u*M~R9jkg04jw^Dq9JZY>DICci@||M8IOG>0 z+E<4Y|D;*~^>WR3i6<|Fa7{5ZGa9o_Zb8PUw)WcJ&2=3gu+4WJq-T|>96?FmewX%Q zFNw3l)c*oa;o?+To+Kg3fz*bd&jmjIAyNBi^R-?}9?mh}6?zd-ua#IeGQnOcoXW)+ z31_bj|3&+1kc9fw^CM>BaG>Wx7gD>h<9g>=CkcCL5R)P|UaE1`a{H65O#6^(h zQUB)2(8N$`s>?9;eq_JzJCAj(!AbaVLXki3`7aa+A+wiDm8Aj;{;fET=CkfvPG2jL zj%PiohQ&7yg5g(-E|!<@s}6=MiP4Q{swAYPlG%of`d9ozb_*wuSVM+2fo?j-H$gAW z9V(2}PaK`WmASlbmxnjk4IMWgeBD9LNmIvd(XRMB>qr4jI}0HHoSTf;AIexq249ZT z3d4AST+^N@QvI_CHwU-k?YZrb*o5Mq8N)1~p<8nMKdZm0t96du&m(R~3}j#FIv>E? z+virwaJsf*!q4|Vy}!^>2`Sf{8+-}xt)%6-zStf1G6oCn9~TNw6lOh6Yd>El(zHLB zkarz)R}HiLg6M3G>yFGWPG{MfRV%E&K>3q1r!5s>`9|Z+Z%H@EsDPHt6+tKB3&G3r z=$}-q5;$4`>Z%xCo~&*bs5(6((Nro`0xVv^q3_>lxQyDp4xADD;U}nuC&|KmtKk}K zVW3IR;sxbVc%$*V6g8Pp7hNs}iO3)4r5InQP%lD^ly!X0TxTPqSQUetRW2ds6{DMl zpRw3>V2&09aFmVjOKV!ob+h;fOoN}XGx7NR5X~!*SoEgMn}ZRuJtL*@vLSR*M+Wn2 zVTf<{40Wcp_ansE7cdfi4*e}Ed!~{WvBA-cke*@&Fkd3DE|`POZU%!oUb+TvWHMsJ z80grOoW)8iZvyMwsjP@`Dpc0%oD?9&H;YSAS>1ghRU#rdTna}EOKoW5g?gvC1P<#D zpRrefwsA3EfCU>zB2oxy*PnR*eFs?w-XiCiI4upK~vz;+K2`~g6*Ppw5E5w$e`-F)%G zgVQ+#D1?wVrB;vB&FnuVgQ2|$KfGiT@ljc+9RaBZF-UPbS%5I&aisqWqqltG8r6?b zbgk(cto`;sn4xH5DH181yv#}8gRE6?!C5AXt}+TEhMSU5UAGK&vf^MVF_T(Tgk=xM zkLmXE0wxq$%NV;h_VU@&*rOjEKMKd%^!*fpjj zY<>z0%Gc%3{|t625*FmB%a=L|b}AGWB&^FfD#1Ro!r8t4Brl*zk>$AnjnkEFcukS@ zX#vWqD=VTwk!8979hr!ze?)55UVu7GMA)PV3r^xev4L5lu%LTwz7Ye6tPpGRBAji( zWvlIlJQ4H=8etP5oa4*$2Mxu8qBcJ>58HMHlUJ6azLoTSkZ|j{S@79B6sPK+^|vI# z@~Oi|FWYVoo*=_-*rU5vU#}50#v(XQP{?v9G-$SWY~*W%DJoip-rEaHUd#mlK;Ml3 zOac@MfXN!|gO%{1ul=7MWDm@meDbf@&Mb5z!x1*7h|R9^P>10N24`%;^k64LVZoN_ z^%4K|<$j^1%1>$E*Wctfus_RxXVbPnl6|?KGKHyMXh*DCt<(Gjmw=W({KP^^a(zAt$30 zD2$alM8|zq+jdZrWcnM7|GHmTNr`jXF+NSyZ39DL(8#c2M*&?`pMZ%)Fpp8~O;R5) zd@KoNZ9-LvS(anbM*ORe#{^A7)ea5jiAq6F`Ko|U`G$Z=`weQr_f$Pp?TMe!FSQF8 z-3hS27S%e#zbho5BGan%TrNcsFuBbLYb$Lrjuu)#a0!@bqd&7YxqunfR3=hcGZ~d+ z)3A`!Xw_cX@v5ZNre-;?sBJwM_cViF2@W%=An}BW(_E~Y$@c9#e zm52T{YerpeLpZ9TD+|%wIsAb9K)a^8>7kl7KV5K%X_hlB`Xc<5QyNm_fDKcC=otKU zbZ6FeVUd?ENPgC~2_Hh-Lm#a@HHGZD;3IwOn~(66IY!9Up@~l3%Q2nyb-sMBb>h)r z(w7-N2_uD>hIe#b{4RLO6}63|z!7abC5y~A>h_*smKY`$?MN`p*sdy>N@fc}zs~zc zl-$(zv6$udqo!V1+E6iZi&U_b-R4_&E10v|ZLhC}|7;$4v6KTTLDugKwUOf6iZ+5h zw(BhMxlJWHltWKrmAS6mhHzxAaQqTJ^!1*QlfvH{!8=)9m}&3`-omvY)}{B@ZZdjuspla&bc$*!9M@qI4^?<(f6P;@chLiH-G_p|>wVr3 zh*o*MyN>R2Ln>icva9KZ2fGwO>F)3V3x+YC8r1D@O*2M-<-i8vtn)O-Dk>A^Z=V^X zUCN7ktKf^F%gelY^uK%$chZ6FyC?ReAUo#|U0IC$GoN^VN-4#9kw%Fi zFWy^779_GU^}bTfi?bEClO;RRy6yHUk)QkH6a7Tvv4mD1q@ukoZZw~D&J!K>icCPY zWZhm^g_V6!74$(96&*CDy;Rbw1B&2k``gthZHR$39u?LpJ|Gc98rWOaB(Pf^L+*{rmj!WQRLX(4dcHH}C+Xo5V0b10s{k665=5GK z#NS0Qnax7 z5LH=w^5j5Oy{M|JIe+Cq-xz<$g1$AR(`6&mqkHOn#3sP#TBFT3yip{G5&p(F6*dkc zi1`jg8*COy(jq1%#I9Km38KCN*HL_CP|Cs;G-NUA4gJ!HK#!iMAuKmIAx`Q zLVzJ{m89i>0OaM8QUP&Ajmv_Bh-{L=?B>9X`S0X3Pzlr$syIhxK)DR5TA^)Yq>Oq8 z4G#Gv_oC5&(2YN|<#_U_Kc^)l3BHpCBqoif6*zSPn0M1bO%u4rMtJ| zV9fJDP>svpx8us3+(}}D?F5+N*KGKb>{y+)Vjl2TQDf|TG?{rkfB)L1pb>Ue1m~&j z2SKvG@5#Q2{JuY!E>3Hz{gLoH=Q~-HPs7dnDa}+Tu%OR#BG;C-SmBQgywb3_gMgOOv}`>b@@CSII2UJuh$;||XzP0LC3XK`MS}T93D4=o7vK=hgztXlT4cpQuM$;YfN}M)Ym+JcMaLXv zRr~NJyMP$zEVPpwF2HNkdeGFyQdGP&Ftk+%zvOeil^B_yp!tPYGim-Sif>m_f2Ol* z6-4v(v>yYbf47qO*8UQPVaa~$KY}nx!}-uh1-i=kciJ_Wp~AQ{mlUwxP%!m>(-A zT`G$SFd>i@Vvu5)P?PDt2^L7R_*^37$=0>aLK}{8_z8_1=>b26vWUjHQvTO$a}<%z zCsTV{YO`+)kKMOhOCg4h4zt(rY~{nD#VQ>0s!l*zlnum?BFk zfk^p|o1?T&o475O{9cqHv@v?%518o!f!l~l@0+wp`F@w@$L4w9HKQTlO)35t#eZB~(28Pl|9Zl@RGtZH2vJBI3kk5q*Q49f`lv1IN0C9z~Byy4s% zt8oW zYnOiR1z~ekC%gWvVjM+B&-QCmSXhjJ4YUz4C5lsC=QZxeOhpwv!a_lYDpWNiv zvDru|f1<8Nq`gXDOoY)d@%JXzGEnGj?D8Tf1*a(|95UiX)Vh7I4#s91ri@0yAWL~8 ziy^IS_p6bvw*W_8O+O|FAZu?a`M zTB3UMRg&9kGKQh>cRio){64v2#x{~E!VdCkY3|-oY&K^vvJF`BW^ypm8-G|Xhzkzk%nsY{WL5+iX?4|*Ch=#3A8dr(}7x;qD^#FaU-)q^-XlH{wlZNeNT{_ z38%e^5#cjjR$pnxvvM_!>h>ZH%^I8{+=yBV&pTQ!nG5vtqGLrX(*c5B=a%?snxa)G zJg|CMeDbC{HM?%X?9`Z6W@eVSp|jrFiXUN~Z*Rf7g&lDtU+DkK{C%q|(!B*Uq+jF^ zJw2nW+aI>;I_aJb;>7x(7}X5KuZIiV%=4kU|MahtQSYJA{BJ z5QIb^^j<|lr3i#3pzx61yEGLcbU~UTQl&`m{DVH<^F6=$=KJ5tOzu5*&z{}0cXrP1 zoc-~Q=-iEpHsMXMDe{VPd}&q>w;<*10fT$&hz%mpBj5;IY+##cyUd)0c^*vR!h60( z^o--V_}75?F;d=$FokEF&gS85(5BI(-WJGkri=EEO}kJHt? zh>kVrv>fv@L4Unjtv$+4^(wUEkSm08Il;9I=I*k#{G@kkW^okT#vdhJR9@gPSFkv` z#BKf&`2-X{icS>u0j8h8lg#x#LSl8+j7#fEGO5BA9))Q`#4INU2QQ7{wl6?*(h>K z6JN0l(qrondJ;~^LnErJ&y%3Rh_uG#L~_X<=OzX#XjbSIGPO2=d#S`a#3kVY+ z#SnEN%2^L@=RW832!V$Yu9A}q`l+oDBleX!LN4M7{*}sePCBib7FCg;B+a3+h>!C6 zR38eSW0#>>^zCdfFx$2Gu00+ZDyzE_OUY9z?nB?oc^fE3@L+K?Ig~Q=d@a5gl-GF8 z16+9waJ3KZjBqbGskDYlb)>y>!f-E4#qu4B@HVrK$F~cLm$YaW(qKONxY?=eB~z8^ z+gN&uPue~i3Z_83xKpdiNx17)1juIO5fBOW7-+Jc*_=_3(~>^3*#-+|J?|JDfE_$L&quAm2_wSPa%S-8 zJx@@|52cAr3c%))&#R>dV5dJlumKP<^bRNzN_)W~26g4Mq)Nz1`*jJW9fy!j*Gn>a z>i3uDsxFw>UNyP5`miCB=K~Sul28WELhsFFzWOsqdkKTR&aHtB+VRsi=nf?kZ}#`R z&f+CZ>bm7*Fa_a^JW0uYMgX&VguY{Q7`~LIoz83!rvSTdIiYl5wD#kLi2&?jXf|%p zRZfeAtiE_xV{xJ~Gw&JwW`nkFYuFI-0uMm<(|q$Am{)Ubp^n~3e>)quA_bO)eBaL@ zk_hA0H1(lEkm8d3xic&ymxQW_U-TjwRSTwS6NEPFc`W45LWq|ks^~K_YG*xd^Ja8Y z12T-SD>-O3Z<+;Ho=>Y^sAB8;&>NZF!+oCKJ9A4#A7{yi+xe2d;?o7ZcRY_XGp#%M zqV@`S5UP2E=pHDg>r6aSm@A$ND|=e>;HY`_!HGhiQJFqd@ZlQqx{u!tz{#+LDfh#Z zb-tjiqprNyoSs%9L^tAU3}wZX*y!u)(NUXK0>`oi^U+fenD?i5;6XB5$4x`nui0js z$9j(4{``f@LWsl@{iLlA!$k)}P%Gc*#1WZF+o|1eZqNyjL0R9eEgqR;xYmI)n^i;f z1HZ$j!(+Ydlaz)rKfBH0dR^ILHdeMJqn)e4!lJ8*jdjW0aULhzJP(SF50{Os{14u* z`tfUg`SxfEzZL6$yq(wNU4K$h7@c@RT*mmR?YHD9@ZT_?|1Ep!6xX8*_%Ape@ZUfm z3gDkS9WY1&{6Az*8EGI{pywKKMIXVWx0N}!p2F!xNMkDH7D+H?-CUQQZQxZ(_2m0I z8uy>|d6rc=ZT)FB)_&&RY<~)Y7$CQE8M#0u|B*>-3qo%9*A@Sm8(`i6BQ zb_VRx&9PT*5DH(!k{io}W-DqGlOfNv8)3+d@`&%ICNZ2f}|lp8VQl?Ot@)tw_<*MT&VaPP{{#Z3S;$oKPZXRlgld=&=7-|Jx#A zI_RPLf}AKAzapOL6RJw)FS;PBBtR6Cqz2Vxf|4>XO$V?- z2A@3l%b=CE%=x1DAc}JDmA5PAL^bq=^m*Iw4$X{HtjouXalGRQ;r3%ydw92CZ`t%+Xgz3`39{+-~aE`a0Ly3q9k5nqjykI6gVLQQY8-2EP0-iJsD+E=gS$ z9rGsQf?As`yvZ4>Q|%XcaX8tGDv}UNWx&;dIg}hGV&8Y(nm;t4eoS|D*vf4&5CT>H z1Kh8JM|{L~d8@@3V^DciNtd&?NN>j&UVaY7ylr+5{$`ghGnvS>+SNY`hZ*{x&ufW` zts9w;Dv3?!A4{IyYEWQy_NyP2u{qZ7aCqtgzF%Q?Jhzlr?|(tmat%9BtvTx-pr^eT z@;UoOk4yYA`G$k1x0p>68o7biYK1I^$;k484%B0!<$2R zqAVzY%6JSJKuQWf`GEo8ALKEhG6Vn?{caPeEDQjPeZR$n#ehnlC>1@_DT(b=Lq!j- z@}q_Ldx$6$0REF@cKRd^0RL$BsiGp%3F)TiY6JhF>8`7y0Qg}6{}%uIGgJ0dblO}q zpqiqhf{i=E4)EQ$#m@q#Pe1)7e+oZyIc*FOhPdYlN1Rp))Wq}Ee$MI;Q36F87{k#M;a_&*%FRbd51_*33+EXLoBLjok2Hlv{Om>WQT2`0T0hYE9ge<>y1nO}sSq7!UIa6@xn9`)NA%I3aJZXu z(e3X*RM7iZr@1=SJQ^e~ZJE_?>$RmLdKt z%rLgy)@>udQADnLE#OfCt&y7do@hGsOCDg?plM8Em-81dFcWyR4e3y;v z7|nWt_K>qN0{B=7)|Gn$a3i6@>@|G^NwPwi+-~~QUFz23XQMR2!L&K0P!g z5&;k>$q_HgU7jbVZ$4AmOj}Jr{gIeRo;TvmU2E{iAclv8FaQ%nKt;yI$3cbGJkLqd z8MGq7Vy+iaf$)za;$%XBUDjvD33WkK*Z{sYig$7}A)&8n7`&MmrqMhw|i5P5EkX)&!6 zNtv~l_}SPHrj|Er5OFr4psMC4uEahxD_z_@EZmG` zL}konmj_}cLYX^aY;sGC|F}NPvJ`c`-L2Tx30z6xP2)}HO(GfV8+>&d!?52Ed~?%68Ol zQYJSh6v-ly7>Vd_>YM+ORAij#3A?NM?FF6X z8`a3dHXYL({cM!}LRfz}#9&leLSI7BtIREWo#cxOgFt)4wBje7DBc5J2VS^-NWKM`*6vt=iyPVN3@`2NQ}}#_Vj8 z?+YAp9$ndQ*w-VyPRdS7LRv^#b^cqJKr2J5Mc7eT(fyeFwlQKC(ah2iLt!dV57b4p z@s5JnU8sqDzqMO81N<#M+jGJhGkQ*}45|Sx0AGfLcVBr&GF#UjF4%iP^MXP&Y4qhA zbOZQ9G){>8u)qdkkQ2v)MMaG`>F$4$cmKo!M>E-`5Q8D;fSq8r?ww zceYRSP>}SJD7<%lc5`^N#pJ8c$Q~0@uEtZ1=&o$9j*Z=oOLO;Y7Hizhmn?Ez&Q-yx z8eDWeEIeYpgAa(QeW|f3k2*v0UO42>$>SU>hb=jZsEXb@Ic%$M^C8>DaCL3oz2VdJ zU-XvUr;KpW(W)Vjx421U=oFuSx&Olxv6IV$ri9}GvjH#UI-8#a`pQ4cAdw%Erw-~4 zQfiTAcU851z5TFmW$OO14#}XXoQiRd}JTQHN#JKm>gox)c66`*X^49@Dj3sjk~*a?Odr`Ds+93;7Gy9Rf)`0(w@!!fSd}AylSTv zp%py)4M~QKUwsRl)8ee*e!?TIe(&ZaRw{WKs~fkj-+V!z5}UW5H=NU`NqKWDeVb33 zyFr>bF)rz@zA9}l`2nOtcmon%_O2|d>{(Z8;q1}n9M zJpG)Y_h^F~dVNO~>xKm(t!qZtZ+7vl`))K@2AZ~5^qFOt6<1oLa^~Ld8}#Pq6kv>& ziiAw18#|EQffXSYj(7Zd%Y_7hJ~cx27FuzJeNVGWw)~dNq8X!<+M#0APS3|8KJbo+ zS39oc=HFz~@Z@6BDAc&7K82ihY21C%ZS=&-_d|R+qWE2=6VC9R;iuuHvGJ-ayhcJe zAln#gX@ff%T;)w{qGaONdTkpcovP?!jZzI$X7f=Cgmy*6qAyx~OZC3dP47bc<=hYN z>%8iUzJ41SFw8SBGTm`0vR>`RH0}40W`{-jCizMnu!<=|xBa{KYirc9Uz9Jj`hD_S z2#g^1?T+p47JMp*D0D4&hF-UR)zUTP=|3>h;Z%Ukt4d@g3g--G^-tMd-fEQ(_kK_u zTkh+yYvD{*k^PK*(R@;3=t)11a#Uim2#}Upl)k=Z-4ZMbA1~pN zMVxH<)z7o<*|dlBz&5UqsdRGt@&IKmcRdf)h94#8waZ>RF+X@WGwRXgc?bb9N{Swv zZypX5rC2?08ae4-L9C)iHjj*$i|j2E>vjCyKMF26pVTFJ&8%O&e!?^ox(& zzZ?Bg#?;2u9)@p-tqq8Gyx(dxe}2r3|*?Eb5nzwyd{`Tpm!1i#Rb2Y`h@AkeQp|COKo!<&DtV<>=d z8vsZM0s{T&{=X0G{Razph3^)AQSfv_*i(Q25D*34@}Cz#OjJ}@6kredO9sL3WSw3B zm%n6SG5m-04;fejdb-a0mkdw5{!Jz!j^D@nM>%{iPDlA4G7t!Iy5IG0nZ$20aS7qy zWD=m$LH>s>SX@Nx-!{PFq9Xrp9|QtDJ*D^$T?j-R^lx3fOdRj-f0dIE|E)e@ki>8G z34?`y(-j7bN#Q%_%Q+i)m-e6fYWWo(``Z|5(U6_9Do0P YO=#nW`aYTvVTdr4f{RN@OPS*T01{t=0ssI2 literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/ybaQ_res/KEIO_ROBOT2_6_log.txt b/validation/validation_results/Berges_2021/Berges_2021/ybaQ_res/KEIO_ROBOT2_6_log.txt new file mode 100644 index 0000000..868839c --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/ybaQ_res/KEIO_ROBOT2_6_log.txt @@ -0,0 +1,176 @@ +$sys +$sys$params + X Glc Ace Lac mu qGlc qAce qLac + 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "Lac" "mu" "qGlc" "qAce" "qLac" + +$sys$nconc +[1] "X" "Glc" "Ace" "Lac" + +$sys$nflux +[1] "mu" "qGlc" "qAce" "qLac" + +$sys$metab +[1] "Glc" "Ace" "Lac" + +$sys$weight + col +row X Glc Ace Lac + [1,] 0.02 0.46 0.2 0.2 + [2,] 0.02 0.46 0.2 0.2 + [3,] 0.02 0.46 0.2 0.2 + [4,] 0.02 0.46 0.2 0.2 + [5,] 0.02 0.46 0.2 0.2 + [6,] 0.02 0.46 0.2 0.2 + [7,] 0.02 0.46 0.2 0.2 + [8,] 0.02 0.46 0.2 0.2 + +$sys$te_upc + X Glc Ace Lac mu qGlc qAce qLac + 50 50 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace Lac mu qGlc qAce qLac + 1e-06 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 -5e+01 + +$sys$u + X Glc Ace Lac mu qGlc qAce qLac +X <= 50 -1 0 0 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 0 0 +Lac <= 50 0 0 0 -1 0 0 0 0 +mu <= 50 0 0 0 0 -1 0 0 0 +qGlc <= 50 0 0 0 0 0 -1 0 0 +qAce <= 50 0 0 0 0 0 0 -1 0 +qLac <= 50 0 0 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 0 0 +Lac >= 1e-06 0 0 0 1 0 0 0 0 +mu >= 0 0 0 0 0 1 0 0 0 +qGlc >= -50 0 0 0 0 0 1 0 0 +qAce >= -50 0 0 0 0 0 0 1 0 +qLac >= -50 0 0 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 Lac <= 50 mu <= 50 qGlc <= 50 qAce <= 50 qLac <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 Lac >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 qLac >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 -5e+01 + +$sys$times +[1] 2.501389 3.341944 3.997500 4.523333 1.950000 3.250000 4.083333 4.766667 + +$sys$data_meas + X Glc Ace Lac +[1,] 0.113400 NA NA NA +[2,] 0.178416 NA NA NA +[3,] 0.240408 NA NA NA +[4,] 0.403704 NA NA NA +[5,] NA 13.80681 0.3804788 0 +[6,] NA 12.67423 0.9238252 0 +[7,] NA 11.80492 1.3201454 0 +[8,] NA 10.69977 1.8423210 0 + +$sys$nb_par +[1] 8 + +$sys$nb_conc +[1] 4 + + +$result +$result$par + X Glc Ace Lac mu qGlc qAce qLac + 1.860791e-02 1.401035e+01 2.892913e-01 1.000000e-06 6.707675e-01 -5.245933e+00 2.460713e+00 -2.108298e-06 + +$result$lastp + X Glc Ace Lac mu qGlc qAce qLac +-7.176805e-09 -2.373421e-07 1.125439e-07 -2.117582e-22 9.369393e-08 1.371338e-07 -6.793687e-08 4.146613e-13 + +$result$hci + X Glc Ace Lac mu qGlc qAce qLac +0.01025212 0.77896726 0.34048310 0.32747724 0.13131011 1.93493250 0.84471009 0.82001073 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.766195 + +$result$laststep + X Glc Ace Lac mu qGlc qAce qLac +-7.176805e-09 -2.373421e-07 1.125439e-07 -2.117582e-22 9.369393e-08 1.371338e-07 -6.793687e-08 4.146613e-13 + +$result$normp +[1] 3.181958e-07 + +$result$res + [1] -6.886299e-01 -1.666990e-01 1.568423e+00 -8.493769e-01 -4.113185e-01 4.223063e-01 2.162767e-01 -2.272646e-01 4.651910e-01 -4.946169e-01 -2.150866e-01 2.445124e-01 4.210792e-06 2.705489e-06 7.681891e-07 -1.862545e-06 + +$result$prevres + [1] -6.886292e-01 -1.666983e-01 1.568423e+00 -8.493776e-01 -4.113182e-01 4.223063e-01 2.162766e-01 -2.272647e-01 4.651907e-01 -4.946169e-01 -2.150865e-01 2.445126e-01 4.210792e-06 2.705488e-06 7.681877e-07 -1.862547e-06 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] + [1,] 2.677016e+02 0.000000 0 0 1.246035e+01 0.0000000 0.0000000 0.0000000 + [2,] 4.704503e+02 0.000000 0 0 2.925572e+01 0.0000000 0.0000000 0.0000000 + [3,] 7.302709e+02 0.000000 0 0 5.432132e+01 0.0000000 0.0000000 0.0000000 + [4,] 1.039118e+03 0.000000 0 0 8.746237e+01 0.0000000 0.0000000 0.0000000 + [5,] -4.588350e+01 2.173913 0 0 -1.008953e+00 0.1627540 0.0000000 0.0000000 + [6,] -1.333998e+02 2.173913 0 0 -5.394969e+00 0.4731844 0.0000000 0.0000000 + [7,] -2.460318e+02 2.173913 0 0 -1.316068e+01 0.8727028 0.0000000 0.0000000 + [8,] -3.989792e+02 2.173913 0 0 -2.582839e+01 1.4152244 0.0000000 0.0000000 + [9,] 4.950199e+01 0.000000 5 0 1.088522e+00 0.0000000 0.3743342 0.0000000 +[10,] 1.439201e+02 0.000000 5 0 5.820430e+00 0.0000000 1.0883240 0.0000000 +[11,] 2.654345e+02 0.000000 5 0 1.419856e+01 0.0000000 2.0072165 0.0000000 +[12,] 4.304437e+02 0.000000 5 0 2.786529e+01 0.0000000 3.2550160 0.0000000 +[13,] -4.241249e-05 0.000000 0 5 -9.326275e-07 0.0000000 0.0000000 0.3743342 +[14,] -1.233084e-04 0.000000 0 5 -4.986849e-06 0.0000000 0.0000000 1.0883240 +[15,] -2.274199e-04 0.000000 0 5 -1.216509e-05 0.0000000 0.0000000 2.0072165 +[16,] -3.687971e-04 0.000000 0 5 -2.387452e-05 0.0000000 0.0000000 3.2550160 + +$result$retres +$result$retres$res + [1] -6.886292e-01 -1.666983e-01 1.568423e+00 -8.493776e-01 -4.113182e-01 4.223063e-01 2.162766e-01 -2.272647e-01 4.651907e-01 -4.946169e-01 -2.150865e-01 2.445126e-01 4.210792e-06 2.705488e-06 7.681877e-07 -1.862547e-06 + +$result$retres$sim + col +row X Glc Ace Lac + [1,] 0.09962742 13.37671 0.5865116 7.453464e-07 + [2,] 0.17508203 12.78660 0.8633172 5.081839e-07 + [3,] 0.27177646 12.03037 1.2180412 2.042622e-07 + [4,] 0.38671645 11.13145 1.6396991 -1.570074e-07 + [5,] 0.06882615 13.61760 0.4735170 8.421583e-07 + [6,] 0.16461037 12.86849 0.8249019 5.410975e-07 + [7,] 0.28788298 11.90440 1.2771281 1.536375e-07 + [8,] 0.45527962 10.59523 1.8912235 -3.725093e-07 + + +$result$it +[1] 8 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace Lac +[1,] 0.013772583 NA NA NA +[2,] 0.003333967 NA NA NA +[3,] -0.031368461 NA NA NA +[4,] 0.016987553 NA NA NA +[5,] NA 0.18920638 -0.09303815 -8.421583e-07 +[6,] NA -0.19426089 0.09892337 -5.410975e-07 +[7,] NA -0.09948724 0.04301729 -1.536375e-07 +[8,] NA 0.10454176 -0.04890252 3.725093e-07 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/ybaQ_res/KEIO_ROBOT2_6_res.txt b/validation/validation_results/Berges_2021/Berges_2021/ybaQ_res/KEIO_ROBOT2_6_res.txt new file mode 100644 index 0000000..8f41288 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/ybaQ_res/KEIO_ROBOT2_6_res.txt @@ -0,0 +1,23 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0186079143627295 0.0190927095489351 0.0189132916204924 0.00382492196487479 0.0124100222743805 0.026580745577917 +Glc 14.010347308507 14.0292177208431 14.0537637319206 0.352811985580267 13.420008222273 14.824059046921 +Ace 0.289291254488966 0.300822942303377 0.315673742158695 0.135875419228238 0.0170009172813879 0.579349824113568 +Lac 1e-06 0.0747699656215601 0.05358259899498 0.0762079533930315 9.99999999993061e-07 0.281070070513671 +mu 0.670767452097636 0.669378902128928 0.670086215325447 0.0486670981248022 0.575814700670856 0.756879541651935 +qGlc -5.24593324240979 -5.28172406203061 -5.303524606066 0.959854473581606 -7.1394169050967 -3.53561022396652 +qAce 2.46071338003436 2.43408809346767 2.44940627766308 0.374688248243239 1.79641442613153 3.23859055103316 +qLac -2.10829843996391e-06 0.0261647396247216 0.0170427264733876 0.210343266303512 -0.369083730913924 0.454950928881069 +res 4.696438641005 20.6436992666836 19.3993579634117 6.69118475732809 10.4669457638297 34.2231433101545 + + +Goodness of fit (khi2 test) + +khi2 value 4.69643864100691 +data points 16 +fitted parameters 8 +degrees of freedom 8 +khi2 reduced value 0.587054830125864 +p-value, i.e. P(X^2<=value) 0.210526465687028 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/ybaY.txt b/validation/validation_results/Berges_2021/Berges_2021/ybaY.txt new file mode 100644 index 0000000..fd0856b --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/ybaY.txt @@ -0,0 +1,9 @@ +time X Glc Ace Lac +2.50138888888889 0.12852 NA NA NA +3.34194444444444 0.198072 NA NA NA +3.9975 0.267624 NA NA NA +4.52333333333333 0.38556 NA NA NA +1.95 NA 13.8707825739758 0.393298289033487 0 +3.25 NA 12.773738532054 0.906010506939849 0 +4.08333333333333 NA 11.5763505631218 1.43575758428676 0 +4.76666666666667 NA 10.4281325704501 1.98091492950703 0 diff --git a/validation/validation_results/Berges_2021/Berges_2021/ybaY_res/KEIO_ROBOT2_24.pdf b/validation/validation_results/Berges_2021/Berges_2021/ybaY_res/KEIO_ROBOT2_24.pdf new file mode 100644 index 0000000000000000000000000000000000000000..01d8701b62e40b3bb9300bf31c9ca25507cd8dfa GIT binary patch literal 23742 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 Gvi}1+;*xy; literal 0 HcmV?d00001 diff --git a/validation/validation_results/Berges_2021/Berges_2021/ybaY_res/KEIO_ROBOT2_24_log.txt b/validation/validation_results/Berges_2021/Berges_2021/ybaY_res/KEIO_ROBOT2_24_log.txt new file mode 100644 index 0000000..f98e105 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/ybaY_res/KEIO_ROBOT2_24_log.txt @@ -0,0 +1,176 @@ +$sys +$sys$params + X Glc Ace Lac mu qGlc qAce qLac + 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 + +$sys$to_est +[1] "X" "Glc" "Ace" "Lac" "mu" "qGlc" "qAce" "qLac" + +$sys$nconc +[1] "X" "Glc" "Ace" "Lac" + +$sys$nflux +[1] "mu" "qGlc" "qAce" "qLac" + +$sys$metab +[1] "Glc" "Ace" "Lac" + +$sys$weight + col +row X Glc Ace Lac + [1,] 0.02 0.46 0.2 0.2 + [2,] 0.02 0.46 0.2 0.2 + [3,] 0.02 0.46 0.2 0.2 + [4,] 0.02 0.46 0.2 0.2 + [5,] 0.02 0.46 0.2 0.2 + [6,] 0.02 0.46 0.2 0.2 + [7,] 0.02 0.46 0.2 0.2 + [8,] 0.02 0.46 0.2 0.2 + +$sys$te_upc + X Glc Ace Lac mu qGlc qAce qLac + 50 50 50 50 50 50 50 50 + +$sys$te_loc + X Glc Ace Lac mu qGlc qAce qLac + 1e-06 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 -5e+01 + +$sys$u + X Glc Ace Lac mu qGlc qAce qLac +X <= 50 -1 0 0 0 0 0 0 0 +Glc <= 50 0 -1 0 0 0 0 0 0 +Ace <= 50 0 0 -1 0 0 0 0 0 +Lac <= 50 0 0 0 -1 0 0 0 0 +mu <= 50 0 0 0 0 -1 0 0 0 +qGlc <= 50 0 0 0 0 0 -1 0 0 +qAce <= 50 0 0 0 0 0 0 -1 0 +qLac <= 50 0 0 0 0 0 0 0 -1 +X >= 1e-06 1 0 0 0 0 0 0 0 +Glc >= 1e-06 0 1 0 0 0 0 0 0 +Ace >= 1e-06 0 0 1 0 0 0 0 0 +Lac >= 1e-06 0 0 0 1 0 0 0 0 +mu >= 0 0 0 0 0 1 0 0 0 +qGlc >= -50 0 0 0 0 0 1 0 0 +qAce >= -50 0 0 0 0 0 0 1 0 +qLac >= -50 0 0 0 0 0 0 0 1 + +$sys$co + X <= 50 Glc <= 50 Ace <= 50 Lac <= 50 mu <= 50 qGlc <= 50 qAce <= 50 qLac <= 50 X >= 1e-06 Glc >= 1e-06 Ace >= 1e-06 Lac >= 1e-06 mu >= 0 qGlc >= -50 qAce >= -50 qLac >= -50 + -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 -5e+01 1e-06 1e-06 1e-06 1e-06 0e+00 -5e+01 -5e+01 -5e+01 + +$sys$times +[1] 2.501389 3.341944 3.997500 4.523333 1.950000 3.250000 4.083333 4.766667 + +$sys$data_meas + X Glc Ace Lac +[1,] 0.128520 NA NA NA +[2,] 0.198072 NA NA NA +[3,] 0.267624 NA NA NA +[4,] 0.385560 NA NA NA +[5,] NA 13.87078 0.3932983 0 +[6,] NA 12.77374 0.9060105 0 +[7,] NA 11.57635 1.4357576 0 +[8,] NA 10.42813 1.9809149 0 + +$sys$nb_par +[1] 8 + +$sys$nb_conc +[1] 4 + + +$result +$result$par + X Glc Ace Lac mu qGlc qAce qLac + 3.127602e-02 1.439959e+01 1.511253e-01 1.000000e-06 5.502747e-01 -5.595526e+00 2.570679e+00 -1.880355e-06 + +$result$lastp + X Glc Ace Lac mu qGlc qAce qLac + 4.876486e-09 1.554263e-07 -6.952296e-08 -2.117582e-22 -3.882550e-08 -1.207682e-07 5.077325e-08 -4.659946e-13 + +$result$hci + X Glc Ace Lac mu qGlc qAce qLac +0.007270732 0.411299939 0.179714652 0.171010761 0.056239654 0.879192586 0.383564893 0.370849918 + +$result$ci_p +[1] 0.95 + +$result$sd_res +[1] 0.3694214 + +$result$laststep + X Glc Ace Lac mu qGlc qAce qLac + 4.876486e-09 1.554263e-07 -6.952296e-08 -2.117582e-22 -3.882550e-08 -1.207682e-07 5.077325e-08 -4.659946e-13 + +$result$normp +[1] 2.183687e-07 + +$result$res + [1] -2.320653e-01 -6.703082e-02 7.282195e-01 -4.339841e-01 -1.808020e-01 9.151052e-02 2.891877e-01 -1.998963e-01 1.948903e-01 -1.364095e-01 -2.435212e-01 1.850404e-01 3.971743e-06 2.338928e-06 4.798256e-07 -1.827462e-06 + +$result$prevres + [1] -2.320657e-01 -6.703108e-02 7.282195e-01 -4.339838e-01 -1.808021e-01 9.151051e-02 2.891878e-01 -1.998962e-01 1.948904e-01 -1.364095e-01 -2.435212e-01 1.850404e-01 3.971743e-06 2.338929e-06 4.798269e-07 -1.827460e-06 + +$result$jacobian + [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] + [1,] 1.980410e+02 0.000000 0 0 1.549344e+01 0.0000000 0.000000 0.000000 + [2,] 3.145083e+02 0.000000 0 0 3.287327e+01 0.0000000 0.000000 0.000000 + [3,] 4.511258e+02 0.000000 0 0 5.640240e+01 0.0000000 0.000000 0.000000 + [4,] 6.025069e+02 0.000000 0 0 8.523777e+01 0.0000000 0.000000 0.000000 + [5,] -4.253667e+01 2.173913 0 0 -1.524761e+00 0.2377574 0.000000 0.000000 + [6,] -1.100825e+02 2.173913 0 0 -7.179770e+00 0.6153029 0.000000 0.000000 + [7,] -1.869894e+02 2.173913 0 0 -1.607568e+01 1.0451714 0.000000 0.000000 + [8,] -2.824366e+02 2.173913 0 0 -2.934900e+01 1.5786708 0.000000 0.000000 + [9,] 4.494674e+01 0.000000 5 0 1.611152e+00 0.0000000 0.546842 0.000000 +[10,] 1.163197e+02 0.000000 5 0 7.586567e+00 0.0000000 1.415197 0.000000 +[11,] 1.975840e+02 0.000000 5 0 1.698651e+01 0.0000000 2.403894 0.000000 +[12,] 2.984391e+02 0.000000 5 0 3.101188e+01 0.0000000 3.630943 0.000000 +[13,] -3.287684e-05 0.000000 0 5 -1.178497e-06 0.0000000 0.000000 0.546842 +[14,] -8.508344e-05 0.000000 0 5 -5.549287e-06 0.0000000 0.000000 1.415197 +[15,] -1.445252e-04 0.000000 0 5 -1.242499e-05 0.0000000 0.000000 2.403894 +[16,] -2.182970e-04 0.000000 0 5 -2.268402e-05 0.0000000 0.000000 3.630943 + +$result$retres +$result$retres$res + [1] -2.320657e-01 -6.703108e-02 7.282195e-01 -4.339838e-01 -1.808021e-01 9.151051e-02 2.891878e-01 -1.998962e-01 1.948904e-01 -1.364095e-01 -2.435212e-01 1.850404e-01 3.971743e-06 2.338929e-06 4.798269e-07 -1.827460e-06 + +$result$retres$sim + col +row X Glc Ace Lac + [1,] 0.12387869 13.45795 0.5837306 6.835656e-07 + [2,] 0.19673138 12.71714 0.9240712 4.346193e-07 + [3,] 0.28218839 11.84816 1.3232946 1.426025e-07 + [4,] 0.37688032 10.88527 1.7656601 -1.809712e-07 + [5,] 0.09145869 13.78761 0.4322764 7.943486e-07 + [6,] 0.18702542 12.81583 0.8787286 4.677857e-07 + [7,] 0.29583646 11.70938 1.3870533 9.596538e-08 + [8,] 0.43087925 10.33618 2.0179230 -3.654919e-07 + + +$result$it +[1] 7 + +$result$btit +[1] 0 + +$result$history +NULL + +$result$error +[1] 0 + +$result$mes +[1] "" + +$result$resi + X Glc Ace Lac +[1,] 0.004641314 NA NA NA +[2,] 0.001340622 NA NA NA +[3,] -0.014564390 NA NA NA +[4,] 0.008679675 NA NA NA +[5,] NA 0.08316897 -0.03897809 -7.943486e-07 +[6,] NA -0.04209484 0.02728191 -4.677857e-07 +[7,] NA -0.13302637 0.04870425 -9.596538e-08 +[8,] NA 0.09195223 -0.03700807 3.654919e-07 + + diff --git a/validation/validation_results/Berges_2021/Berges_2021/ybaY_res/KEIO_ROBOT2_24_res.txt b/validation/validation_results/Berges_2021/Berges_2021/ybaY_res/KEIO_ROBOT2_24_res.txt new file mode 100644 index 0000000..aebafe5 --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/ybaY_res/KEIO_ROBOT2_24_res.txt @@ -0,0 +1,23 @@ +Results (100 mc iterations) + +optimal mean median sd CI_2.5 CI_97.5 +X 0.0312760239519037 0.0317321805324896 0.0318080785039935 0.00524468250807631 0.0216909304852643 0.0409168529240371 +Glc 14.3995874877449 14.3705435482057 14.3493500252607 0.393020749923634 13.5869231078393 15.2124465320913 +Ace 0.151125259589873 0.154119519570818 0.139700907577559 0.134286493471436 9.99999999990418e-07 0.432884130855986 +Lac 1e-06 0.0832733448128766 0.0587299390539323 0.0802441449294252 9.9999999998777e-07 0.256297212826328 +mu 0.550274697246852 0.549107815939425 0.544962415896071 0.039956597934589 0.48211080399717 0.633890976198743 +qGlc -5.5955260181304 -5.50431020284543 -5.47866773369319 0.773680576362292 -6.89100104747632 -4.21307902153159 +qAce 2.57067897180742 2.57739147478605 2.5911770593937 0.317170729283194 1.86558469547598 3.08054297237619 +qLac -1.88035492721817e-06 0.000155306863549422 -0.0120759687000778 0.192638799237632 -0.368343573219133 0.373274482147302 +res 1.0917771856284 20.9585593710987 19.7689070460608 7.27534607333073 9.74930840785726 35.7426112387501 + + +Goodness of fit (khi2 test) + +khi2 value 1.09177718562882 +data points 16 +fitted parameters 8 +degrees of freedom 8 +khi2 reduced value 0.136472148203603 +p-value, i.e. P(X^2<=value) 0.00240062244217554 +conclusion At level of 95% confidence, the model fits the data good enough with respect to the provided measurement SD. diff --git a/validation/validation_results/Berges_2021/Berges_2021/ybbA.txt b/validation/validation_results/Berges_2021/Berges_2021/ybbA.txt new file mode 100644 index 0000000..1c06c0e --- /dev/null +++ b/validation/validation_results/Berges_2021/Berges_2021/ybbA.txt @@ -0,0 +1,11 @@ +time X Glc Ace +2.87694444444444 0.157248 NA NA +3.67805555555556 0.258552 NA NA +4.09222222222222 0.350784 NA NA +4.565 0.433944 NA NA +0.05 NA 14.3701482371592 0.0263066098685597 +1.95 NA 13.9203156825855 0.419364252133795 +2.83333333333333 NA 13.2375280679518 0.793831471226797 +3.98333333333333 NA 11.8930283031867 1.44992959500157 +4.88333333333333 NA 9.24345756980004 2.05878355167584 +5.16666666666667 NA 8.4199886768514 2.55750800830806 diff --git a/validation/validation_results/Berges_2021/Berges_2021/ybbA_res/KEIO_ROBOT3_17.pdf b/validation/validation_results/Berges_2021/Berges_2021/ybbA_res/KEIO_ROBOT3_17.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8a2d239fb84893874ca1db40db0ad3280b3e3acc GIT binary patch literal 21539 zcma&NWmKC{v?h$V&;rGayA?@s4^Z5#xLYaiE&)o>;#Qne+}*V}6qn%8;NGAC0!(`6 z&fK+T)_1@8k&~Q#p1t?8_j!Mu^*%X_>e8|tT%5dEj3JPa?U1REIU_eLE}Hi=&K7o9 zqM}#;DK~3#4_jv^X>$*28Ww3`?)O~$T<^L0xOm^c=i+6>0;o7!{eP}~wDoX6cxlqe zxtY6swzYJpQStamwca{X@H1J9+#k93bWF3AZzR3fv5l=>wsvEw6&$P zmGwW~?jDGqIb!)_HyJ5SS&eF}-`12eva{?z)C~|fTVXQH(bv`L^_qR*z#XAtcmhHN znR$-f{o8w}^pw@)Hp|<6FJ*^>T)F8kx6|X{u*dCq>Y!`bHhswj`)S>*d!rorvC#O> zH2CjbXvwDN(;+mEI_Tn2{0UML@7(iDL#=R#_Y8kBGW4@EZ-PO}Ik%rGpkQ^KXm61JAA8 z;cna9cGfu+=sKb&DB#k+?P($p2wxX4{fp`^YVVsOmS-P0f!oNP*D;>$(bT>7Le`(@ zE@Uy62LyQ$bUi6xuJw4M0{b}b_yqa5ubEdR>c)BBzZoT#=NZW{rA-ZjCD;e)_{MeS zwq>m6$yBFb8Lgi@vbz}v72`G;E(j!#`=nXl1bp({tIzeXSa%e?Z{W#Tzxq&px?I0} z(Z|#rFmWb6=6-nnXyou;FMJdpT`Y3Is?H$^N% z^e#Fr#UnO)Mx@7IT&Bc3HmvfDU;eJ1D`-}6$c04uJ!_8fjC%TRc4dm?D&*Q|U!yd& z0QF3a*VRr8@(gRnEmt0`A!(vhY2Z({&UbA)zPnsW>!wV0N1hq79iY`Ckgs!~L!Gt7 zPQ+DR^m@iB`ST zC|CX&SHc7p&_95fUM$&-e>u3mb69nN3XnP{g9~qKxc@Rv0iK!~mZeO;sb;mtEg zH2})y6&1?1R>O)e4+{^nl66xI?yLK0nHn!$IaY}24ZI1*vvRhj{p-qVu4(b|Ud32% z=IZJYGqhlIfABdxR_z7dC0FqfPaPwJP6n<%@#qlPk(Lj+LWZ=%rKE*0lc+ccs&#X@@m$c)>E06ol`-$MBlcx(w($9F$Szgb4eCmY8 zvRrrn&z@Z%C8`>&1@kiF>p}3mXGWP=UZB_&9}}h8 zxIT$05h(k{7u(9s7+%BI&@vgRX;wXnHn^qY52LTe^u zEak8JAMk>ATD%bh)#1ou&JwpNHcD^X;&(jwd_ z#QkvPAjF+xz{8DmSDMv@^9L63_DCDCAe&J7+R*#tZ2RQoV0TPH{cnu>Nvp+vLb?i= z6oW$PIQg1UIh+}}|5HRBq`ca4S;Z+49a%Z7H1@HxI|CAeF=eLzH`8Y&xY!+M{S zt@M6G2v0D5hiOl3#|ZN2-^kY{p6Jf1ZHr*TwA)W&*UbX);CAm!mxzo(DpSCvJ>4^Zd>}>_yx%X!S5#fM%#4UK_c1q7Qm6V<_B^_ zkC-n7+&GPy*xWc>;`-Zq5Bu6uwC)~UCW~qYhvg>u)=hEtGbjJx?5}L0Z5fS04R?&z zh5r6Ansdi@h7XrJef&{@{aVnF1 z2~w1k3sBJ=qjB)&AEVW6KB4ptFWE`$f22@0C?=cMdPdq9*ng8uE(8S5=8nwZ$|Vn% zLvOK!ayHe5_Oq$BNs0MU@(cBN@ z-CF%K0tX6tL_A*vlEm*1Qzz9h-^bVy^S}uBVz-@1r*J`p&pBeS3fMztU!HZ~3ErdF z9X$6sA>q=jYs629qmtQICG~jREj#?~6HdzGqe~al79+S}OW(x2iw$*5fa-IAE9k~Y zH_RvAr-=!I2g!h~F41n3iC4eDWnQG--VI~=<@4_844NY3 zbU_gT)!PPPLH%e-EJaB`6+8p}yHa9XlIPW!cmTf;StQZJ-ytCa*g`Z=d53;?NGfde zn-7yyy-u%4tQ!5+j{yLfA~-!7jHkA1qlD>GL8gG^!_HfB77SKYvgvhiQ#nUI=gTF} zL!utRCL@7;7`jYS8*$9(33g_H3EV|ql$7EX?ZD81KQljiuEJCo&D(~o0_1HAy43zM zE_D7j?JG%nZj*fxYfl@biJDw%ex6R2(VB6`%*X56Fmjtx6H48VAy7v(O2RkH7la06 zecFM)4$uley+j6X-sZ^x>7F2& z>=#7PbkfU=fdHhtIOQ+171d`XffRy<&?%Tk!Rrax^nar%`BHKWIL z4b6`%v{CTf?D6s3YUN+QRfSEO9{}88xersETvV7{zCPIa?L9!ngH^^M`X3~PHM$?X zZ%e`^uTaha{TI86m|ena7?|q^qlwcbX#hr#-oS)uF}V5%>Rc*n%s_vbIKH22Iwt=8 z>%;7D`t;VsNd?%2$ED(d{5j1J@ANnEVcjNkZLjZr8Lq}$ycw=Cq+o>4c8p=VsqFSI zdmyH4#qQ{bLy6NR{oV=Fu_ox4fzm#2p1FnH8LrR;yYTO$|I$D0{*}iJY_)pJ;Gt$y z9R}117KZ{Nm=zD^4#yIw@p41My6NC!ydrDdIhKA1zWzS1@!R{4Q>PO*Xmcv4sN%zb z2nv|3B8Ns8UFO2z03}BG1LCtUVNM>Gh3>&6$&;QAm`0fEhbVJx10J}CMuEwb+S3zk zKhD2Tj@nZI4voC-_6psd54ZpR4LI19ZTDjIFp?9NyZ2%AD48p4VO|%(7e3&eZQD6~ zRM@WtA~weK;PwLMH`{jd_aA9o`STaEVzbY&S6>c|ex;$#wV|{JGF}}XqR+-hU43paQ80r;9xyS`Rr_=n0=&NX~VP?~(k_0(*dtUr*>R z{Z`MjmH-$&nAUC@rJvqX)K+=~1sAPUnbv;nn17XKSAvx0iDyK~z7XDQyREU>7XPJa zh4ph@`w;x$NoW4-Ftlie(d9>b!Z8y2f)~ePpQhsrn-@w=T5V?fj7%NP$7W?-*k)zT zpp8CFcV{p^B2cyDL*sW1fL{6fmzy&FMs?Kjcl~aEJ!(I$f~NXrv*{7parkl4JZVXg z5tv^=4TFufo0a_4= z*J<0V%wP};ku(|o#rV%uBzC^=DWo*wx&ELAPT3tDjI{DDiDTZ{kEfOxr&=UDH|f~y zD&rX>?8l=jl| zZ__E+wf*bNaB3@aw!LdbSBQJ-6`goc5a=tYkY2e?vJ_{H!Gs+NJ0Gk$KhVzQ=0Qkr zF?@{>;k-7A*{J6GjjFGnwuMfQf9D=esZMJiczgpTU_bV#3Nd4yJ6gf*t>;Ix54J8! zdr@2ILltT*w!+fuCgck=8+}CVjVu+89{=a$`J|VsNJ{A2q`llZ9ow=;~+FM*nSK4hQ8vy!gnQZe}~ zbG08Z%DmWrX=-kT5=bO6gygrpKsDH$NkHRwc+&S_pzcink zA8o;Fnt{dXr5&1#=rghm3qIQ5D7H{=0amL>aKVzv0J{3egt+{X0=!Vj4hFe|D_tbD zIvT4`eruuz9wA-|4hv^6z9io9aWDj_6q)dvFN}_TP#BPe!h*#j@)?c8Wol*5&@+e#pO{T6+@}>IP$Xm>40`io# z;E-Sy_4(ILa_VTdBKd-Kl9=khm&}-0j=~Rc^1s*paglJ{zQv4Yk4E&0oRjNIN-Z&u z{JIMiTQwLm6wW27vAvI#UrIy9Ex#^NZH`)9xeE==FC7nfp>BjugQ@=UE4>4f0iO91 zO(S*!5fJcX@IkiRd>kHsn|xj0k5S|}E&V3lHi|skujf0L{gQ$Cmyi8vQ{sE}u2N(S zQn}!oDu5A%0kNgwc2^a@`jg@sbw$B5rtmo(-_CWKih0FxTA zk}yHq=t4=Iof`?g19Srow1VDxfUgXZDw*P4uJv9CpbocR9fnUz}?GNC?mQUSn?w_grNTL{O(2kyJ-mxzPs5a_EI+> zU$D4bm^^z@gnVLeI*Ww_GGkuWU-1huj+YnM;`?9T;lpskE@gI^IST~y=CP%nQCzyq zpc8i`ml}0htCPB^vJW^>m&=$S+RdEDR9v;+fV&HdHCF{f1^DIGDuD{p&Ncy-$X)x= z1_Lrsysl578*qaoqBwS|_?v_Yo_IGP-G_P^tAK}l7rFElxWh((&hgu3?~`QVz6cq{ zhmb<3Mhh(+9gr$9QN)apHu-W@%?azNw*BsFR%o$d_l!_ty?JD*xnMjJ-qS&LsRov? z4Nf2*8LP?*LE-&?!wMl**=eE2hk2p4QTd$9gYREkYXm!$v9oboQCZn-TmK; zty?HEV#3TG`T6dCd03v4_nEU*(Lmgz?8?5vN&N&j;~bvh6sKJ>rLX~ryLSY(C! zeUjD7rOHE5VP<}0ybr`4OBL?T)4G=Jd#`Ej3Y@nOvcK@<$nF2;LYq`wClF?~*C})7 zUwb~vW(+sGTZ*JL_^=p98xV?;mx7a}$6TaT+Sev*gOwFZW??xI6~04!Z^s*U`+YWt zFk09~ZURAfi0th__H>(?Vg&R>&YYHXu}20teo~)K8n>|V#jhC~FB&R7%m|eHVp;@@ z3$gNHB5@(#H##Dv`u$fC;gaJ@-F;;Mq0QX`mT<`}W+Gi5b?D?_ps4a8mZw^w$MmV1 zV!DKW&7}UuLAJ@9JXU1px8zyvqkOr2<&&QwlNlKhm68;bOCL|wLI=5hv|TY_8_+W0 zPBEocJA6eqxz3r;L$#z=`H&0<@>B(@)Jz@{!jH097k#3$bk&gKCiN{<%q_4F7K9#e zt0xbI_ZEb@0Q*PTkFk??NwamIUMw?#Hfff$e^6 zg!tkd2KeuL3j1yw)@y~xRqa}-Oc&xSP;Fw5pUUI5j*yMXbB=WRuJ%sZMpABT?n1um zetrWb5}(cq&^zBMku}TFG?jG^YPH0gy=@i?JueNjj~v|?zuH4JXp>+wYL3nfs_uVH zT^l{?3q;}xKx)}}@$02WeH`j@Yjv5mqrkWu_Oa0YML6Sgxm(`eqvHAJ<|L$90@Sde zTd^FSCu@SWK)#)H5s;HDsMuVwPVQJJ75O0k8G^gn-JyNth`y2ZzWA!^An#7B>Ui{s z%xOJmNle|Lsf&oh)0;FU&ePkXM$hYD-Ld72)8-Qgi=njr6{|fv)vVew{gIQNce;jm ze|yL4R0Ob`u34$B>KeGXZryDC<4pAg&k&3b2@oyq7|;J+*)h)kRbt&3L&kF5n5jr+ z-B?m*puHo>)DZlNmG9_GuXwUuMCRU?wRw@xZ}~mKu;1S<;^bI=rfO>0PG}g9BSBgN zUMETkt*z8;QI$%osaZchQYSWgrHPS(J??1iDWUH=xcGiN&VG2YN9*KwJDs|N@K{HJ`rn$L zD_AgD8CaT|&@rMNJ#()$9XQ6l#}MU=-{`V1P76=zDVjNgex&3d%#dGdI#gU%rd!zO z?Bh6oGyorV;H%atS!Ts)o&3^#jUaVTlY;+wRT|fk$NFRQ`ch1jH3_1C1|mhwlwbFY zz>oJ)*J{ySt*@k_bC$|+q9-(w=hqqK(JDLU_`fcBrPKlSz0*Zj6FSeT3FC(=JJ{5# z^u2W-?8%7?ul2o|S#x7=<vT*D z(FP4L{a9q3VUI4kN+;;0XhOOBv#dnIEJr$~Cmd-@5MfdY4NDa?8H_)34Fr#Dh(bP{)WH4B~j?9n-RViO0&II+S zEI0SFhLts4XzL38`id-!>Ir3%-eWm~mq>$?nwY@_h33_B$b`%Os_GOcgXk=A_ini{ zd?YDI(U4EgrI^uQgmEM^l#u<92BS=f5eF(?ZluA{OLe5^@{Vhy=!Tx`{emuOS9|$W zqUf20D*w_Ntv76lBc``tXn}?Hfwh)8s=P2u^_}Lo>Iv+M7wT*CgGkXQMRY7q3BOUJ zPbj6h{NA0MURqqCX%3r+`(kT&&u-Kb`J?kpI@7V(C7dD?UWQg9tFt4yhFVBoqDpGS z^h-I{<=$#Zv4*U$T`AgKhTd|b5|TGNy^O9mu|YgQ8`pZKHeG=~(l4{mrPL|p>0U+~ z^pG}(j}PdOOD1-0qYY}Szs6BFqRFtaC!63hKNjvu!Dl$qWMPzW$BCKY@&Ab&UH>`& zh!l-J@diyMqnOfzc@Fu@Ss{%8;;6ay66m~seG^qo(@-A-P?O$4)*FRJF zPxpV*)S{R5 z6@FVsg(Z&#Rti_0x=yJOAb0KJ!rb%wsEK&+d4U5Pkfhq0;AfusB3H5q?L*_3^ z#e#0$NmYp}C#q{OFV%U@QbkAQk(-X*dGJ*sV>>F%ZID43UKF;+GU&evMl#_$A;+H@ zVUF~6GaP2#GM8c{fNI{UmFnsOo9H)m=1~da*=`ww!Kq#Cy_W_illY_T>vYsCrC>%= zbv&AjsL)x8i`ZX#!haKImyGrUifVn|1QgePBn&9oNpH|mM#C&ZdzS?B=_|Q_=mREO zxE1wBhPgA>N5F2wzFu4Iq|nR&HLw;7qaYo@okejeGBBgANu@hO?+6K)*?Ru6J9B#K z128LLAnBYbl47S{^gKR5|AZn-gy6<}w8hti{H}G;UnI}Fo6`&DVMOSMDOvz%`!il4 z>a=SHheLuC13}i>hC4QweW~4I0S6$oS=oA9h9+^w1@9tz-88OgK6GbEb8T9~-ypif z`>nr{>tkOUgc_f>r?E&--{s{j6P8hEqdo*vqurmVy>MPhlO-B0rC+XzT2!Kzc`uR4QAZK`o)>S)am*$xvGPtp1|!^p2C@ zG)Vnt|BtM{Ls=Y)(@~f`Q3-vh5l8|8JE^|KRQ|552gNKZzUsy(I~4h>~9Fac+Nn`^Sn|Y>k9$$9+*63H&6ldJ_ksA2k%SVvW@k_-EYw>IHMZf3Qu~?@#5wCAXdH z2>w3!M>-x+@l#x*5UsU|t$Ur>LZQluEVXSidRNN72(*sGxi8Ue3Gg1|vqTq?W|`Cv z<+CdJkt)s{mWvvfd&^lJo#ZQ0_+7_N68Qz{^%S$zWe~yoAc=ejnBG5%mQ?iv%cy#z zIOSHXbmVOb(8GR1E`*S=W|<&;iTr&AagEDMM7#Q_%Jvtbj`CS%=5i|omV+6Z|UaY$E)RQlb!3Bkff4i(x?;G`~-GcPewy;!Klzh5>0(*NLn7^q~72cmYzdFzb zAdQ^&c$Z~abKX7P>O5B5)!pqr-pUeXgC5pzo0}zjyaT&#_boPT#@-pYztMhI((}}^ z`4rysl;M(by3^|(>RSIPP@u|S?^^ixAqT`Sko-{yyxs|JvQs{IRny-Iu2OW(JAQwD zz1KSN?<*ZS54w5mym!M!{OSVg^y)50M%3?3LRkF6IvgjSv^aU~JPq(%-2}e=yMDjB z>1aTr|I2$-q`Sgk4Quo93d`2H+rD|x#%{TikLu9-`N4aWlKE*N;u&3Ks(~G$;{T^0 z{-1ij(Epax|CgTs-^%k`@Bc%N|8Mm9|3Lho0=*!Y(Eqff=C?pa!SAI-2D}DP$f#PWbF*WP9G9prl%0`frU1E3A}ydBB4TsK#-2y>hokWT z>N{xq@TN)7Eo}8?jg4J=My{@ZV`^@bsNLw45!EK>5uxCBfCCTHdjhrY1K_u~fFAfC z@t}u_VO{agk#sG;0dWvavFG~~IOtKfJMHS#{**w^(``EZ78hPP3qD%0sqvbmZW$6;t_3M1RfyQ{7if%l~ z06`Cr<2~JhgXq;tfZ8GV$*J~UgQ*4UG~vprR*8yjA*)P7|2TNaEBIN{@ofkx2xRUs zr1cE@rq%}W+c9!c+wA@w=jxUgQ4#MAa2GQqaR<5+xG$8zK5!liiTn;>9+7#v#^))4 zXRDkX>m$_Jw(zCPHe!cwtd~G7 zI(2d>`}Z?*rH1Su^*sXG64)J`w%a`5<*56d?mxC$qL;_JfLU<>Q+95Xo?QLm^E-X( zPGFwa@cHAib*EB*&Tu+WV$+Cj|I|SDk^6`bL_=w~2P2!?^n#BPlwy+v-2rJ2Q*$SL z6S(I&hSfK7YxqX89l^AiQJ&X4;X+(4x!3w0aP8dmZ_M_M9&pBL_U%zH=QmSLKTcBT zL(ASXz57nGV#*u8Poz^pOkUMf@3y0)ZYytmnr~R@2eF0#5J%%?MZ2km`7^!Nq@l|r zyYXKsa*5Ve!a*E*=XBkLlUjCzu@>J8Z|RR|L97rXsdG8vdaF8S3lv1NtOH1!4<0?% z0Wxs=!)rf+65@wn+`YLj25Yhl4{ca*{FcP4pxXD`xvgK>lb7f%f5gCa=b+ZKRu)Rh z*3-}kBl)4^RRiH}<<2!dyyy1lm5VLylc-ffLnglwA7k&gCvo332YN7uYU-&Jh6tYR zq)wy1F07i^2{=^HIi*fe{Y|HPD!$a73rPEM^XpMtxpFNYwwb!nedP!7BD&SJHXZww zlK4i@Z2ZgkW8`ye_07PSKXq9fd6n@2b+4D#{Xk1T+_|vL`3GBwJa?{gf6=x;ES9y2 z3;EJ3@;dnhdEsu+R>5x7n7GY_x)_-09282UBIUdYwGPDp0R7cWBdQO9<(nVQktxsn4(7e5hCwq7TxBP9-iN zw&~r|a`eh80&V*iXr^GhGFqBszkTv`(kpGKT5OF<5KBm%;#)R9@#_y;{q>(a?Js1O zVcKx5Z3HF@7C`IJ>$G&B4cFdwOa_d}me*H#1Z6R3FSGnJnI`u{ZZCARZ}1Bie*>&4 zZ##Af6W5yv$JV}J!Wb`ymMGAqz;t%=_^6sSxZbDfZ#yUVGDEAz#O>jZNijRJ6|nvJ zheQeH5UlY^Xl>L_1)9^QF1$KO`GA9Lo<7{rVK9K(b26F<#Mm9iJGFCmT7*Y&Qe^DR$ zPl9Z-$Nr*x(Y!E!LAd;WkFN&+*>!ukdB_Gn-qyqIFK&0|Ks9G8cMm}ikGZAsG&()q z#*KfbK+VsGJw^%yB0B0f%owmK=coJAydYTLu#Z?URSnX#v;}_3pq2oBKNa9bl=hh; z9oO<7vi7I}2JX+FJQx-!mfu8;YTlA2yyXTHCFs>iQ%PHJH<67}L@DgeD(}gkC`!{w zTh!B$Eh8+!)5;L}lgw~J#BYZ8g)$8M<<`V<7WkM$ujOBh6un^JCq1N$LS`)r9`UNCT*`bIOdf^o!sVs8efjL`)A#P4wBoYBPZR^^E( z_{r8Ez1j`(P}Mn6U)IFHt^?jx#GE=P`1 z@Hl0p;Ud-H$)T?UvNt$0H2>a202~kCLjT-Hz=?0|`XUFa&7YbQml~n`_=eKN(iRXM zMsx-yB$-D?`Z`I5Kk^QEZFo_bW*Sy!^2%$~rg%}@5*8ainW>I2HvF6;a7Y^1n{Iop= z%C%9*ql|Sj92sO84&{}9eWw+mtDAhRP1K`La%b=&o!yjoAieNn@T#j{k*~b;rHE2l z1(8Q_#DEdIq~C;(FlP2RFbr8WBrY-3)8i+Ds00`m9YF13dTq`-i?u5K*I0>E!^x|& zus^r-Ejf_Ku^`5aoy(7{#y%U$JL7i=cXqDbJD@#WVBW&J4zbPfiW@)Py_VSQ$J@Bd zj=OV{a|>v|gH-+F&XdKeAdNpa|%dWx+V` zNcS-DPO`=!llId1jyLPvnAF;kdb1|#ZuYjJuuil;NNw<)=Md@u$?6m_Ai8i+TTL{? z_#sNb+Sht7)tno2;q&!-fcyaOZ)cVahRoNFcG&&t9S^aKenADeNG;so=8u2foha#LcTaY}}B;*=q(9 z6oTR>MN#y(C3ou?HKVY@-``t(`QV>^XDDa=dBtsyPffppYQh&F|H;WkT-Zc# zqX}2IZP`|VGFv`H%JqrL?y18SG6aSj>akzP6P%*}Si2dioF=pJ0ZMvWpGKjL4zDcn zqgt$2V#^q*NI)~NBOl}9F0y1hACux7*v8+WwzF%b?`DBii?6=^{t71en?3^nW$FRc zi;wJC3aB%|1CiF{DpbDEJIf~tUTv~?$%_wcRK)xtcg)1`bB8>0q;kk$`Pa^~=o7q* z;a&LmAR&cko;l1liITU^Yez1X~DuE82HkjH$NDyh*M7^OQXUiI+%Qy`S1I!$!o zQA8i8VbBgBTMP=9aqRd^p99oq5X#Aobz1ZAv()f7@G#^pnM7{w3{oUbiQ$TC>+NLBz&ACh_S=LFTUcnJsUPj7noaXDjp+`p8e z2u+w-XNTn?6jF&Q^6! zOX1G}zSPWCwNc0Nxc{c08_J%{9wQj~SEa=JRdk3dxRC6?gV>WD@=h{k?hxD+Nv`bH z5jl>=XEMNNUxOxW{3RfNu1fxbE>6Lg#5LzMM5@G4q%Wp*fNmjHby&h3^}peEhQ|hspdMMJ;dH!dcVYj+2O9W|*z*8g%fe*qu_%GMtdr>NZ7f*w%Xu3#T!eulgVc z@^pJ!d?)L*(xTBL#Ce9nVVj#nrGS{fdLDsaQOm6C&7@WNb%yvf^V->Ju8W#kE`?8U zsL=UM1R)S3o))WbN$mb{Ft(ZByJ;&@I5j{&iFX`Xk^C3TfJ5boAKQqzxz6<`BHQuh zdzFG48w1{q7a!413l)}b0@9fHlpB+onqGm`GQ%93!iy9}#OT0LwU$jeMG8x-E;(Do zm9Ly_@y*9)s}aGm;*y!{*P9B96~e@dB~_AZt8SWjqfV@ht(B5%l}e2(r2C2N48ydy zKX9moj_ZXSOTTUAwXnrERy{s4$V3Bk4JjnQ+}0ICSTv853^NC&#yn>Wy|l*_lI00b zxa~6sYLCQ~lecg_8LYiZ+`!h1Z;Fg}tlpGOQtl$FRQepa~j#zuYF=u5FV3~;~kc@g;xb|BV5fJ*) zh}kT{H8qW?Z{oB5FJ8=+?8CxQ?gtJPl)c7Y&(P!MW5dj_F`5Wo%<4{KW)&yS99#U= zk)Z}&Oed55cw5c3tX@i##n@gBVl__XWGr$iFzLHk!dBH?rxk_dtxtq|kEk7!Qin{= z!Yx0dhLo@T&Z)EbzHue1HK6-Ef8V?7G((Ml6q>jcx~UuBc+UO=Gop|_Dt~Ot*uPvo zJ?jw9dqx#maMOU6R^!wJZh!@%Br`_vvp4s^&%_zhALj2IeIK1^h4E^{d#dvOt`?PD zz?-|CTK;-LpDtI|rv*CAJMImCi4F)eD9GcUQL}xwc)64p3a|%1A#zg`sTn`GXYRY> z?B_+ym~yd7b@|c}2NmEhsinR+xE1o95GG4pt8JSH0j|V zYhnu<3<9zO>5yhYAF=g)X%?{yxu%{n8_2_qx_2t&Hhi$3o@8PB%2J zFFSw`UE76~b5758asvjj6X4-a>FFbKbcWMQrZnnk#=e5y= z@X`a|J@-@nxW#Z1FIP1;4PhFO@`*tZ$b0d8yomje#dG-cj8g4J?jO)82O1oA&>z7f zwwVWxo7MOo0#d){poZt+Zs@{my1q#yOMY;Er{Div3l@e^i-oX#rZkHWex6|~lRVBR zgChu^;D6>`lBFkonp)P*Lj;cDBK!SUyd8({Gv%B0rHb6NzH%rVB7yEf;7^r0l&7h| zCc^ONYeESijGA9u7oIo%9z^>D)bQK{tMBFltBqEVcgU$R*ur;e5w}>!mDQ*88ViRFP<);1U))iS*lj2Xtk`Us~My z$ib?X@3jOCkq5(A_p)~jLM4~K2CFB9y^I%hev((yYIi2 zv1;8MZr+Zg%h-;%nf)mhq#17#>~1g$y6M;F^okT1_gv4El*gdA5)zXps?ScklQc*6 zmrZ-+l&PAAI?gYZCUsHQKyKAWrqTbYtvNKF9el+upBBU7*kDA`@J7FS>{CgD5ewJl zsN2HN%myPqs4t>x#GnSF%e38h&CuB0i#=j}PP7NFdWsV&{c6YrQ@zo}52s5kca8qtlkAgwD} zs=fRJ5o5HWONjBCp$BfUCqtl1-Nacm?9ms@;0yk0oT`jo=xuzV(y4yCEPcL0c*#8F zoeG_~G-u3(2Ivd*0Ccn+E1y`$L-jUgi>x}Hz_xvoty_+C(A3zoKw}%BA zbLFnD81s-+_~^z)@2`9Qgn*%n^sml+iivV37&at>a3F8Bjj{xX{^AolhVTRjqRUXP zF}-lbIiVs9>?I()e49(K`j-)EVwno@dGns%ONN~2B#xQ!M2{rhr$IyV%%@S~XxFES z%S15OaU2q}ZS2ANMGyuy{Y1kVE=BpI6sg)XgN~qMVn{`C(nhuT_NYaIVEfQBtaB|uZuqs(4Y}5}9=!g;d zjTWJNJP2vWLZd$+vrZl*$-wFw$lt~iV+mN%mtJDx%l|M{#;JSIha*FJLTdek73y0$ zt+bpoN$3~FZJ>KllMCaKHHV%kKd_ST_5!r zG=HQYq*PBUeU*$tBp^X+{eU}fDEc=SE9Tu;sN~=-ftA@XP2s$eh$L1s<#+F+IzM&# zYrV4X?ng7$tEys}l1*j9L;J2riMgF+a?KwEu9uu7DV%I17t7?t`S<261=Q=xoTy?PScLaG?8#6l|8tj&2#dhPvr%My!8LHNcD zF|VX@m5VKBiee9S-VyV%sm!>kD(TorpvGVS<(A-M_s1EMD^Wy^5v(GLzXW7 z;z=oM4^8z%e;(Qr7@&{2oAxqRAY_bfnS%N8?WklOD(6T!QK}yYuK)*v&}68x1F<>r z`I|id$cV^uv4L@qy3bcSIPs$=I#Yu_$I#YIdENs~Vy>D02bQWX}b`sW5A8Oa%nUx$IRF$p- zW@J}lr^~MXw$pB&42B)sH)B5r-K#c;yCa8}c)MScENe2|{|#>t*k6vjQ3Yl#tV?vX z)Zdj;IeT2fyIT4luv@Cnn!YzpFTcOW@V6`pJN34B?>u?AQ_*tfTRThs@D$F{{OHR* zA%mQH-d|wVJM~jtUEO)uGp%Pf#3Jl593%PNNB(_QtJ0Go^*xE*o*0_%i+TfZuIhWu zZ@&%V`u|}6_R>a=7piP2DtbMK|MzxEnG)L4s!RylcYi@vKDHg%)3$2_KP4K%1A#rL zD7@O62Jy%JoMY}JyXc>s{>YHLJ3F&c32n`?zJQcdK)oq#`poy$L$ph@y)%G^KsmT0 z+phJ~RtBI1`6i>3SxCxu*uqgw*~6Q_ArJ~r={9aOJZS+AR;j*a1`FRtTY zs{^B)PhMP?h@@GtEE|eYSjYOn=5H5C_yqskRg0*a9bt&G|6sTHVt8y=9@3L$>b9 zDW)h3hT1%1BnLPC#WpN)yg-gEWVBW{xam!HdBML-3|b{Epnp1}rT>z~`w-dlP{pwa z2o;1li@*X0HW`}-t@O17Td@tiHa>5S57HXKjp<`wlL^w0O%LeIAo>wyQ^>uXL-W+k zV~ps<%Rbw`<2^ltn_gnhG1@v|a&Q%cpqL&dQTkN9Iy7jDcBSg2sdVE8h8Z^&qM|pQ z96A)xdXBV6vo7quek4h_BVb4na!zGp6x^(fN%VGwVtjzc5We0Y!#TYd9ZBVwO!4l0 zWRL$FQ12`Nf_Y_^^S97%KlN$qk-^pb}aXFw)CXhcnLX& zjd2lywr`!i#vW=5U1Nw1;|m6ZHntjx~zC`Dol{XgF;N-fOwW&jIVi9FrZNxz=T3gbJ&7QNlS4 zcFavkIO2LKP(~xphLG>&8uXk8et7G~eVUnPkZTa^&tPQyB;_spD$(VWLKIkCq15zi zV^h>Zss3v@e{<76DjBuls_C+M8jJ}GpsmuYCcoK5TH!CBxWqQrd1Jua>naU`swv!TsRByb@9875b*wCuFA}qZ#!@lRzs2eq$(A@Z@hS{;NJ2X>@ zFNW698U&J^W?w|C@kI;J1>1~-eyWQQu%`RCLq4;0l<`yFL7?E*0-IdJXX*YK_DOPA zLHRJs35x)&Pd7Z;S)cWTJiP6R?|{Ws`ke$3VULoC>ZH}Loq$mVULp->bnhZ=?`X*O z{*^Z5J4+nN8Kg=Vqw$HrIOZHAoHIsveXR1;sN0e_VPailUjT9^pzIpc`zkTZ;jj2dHkFxtq2l#dgAMcNe&i z5;;3Q$+9@*Kibl5Nq7;t06b>gOegM|ZZJA-;Cz2=%>Iz^Q_?S5Uyi-?h84SB{p8nyBCA3&% zRE}u_2^>kB>MCOXLgG67tMl9Kq>jRm`U};8f5*P~x(L=d%OA-m`e~YWm@eq<7Vzs_ z%lcP1@EYi0CNt?w*

9l=I|Ed)D!8Fu@7?mx}>Ai+_B6B0ipHikI_NrHTWMpCx0 z$e)`Lv?ORt&_VLaoIA^PE^FA0pr_P1EGFnp(2rmM!L0;C{Qd4A7)db3=RclcBEb}b z=>)R~<`OI*SWK{tpoCy0!5V_~1e*x9`t#1L_3Nm5ppY+W^qeHZjgNwJmIG+unAv zU2PA0t-ap%wf*fNJJ=4hBj^}y$Jq&XvYlpU+BtTC+OEU@jdX0WI|z2$ z{q~?eYERhqp$>DxWSAc|0u+VK!j@s%utV56>=yP6i^JYwzi>c!Yd9plBODoy3CD*M z!ztnPa8@`sTo5h}mxU$a%5Y7%KHL;;4R?ln!m{vicq~lu^~gqbA{P}#jibw==25Gt zUDPq^5_ONRiF!qS2yUje&u!7rXgFwwQPEf$TPH6k&sY&!VN|Cydg2mfD4$CBu& zXayas=vW(Vh&D&tqg~P7=s z?ib#qf_N9x=y`m#E8*_p_Xtl#%wO}}%a<@+z6~XrhVTbKUkTg}cfV3Fa=sF|UCmw~ zs3cuMb4g-*1<~CQvorA5eNC@GoZC@av10ut)MXe_F`a9UqHK+s57b48haso>95~RI zJr$(B;&ZDH`isb)!|NfWNBC9HUjr>M+vC1N3FmheyDZKR^yk2v29r&I*yGP9kk4W?eeL2c@BWm{=$InTCOIrvp$jL!Fa@yHQdv){^-0NwUaOCq} z$md4TzXW|X`)Z>+??gUKFF;FOO*18j6cGMd^f%^%#~ktm=&M2B4!Q@;> zpbRS@MH3N@-ozeI3I76k3hurU_!Wd~1ZMiX;Lmrt7tqR?J^GdgH0r7=Xzsc$d^tHV zIU@PfarzfR6hKA4=7d?-0D`P=0D zKK`w8ZJ1r4o{hk67J2pSU5YBr$NY|tW$ zW}uZV@0UXut?+`bKD>vAYdz2kH=q@6Kr7sUR(HW*A9t9K&tbIM4MzLC#`*9G9wz&6 zhH3u)Oe*aW);7+ve$Ti;1snKX{ULVn*$RI9U=W4(g&q8Qr&z+D9Pn6qd(5`=o5wG4 zd&j@ymInSd@QuKo;@=YfW_&rqc?7%;;RAfkhk@rHhmlA%5+MzN?C&k$~gkk6%lfU8BwrwAd)2YI$BUq$#oC7*JZ^2^H~Ksb-KP0F9gy*3lhFF$|~ z#+L%ODSsW9XTG-OZxOx_KAt8h-tOHcNJ4wLl#VsQW??hy_Q zhtW!JWH>hJX3A(y)+_28^$oj(T{sn=!(kGauJ)z$J2SAs%eawyKCUc7!X6|z{+{12xTjZ9w$K6u*gj?oH+%s;4d)Ae@=iMszqFdu$a%VQ>;$C;#+;;bd+wI!v6+*6!?AQpJF;saXxtgum(237C49V zSAmp*&#E~c+ATs3WsKFO=7zX`+}}MMKOaBu9*Nh->)k@&M}Z#)UJCpq@KeAgz|R7g z0>22n7Wif0*MPSIZv);A{08o|8~81R>;--Y_#p5h;A6nYfn&ybA#lW4UFGJ--;cjf zWxqeZ-!0(UQ4OAppQ9QuUZjdt5!Hj~#qojo0JRh2#}Tp=_z7P#rk?_S8X?PlEji>F zUst9}fuBRjN?&gdSquC!@Me_cHPBl;518HtydC(jDEThnH&FiFz;7b$9^khSb1!fi z>hdN)%zg2z@vF+3 zf8`R8Y}AkIn_=;|c$}M|TG7#tuF#pTJR3i2`otx1iMf$6U2mqEQ7h0@YK5cmQECOo zixBcC=*NMV0zVO##bv~Krk?_S8X?PpOAxX`)lqeb^GuflKZmO;fnP+(THu#~HzEFJ z-0?MpY(dPeptk{U2YwTA_5i)+)tC-Sq5gpmPT3}I zql)OfJYG&*pBhgkt}`Bnd(Ke#DxbK1BtAl1XZ$GeIi}8z8-llYLz5Wu@I@{M* zN7wKS6V1x0qYBi8s)m2@2k{3VIZ<6z7ir&&-&BRFu*!V-T6KQ)us>XWA?8}e{heDl zlNXKI@f-0QplNve&WNbhgAiixh*SSqjg7x z|17UG+Hu)Wo8QB<)}}h7@1Jg`56c_Bw49{luq@m_N9A8tGF>UH>ZZC?$m`wsU6o5m zRb}x!IPEXHFQ@aW6qdR6XL?4c&d;(|ffD)hvVW#uh5nWPRh2HCZ#8}u`bTRzJ}ge< zYcIzySL;5$Z*X3absh)PeS&Av5Bq6#0X-qyq?EbY+@h?T=YFRm_o#bRCFv>QDOKP7 z-mO%H^lb2oYC_Kf+f_@q!|he=-G2A~)IZa6z)|%z_kLcazLA$hGx&{^V<&#*pfyro z)0c9;iE>X;?l%*C3*940_n_xNH{Z=yhMq?rRtb70SwQ!G#4S`g?srsz3sHg#sRT=C zzNTjty848BLgmsE%Q9NIJV_VR!s&T}%DRG9LYkjuROp_ga@VDDuTl-% z3vM;#{Gxl2@}Vaj<@gy#<+*ik9pymJI&>F$+M$}iLiNn2dcI0{6Rnf9`;+?w(vG!Rvab@H)!kb%LG*7tuYK*9o`SJw_#9j^}~n32;0I9M1*E z6YgoZoI;r632^*^ERH9@@f>j6f#bR0cmfXSR1K)GO_XPN!1m6>$?`exv?Px6;P-&(Ut{>(SC!Zv#TtUy$o2V|EsSfe2cm=i1;$j`%V_KxuS%)x#{IE&I(-&xTc+ss<7gGzbRhLko zT2D{?JW^chcDnuQa#xm@AWkJ|uqjbG3;2If2{_zj0f!aqd-NndRnO3~^*p^$FVRow z6?&Ckt2gM)db{4G_v!=sh(2x<{FXK_4NVi%)U+_IO?%VHbTvK9wdQ*2BmK=FGuRBv zTpwXZn{j4>nQW$+nP!feZx)%QX1OUftIayI(QGk0%x<&a95hGG39D_6P1=0h$QIdV zwxw-rJJ`-`IEc#;&)U>{h#zuI#a8_VDS>nfn~GsnCXXLKhZ>jl;{r=3%R_ooO9*47-Hg!)rL- zuvge8yg3}GCxy3#L&M?WD7_&Z8{QL63a5rM!r9@xaAAgjmHAkSpXqbBBz($@2v?-} z8?Fl1>apR5G#|sw;r4J>xHmjNr8^QH&sUGk_#IsvT_5$0`e*p=&*|{Yc~CT%avqj$7qcVck}uEn zO6g_y0Xy`pUxJ1;f&l$g{So+jge(At-8J<9@MQ@32hjHe^ExAle}(*^`yNa|_)icH zP3zz&@KA)qE`@@P1oaT`rHBb_-B?O!5e};o@$0}hBY&|}F&0-p03L&oKLh`7glqu5 z0r(x@|3nV3J&^hj#Qb-JL!(;3_5fBZUUy$f`3n#(n&nAc75#qL(okZJ0G1fU{()Gw zP^e=JYZED0*C_ur;}g(CSI|UPunB?Zt03+#<010-Z(Ieh)b|mBw86y)xd`-+L6;-# zLEPnigg*m(6|OD@{vt4R%HytxiI8&G6bZhAtI(&9(IQ@l9()eAARN{#M29^-O-0mEX47Txq+z&9a$Cq{L#|A#z-CxBsxLnBYI=NJ3{SjzTI zq!pVP(t`gC8dgIzEPv=G2!}SmL3s?MD1e-J8zdsVklUaL7_AmSLevgm+$(^kjQ~39 z>JHEsfCm3#)G_!5LS6tyZZYIJ_$xv-0pAEL7CRs(G3=3~zKfXuitrbKp}($Roh7b| ztH?Qk%@_rVQeQzWu15HCz_695o<%t1B=`kF?gi%cIb=(g(2 zJt?!s8LmblWJ-;!61bG}X+@OnD}1%LuE}S%ueq8eZFNP@;d~9gvRC`#V9*GuBz`Gf zq5Mc@ms3wE4O*(z>|dO1Z>n`c2a3tZ#-OL#5)=o;-hwCR-8++aGUx}$r@XeLX9V>K zu=MVSfqxGS8$9Z5U`U$6ToC^-OB#O*42vdeDewkhk$>qs-v*uyETcU}DvW(oaAr~4 zWjeMxwr$()j-7ODzOilFwv#uut&VNmcBcPt=D(PlnX0)sRnOUVRA;ZNRSS>uqp}h^ z+J3pA596%}uj;X2M!zG2Q@9UTqf{K5G6Sly|)?difo- zDJf1knd+1C@Oy*hlE38=ccSN`OiK1h`gP+q-iF0CHGP(MZuXZYQsZ2cTm4HduS#kp zzxO)&`<9oj!y)HZwB5rUs=MtSI`^fWS~d0DT72Gw=5haPmMp_1e=ZM-6F=0eot#;s zJQVtFrnu3bosq}d=L>hX?5|5+O8Tbjtj2|I#|5S2``6b0I%`_!ra6i}JF0CMci%58 zso?{7Ej%<(f0+vc?C9@4JVMoZeyH&ftMRmHoGuK>P=+VVc~?2z)y+}&%9Q?Fj;@_+ z1HW$1Fka$)ck9|mET`S0an5aC4!8YtYj5B^1?`NFp;(4^WQ&A z-5guX=xn|t-WE!GdRU$-7rNTUDi$g?al2bycM(+2sy*^k9tyC3Z}~V`l)ib3xSsgo zI6W0!OYVydt=6}s68ZqWY$vpC1-x1A`g1S^#(1;&0Z)s_{|+p`lgVFbRtveZPu70A zfHgkSsv-_EM&bq-oW(tln~(Vzt-Wj3??%e9(^s=Hy>AyHET5R8xU;QHvzq1wPr=pn z$o2cgj5fI#=V&+Hy$y;0C#BEIY=SuHX{o{!2f7qzESz1x1% z&Ty)o+JJ4Km8njgZMFQJoOi>Ujj#DXozU}JQCkaexU~fc**5Z=&=U7@cc>0H<$9+5 znwv@Y==&fdc_VqQuKEa_#SfY1muT&<%dKmjk3H3WHXB}fxZqj-d+0f*!)~e-n9kv! z-ppXS2FEndGuh~#W&y`MuN#!!jAFVroMs^y%H0gTO`)~3K8X1WNAm7a2})A_C zH*y)T5Ui-dXpPJPpNY&yULn51V@>Enaw4M=d!yCA{PThQgb)!HDs%u^LSb?ijfEjg zhzXmyG?;bZAM+cor9!O}XlK!ym51i4fnNj1iE2%3DcQ=qK}Y}}yVkWEE)`l`m_;QW zH|;JFT~JVlE&QusO>L6(3^^u@=ciMohs2QLb(tQU-;P>Ah?uJwX(99Ms2!H#eqs1* zk~vRbmAP%JpcXQHObSYp7;Pc@?3=lAW3oP_qGv(2Ipcxv0O1mUa-@OPoQD>Pfkim3R_Yv znFYJ{_p-r%KddMkH4#-AhAee4d^P+ZEY;uY(o-~_6N}-&7lP+1*bf9vcdMxw(pC`RXpCAnIYU16G#`;Thh-aE z;GY@-(^T<4ca^P#u8`w}JD8pk1LEld+l+RYt-MtF1sdd%`!+Pe9V=7%HXy<$3QXdJ zzeWfeWnT2IWKyO#*u&M@&K)^-aXJl)frkvE^pPpMS|b|+Z6gjyiBWNAwVYLAm;qPL zXK`fLroI}xvpmu1KP&n%e@8REV7x0uUC75>r>)rUcKMEWW3CR}c8_~KFWf}y5Bm*w zhk{T^^{FMD=#Iee9>Bh5aK|Z+4EDX+J+DTeeqP>77hE?cZ;?=;o!GPednzi*wTz(ejDW1MRK>PX#|Ms>&^i2 z(J?lYx*_PVBNdsD>qqFltA0hUF+7fiY&o20x}Zq7UiQDh6^4V92Q@m5^;*W*rhs&P z_Drk|9qEjW%Oxc{hiir0rgI6wTHUO}QlC}A=x}0l$$!yd-XoQI3f<{w(~V5qY3qxr z0@;|^JO1%5J!lmt(Gj}m4ejH=_VleG)!Ju^aocFor~OG`hpl8FpVZflPtFUhU8{ew z1orVG0J-+ghsSLRFV2{ilpiu)gc-RTOIS$mFANsmL8DCwC+J&gcpYnxB`=SVSLMk& zdIDULC7-Z95-bp;k-up?5c^F4laF4DhJ>jpT{gj^2>d)!#1t;UV=>h1viK4-!Cj(a zw5Rx~Wnf|xUzO|exGt@)UAimLMDMFr51>&n^|4gFttf&=av#H2Gc^~K`V6MAhd9SRQ_l)#Xy5Tk?7~?kW zA@^}RH?XwMV}_QgvGJ2Fl|?-r;H$?*+6gN!IK>83JtS4uacF{%lwLaI|Mm9X=$%;} zeVO@Cj5DmW@x&Gt-Y9GG*fvOX8=ul{)UZ~rFfKJ~y_%NF`Sx7CFwb*NCeXn4=(`oq zwTw)qf50+V=(&D{^vZVx6S8_A&TYQt7kAv#{Zik2=qyZe{eb+sQeQe*K2N;lf-u?L z(vl+Ian(}FaLPLCMB!h5IMqoxRjk)Rh?e*7h`h3$xo<-_UOxG3l8MVI;&yDyl$)FD z-@Lw3r{AO8EeolvlyJ)w_|Hgmxf`B_EwbdOTfNQwp_&sh*OU?>pZPZYtS`*OIC1XXe6DJ}J;rcEA^lTilFO zXK;MSp}8*w9GAd21dw@55}@m+e150mc4p+tp$?+XCAp*4GQ8*9C($08s>djLvUKw3 z9UgDkjaPJ80%oElUwhw5_om&PdCGalsAaw0qtwk3DnBiKXR?mdzdtl(Px_FMw=`qH?gP=bELj@IrXOa zjW4WBzdY?$dU*ucgsE1lO)OU79IUjh7TPSZs0Oq^7E*uFuyt^tA74gyG#?MD0j$*Eu6O`iwR=>S#O2zo{I_1!W+&t>9jThtF1ehj+HK+u=VRXYUe)C% zl(vezD)D>X$su2tinP-c?Un#NzvXPl#Q^!mifS7C!ZnpGZ>(#xO80bUX6=hNwiGUH zin*+sZ1Qa=Z0a$sKA?(~rR;RI%w8KJc{;kM4KTWDM%{P`qHsCkLcjX%|w2yt~Dp!h2I0?FjgK|JkPhya%;JPyr#f*f%BoJa^3t~Nj0;r zglxt+AA#rnbRSITyrTvEXn~4NQchoI`mdY56->O0EvP!)&>QGOY*1CYEhU zlQWcmAFFZUA}^>2(R4x&I9wX_VZhU|I#+xRkIT)sG?RsI8X2#`DEF2RK$oP4gV9bu zrEcmH$WLv2u%s;umTykhF55e^|6L87EkBpg)muE`sUvSmNxC+E$R+!isPv4c$GYED znuT-AJ<=Qi4eBfK(|Cj$(F1%Lav91y@T)IR-;Rk63ndD17~*HZSYM;QDHCNHAsuWA zr;n~Vynvh=6=}lcnXEMlx$d`{@*XxAE*2w{3h%ZCe z^Z=FeQafm58{Ca+-34wae1@}wWgme8rPcf9>mL%E4T50{@AW%el?>sX)Bk`mr(WM; ztQR%;3iPcs%IJW?XC+{%6_!>Er!71nDb(Yx3(6URINU0r3ZzVnJO8DP%je25l=(`E;H0lL%hCLo^;83Qck}P zAEHAHLoFWuLqh9iXbwtvz%a2JRowt?WSu0ygt~5%e5nESR+17UU;j{Qz&7O-yWfD4 z`UOYi3(0&18C6>b@?)Xa&3KR#r-}-DMV_UWh@2yr?!wq3gLOHDe@hL3KL^3Ovk;x`3sIRTsNJ^G6p@0Y z_^G2&4Aq$XlJc!7p;R&#^@8jrfCLFn0Bb<)T#EyF0+g6pv(L%^*@^~xUh%{ZZGdVx z6QVBG_DH~`jv_d$^-1kF*Ni~{cA|^y`~c!%Kq=Lhs>XCD_PZ$|;#wTmCQ|C&jYIi| z(6=~fK>Xs5@j>fFwCa{wk21*QH@ibjZN9owRL1|%C`ZhP$ozQ~B4AgtQra`jAK|_{ z0X9E5oB8S69PgTmL@2|QrBo}qW!Qg_+@gU%w86U02^=kbuA~;&*imF1rbCX5Wsi!Z zc2oG>$Dv&T!Bkb1Y_uU~056ZAI=+r^0>VJOaXdk&WF%YI=XP^S>4t+_S)yJGdvl26 zAxU<~wb_a_(|%`t_S8V5|_{amFas3Lv_RN;LLYLNMy|3_}z zRw>DgpAFZF#N{Tp^RQHW&H3ogtn^YaJlbNm1@U@FP+`D_Xo4q&nC%Bm=vH>Qa%I9;&(fxk>iPQR74 zUJXl5WbWNl#^jLMr$0OJLZHpxlBBg(8lOz=f1?k6G=`;}bExW4u1(X3Q8~;;4q*2^ zyYC(9Mcq0$fYywOZ~m|$cf^<`)Ion|IJoms^>%tk+uMDRK2QsL6`yZA<{pbxciIf! zYuaQ#CL56`t9%sLs^LH9(=@z~2Pi*8L*bnpL9i*;x=)f32~8tgxT%b3ow3mTb<-+V z*^IR`Y|elDS1Dlj;~R;_|LJ&7A7Dqsg^ITTw(OzzwuYLa1o_JN^d1CeW z*bck`LY?+`q!Hvx&L`V@1ms){l%A%0#N+@mPm4X;7#1rZdAbw82&c7FIlIQzeY33zqr=}_C zRv2kRrs>q>pucQs|Kc=kS+i(UTbHgHjZYdlP8Ln!zq@l&omf0lW*^g{gMCV6|PLHuIi2#`eQgGl|qS z`UhEmvAePyvTTm)$UUdimEAz$o-6sx{KyB5G?<_9tcsr3FD+o$gQJ>Wl2TkjeL<)0 zI;(xbvJTy~2f7`I)XIkLXmgZ?Vp~?^hVM-wa<}|7DyHsC@IN51DxDxaCna*kLO=nK z7`!ugWbgQclXvAchc+QAT_Mp1-Z19wfEfsP3S!ur#yO*H} z1$T^BcwnockF_}j-I5l-M*!{u4K@8}t6zu6@RWb(4N*kWJ74x(AHzwuMZ$6<30TFv zW&^EDq!-A&1|R7qcQ*^ZUGlVFPW#bSY|z*`+JRM4 znY6{dH`sod|E6=G;&4A|llV3(SQq?l#`E>z;pe<}(Xx=<2b$fPv7q*)CvNUg&nIF4 ztoPJ=)wHCw03u{`oXlS89QrsTmC{6@=>w4bk!72;9O(Q{*6R+%U#^ZZ|4|3l=D5|x z>P}g{%yOWtt38*63P9b%6!{Pg6NI`wAiBO8Dhyabh%&JjBSZy4>;Z*7P~8AvX+wj# ze&ctLL~8#cM0)~EKCz6N+95QCb#Grm+%YTf&u9kGw6+%cG8fycJF5q%-Ojwyv>Z{I z4zG2>JqIpb-v6ZY?!@FbizgLGu`AQVWX$4pKzEmSpfvuq1M`+MuvK;2u9@jEQB$pr z1o|9YPd&v*&arMvTb;8L>owl(KK}Rt{5kcoXeAPIbgg&#eR{2r*Ud*I{({{dOibXL zeYZV$BZy0d;7d8NLCfnaH)1h&Sh-iJ&O`V$HEgmAu=%6=AwMFWx_%rDum`8|ZNKQ= zpz=I)P>1|#9yu)NWTEdt??%=QMe=JAPW9gcePf?_7rqAb7CgcJ9Z3jrE&SsPy-bgA zm}Vd3jxXw8p7iTG6Cb(Vi#GH&ma;vhBV&;2(E4f#6@#%8)A_1NprQQ_VjG{icO0)i#3^}i+QGFBhxRMOtQ+)~* zarr|K^0=Dx91S_WSmWHV>rppl$yUzgdl&!ov(NT3Zx462V{W?RR94&7dCyV%kLJ+6 zC%D>Ah%8DR>*qlGyg??2X6y?1?Kip`fX8?2ou&fhhyQW_OFoCu?vF3H0f2B9#!f?C z&ba%6XgO4l49i(&o-WLI1$M6)cMNuaju`g~UAscxs#Ps!9sNAP?D8Q^Gw$PIPkEMz zGk#eC*rG!o0pdcJfr@y32EvVOo-2a0MIJCFc#E#gc`qdpCC?4aTczw1G+8&V0B*tB zUx1a=Fkn$$K~rCa%z*93A^;>;)ETWT474&@;U4@fi^-5V&lnW_R~`jSm5RtBibOC< z0ihkKC=$52UoR}S%8lQds6siIrMb{1d|6tb5EiHWGbv%`G1Mz27~R+n zpkM^0#K?{uu#9dpdpz%B1X*25}xP!l$8^5as^%jEjy4Qe&?cOUa=7e zM{?eMhbycUq1LR_j4sU0z85&+?*+M_ZRm6^6pO1;l+S}hiUgHBX4%_}wGwh2+QlR^ z0td!osn8S|e|>8*i8r}i1rK@j&zXc7HJAT{d*S=ToeS^g^H!l8E^1%c8Pv4)hA4s3 z4;#W$J1+*OCfVX>z#aN)n4>wJ8R^t&rYqpsEaRT%`+R1g7cm0U^kFdXL|SN8)a(=7 zF9#3OBPQ<`JQpuMwce~FMqa2boaIdA@8x8ySD`%8P_R{Tyvc6AEbt4^0Qk^A(ir_{ zeN$^teF{7U?ty_Tq6X}T9kxE`MzFjNcvD*g(^!9kJljwx0u+LZF8?Z|EpNyXx89%N zD=m-;!BFhfd|@`Xy$Q(ueH^1h!d+Z^C#Qx^K=A++^HmTfgKO+bnEfC9H%zJf6Kqgl zgwnnk(h8}_QxSVD75j;(9_>1y|5VgivqJu-u#N zD9DPZiC{=#LHJ;mBLe$Nc(KN$53Ncy4D?a-7_KwnZHAdLnqgCIn02;R`yBlVREg@z$1CY=M~UgOa`BfAO*1BBhJs?H$)@mN6y9hx+mwLa6K|Fuy z=Ne#uCgzY|AP&1SU4;@T8tcC?`!zK!x#{4v6^5SppA2uH%k_5TlHIZ?B39(!Bfph4x*lq#dM>E$!UP!9G`L>sM6bvBv zwQk6qtTdSl5SaBKWjM^8m@E8VZE7POiGaAGx28}TYx`Ena%03(|xv(M# zR``HGcvP+dmR3IGp?{if**BcC&pq~D=mTNA8Ci&1=8HPXPrw^*elyd7!b!M6FV_wQ zUsyxWMB@iP`pkFj+u{NH3!}!#x1rdHH~fb_8fikvj97vu_km%Q(Xg4ps+~Jqyt$J( zC1NDGBQahT-5sA>7BU>9z3E|+*$`?in<`#PoLQs>DeQ03eh4_yVCIQl!*KgPa3fHr zZY)=LbZ?7!OtGv}WAHDthS!&Z4{w{AYG%3FHGotnp1F0BEJx{@^?6HE1|2zHfXe2P|`)W4JaLITo9k`o}P;! zUlQF>2;PWrR0+Y(L7#K;H#TnU&rYNa0RzYJqUSTz>!(O68cD5kj#%dds=#v#0 zw%oKpIYFdk2gvW~cFjxmj7#&c&QHs)4u(uGD6NuWR$x|AQD#@5_(hC*0|)bc1Gm}^ z73|j0PRe#cas(A+(zj!=vWn%D^;2@dkeNJYOk)6znC>eCI-yg}y)bU>=eNlEeiy!Y zx#$QD*-!&=*PpBD?!(-R9Gqfy&waOdSBt$Etz4Y#x~lvIQPDz|HfJl}_1V9ooD=H2 zg0a#u;|TJ#TxW^D;-O5- z83T`-S)1j{6a+r5JLqsE1nTd_I!x1{pkwRH&7^$gg@j@~D=Vi@>z%PkC_G*b= z1(DgJG{$Iu7M$GQ;R|X5|4Jch zDIJqrcDg*K_enJ}>;K0EA8`4_g@Fqrr{j(>=JVN)3{%B98o!pt$tT}Y;;Pb^k-9u^ zhM`WPunv*|#B&Uyx-pY+%JPd2a1MUmy}$9s{{j0*0`=}ZEtK&W{$Z>Ar@T*QUXb)t z9bAwERtEJAW6(btKRcC<&RT=cfZQ+w%Xd@Kj(GwL6B+^Ga~5JF(C2tkB}l4Aj~Wy| zAWC^}wI?&yjYp=D+{(r_*@I}+OF}br=|py8p-w@jac)bH**zjVj!Mzz&z5|=&A^p2 zc1H06g0`r0Sa*N50J?!Q;NBSV0K<& ze)hfuHh;atTMEWddgGpfp0W9<7@DeDoo8n>*hyC~y5{?qXcbqLA4Ur{UzHL^e zfhbtA@U4#GGRS8Na+m%|$si}dIhpywN|wTAsI5SB?}0r4pVGQ07La&~`*&Ifx3^{- zV`f>;vVr(lyRG^_Do@aGgt(@4T=-B1JO`LeqZV{%5 zz||3h>G|bpY)*r2x9~VaXi)>#A{P~urN^)Q;Q;Tl_?lxF!begYHcE)^e(X2D~ANOc+ z#S7$(af@)Nc{YFJ9wlF_oTf*Z6;wVEr0OhlR3OQ^>;73@RMJsel$sQ>J_$WWR$$<% z2W2Lk7HQ41AWqZPT8&Faf%Q%erjpkTATo~Vti&m}DA>EIDyzCGs4DxdSx{2eY)maa zD=Qm(vHLr}jLNgsN7R4#%T~Th!*(WST3J=cX&BgQ1IO^#LVXhokB*E5uYnv47h!}p zMCEt-;#>ekLs1nMLr}{nH=`=iV zrvZQdXV$ZlQL9Nx14AQp6DR$}q4>%4vl0pJLeg5hQ@wV>+LG|22&M4TCF;{Q*MebkOv28)1 zWnr-0YXQd=ZHqB`MzyF)C0tLo1pSa1%RK*vX|+Zfw$%(eAM{||#x_7A)98}%WSOWC{xSx;HQ||43#Y+30VL4rv%FJSZLqrbDlex7}rFvyOEHAjWv?^n1vC)3gv`zklPI(^M)`xqv60OZ(n ze(8-fmk({n_4!r_lo%x~Db&j->D@%#Ue%^eA?d90++W{}2(G7|lVcwjyI(jI1wXL5 z+$PuPA%2qRcOOK3N=#^%^i*8tl02$$;mAatlHUM6B);^I1amE9=Y0u^H4%v#h0 zZJsFC3utAm5OcRZ=>L961&Q)*!=^Ia&Q4EcjQ-h|S+fnU_<>vPQ~{5uab$nlRXecz zX)>*G?8%KSOAmATgO*@1QAvVkD_86zgfkrtsU)~@p`KILvYQr8&4k~?*T%>7u_LKj zV|O_|vo^&HQw&0V%kEE6;V#h%=JQ;`Sdr9e_kwOULiWHoq%;Y;^ae58_N{31y?^xE3Z`(bh;Tl4BZUr5*{d2Un{IHWiJUhu)R#@F1lL3A| z^_Rxe-XDX4Pk(X9-uGj29>$ONPI)QX!vHIl)}PjLxCEo@!)Y})X`~G+gQHa4@u_O8b(Cf6zUL&2u>a?TzJ4Yyy%MN(U8FqFHEba;{{Uv&>gV4e;q83+{iT~LePOi>qEz2i) zc0?<6m?qV<4DYT<-99?6TgMDg=P=nMwzH2*_mFn?N_ZzYN zkf~J;ajG+qBkNPd=|cmIqJUGJtmvrLo$w!eQGYGv4(@PoOz!OG*i9bJ>)@fS?7uX3 zxQNSLWvf%gElukjQXk}VYWPRpQz*Q#iMgfc48Fr1COsZpDl|0w@3p)o18ZOIF8UGI zFptTb*8}GGh`aqiriEdN0w#pjHz!t&-Gv*>cej-LZ!sLk{LKf`eEdN$ed{e#K zqs}oMac=pGd9eLemQ*OJ#lBpc?DhgDViYN4PRF1p`(xUlK_B*JJM@R5y~G5QK$)5PNwqbeJw@8Dxb`rNOpn)}PErEPeD!L&ZdTCpemkn(&p zEEoL>ql46>un6EDGnOw5M9}euvXQr^VN2QOrqILaQ}m&=kzJP{P7#icJ4VB`5GXby zzffDIL8w^Twk6qZNpkD5c=jx;WAMGwF1$xt+>m?eC=bH_>zG~bX7tMVGnTOSZ+ja< z=Zx`fgC^!(SU#pwql6%TirxgRr7fd2GRi}oeBrq9z-2tjXVD3-w!BTWrk!L5iNWW+ z+k}n?@IHA79&bj4PJ3_WPcgrAn_~EK1(#}0RdXRNuhMRIuy;ahgi2w1&$`_DeW+>b zRO-s&*At(B>2~Y9Myafhh>W#t7nka|w8E2hXjD~(N=WBcNya&aqx>?dHpNFE`W7moIz!8O%;@DTW!N|tlbQdN6 z8}3|TbIe0j8b7P%AF(8Ut;S8(yHkQxrcz~@4%=#h#u^3{wWq}}y+Z2(kv#|1i4e&S zguP5IH4azIGg?LEkx$D0K|HjubIuY|3vGr~=V#-MPAF~+z`WcN*5RwE6aPi{ue9cD z(y~ju5C7Lp<{ZJOUq|x3euR=cx})KBL)Lw*`VY+Q+iQ!y%;S?N@^J-_FOL5e zlA_|NW6R`w$?;7yt+T9UDegz^rpy$+)Te<{+D=OaiOxJ!_97`tz+4suvWq;oOMxqqV#h0Ox(OA3@$KOb)uoc`tI&fWVko%&Uwn4N)7H&_j zPjgdkurs9{h(C&^$mfEDQZW{Vh3l&sZZPLynME-U!~BF!7~jHD|IO8o8I@nK{{Y@V z_*U?ZWR{RN8Vkxiz04epjda-`EX8T7%#VqGAd`7N%FeCKXyd8Q_3RJnN|_MwBxW?@ z+;cJp$1}~n&UUVb$NMq-o@2F1lHC9Bc-4Vuy=`UObjIO&*UUi7y30B7@U-TX^RaiY zks00ivZGuL5xi+8CZfFX4z;O;(AZBxwuRh6$S)MV_1vt3V@Bp`j|6y(H=^5slI#@l zh*!Ela60h9`~63pyYq9|vkn{s-%|{iI^fgjZ-hF&qg-a0qwe0n4D7~>v2xyL@VzPo`~|8^lOPwh&g68rygcHg zY>SKlIyF?@MXvQ24eyp>fhI1ZCk3(b)@V08a7J`OXpSS+G4MaT)es19ljPnc13cp zObAv}kv5V;=C_Z5zdE8%$2co=?kT$B1}4)uS(O@pHng_w>F387oQNd<(t&_zLqUlY zz$uML@zNqjd1Wvwm?|Bo>-ru_VanenUYxWOZYa-@fdSIXPYC*Ky$8@bjA}Q0u(F6~ zwDkZ1k-1h0OaEfS;U?Ng7bEWmjuZw-C7iiwodnQb@ie#N2wm+SO+Dd^20Xf!0*Pa? z;)ezF`WoJGbaQYSwj!O`FX@qh7GGozIal|`wgot$ANVERMTA{*SgG+ zSq3uF&N5?_VTSDKVJ>7bSTnow9r1eMr>2U_wKk|nbb|rgG3X~9JiJm8SVad=Ippq7t2({p&Lo; z?4jgUx%;jw1hrU4>4dek4&>j0ThM4;7E7;N@3xEbZAu47$FLwB7rWdo3_ojuhfeqK zNYyc|x^s3)avsSDAW%lOQzo$XpwOm={1gg30x`e(9s#{2#9T{bY9l}~4k26q-G>~h z>-7c==guL8mqj;?k!!qo(dlWZEO}DIW(v#uwdskHo=w$JPfe`jf%37Y!dJrL1;5MPGH%a< zA=5X6eXY+n0<4Lxv7?iNiGj_3Mu4Fu0xSnB6A=^9e?~q&MhOdRCld!o32Or<6EPDb zfUybVZxdTHCvze;PIdtS1la$+-7U*oMHW!Vgxqyc>vcguV{I);LtKOvm^5&uChMv7 zDAX$*k0XT0eXxDKLcx`<6xZtk5a9FKC!XYVm~SG5)pOPZEQUSVESo!@O}DF=mm=C= z#(}fj@XL+*oEx!&6N3X7OBL}sH@lJM(1HQ_e9>ortm|7JY_teEikh@`z=B1YWpU+I zUI5xaVt!)~C7jAK-353@?Pm8^1zW4~crU&Y;*}q&B?>u4HJp&5m@d3b0eIXWMFz)q zhsib8e&#vWV59MLgB6xIFH@2cyXnE0+w^~tIq5W}%WuGA*|JsClzz$9Z0u&pqn7@?Qin(w(VeZsN*i+PW#tk9d3)ba@Fk>Dtpd#K|fo4y0dzN*GC?i^A>uiPw#21iDP z3vim1WNLduEN1ou!%&%J9@^T`ees`SIgDhO3H0D-EIsJMESyTKv_!DJu-z_EJrvCL zQK`&FA!9IIm0$i^b53J)bru-I@vS-M_lkmK6WKU-iY}S~PhYS<$sCpS?r&Kk z=bZjB(b?dPnXJn?t<0C*?;xX|W#%?|tIh4Nb(|ESbn!o4TAw02@b~~-2>PNJepflg zmDAd2LL-_WN1Mk@)j9|~b~|p6wOzNJ=&1}{?^#x&AejS*D=oc-38WNUUA12ikr^X?!f-^D_K_(AH-~-j%Lu0k-CKU2e9g znu6k0{YZ0I9B=-mW)`FI<##zN$ff4u)O7e=U``x2H(j^USz%)WC0{~m;F$${Maj<2xter2Of?c207 zeeI>>WNbPY`edZB00w2y>ykk|ATVc|`7J#gjxSBfB5y=wPqSDg06AfY50S*p6o|W2 zn22Ac2ikcCy$WkNQ+}=BSvRI*ASV!9Y@GIMN5xXNdhRCcjL2M~g2G_@D7rc*#0zdRb&y>XHuag&%j>DPPSZqc3FU{WR5b^C2d{_F(ukMjMUzAqt2gF!m zcthksEH8Y!+z{^T09@Z%<`0}AfMF?({}$ljn(4rY)VDJ4I&1a)`NYmU-nE9p<(td23Uk>1e9j;dC9WZRl_7^? z|C1Ntzp7-tk7xNsle|xk`)FZ!l}o*ij{oDWKuDwQOkXO6O(<;?!dD*N$6q%MR6ffB zO#~}1I^Jb4A1~{T`?(?aJyzS_n8Mkxs*0Kexk-yXFcWKBahk7cD{Rf#mJr6ieanmb zIMsyywu=oj=%u1NC0`SE}KxHcN zof2{zZ{b`F8qkJtE1-EXXJ^b3U_qv6|+s$-U*|Tak;sdSlz3kd^+zmfG zd>INkiQS^~QQz+SBif>d)g5tOBdc=DyNG~@M0k~WAuX!gk)$!NTc3yws-R=nVKyRsLzg@-j zxwH(#8-=x+6`(D+12E@!f=Q&bDbPgMf<<78s?jM#wWO$m8)XBK=4>&>i7qh=V2d_s zUWjcnnb7C1P{)ZcW%EJjd?-ib_AzOQ%_RIjaNUz3TVc1=NFwx zARxx+j7g&p8R5U1|S1U|q; z1hl{oc)|y9mz7^$gIliZ)?XY)KW5Zha^ISZ(SJ`EI%d#n)%VFW(Y@ao4&iRdG|g5O zbR2%LaAsdrO?D7}RryY0(K|gz*dqbtm-c4orqUi7o0*ul&JD4Z8qEzZz=+7yZ>AXI z3o^_a%7t-aBiMUns}-u<;`#qERKHlHZ<!a4f({&|c zG%PM7hZtU@-N)7P5N1H2!Z~$HT!p=6@jVzEZUC38E^ye5C%aYc0;R)iZ~dBdJkzE9Q7?lypLv>9V{x) z1h;mfe~N9WfcuAG2{P3{EU=o=$b%10v6S=xn!QP*ld4{Lnf4u5+XKOV(a>2EkH(KW zk8{co2TV0DaU4|OlpTYdQf@=5R2RbVM*XI5CP}+VQKVYc$D_1a-^Wcv6+UW( z9$Az&GwHO-3rbkg#OOFqbr^|$lq>l%{c{K zKNQc|#GQ0SJ~7}4v~hI$<`p#^dQqpWL99V)Hbx-Lhi_&m71iC6DAnxPKv`SpD``)c zMR=|(ba6)zUqf~koE%uX*S6#xT1&*=8&urUDQ$7)Nj47WfDg7jMP3i!db^3M+dFtU zO-CjR*e_Q*FdfcIum15w)v^dqQW4hYwHCG1xC9P5b<G6L> z9rcaGBIUB=JaRZ5Cu+grWL%AYwO;sr(O5Sh@dvVRigg;nW|Bls9(r9HRh(x4jIK+(zPU0chqe#9ISpH3&%#!1 zFP14_AH6~wFD?A$fP)X}f4;Xp<7HUr2(P!Mc0jQx`L5*R{{hPR?u;EJ!OJ@7}RVV`*pkXgx-mvzNru22Us;pJs{X z6LrbW2w`}@{9IVf1RcktCZhR8HcQ>?G(#&1C1K`h#a=@hU8u1f(l;Pg&lTcfl0F<4 z0?&F8r7xAWzJ~-9C0R&(Go37Pvr&7DFg7v*{^pp<-mb^YmB+`;)PCdYS8Y*)@R+Zw zF<}%ynD{-RNUu5<5QtG$NVs1NY%fJg@+Si!dpKK=PHCQ(Ku`GmYQ)lLWAvqCD(d6OuvSZFZe*_m&HW=g#Y>%I z08<7&+t9-RAm9_Y41v(;3S|LaJG#@gCZ-OBbfz;m2**oj8s!VZw_H1B_NDZ;bI_|6 z_Zv9ye#W3`GG?@GDore+PZ!H@M~gFix!Drqgz?Z!yl${1MZEoaJWx(YFhH$Dn(Ap% z`%)t^#)v*HGUp-llxT@WO5x=VDd(M9>>MrDQKXO9`H|;GRR+6goXT=RS%G^sYC_it zUrx+o8NHOsSmS9FTXES&4+ig|HJxds`%sk)D)Q(kU+S zq!8Rr=!i~7>27ee1{|$;^N~jSB8cY`xnpUYB8zSGPG|_v2j4O1tlL6#(*wO;1x1VZ z)Y7&Nkv%!noD_~e9iu98kU$89#E`;Havd6@`wY5ll;O{6No?!D)usJ8+BzaPb|@Sj z>P@H>@pO042bd{rUJgu#ODJh)5AlmyC5(h6lo)dOLYR~n;eDdYXg|9Z?<{&XIoMLS z2_k*zGtZ!<06GdA>Rr?@d?@H>R!Y5#w62pH_H%(0Hr6q(4))U95H(>Zj0$V;We*>r zpovbNG_gm1mbrLZJp;olb<;nS$_*QjtjDjbUne~t=Aqr#D>@Ih2~ zH!2*C3hzXPx1+)zqr#!6a4;&o92H)Q3NJ>5=cB@NQDHDD9Eb|rqrweQVM|m9MTLz~ zVMA0{9~Blvh51n-5EWXYLUUAThze&#h5D#4Gb)rsg@UNyjtY5EAvY@Mqk=XnsO1qR zeZuHRjDE=IaYm0ZdX&*4jK0t4VMgC!^le5DG5QBa-(>W4Mqg%hkkJE-KFjDcjP7Uj zX-1!9^a(}>82vS)zhZPZqrHsoV)TAScQCr0(JhQ#&*)}GH!&Jw^g2d+7`>L!Ymmz2 zGacQmw2slM7`>9wC5$#Q+Q8^^MynW&r!=9mT~!H_5Z#Csh;tAZBVK^G4)F%Wdl7db z{u=RlL=!CL-^ZuIZvGS4intw7K^#DQ0r4Q>aYP+@^`ciVdiA1LFM9Q&S1)??qE|0^ z^`ciV#Nil<(7Fh%i_p3Vt&7mQ2(61ii@l2Q7UD5P9ukmFLaabsjCij~ltuONKN97{ zzzJ^P#0w`5o;ZF&6=wXv$O|I}M~;uER#(QUTsZ6jq%R;IL_Dr?$wt+|$BsY7F_KVe zQ904ElYWCR*MimwNDm@%*lipwt8{xvLIz2w6jWMP)*xNS*_iEJFbUC(Sb;bPaWSF> z-a>i|afG`|p3A>=Fv&LImER({{E8&u@+*>Gdn=>` zx@f$0!g;w~cFSfl8`CZud9x#o($8G5w zFZ%YPa0eACQ@9^>C|e9@@3%X+7Vk37a=wx&PJ@^{48qKoCOz3!uP9ixg5)M)>AnPMy;;Wih2Td zNS{XJxG7k##d;rdI=jgcdnej!X_UQvoO-H2PKRC=(U(SeNrV?ixFf=gBJDg8UJ%h| zM|c)z#wmmvVKo{M9PqeC=c@NGC+9WIUm7sr5$ zW5dPK;o{hEadcQOVha~8Mk;!mggga3O+YT9f93Hj-qU!T_ zA_5+o{*i$_|2fIwLkqqyH`lk1@btUQ`zED{d#Sj4VB$nEs!UCdDkn@BRSH5>IX)#K zbsNS-Bv~Ja5=Y2xxnUDZgz8YLj3e}geGW{bD#~#{(AO}JjSO~+A{`Mtk~+~Rzb6Q6 zn14!l`OfYqI(Z!V{p)IJ%B%ISapM00Qz<1XjM7r}1wRFdg zD(PpptEAg+;wAa1T#xUj8+mEtjkn#%>D%q?|Jlwv+D!@Q{P><}lU%<4>L+pX1ajN0 zM4EgL`N^%EWZ#yNNHd`!8%(J}o?0%Ib z?{}tA?e6_n8{z%i;@ODm)Z}0%_paWGk%>F=T zCgqPDu%-B(c%R^`^?h%$j%DxrE|>4E_lf+Zkm}prtCo6kVdR0SQ+)%wRMN}4)Y7gi zFa#KkubG<23VnZq1guXXlua>S4sif;dYAJ+q{NxxfeRNDM zeb~)O$G5AbV;CCwNMVsrK7zf`=Gz;a!n}4`n3wvQJHvKd__wx`?bwp)Z^8Xf^{;ee ze6C(cq^odLS7H}O5no?N*7dk1ZR{b^2E=QzmunESdwe}JdibS1q^^gQ^pK1mB22d0 zORUynYhsZ#!D}@ZTJ;{QrohU(t&ndW`YgdQR4~M4WX5M@Cge!*xl%%!7@saCOq>+& zn3Mo&vzqfyjW_ta{I~o01hd7ck24rGTAh(ssf~C+7&Uxw(&`+NkV6a!^$D0Mra%qf z#s3HVEeu4gC{!X}4e|y3kVBAX##3<(^2qe{H*QS`PW}7KdHQwYN zx?t$uq3uJ@54|v?sTh)nb`2>*2Zz+qPYiwTA@@FFfC^%e3sisi5BWd!|HYr{&+%vZ zGyLiPG{3_?(J%PzeycyxpWxT~HGbX?e!ii>+f0daf5?W-`aD1K$23clwkeb zmOj3_JGCmH6f$}1R+OP$DQr{(u}V4N>^n41G}hFDWsPYfo(h(FsRPy1rSP zFO0b>YNyzh3S7d|4SES(%Z8>Z`fpS9O0cP3nb@$PRY?)6>XrRiDrs1t#EVtvdu#Bv3@!;a1{;FYgH^%!;2C$!_YQ%7PB-f7>1UbL^S~Vay^1Ou z`+Q9J14NI8Wqi%Lo6@L$xap*ft$V@5PX!b8!dXX-a|gjZvVE+@7lA(*?L`+s`T;7a zf-55i?W24(<7a=BH+bSJYtIbN!87nnxQ5A(!fyC^ME`Sm2zt=tqi_i;2k^n@TG)=X z88!1^2F!zV**6@mfgNyvq}38=1rPh=Q8`956wy8l@4>_5bF{nj3;o}Wy<7d>lS2pr7`@OwC!MCKVxh;G*bioyH5Bve})gNvc ze&VZF?;F5YxD97f!J3vuQxuoQRKMaVl5N54}GABD?dBd+?tVNQGp_4GTLR}m*>%BNu? zvBPC(e>ZAxfqkR^ZP&sck_AKPf5Dl)AsX|6Ig$^6o=cL1=LF9t{~0aw??>}Nl#+DV zKQaNDcQD#&c+05#TRhFb!}HvLxgrKJ_$LCV{rqk9 zTigtFf|`tcpn6cN8eTyDf))4UiN6`?<@o2kGq>eW@b9U2jr>`?Z@5ZrQKt{D8NLGV zve)1ZcpjdDx8Y^n+0VkC_yYbZ{t*9>s#T>?52}9(52^CuNAQ!={i#-|I#rFT9jf`N ze03(4C*WPx1n1yg)r$A!`Sf$P>aALj>L&Hs>LC9S|C#zWY_Lz1`5qoB1`FNz zQ}O#(2MaBU#O8A&m