diff --git a/petabtests/cases/v2.0.0/sbml/0021/0021.py b/petabtests/cases/v2.0.0/sbml/0021/0021.py new file mode 100644 index 0000000..eda59d6 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0021/0021.py @@ -0,0 +1,67 @@ +from inspect import cleandoc + +import pandas as pd +from petab.C import * + +from petabtests import DEFAULT_SBML_FILE, PetabTestCase, analytical_a + +DESCRIPTION = cleandoc(""" +## Objective + +This case tests observable-dependent parametric noise parameter overrides in +the measurement table. + +## Model + +A simple conversion reaction `A <=> B` in a single compartment, following +mass action kinetics. +""") + +# 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], + NOISE_PARAMETERS: ['noise', 'noise'], +}) + +observable_df = pd.DataFrame(data={ + OBSERVABLE_ID: ['obs_a'], + OBSERVABLE_FORMULA: ['A'], + NOISE_FORMULA: ['noiseParameter1_obs_a * obs_a'] +}).set_index([OBSERVABLE_ID]) + +parameter_df = pd.DataFrame(data={ + PARAMETER_ID: ['a0', 'b0', 'k1', 'k2', 'noise'], + PARAMETER_SCALE: [LIN] * 5, + LOWER_BOUND: [0] * 5, + UPPER_BOUND: [10] * 5, + NOMINAL_VALUE: [1, 0, 0.8, 0.6, 5], + ESTIMATE: [1] * 5, +}).set_index(PARAMETER_ID) + +# solutions ------------------------------------------------------------------ + +simulation_df = measurement_df.copy(deep=True).rename( + columns={MEASUREMENT: SIMULATION}) +simulation_df[SIMULATION] = [analytical_a(t, 1, 0, 0.8, 0.6) + for t in simulation_df[TIME]] + + +case = PetabTestCase( + id=21, + brief="Simulation. Nothing special.", + description=DESCRIPTION, + model=DEFAULT_SBML_FILE, + condition_dfs=[condition_df], + observable_dfs=[observable_df], + measurement_dfs=[measurement_df], + simulation_dfs=[simulation_df], + parameter_df=parameter_df, +) diff --git a/petabtests/cases/v2.0.0/sbml/0021/README.md b/petabtests/cases/v2.0.0/sbml/0021/README.md new file mode 100644 index 0000000..6127931 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0021/README.md @@ -0,0 +1,11 @@ +# PEtab test case 0021 + +## Objective + +This case tests observable-dependent parametric noise parameter overrides in +the measurement table. + +## Model + +A simple conversion reaction `A <=> B` in a single compartment, following +mass action kinetics. diff --git a/petabtests/cases/v2.0.0/sbml/0021/_0021.yaml b/petabtests/cases/v2.0.0/sbml/0021/_0021.yaml new file mode 100644 index 0000000..b1337e7 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0021/_0021.yaml @@ -0,0 +1,13 @@ +format_version: 2.0.0 +parameter_file: _parameters.tsv +problems: +- condition_files: + - _conditions.tsv + measurement_files: + - _measurements.tsv + model_files: + model_0: + language: sbml + location: _model.xml + observable_files: + - _observables.tsv diff --git a/petabtests/cases/v2.0.0/sbml/0021/_0021_solution.yaml b/petabtests/cases/v2.0.0/sbml/0021/_0021_solution.yaml new file mode 100644 index 0000000..fb2acef --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0021/_0021_solution.yaml @@ -0,0 +1,7 @@ +chi2: 0.0271111269779 +llh: -4.22301170308364 +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/0021/_conditions.tsv b/petabtests/cases/v2.0.0/sbml/0021/_conditions.tsv new file mode 100644 index 0000000..f15e327 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0021/_conditions.tsv @@ -0,0 +1,2 @@ +conditionId +c0 diff --git a/petabtests/cases/v2.0.0/sbml/0021/_measurements.tsv b/petabtests/cases/v2.0.0/sbml/0021/_measurements.tsv new file mode 100644 index 0000000..687cf08 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0021/_measurements.tsv @@ -0,0 +1,3 @@ +observableId simulationConditionId time measurement noiseParameters +obs_a c0 0 0.7 noise +obs_a c0 10 0.1 noise diff --git a/petabtests/cases/v2.0.0/sbml/0021/_model.xml b/petabtests/cases/v2.0.0/sbml/0021/_model.xml new file mode 100644 index 0000000..9a91311 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0021/_model.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a0 + + + + + b0 + + + + + + + + + + + + + + + + + compartment + k1 + A + + + + + + + + + + + + + + + + compartment + k2 + B + + + + + + + + diff --git a/petabtests/cases/v2.0.0/sbml/0021/_observables.tsv b/petabtests/cases/v2.0.0/sbml/0021/_observables.tsv new file mode 100644 index 0000000..72d22e1 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0021/_observables.tsv @@ -0,0 +1,2 @@ +observableId observableFormula noiseFormula +obs_a A noiseParameter1_obs_a * obs_a diff --git a/petabtests/cases/v2.0.0/sbml/0021/_parameters.tsv b/petabtests/cases/v2.0.0/sbml/0021/_parameters.tsv new file mode 100644 index 0000000..46c9b55 --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0021/_parameters.tsv @@ -0,0 +1,6 @@ +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 +noise lin 0 10 5.0 1 diff --git a/petabtests/cases/v2.0.0/sbml/0021/_simulations.tsv b/petabtests/cases/v2.0.0/sbml/0021/_simulations.tsv new file mode 100644 index 0000000..1bb82af --- /dev/null +++ b/petabtests/cases/v2.0.0/sbml/0021/_simulations.tsv @@ -0,0 +1,3 @@ +observableId simulationConditionId time simulation noiseParameters +obs_a c0 0 1.0 noise +obs_a c0 10 0.42857190373069665 noise diff --git a/petabtests/cases/v2.0.0/sbml/README.md b/petabtests/cases/v2.0.0/sbml/README.md index 6aa12fa..eb4ff85 100644 --- a/petabtests/cases/v2.0.0/sbml/README.md +++ b/petabtests/cases/v2.0.0/sbml/README.md @@ -78,3 +78,7 @@ Mapping table. Simulation. Estimated initial value via conditions table. +# [0021](0021/) + +Simulation. Nothing special. +