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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions petabtests/cases/v2.0.0/sbml/0031/0031.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
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 applying two PEtab conditions simultaneously, at a time
point that also has measurement values.

## 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",
A="A + 5.0",
)
problem.add_condition(
"condition2",
B="B + 3.0",
)
problem.add_experiment("experiment1",
0, "",
10, "condition1",
10, "condition2")

problem.add_observable("obs_a", "A", noise_formula="0.5")
problem.add_observable("obs_b", "B", noise_formula="0.1")
problem.add_measurement("obs_a", experiment_id="experiment1", time=0, measurement=0.7)
problem.add_measurement("obs_b", experiment_id="experiment1", time=0, measurement=1.0)
problem.add_measurement("obs_a", experiment_id="experiment1", time=10, measurement=0.1)
problem.add_measurement("obs_b", experiment_id="experiment1", time=10, measurement=0.4)

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
simulation_df[SIMULATION] = [
a0,
b0,
analytical_a(10.0, a0=a0, b0=b0, k1=k1, k2=k2) + 5.0,
analytical_b(10.0, a0=a0, b0=b0, k1=k1, k2=k2) + 3.0,
]

case = PetabV2TestCase.from_problem(
id=31,
brief="Simulation. Two PEtab conditions applied at the same "
"time point.",
description=DESCRIPTION,
model=DEFAULT_SBML_FILE,
problem=problem,
simulation_df=simulation_df,
)
11 changes: 11 additions & 0 deletions petabtests/cases/v2.0.0/sbml/0031/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# PEtab test case 0031

## Objective

This case tests applying two PEtab conditions simultaneously, at a time
point that also has measurement values.

## Model

A simple conversion reaction `A <=> B` in a single compartment, following
mass action kinetics.
15 changes: 15 additions & 0 deletions petabtests/cases/v2.0.0/sbml/0031/_0031.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
condition_files:
- _conditions.tsv
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
7 changes: 7 additions & 0 deletions petabtests/cases/v2.0.0/sbml/0031/_0031_solution.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
chi2: 1533.8366512423358
llh: -764.6026152068787
simulation_files:
- _simulations.tsv
tol_chi2: 0.001
tol_llh: 0.001
tol_simulations: 0.001
3 changes: 3 additions & 0 deletions petabtests/cases/v2.0.0/sbml/0031/_conditions.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
conditionId targetId targetValue
condition1 A A + 5.0
condition2 B B + 3.0
4 changes: 4 additions & 0 deletions petabtests/cases/v2.0.0/sbml/0031/_experiments.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
experimentId time conditionId
experiment1 0.0
experiment1 10.0 condition1
experiment1 10.0 condition2
5 changes: 5 additions & 0 deletions petabtests/cases/v2.0.0/sbml/0031/_measurements.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
modelId observableId experimentId time measurement observableParameters noiseParameters
obs_a experiment1 0.0 0.7
obs_b experiment1 0.0 1.0
obs_a experiment1 10.0 0.1
obs_b experiment1 10.0 0.4
94 changes: 94 additions & 0 deletions petabtests/cases/v2.0.0/sbml/0031/_model.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<sbml xmlns="http://www.sbml.org/sbml/level2/version4" level="2" version="4">
<model id="conversion_reaction_0" name="Conversion Reaction 0">

<listOfUnitDefinitions>
<unitDefinition id="volume" name="volume">
<listOfUnits>
<unit kind="litre" exponent="1" scale="-3" multiplier="1"/>
</listOfUnits>
</unitDefinition>
<unitDefinition id="substance" name="substance">
<listOfUnits>
<unit kind="mole" exponent="1" scale="-3" multiplier="1"/>
</listOfUnits>
</unitDefinition>
</listOfUnitDefinitions>

<listOfCompartments>
<compartment id="compartment" name="compartment" spatialDimensions="3" size="1" constant="true">
</compartment>
</listOfCompartments>

<listOfSpecies>
<species id="A" name="A" compartment="compartment" initialConcentration="2" boundaryCondition="false" constant="false">
</species>
<species id="B" name="B" compartment="compartment" initialConcentration="2" boundaryCondition="false" constant="false">
</species>
</listOfSpecies>

<listOfParameters>
<parameter id="a0" name="a0" value="1" constant="true">
</parameter>
<parameter id="b0" name="b0" value="1" constant="true">
</parameter>
<parameter id="k1" name="k1" value="0" constant="true">
</parameter>
<parameter id="k2" name="k2" value="0" constant="true">
</parameter>
</listOfParameters>

<listOfInitialAssignments>
<initialAssignment symbol="A">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> a0 </ci>
</math>
</initialAssignment>
<initialAssignment symbol="B">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<ci> b0 </ci>
</math>
</initialAssignment>
</listOfInitialAssignments>

<listOfReactions>
<reaction id="fwd" name="fwd" reversible="false">
<listOfReactants>
<speciesReference species="A" stoichiometry="1"/>
</listOfReactants>
<listOfProducts>
<speciesReference species="B" stoichiometry="1"/>
</listOfProducts>
<kineticLaw>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<times/>
<ci> compartment </ci>
<ci> k1 </ci>
<ci> A </ci>
</apply>
</math>
</kineticLaw>
</reaction>
<reaction id="rev" name="rev" reversible="false">
<listOfReactants>
<speciesReference species="B" stoichiometry="1"/>
</listOfReactants>
<listOfProducts>
<speciesReference species="A" stoichiometry="1"/>
</listOfProducts>
<kineticLaw>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<times/>
<ci> compartment </ci>
<ci> k2 </ci>
<ci> B </ci>
</apply>
</math>
</kineticLaw>
</reaction>
</listOfReactions>

</model>
</sbml>
3 changes: 3 additions & 0 deletions petabtests/cases/v2.0.0/sbml/0031/_observables.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
observableId observableName observableFormula noiseFormula noiseDistribution observablePlaceholders noisePlaceholders
obs_a A 0.500000000000000 normal
obs_b B 0.100000000000000 normal
3 changes: 3 additions & 0 deletions petabtests/cases/v2.0.0/sbml/0031/_parameters.tsv
Original file line number Diff line number Diff line change
@@ -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
5 changes: 5 additions & 0 deletions petabtests/cases/v2.0.0/sbml/0031/_simulations.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
modelId observableId experimentId time simulation observableParameters noiseParameters
obs_a experiment1 0.0 1.0
obs_b experiment1 0.0 1.0
obs_a experiment1 10.0 5.857142975932674
obs_b experiment1 10.0 4.142857024067326
4 changes: 4 additions & 0 deletions petabtests/cases/v2.0.0/sbml/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,3 +114,7 @@ Simulation. Non-zero simulation start time

Simultaneous trigger of PEtab condition and SBML event.

# [0031](0031/)

Simulation. Two PEtab conditions applied at the same time point.