diff --git a/petabtests/cases/v2.0.0/sbml/0018/0018.py b/petabtests/cases/v2.0.0/sbml/0018/0018.py index 34ee2ac..e869490 100644 --- a/petabtests/cases/v2.0.0/sbml/0018/0018.py +++ b/petabtests/cases/v2.0.0/sbml/0018/0018.py @@ -22,6 +22,9 @@ `A` is reinitialized to the value in the condition table after preequilibration, `B` is not updated. +This test is a more tricky version of test 0029, which also includes a +non-zero simulation start time without a preequilibration condition. + ## Model A simple conversion reaction `A <=> B` in a single compartment, following diff --git a/petabtests/cases/v2.0.0/sbml/0018/README.md b/petabtests/cases/v2.0.0/sbml/0018/README.md index f30420b..7ab634d 100644 --- a/petabtests/cases/v2.0.0/sbml/0018/README.md +++ b/petabtests/cases/v2.0.0/sbml/0018/README.md @@ -11,6 +11,9 @@ For preequilibration, species `B` is initialized with `0`. For simulation, `A` is reinitialized to the value in the condition table after preequilibration, `B` is not updated. +This test is a more tricky version of test 0029, which also includes a +non-zero simulation start time without a preequilibration condition. + ## Model A simple conversion reaction `A <=> B` in a single compartment, following diff --git a/petabtests/cases/v2.0.0/sbml/0029/0029.py b/petabtests/cases/v2.0.0/sbml/0029/0029.py new file mode 100644 index 0000000..120d503 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0029/0029.py @@ -0,0 +1,54 @@ +from inspect import cleandoc + +from petab.v2.C import * +from petab.v2.core import * +from petab.v2 import Problem +from petabtests import DEFAULT_SBML_FILE, PetabV2TestCase, analytical_a + +DESCRIPTION = cleandoc(""" +## Objective + +This case features a simple test with two data points with a non-zero +simulation start time. + +## Model + +A simple conversion reaction `A <=> B` in a single compartment, following +mass action kinetics. +""") + +# problem -------------------------------------------------------------------- +a0 = 1.0 +b0 = 1.0 +k1 = 0.8 +k2 = 0.6 + +problem = Problem() +problem.add_experiment("e1", 5.0, "") + +problem.add_observable("obs_a", "A", noise_formula="1") + +problem.add_measurement("obs_a", experiment_id="e1", time=5, measurement=0.01) +problem.add_measurement("obs_a", experiment_id="e1", time=10, measurement=0.1) + +problem.add_parameter("k1", lb=0, ub=10, nominal_value=k1, estimate=True) +problem.add_parameter("k2", lb=0, ub=10, nominal_value=k2, estimate=True) + +# solutions ------------------------------------------------------------------ + +simulation_df = problem.measurement_df.copy(deep=True).rename( + columns={MEASUREMENT: SIMULATION} +) +simulation_df[SIMULATION] = [ + analytical_a(t=(t - 5.0), a0=a0, b0=b0, k1=k1, k2=k2) for t in simulation_df[TIME] +] + + +case = PetabV2TestCase.from_problem( + id=29, + problem=problem, + brief="Simulation. Non-zero simulation start time", + description=DESCRIPTION, + model=DEFAULT_SBML_FILE, + simulation_df=simulation_df, +) diff --git a/petabtests/cases/v2.0.0/sbml/0029/README.md b/petabtests/cases/v2.0.0/sbml/0029/README.md new file mode 100644 index 0000000..831050f --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0029/README.md @@ -0,0 +1,11 @@ +# PEtab test case 0029 + +## Objective + +This case features a simple test with two data points with a non-zero +simulation start time. + +## Model + +A simple conversion reaction `A <=> B` in a single compartment, following +mass action kinetics. diff --git a/petabtests/cases/v2.0.0/sbml/0029/_0029.yaml b/petabtests/cases/v2.0.0/sbml/0029/_0029.yaml new file mode 100644 index 0000000..1c917f1 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0029/_0029.yaml @@ -0,0 +1,14 @@ +condition_files: [] +experiment_files: +- _experiments.tsv +format_version: 2.0.0 +measurement_files: +- _measurements.tsv +model_files: + model_0: + language: sbml + location: _model.xml +observable_files: +- _observables.tsv +parameter_files: +- _parameters.tsv diff --git a/petabtests/cases/v2.0.0/sbml/0029/_0029_solution.yaml b/petabtests/cases/v2.0.0/sbml/0029/_0029_solution.yaml new file mode 100644 index 0000000..819e56b --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0029/_0029_solution.yaml @@ -0,0 +1,7 @@ +chi2: 1.55356258735436 +llh: -2.61465836008652 +simulation_files: +- _simulations.tsv +tol_chi2: 0.001 +tol_llh: 0.001 +tol_simulations: 0.001 diff --git a/petabtests/cases/v2.0.0/sbml/0029/_experiments.tsv b/petabtests/cases/v2.0.0/sbml/0029/_experiments.tsv new file mode 100644 index 0000000..2c386fa --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0029/_experiments.tsv @@ -0,0 +1,2 @@ +experimentId time conditionId +e1 5.0 diff --git a/petabtests/cases/v2.0.0/sbml/0029/_measurements.tsv b/petabtests/cases/v2.0.0/sbml/0029/_measurements.tsv new file mode 100644 index 0000000..a8f8e02 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0029/_measurements.tsv @@ -0,0 +1,3 @@ +modelId observableId experimentId time measurement observableParameters noiseParameters + obs_a e1 5.0 0.01 + obs_a e1 10.0 0.1 diff --git a/petabtests/cases/v2.0.0/sbml/0029/_model.xml b/petabtests/cases/v2.0.0/sbml/0029/_model.xml new file mode 100644 index 0000000..9a91311 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0029/_model.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a0 + + + + + b0 + + + + + + + + + + + + + + + + + compartment + k1 + A + + + + + + + + + + + + + + + + compartment + k2 + B + + + + + + + + diff --git a/petabtests/cases/v2.0.0/sbml/0029/_observables.tsv b/petabtests/cases/v2.0.0/sbml/0029/_observables.tsv new file mode 100644 index 0000000..29fbcf1 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0029/_observables.tsv @@ -0,0 +1,2 @@ +observableId observableName observableFormula noiseFormula noiseDistribution observablePlaceholders noisePlaceholders +obs_a A 1.00000000000000 normal diff --git a/petabtests/cases/v2.0.0/sbml/0029/_parameters.tsv b/petabtests/cases/v2.0.0/sbml/0029/_parameters.tsv new file mode 100644 index 0000000..852192d --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0029/_parameters.tsv @@ -0,0 +1,3 @@ +parameterId lowerBound upperBound nominalValue estimate priorDistribution priorParameters +k1 0.0 10.0 0.8 true +k2 0.0 10.0 0.6 true diff --git a/petabtests/cases/v2.0.0/sbml/0029/_simulations.tsv b/petabtests/cases/v2.0.0/sbml/0029/_simulations.tsv new file mode 100644 index 0000000..bac1c06 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0029/_simulations.tsv @@ -0,0 +1,3 @@ +modelId observableId experimentId time simulation observableParameters noiseParameters + obs_a e1 5.0 1.0 + obs_a e1 10.0 0.8572731259950793 diff --git a/petabtests/cases/v2.0.0/sbml/README.md b/petabtests/cases/v2.0.0/sbml/README.md index 35ef192..4f65ce5 100644 --- a/petabtests/cases/v2.0.0/sbml/README.md +++ b/petabtests/cases/v2.0.0/sbml/README.md @@ -106,3 +106,7 @@ Simulation. Condition-specific parameters defined via math expressions in the pa Simulation. None t0 condition applied at time-point without measurements. +# [0029](0029/) + +Simulation. Non-zero simulation start time +