diff --git a/petabtests/cases/v2.0.0/sbml/0028/0028.py b/petabtests/cases/v2.0.0/sbml/0028/0028.py new file mode 100644 index 0000000..9de2b96 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/0028.py @@ -0,0 +1,65 @@ +from inspect import cleandoc + +from petab.v2.C import * +from petab.v2 import Problem +from petabtests import PetabV2TestCase, analytical_a, analytical_b, DEFAULT_SBML_FILE + +DESCRIPTION = cleandoc(""" +## Objective + +This case tests applies a PEtab condition at a non-initial time point, +where the condition is triggered at a time point that does not have any +measurements. + +## Model + +A simple conversion reaction `A <=> B` in a single compartment, following +mass action kinetics. +""") + +# problem -------------------------------------------------------------------- +a0 = 1 +b0 = 1 +k1 = 0.8 +k2 = 0.6 +problem = Problem() + +problem.add_condition( + "condition1", + "condition1", + A="A + 5.0", +) +problem.add_experiment("experiment1", 0, "", 7, "condition1") + + +problem.add_observable("obs_a", "A", noise_formula="0.5") +problem.add_measurement("obs_a", experiment_id="experiment1", time=0, measurement=0.7) +problem.add_measurement("obs_a", experiment_id="experiment1", 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} +) +# in the model, concentrations are used, which do not depend on the +# compartment size, so that the species values should stay the same +a7 = analytical_a(7.0, a0=a0, b0=b0, k1=k1, k2=k2) +b7 = analytical_b(7.0, a0=a0, b0=b0, k1=k1, k2=k2) +simulation_df[SIMULATION] = [ + a0, + analytical_a(3.0, a0=(a7 + 5.0), b0=b7, k1=k1, k2=k2) +] + +case = PetabV2TestCase.from_problem( + id=28, + brief="Simulation. None t0 condition applied at time-point " + "without measurements.", + description=DESCRIPTION, + model=DEFAULT_SBML_FILE, + problem=problem, + simulation_df=simulation_df, +) diff --git a/petabtests/cases/v2.0.0/sbml/0028/README.md b/petabtests/cases/v2.0.0/sbml/0028/README.md new file mode 100644 index 0000000..1f39815 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/README.md @@ -0,0 +1,12 @@ +# PEtab test case 0028 + +## Objective + +This case tests applies a PEtab condition at a non-initial time point, +where the condition is triggered at a time point that does not have any +measurements. + +## Model + +A simple conversion reaction `A <=> B` in a single compartment, following +mass action kinetics. diff --git a/petabtests/cases/v2.0.0/sbml/0028/_0028.yaml b/petabtests/cases/v2.0.0/sbml/0028/_0028.yaml new file mode 100644 index 0000000..f698cb3 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/_0028.yaml @@ -0,0 +1,17 @@ +condition_files: +- _conditions.tsv +experiment_files: +- _experiments.tsv +format_version: 2.0.0 +mapping_files: +- _mapping.tsv +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/0028/_0028_solution.yaml b/petabtests/cases/v2.0.0/sbml/0028/_0028_solution.yaml new file mode 100644 index 0000000..2c02c72 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/_0028_solution.yaml @@ -0,0 +1,7 @@ +chi2: 35.00133792381521 +llh: -17.95225166719706 +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/0028/_conditions.tsv b/petabtests/cases/v2.0.0/sbml/0028/_conditions.tsv new file mode 100644 index 0000000..61a5bb5 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/_conditions.tsv @@ -0,0 +1,2 @@ +conditionId targetId targetValue +condition1 A A + 5.0 diff --git a/petabtests/cases/v2.0.0/sbml/0028/_experiments.tsv b/petabtests/cases/v2.0.0/sbml/0028/_experiments.tsv new file mode 100644 index 0000000..0a16024 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/_experiments.tsv @@ -0,0 +1,3 @@ +experimentId time conditionId +experiment1 0.0 +experiment1 7.0 condition1 diff --git a/petabtests/cases/v2.0.0/sbml/0028/_mapping.tsv b/petabtests/cases/v2.0.0/sbml/0028/_mapping.tsv new file mode 100644 index 0000000..a826206 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/_mapping.tsv @@ -0,0 +1,2 @@ +petabEntityId modelEntityId name +condition1 condition1 diff --git a/petabtests/cases/v2.0.0/sbml/0028/_measurements.tsv b/petabtests/cases/v2.0.0/sbml/0028/_measurements.tsv new file mode 100644 index 0000000..d003321 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/_measurements.tsv @@ -0,0 +1,3 @@ +modelId observableId experimentId time measurement observableParameters noiseParameters + obs_a experiment1 0.0 0.7 + obs_a experiment1 10.0 0.1 diff --git a/petabtests/cases/v2.0.0/sbml/0028/_model.xml b/petabtests/cases/v2.0.0/sbml/0028/_model.xml new file mode 100644 index 0000000..9a91311 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/_model.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a0 + + + + + b0 + + + + + + + + + + + + + + + + + compartment + k1 + A + + + + + + + + + + + + + + + + compartment + k2 + B + + + + + + + + diff --git a/petabtests/cases/v2.0.0/sbml/0028/_observables.tsv b/petabtests/cases/v2.0.0/sbml/0028/_observables.tsv new file mode 100644 index 0000000..251acc7 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/_observables.tsv @@ -0,0 +1,2 @@ +observableId observableName observableFormula noiseFormula noiseDistribution observablePlaceholders noisePlaceholders +obs_a A 0.500000000000000 normal diff --git a/petabtests/cases/v2.0.0/sbml/0028/_parameters.tsv b/petabtests/cases/v2.0.0/sbml/0028/_parameters.tsv new file mode 100644 index 0000000..852192d --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/_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/0028/_simulations.tsv b/petabtests/cases/v2.0.0/sbml/0028/_simulations.tsv new file mode 100644 index 0000000..9cfe9c4 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0028/_simulations.tsv @@ -0,0 +1,3 @@ +modelId observableId experimentId time simulation observableParameters noiseParameters + obs_a experiment1 0.0 1.0 + obs_a experiment1 10.0 3.0428446239911824 diff --git a/petabtests/cases/v2.0.0/sbml/README.md b/petabtests/cases/v2.0.0/sbml/README.md index 6c0ab27..35ef192 100644 --- a/petabtests/cases/v2.0.0/sbml/README.md +++ b/petabtests/cases/v2.0.0/sbml/README.md @@ -102,3 +102,7 @@ Simulation. Estimated initial value via math expressions in conditions table. Simulation. Condition-specific parameters defined via math expressions in the parameter table. +# [0028](0028/) + +Simulation. None t0 condition applied at time-point without measurements. +