Skip to content

Commit 609d92a

Browse files
authored
Add published optimum to Blasi PEtab Select problem (#163)
1 parent becc84d commit 609d92a

4 files changed

Lines changed: 80 additions & 58 deletions

File tree

Benchmark-Models/Blasi_CellSystems2016/petab_select/03_create_petab.py

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
measurements0_grouped = {k: v for k, v in petab_problem0.measurement_df.groupby(OBSERVABLE_ID)}
4444

4545
condition_id = 'condition'
46-
noise = 'sigma'
46+
noise = 'sigma_'
4747

4848

4949
def convert_observable_id(id0: str) -> str:
@@ -90,17 +90,37 @@ def convert_observable_id(id0: str) -> str:
9090
measurement_dicts.append(measurement_dict)
9191

9292
# Create parameters
93+
## Optimal parameters, reported in paper, taken from MATLAB implementation
94+
published_optimal_parameters = {
95+
'a_b': 0.0667579590703576,
96+
'a_0ac_k08': 0.0272712553008379,
97+
'a_k05_k05k12': 2.06203333647699,
98+
'a_k12_k05k12': 0.551940805482671,
99+
'a_k16_k12k16': 0.695938574109670,
100+
'a_k05k12_k05k08k12': 0.325297000106462,
101+
'a_k12k16_k08k12k16': 2.20553079904637,
102+
'a_k08k12k16_4ac': 3.59169549625268,
103+
}
104+
93105
parameter_dicts = []
94106
## Motif-specific
95107
for parameter_dict0 in motif_specific_parameters.values():
96108
parameter_dict = {
97109
PARAMETER_ID: parameter_dict0['id'],
98110
PARAMETER_NAME: parameter_dict0['name'],
99111
PARAMETER_SCALE: LOG10,
100-
LOWER_BOUND: '1e-12',
112+
LOWER_BOUND: '1e-3',
101113
UPPER_BOUND: '1e3',
102-
NOMINAL_VALUE: 1,
103-
ESTIMATE: 0,
114+
NOMINAL_VALUE: (
115+
published_optimal_parameters[parameter_dict0['id']] / published_optimal_parameters['a_b']
116+
if parameter_dict0['id'] in published_optimal_parameters
117+
else 1
118+
),
119+
ESTIMATE: (
120+
1
121+
if parameter_dict0['id'] in published_optimal_parameters
122+
else 0
123+
),
104124
}
105125
parameter_dicts.append(parameter_dict)
106126
# ## Switch
@@ -120,9 +140,9 @@ def convert_observable_id(id0: str) -> str:
120140
PARAMETER_ID: parameter_dict0['id'],
121141
PARAMETER_NAME: parameter_dict0['name'],
122142
PARAMETER_SCALE: LOG10,
123-
LOWER_BOUND: '1e-12',
143+
LOWER_BOUND: '1e-3',
124144
UPPER_BOUND: '1e3',
125-
NOMINAL_VALUE: 0,
145+
NOMINAL_VALUE: published_optimal_parameters['a_b'],
126146
ESTIMATE: 1,
127147
}
128148
elif parameter_dict0['id'] == 'da_b':
@@ -142,10 +162,10 @@ def convert_observable_id(id0: str) -> str:
142162
PARAMETER_ID: noise,
143163
PARAMETER_NAME: noise,
144164
PARAMETER_SCALE: LOG10,
145-
LOWER_BOUND: '1e-12',
165+
LOWER_BOUND: '1e-3',
146166
UPPER_BOUND: '1e3',
147-
NOMINAL_VALUE: 0.1,
148-
ESTIMATE: 1,
167+
NOMINAL_VALUE: 1,
168+
ESTIMATE: 0,
149169
}
150170
)
151171

Benchmark-Models/Blasi_CellSystems2016/petab_select/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ This is a fresh implementation of the model from `Blasi_CellSystems2016`, to fac
44
Specifically, this model contains parameters to enable model selection with motif-specific acetylation rates. These additional parameters are implemented as multipliers of the basal acetylation rate `a_b`.
55
Note that this means any motif-specific parameter `a_*` (except the basal acetylation rate `a_b`) can be fixed to 1 to "turn off" the motif-specific acetylation rate, or estimated to "turn on" the motif-specific acetylation rate.
66

