Skip to content

Commit

Permalink
pysb 4+5
Browse files Browse the repository at this point in the history
  • Loading branch information
dweindl committed Dec 18, 2024
1 parent 573dc63 commit ab57318
Show file tree
Hide file tree
Showing 13 changed files with 191 additions and 108 deletions.
4 changes: 2 additions & 2 deletions petabtests/cases/v2.0.0/pysb/0002/_parameters.tsv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
parameterId estimate nominalValue parameterScale lowerBound upperBound
k1 True 0.8 lin 0 10
k2 True 0.6 lin 0 10
k1 1 0.8 lin 0 10
k2 1 0.6 lin 0 10
108 changes: 72 additions & 36 deletions petabtests/cases/v2.0.0/pysb/0004/0004.py
Original file line number Diff line number Diff line change
@@ -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, PetabTestCase, analytical_a

Expand All @@ -24,44 +24,80 @@
""")

# problem --------------------------------------------------------------------
problem = Problem()

condition_df = pd.DataFrame(
data={
CONDITION_ID: ["c0"],
}
).set_index([CONDITION_ID])
problem.add_observable(
"obs_a",
"scaling_A * A + offset_A",
noise_formula=1,
)

measurement_df = pd.DataFrame(
data={
OBSERVABLE_ID: ["obs_a", "obs_a"],
SIMULATION_CONDITION_ID: ["c0", "c0"],
TIME: [0, 10],
MEASUREMENT: [0.7, 0.1],
}
problem.add_measurement(
"obs_a",
"",
time=0,
measurement=0.7,
)
problem.add_measurement(
"obs_a",
"",
time=10,
measurement=0.1,
)

observable_df = pd.DataFrame(
data={
OBSERVABLE_ID: ["obs_a"],
OBSERVABLE_FORMULA: ["scaling_A * A + offset_A"],
NOISE_FORMULA: [1],
}
).set_index([OBSERVABLE_ID])
problem.add_parameter(
"scaling_A",
lb=0,
ub=10,
nominal_value=0.5,
scale=LIN,
estimate=False,
)
problem.add_parameter(
"offset_A",
lb=0,
ub=10,
nominal_value=2,
scale=LIN,
estimate=False,
)
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", "scaling_A", "offset_A"],
PARAMETER_SCALE: [LIN] * 6,
LOWER_BOUND: [0] * 6,
UPPER_BOUND: [10] * 6,
NOMINAL_VALUE: [1, 0, 0.8, 0.6, 0.5, 2],
ESTIMATE: [1] * 6,
}
).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] = [
Expand All @@ -73,9 +109,9 @@
brief="Simulation. Observable parameters only defined in parameter table.",
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,
)
4 changes: 2 additions & 2 deletions petabtests/cases/v2.0.0/pysb/0004/_0004.yaml
Original file line number Diff line number Diff line change
@@ -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:
Expand Down
6 changes: 3 additions & 3 deletions petabtests/cases/v2.0.0/pysb/0004/_measurements.tsv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
observableId simulationConditionId time measurement
obs_a c0 0 0.7
obs_a c0 10 0.1
observableId experimentId time measurement
obs_a 0 0.7
obs_a 10 0.1
14 changes: 7 additions & 7 deletions petabtests/cases/v2.0.0/pysb/0004/_parameters.tsv
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
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
scaling_A lin 0 10 0.5 1
offset_A lin 0 10 2.0 1
parameterId estimate nominalValue parameterScale lowerBound upperBound
scaling_A 0 0.5 lin 0 10
offset_A 0 2.0 lin 0 10
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
6 changes: 3 additions & 3 deletions petabtests/cases/v2.0.0/pysb/0004/_simulations.tsv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
observableId simulationConditionId time simulation
obs_a c0 0 2.5
obs_a c0 10 2.214285951865348
observableId experimentId time simulation
obs_a 0 2.5
obs_a 10 2.214285951865348
120 changes: 81 additions & 39 deletions petabtests/cases/v2.0.0/pysb/0005/0005.py
Original file line number Diff line number Diff line change
@@ -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 PetabTestCase, analytical_a

Expand All @@ -23,44 +23,85 @@

# problem --------------------------------------------------------------------

condition_df = pd.DataFrame(
data={
CONDITION_ID: ["c0", "c1"],
"offset_A": ["offset_A_c0", "offset_A_c1"],
}
).set_index([CONDITION_ID])

measurement_df = pd.DataFrame(
data={
OBSERVABLE_ID: ["obs_a", "obs_a"],
SIMULATION_CONDITION_ID: ["c0", "c1"],
TIME: [10, 10],
MEASUREMENT: [2.1, 3.2],
}
problem = Problem()

problem.add_condition("c0", offset_A=(VT_CONSTANT, "offset_A_c0"))
problem.add_condition("c1", offset_A=(VT_CONSTANT, "offset_A_c1"))

problem.add_experiment("e0", 0, "c0")
problem.add_experiment("e1", 0, "c1")

problem.add_observable(
"obs_a",
"A + offset_A",
noise_formula=1,
)

problem.add_measurement(
"obs_a",
"e0",
time=10,
measurement=2.1,
)
problem.add_measurement(
"obs_a",
"e1",
time=10,
measurement=3.2,
)

observable_df = pd.DataFrame(
data={
OBSERVABLE_ID: ["obs_a"],
OBSERVABLE_FORMULA: ["A + offset_A"],
NOISE_FORMULA: [1],
}
).set_index([OBSERVABLE_ID])

parameter_df = pd.DataFrame(
data={
PARAMETER_ID: ["a0", "b0", "k1", "k2", "offset_A_c0", "offset_A_c1"],
PARAMETER_SCALE: [LIN] * 6,
LOWER_BOUND: [0] * 6,
UPPER_BOUND: [10] * 6,
NOMINAL_VALUE: [1, 0, 0.8, 0.6, 2, 3],
ESTIMATE: [1] * 6,
}
).set_index(PARAMETER_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,
)
problem.add_parameter(
"offset_A_c0",
lb=0,
ub=10,
nominal_value=2,
scale=LIN,
estimate=False,
)
problem.add_parameter(
"offset_A_c1",
lb=0,
ub=10,
nominal_value=3,
scale=LIN,
estimate=False,
)

# solutions ------------------------------------------------------------------

simulation_df = measurement_df.copy(deep=True).rename(
simulation_df = problem.measurement_df.copy(deep=True).rename(
columns={MEASUREMENT: SIMULATION}
)
simulation_df[SIMULATION] = [
Expand All @@ -73,9 +114,10 @@
"parameter table.",
description=DESCRIPTION,
model="conversion_modified_pysb.py",
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,
experiment_dfs=[problem.experiment_df],
)
2 changes: 2 additions & 0 deletions petabtests/cases/v2.0.0/pysb/0005/_0005.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ parameter_file: _parameters.tsv
problems:
- condition_files:
- _conditions.tsv
experiment_files:
- _experiments.tsv
measurement_files:
- _measurements.tsv
model_files:
Expand Down
6 changes: 3 additions & 3 deletions petabtests/cases/v2.0.0/pysb/0005/_conditions.tsv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
conditionId offset_A
c0 offset_A_c0
c1 offset_A_c1
conditionId targetId valueType targetValue
c0 offset_A constant offset_A_c0
c1 offset_A constant offset_A_c1
3 changes: 3 additions & 0 deletions petabtests/cases/v2.0.0/pysb/0005/_experiments.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
experimentId time conditionId
e0 0 c0
e1 0 c1
6 changes: 3 additions & 3 deletions petabtests/cases/v2.0.0/pysb/0005/_measurements.tsv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
observableId simulationConditionId time measurement
obs_a c0 10 2.1
obs_a c1 10 3.2
observableId experimentId time measurement
obs_a e0 10 2.1
obs_a e1 10 3.2
14 changes: 7 additions & 7 deletions petabtests/cases/v2.0.0/pysb/0005/_parameters.tsv
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
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
offset_A_c0 lin 0 10 2.0 1
offset_A_c1 lin 0 10 3.0 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
offset_A_c0 0 2.0 lin 0 10
offset_A_c1 0 3.0 lin 0 10
6 changes: 3 additions & 3 deletions petabtests/cases/v2.0.0/pysb/0005/_simulations.tsv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
observableId simulationConditionId time simulation
obs_a c0 10 2.4285719037306968
obs_a c1 10 3.4285719037306968
observableId experimentId time simulation
obs_a e0 10 2.4285719037306968
obs_a e1 10 3.4285719037306968

0 comments on commit ab57318

Please sign in to comment.