diff --git a/.ci_pip_reqs.txt b/.ci_pip_reqs.txt index d066353..75eba8c 100644 --- a/.ci_pip_reqs.txt +++ b/.ci_pip_reqs.txt @@ -1,4 +1,4 @@ pytest ruff -git+https://github.com/PEtab-dev/libpetab-python@long_conditions +git+https://github.com/PEtab-dev/libpetab-python@develop sympy>=1.12.1 diff --git a/petabtests/cases/v2.0.0/pysb/0006/0006.py b/petabtests/cases/v2.0.0/pysb/0006/0006.py index 79400ca..fc638c6 100644 --- a/petabtests/cases/v2.0.0/pysb/0006/0006.py +++ b/petabtests/cases/v2.0.0/pysb/0006/0006.py @@ -1,9 +1,10 @@ from inspect import cleandoc -import pandas as pd from petab.v1.C import * from petabtests import DEFAULT_PYSB_FILE, PetabTestCase, analytical_a +from petab.v2 import Problem +from petab.v2.C import * DESCRIPTION = cleandoc(""" ## Objective @@ -21,45 +22,34 @@ """) # problem -------------------------------------------------------------------- +problem = Problem() -condition_df = pd.DataFrame( - data={ - CONDITION_ID: ["c0"], - } -).set_index([CONDITION_ID]) - -measurement_df = pd.DataFrame( - data={ - OBSERVABLE_ID: ["obs_a", "obs_a"], - SIMULATION_CONDITION_ID: ["c0", "c0"], - TIME: [0, 10], - MEASUREMENT: [0.7, 0.1], - OBSERVABLE_PARAMETERS: [10, 15], - } +problem.add_observable( + "obs_a", "observableParameter1_obs_a * A", noise_formula=1 ) -observable_df = pd.DataFrame( - data={ - OBSERVABLE_ID: ["obs_a"], - OBSERVABLE_FORMULA: ["observableParameter1_obs_a * A"], - NOISE_FORMULA: [1], - } -).set_index([OBSERVABLE_ID]) - -parameter_df = pd.DataFrame( - data={ - PARAMETER_ID: ["a0", "b0", "k1", "k2"], - PARAMETER_SCALE: [LIN] * 4, - LOWER_BOUND: [0] * 4, - UPPER_BOUND: [10] * 4, - NOMINAL_VALUE: [1, 0, 0.8, 0.6], - ESTIMATE: [1] * 4, - } -).set_index(PARAMETER_ID) +problem.add_measurement( + "obs_a", "c0", time=0, measurement=0.7, observable_parameters=(10,) +) +problem.add_measurement( + "obs_a", "c0", time=10, measurement=0.1, observable_parameters=(15,) +) +problem.add_parameter( + "a0", lb=0, ub=10, nominal_value=1, scale=LIN, estimate=True +) +problem.add_parameter( + "b0", lb=0, ub=10, nominal_value=0, scale=LIN, estimate=True +) +problem.add_parameter( + "k1", lb=0, ub=10, nominal_value=0.8, scale=LIN, estimate=True +) +problem.add_parameter( + "k2", lb=0, ub=10, nominal_value=0.6, scale=LIN, estimate=True +) # solutions ------------------------------------------------------------------ -simulation_df = measurement_df.copy(deep=True).rename( +simulation_df = problem.measurement_df.copy(deep=True).rename( columns={MEASUREMENT: SIMULATION} ) simulation_df[SIMULATION] = [ @@ -73,9 +63,9 @@ "overrides.", description=DESCRIPTION, model=DEFAULT_PYSB_FILE, - condition_dfs=[condition_df], - observable_dfs=[observable_df], - measurement_dfs=[measurement_df], + condition_dfs=[problem.condition_df], + observable_dfs=[problem.observable_df], + measurement_dfs=[problem.measurement_df], simulation_dfs=[simulation_df], - parameter_df=parameter_df, + parameter_df=problem.parameter_df, ) diff --git a/petabtests/cases/v2.0.0/pysb/0006/_0006.yaml b/petabtests/cases/v2.0.0/pysb/0006/_0006.yaml index 493b4f8..1ce7ed6 100644 --- a/petabtests/cases/v2.0.0/pysb/0006/_0006.yaml +++ b/petabtests/cases/v2.0.0/pysb/0006/_0006.yaml @@ -1,8 +1,8 @@ format_version: 2.0.0 parameter_file: _parameters.tsv problems: -- condition_files: - - _conditions.tsv +- condition_files: [] + experiment_files: [] measurement_files: - _measurements.tsv model_files: diff --git a/petabtests/cases/v2.0.0/pysb/0006/_measurements.tsv b/petabtests/cases/v2.0.0/pysb/0006/_measurements.tsv index 8ed279b..16cb6a1 100644 --- a/petabtests/cases/v2.0.0/pysb/0006/_measurements.tsv +++ b/petabtests/cases/v2.0.0/pysb/0006/_measurements.tsv @@ -1,3 +1,3 @@ -observableId simulationConditionId time measurement observableParameters +observableId experimentId time measurement observableParameters obs_a c0 0 0.7 10 obs_a c0 10 0.1 15 diff --git a/petabtests/cases/v2.0.0/pysb/0006/_parameters.tsv b/petabtests/cases/v2.0.0/pysb/0006/_parameters.tsv index 8c1e5cb..9ead8dd 100644 --- a/petabtests/cases/v2.0.0/pysb/0006/_parameters.tsv +++ b/petabtests/cases/v2.0.0/pysb/0006/_parameters.tsv @@ -1,5 +1,5 @@ -parameterId parameterScale lowerBound upperBound nominalValue estimate -a0 lin 0 10 1.0 1 -b0 lin 0 10 0.0 1 -k1 lin 0 10 0.8 1 -k2 lin 0 10 0.6 1 +parameterId estimate nominalValue parameterScale lowerBound upperBound +a0 1 1.0 lin 0 10 +b0 1 0.0 lin 0 10 +k1 1 0.8 lin 0 10 +k2 1 0.6 lin 0 10 diff --git a/petabtests/cases/v2.0.0/pysb/0006/_simulations.tsv b/petabtests/cases/v2.0.0/pysb/0006/_simulations.tsv index 7d219fa..d9f49d5 100644 --- a/petabtests/cases/v2.0.0/pysb/0006/_simulations.tsv +++ b/petabtests/cases/v2.0.0/pysb/0006/_simulations.tsv @@ -1,3 +1,3 @@ -observableId simulationConditionId time simulation observableParameters +observableId experimentId time simulation observableParameters obs_a c0 0 10.0 10 obs_a c0 10 6.42857855596045 15 diff --git a/petabtests/cases/v2.0.0/pysb/0007/0007.py b/petabtests/cases/v2.0.0/pysb/0007/0007.py index 1dc033e..c5bbccc 100644 --- a/petabtests/cases/v2.0.0/pysb/0007/0007.py +++ b/petabtests/cases/v2.0.0/pysb/0007/0007.py @@ -1,7 +1,7 @@ from inspect import cleandoc -import pandas as pd -from petab.v1.C import * +from petab.v2 import Problem +from petab.v2.C import * from petabtests import ( DEFAULT_PYSB_FILE, @@ -26,45 +26,31 @@ """) # problem -------------------------------------------------------------------- +problem = Problem() -condition_df = pd.DataFrame( - data={ - CONDITION_ID: ["c0"], - } -).set_index([CONDITION_ID]) +problem.add_observable("obs_a", "A", noise_formula=0.5) +problem.add_observable("obs_b", "B", noise_formula=0.6) -measurement_df = pd.DataFrame( - data={ - OBSERVABLE_ID: ["obs_a", "obs_b"], - SIMULATION_CONDITION_ID: ["c0", "c0"], - TIME: [10, 10], - MEASUREMENT: [0.2, 0.8], - } -) +problem.add_measurement("obs_a", "", time=10, measurement=0.2) +problem.add_measurement("obs_b", "", time=10, measurement=0.8) -observable_df = pd.DataFrame( - data={ - OBSERVABLE_ID: ["obs_a", "obs_b"], - OBSERVABLE_FORMULA: ["A", "B"], - OBSERVABLE_TRANSFORMATION: [LIN, LOG10], - NOISE_FORMULA: [0.5, 0.6], - } -).set_index([OBSERVABLE_ID]) +problem.add_parameter( + "a0", lb=0, ub=10, nominal_value=1, scale=LIN, estimate=True +) +problem.add_parameter( + "b0", lb=0, ub=10, nominal_value=0, scale=LIN, estimate=True +) +problem.add_parameter( + "k1", lb=0, ub=10, nominal_value=0.8, scale=LIN, estimate=True +) +problem.add_parameter( + "k2", lb=0, ub=10, nominal_value=0.6, scale=LIN, estimate=True +) -parameter_df = pd.DataFrame( - data={ - PARAMETER_ID: ["a0", "b0", "k1", "k2"], - PARAMETER_SCALE: [LIN] * 4, - LOWER_BOUND: [0] * 4, - UPPER_BOUND: [10] * 4, - NOMINAL_VALUE: [1, 0, 0.8, 0.6], - ESTIMATE: [1] * 4, - } -).set_index(PARAMETER_ID) # solutions ------------------------------------------------------------------ -simulation_df = measurement_df.copy(deep=True).rename( +simulation_df = problem.measurement_df.copy(deep=True).rename( columns={MEASUREMENT: SIMULATION} ) simulation_df[SIMULATION] = [ @@ -77,9 +63,9 @@ brief="Simulation. Observable transformation log10.", description=DESCRIPTION, model=DEFAULT_PYSB_FILE, - condition_dfs=[condition_df], - observable_dfs=[observable_df], - measurement_dfs=[measurement_df], + condition_dfs=[problem.condition_df], + observable_dfs=[problem.observable_df], + measurement_dfs=[problem.measurement_df], simulation_dfs=[simulation_df], - parameter_df=parameter_df, + parameter_df=problem.parameter_df, ) diff --git a/petabtests/cases/v2.0.0/pysb/0007/_0007.yaml b/petabtests/cases/v2.0.0/pysb/0007/_0007.yaml index 493b4f8..1ce7ed6 100644 --- a/petabtests/cases/v2.0.0/pysb/0007/_0007.yaml +++ b/petabtests/cases/v2.0.0/pysb/0007/_0007.yaml @@ -1,8 +1,8 @@ format_version: 2.0.0 parameter_file: _parameters.tsv problems: -- condition_files: - - _conditions.tsv +- condition_files: [] + experiment_files: [] measurement_files: - _measurements.tsv model_files: diff --git a/petabtests/cases/v2.0.0/pysb/0007/_0007_solution.yaml b/petabtests/cases/v2.0.0/pysb/0007/_0007_solution.yaml index 6025b5e..649e4cc 100644 --- a/petabtests/cases/v2.0.0/pysb/0007/_0007_solution.yaml +++ b/petabtests/cases/v2.0.0/pysb/0007/_0007_solution.yaml @@ -1,5 +1,5 @@ -chi2: 0.2682957616817 -llh: -1.378941036858 +chi2: 0.35410578063106 +llh: -0.81095715239894 simulation_files: - _simulations.tsv tol_chi2: 0.001 diff --git a/petabtests/cases/v2.0.0/pysb/0007/_measurements.tsv b/petabtests/cases/v2.0.0/pysb/0007/_measurements.tsv index 00c596e..16d7e3b 100644 --- a/petabtests/cases/v2.0.0/pysb/0007/_measurements.tsv +++ b/petabtests/cases/v2.0.0/pysb/0007/_measurements.tsv @@ -1,3 +1,3 @@ -observableId simulationConditionId time measurement -obs_a c0 10 0.2 -obs_b c0 10 0.8 +observableId experimentId time measurement +obs_a 10 0.2 +obs_b 10 0.8 diff --git a/petabtests/cases/v2.0.0/pysb/0007/_observables.tsv b/petabtests/cases/v2.0.0/pysb/0007/_observables.tsv index c966bde..845682f 100644 --- a/petabtests/cases/v2.0.0/pysb/0007/_observables.tsv +++ b/petabtests/cases/v2.0.0/pysb/0007/_observables.tsv @@ -1,3 +1,3 @@ -observableId observableFormula observableTransformation noiseFormula -obs_a A lin 0.5 -obs_b B log10 0.6 +observableId observableFormula noiseFormula +obs_a A 0.5 +obs_b B 0.6 diff --git a/petabtests/cases/v2.0.0/pysb/0007/_parameters.tsv b/petabtests/cases/v2.0.0/pysb/0007/_parameters.tsv index 8c1e5cb..9ead8dd 100644 --- a/petabtests/cases/v2.0.0/pysb/0007/_parameters.tsv +++ b/petabtests/cases/v2.0.0/pysb/0007/_parameters.tsv @@ -1,5 +1,5 @@ -parameterId parameterScale lowerBound upperBound nominalValue estimate -a0 lin 0 10 1.0 1 -b0 lin 0 10 0.0 1 -k1 lin 0 10 0.8 1 -k2 lin 0 10 0.6 1 +parameterId estimate nominalValue parameterScale lowerBound upperBound +a0 1 1.0 lin 0 10 +b0 1 0.0 lin 0 10 +k1 1 0.8 lin 0 10 +k2 1 0.6 lin 0 10 diff --git a/petabtests/cases/v2.0.0/pysb/0007/_simulations.tsv b/petabtests/cases/v2.0.0/pysb/0007/_simulations.tsv index a054455..1dc6109 100644 --- a/petabtests/cases/v2.0.0/pysb/0007/_simulations.tsv +++ b/petabtests/cases/v2.0.0/pysb/0007/_simulations.tsv @@ -1,3 +1,3 @@ -observableId simulationConditionId time simulation -obs_a c0 10 0.42857190373069665 -obs_b c0 10 0.5714280962693035 +observableId experimentId time simulation +obs_a 10 0.42857190373069665 +obs_b 10 0.5714280962693035