7+
The nominal values in the parameter table (`output/petab/parameters.tsv`) are taken from the original MATLAB implementation and match the values reported in the supplementary of the original paper. However, they have been divided by the nominal value for `a_b`, because the motif-specific parameters are multipliers in this implementation.
8+
79
The only thing taken from the main PEtab problem are the measurements, the remaining PEtab (Select) files and the model were generated with the provided scripts.
810

911
# Python requirements
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
observableId observableName observableFormula observableTransformation noiseFormula noiseDistribution
2-
observable_x_0ac y_{0ac} x_0ac log sigma normal
3-
observable_x_4ac y_{4ac} x_4ac log sigma normal
4-
observable_x_k12 y_{k12} x_k12 log sigma normal
5-
observable_x_k12k16 y_{k12k16} x_k12k16 log sigma normal
6-
observable_x_k16 y_{k16} x_k16 log sigma normal
7-
observable_x_k05 y_{k05} x_k05 log sigma normal
8-
observable_x_k05k12 y_{k05k12} x_k05k12 log sigma normal
9-
observable_x_k05k12k16 y_{k05k12k16} x_k05k12k16 log sigma normal
10-
observable_x_k05k08 y_{k05k08} x_k05k08 log sigma normal
11-
observable_x_k05k08k12 y_{k05k08k12} x_k05k08k12 log sigma normal
12-
observable_x_k05k08k16 y_{k05k08k16} x_k05k08k16 log sigma normal
13-
observable_x_k08 y_{k08} x_k08 log sigma normal
14-
observable_x_k08k12 y_{k08k12} x_k08k12 log sigma normal
15-
observable_x_k08k12k16 y_{k08k12k16} x_k08k12k16 log sigma normal
16-
observable_x_k08k16 y_{k08k16} x_k08k16 log sigma normal
2+
observable_x_0ac y_{0ac} x_0ac log sigma_ normal
3+
observable_x_4ac y_{4ac} x_4ac log sigma_ normal
4+
observable_x_k12 y_{k12} x_k12 log sigma_ normal
5+
observable_x_k12k16 y_{k12k16} x_k12k16 log sigma_ normal
6+
observable_x_k16 y_{k16} x_k16 log sigma_ normal
7+
observable_x_k05 y_{k05} x_k05 log sigma_ normal
8+
observable_x_k05k12 y_{k05k12} x_k05k12 log sigma_ normal
9+
observable_x_k05k12k16 y_{k05k12k16} x_k05k12k16 log sigma_ normal
10+
observable_x_k05k08 y_{k05k08} x_k05k08 log sigma_ normal
11+
observable_x_k05k08k12 y_{k05k08k12} x_k05k08k12 log sigma_ normal
12+
observable_x_k05k08k16 y_{k05k08k16} x_k05k08k16 log sigma_ normal
13+
observable_x_k08 y_{k08} x_k08 log sigma_ normal
14+
observable_x_k08k12 y_{k08k12} x_k08k12 log sigma_ normal
15+
observable_x_k08k12k16 y_{k08k12k16} x_k08k12k16 log sigma_ normal
16+
observable_x_k08k16 y_{k08k16} x_k08k16 log sigma_ normal
Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
parameterId parameterName parameterScale lowerBound upperBound nominalValue estimate
2-
a_0ac_k05 a_{0ac\\rightarrow k05} log10 1e-12 1e3 1.0 0
3-
a_0ac_k08 a_{0ac\\rightarrow k08} log10 1e-12 1e3 1.0 0
4-
a_0ac_k12 a_{0ac\\rightarrow k12} log10 1e-12 1e3 1.0 0
5-
a_0ac_k16 a_{0ac\\rightarrow k16} log10 1e-12 1e3 1.0 0
6-
a_k05_k05k08 a_{k05\\rightarrow k05k08} log10 1e-12 1e3 1.0 0
7-
a_k05_k05k12 a_{k05\\rightarrow k05k12} log10 1e-12 1e3 1.0 0
8-
a_k05_k05k16 a_{k05\\rightarrow k05k16} log10 1e-12 1e3 1.0 0
9-
a_k08_k05k08 a_{k08\\rightarrow k05k08} log10 1e-12 1e3 1.0 0
10-
a_k08_k08k12 a_{k08\\rightarrow k08k12} log10 1e-12 1e3 1.0 0
11-
a_k08_k08k16 a_{k08\\rightarrow k08k16} log10 1e-12 1e3 1.0 0
12-
a_k12_k05k12 a_{k12\\rightarrow k05k12} log10 1e-12 1e3 1.0 0
13-
a_k12_k08k12 a_{k12\\rightarrow k08k12} log10 1e-12 1e3 1.0 0
14-
a_k12_k12k16 a_{k12\\rightarrow k12k16} log10 1e-12 1e3 1.0 0
15-
a_k16_k05k16 a_{k16\\rightarrow k05k16} log10 1e-12 1e3 1.0 0
16-
a_k16_k08k16 a_{k16\\rightarrow k08k16} log10 1e-12 1e3 1.0 0
17-
a_k16_k12k16 a_{k16\\rightarrow k12k16} log10 1e-12 1e3 1.0 0
18-
a_k05k08_k05k08k12 a_{k05k08\\rightarrow k05k08k12} log10 1e-12 1e3 1.0 0
19-
a_k05k08_k05k08k16 a_{k05k08\\rightarrow k05k08k16} log10 1e-12 1e3 1.0 0
20-
a_k05k12_k05k08k12 a_{k05k12\\rightarrow k05k08k12} log10 1e-12 1e3 1.0 0
21-
a_k05k12_k05k12k16 a_{k05k12\\rightarrow k05k12k16} log10 1e-12 1e3 1.0 0
22-
a_k05k16_k05k08k16 a_{k05k16\\rightarrow k05k08k16} log10 1e-12 1e3 1.0 0
23-
a_k05k16_k05k12k16 a_{k05k16\\rightarrow k05k12k16} log10 1e-12 1e3 1.0 0
24-
a_k08k12_k05k08k12 a_{k08k12\\rightarrow k05k08k12} log10 1e-12 1e3 1.0 0
25-
a_k08k12_k08k12k16 a_{k08k12\\rightarrow k08k12k16} log10 1e-12 1e3 1.0 0
26-
a_k08k16_k05k08k16 a_{k08k16\\rightarrow k05k08k16} log10 1e-12 1e3 1.0 0
27-
a_k08k16_k08k12k16 a_{k08k16\\rightarrow k08k12k16} log10 1e-12 1e3 1.0 0
28-
a_k12k16_k05k12k16 a_{k12k16\\rightarrow k05k12k16} log10 1e-12 1e3 1.0 0
29-
a_k12k16_k08k12k16 a_{k12k16\\rightarrow k08k12k16} log10 1e-12 1e3 1.0 0
30-
a_k05k08k12_4ac a_{k05k08k12\\rightarrow 4ac} log10 1e-12 1e3 1.0 0
31-
a_k05k08k16_4ac a_{k05k08k16\\rightarrow 4ac} log10 1e-12 1e3 1.0 0
32-
a_k05k12k16_4ac a_{k05k12k16\\rightarrow 4ac} log10 1e-12 1e3 1.0 0
33-
a_k08k12k16_4ac a_{k08k12k16\\rightarrow 4ac} log10 1e-12 1e3 1.0 0
34-
a_b a_b log10 1e-12 1e3 0.0 1
2+
a_0ac_k05 a_{0ac\\rightarrow k05} log10 1e-3 1e3 1.0 0
3+
a_0ac_k08 a_{0ac\\rightarrow k08} log10 1e-3 1e3 0.4085094224060409 1
4+
a_0ac_k12 a_{0ac\\rightarrow k12} log10 1e-3 1e3 1.0 0
5+
a_0ac_k16 a_{0ac\\rightarrow k16} log10 1e-3 1e3 1.0 0
6+
a_k05_k05k08 a_{k05\\rightarrow k05k08} log10 1e-3 1e3 1.0 0
7+
a_k05_k05k12 a_{k05\\rightarrow k05k12} log10 1e-3 1e3 30.88820217382275 1
8+
a_k05_k05k16 a_{k05\\rightarrow k05k16} log10 1e-3 1e3 1.0 0
9+
a_k08_k05k08 a_{k08\\rightarrow k05k08} log10 1e-3 1e3 1.0 0
10+
a_k08_k08k12 a_{k08\\rightarrow k08k12} log10 1e-3 1e3 1.0 0
11+
a_k08_k08k16 a_{k08\\rightarrow k08k16} log10 1e-3 1e3 1.0 0
12+
a_k12_k05k12 a_{k12\\rightarrow k05k12} log10 1e-3 1e3 8.267790285514408 1
13+
a_k12_k08k12 a_{k12\\rightarrow k08k12} log10 1e-3 1e3 1.0 0
14+
a_k12_k12k16 a_{k12\\rightarrow k12k16} log10 1e-3 1e3 1.0 0
15+
a_k16_k05k16 a_{k16\\rightarrow k05k16} log10 1e-3 1e3 1.0 0
16+
a_k16_k08k16 a_{k16\\rightarrow k08k16} log10 1e-3 1e3 1.0 0
17+
a_k16_k12k16 a_{k16\\rightarrow k12k16} log10 1e-3 1e3 10.424803031743464 1
18+
a_k05k08_k05k08k12 a_{k05k08\\rightarrow k05k08k12} log10 1e-3 1e3 1.0 0
19+
a_k05k08_k05k08k16 a_{k05k08\\rightarrow k05k08k16} log10 1e-3 1e3 1.0 0
20+
a_k05k12_k05k08k12 a_{k05k12\\rightarrow k05k08k12} log10 1e-3 1e3 4.872782281489833 1
21+
a_k05k12_k05k12k16 a_{k05k12\\rightarrow k05k12k16} log10 1e-3 1e3 1.0 0
22+
a_k05k16_k05k08k16 a_{k05k16\\rightarrow k05k08k16} log10 1e-3 1e3 1.0 0
23+
a_k05k16_k05k12k16 a_{k05k16\\rightarrow k05k12k16} log10 1e-3 1e3 1.0 0
24+
a_k08k12_k05k08k12 a_{k08k12\\rightarrow k05k08k12} log10 1e-3 1e3 1.0 0
25+
a_k08k12_k08k12k16 a_{k08k12\\rightarrow k08k12k16} log10 1e-3 1e3 1.0 0
26+
a_k08k16_k05k08k16 a_{k08k16\\rightarrow k05k08k16} log10 1e-3 1e3 1.0 0
27+
a_k08k16_k08k12k16 a_{k08k16\\rightarrow k08k12k16} log10 1e-3 1e3 1.0 0
28+
a_k12k16_k05k12k16 a_{k12k16\\rightarrow k05k12k16} log10 1e-3 1e3 1.0 0
29+
a_k12k16_k08k12k16 a_{k12k16\\rightarrow k08k12k16} log10 1e-3 1e3 33.037720591816104 1
30+
a_k05k08k12_4ac a_{k05k08k12\\rightarrow 4ac} log10 1e-3 1e3 1.0 0
31+
a_k05k08k16_4ac a_{k05k08k16\\rightarrow 4ac} log10 1e-3 1e3 1.0 0
32+
a_k05k12k16_4ac a_{k05k12k16\\rightarrow 4ac} log10 1e-3 1e3 1.0 0
33+
a_k08k12k16_4ac a_{k08k12k16\\rightarrow 4ac} log10 1e-3 1e3 53.801757067907324 1
34+
a_b a_b log10 1e-3 1e3 0.0667579590703576 1
3535
da_b da_b lin 1.0 0
36-
sigma sigma log10 1e-12 1e3 0.1 1
36+
sigma_ sigma_ log10 1e-3 1e3 1.0 0

0 commit comments

Comments
 (0)