diff --git a/Benchmark-Models/Isensee_JCB2018/README.md b/Benchmark-Models/Isensee_JCB2018/README.md new file mode 100644 index 0000000..8bc5aec --- /dev/null +++ b/Benchmark-Models/Isensee_JCB2018/README.md @@ -0,0 +1,17 @@ +The paper describes a model selection problem with four hypotheses. Each hypothesis involves adding a set of parameters to the model -- these sets of parameters are annotated in the `model_selection_group` column of the parameters table. The paper shows a result where the model with the first hypothesis alone (H1) was accepted as the best by AIC. + +This benchmark problem is the parameter estimation problem for the H1-only model. The parameters for the other hypotheses are specified in `parameters_Isensee_JCB2018_model_selection.tsv`. For example, this Python code will create the PEtab problem for the H2+H3 model. +```python +import pandas as pd +import petab + +petab_problem = petab.Problem.from_yaml("Isensee_JCB2018.yaml") +model_selection_parameter_df = petab.get_parameter_df("parameters_Isensee_JCB2018_model_selection.tsv") + +petab_problem.parameter_df = petab.get_parameter_df(pd.concat([ + # Remove the H1 parameters + petab_problem.parameter_df.query("model_selection_group != 'H1: different KD'"), + # Add the H2 and H3 parameters + model_selection_parameter_df.query("model_selection_group in ['H2: AC inhibition', 'H3: incomplete import']") +])) +``` diff --git a/Benchmark-Models/Isensee_JCB2018/model_Isensee_JCB2018.xml b/Benchmark-Models/Isensee_JCB2018/model_Isensee_JCB2018.xml index c575f94..4b5721f 100644 --- a/Benchmark-Models/Isensee_JCB2018/model_Isensee_JCB2018.xml +++ b/Benchmark-Models/Isensee_JCB2018/model_Isensee_JCB2018.xml @@ -97,16 +97,13 @@ - - - @@ -119,25 +116,14 @@ - - - - - - - - - - - @@ -162,6 +148,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/Benchmark-Models/Isensee_JCB2018/parameters_Isensee_JCB2018_model_selection.tsv b/Benchmark-Models/Isensee_JCB2018/parameters_Isensee_JCB2018_model_selection.tsv index 76c2f76..1e8dd8c 100644 --- a/Benchmark-Models/Isensee_JCB2018/parameters_Isensee_JCB2018_model_selection.tsv +++ b/Benchmark-Models/Isensee_JCB2018/parameters_Isensee_JCB2018_model_selection.tsv @@ -1,11 +1,11 @@ parameterId parameterName parameterScale lowerBound upperBound nominalValue estimate objectivePriorType objectivePriorParameters model_selection_group -xi_pAC \xi_{pAC} log10 0.001 1 1 0 parameterScaleNormal 0;3 H2: AC inhibition -kp_AC kp_{AC} log10 1E-5 1E3 0 0 H2: AC inhibition -kdp_AC kdp_{AC} log10 1E-5 1E3 0 0 H2: AC inhibition -xi_i_Rp8_Br_cAMPS_pAB \xi_{i,Rp8,Br,cAMPS,pAB} log10 1E-05 1 1 0 parameterScaleNormal 0;3 H3: incomplete import -xi_i_Rp8_pCPT_cAMPS_pAB \xi_{i,Rp8,pCPT,cAMPS,pAB} log10 1E-05 1 1 0 parameterScaleNormal 0;3 H3: incomplete import -xi_i_Rp_cAMPS_pAB \xi_{i,Rp,cAMPS,pAB} log10 1E-05 1 1 0 parameterScaleNormal 0;3 H3: incomplete import -xi_i_Sp8_Br_cAMPS_AM \xi_{i,Sp8,Br,cAMPS,AM} log10 1E-05 1 1 0 parameterScaleNormal 0;3 H3: incomplete import -xi_pPDE \xi_{pPDE} log10 1 1000 1 0 parameterScaleNormal 0.397940008672038;3 H4: PDE_inhibition -kf_PDE_Csub kf_{PDE,Csub} log10 1E-5 1E3 0 0 H4: PDE_inhibition -KD_PDE_Csub KD_{PDE,Csub} log10 1E-5 1E3 0 0 H4: PDE_inhibition +xi_pAC \xi_{pAC} log10 0.001 1 1 1 parameterScaleNormal 0;3 H2: AC inhibition +kp_AC kp_{AC} log10 1E-5 1E3 0 1 H2: AC inhibition +kdp_AC kdp_{AC} log10 1E-5 1E3 0 1 H2: AC inhibition +xi_i_Rp8_Br_cAMPS_pAB \xi_{i,Rp8,Br,cAMPS,pAB} log10 1E-05 1 1 1 parameterScaleNormal 0;3 H3: incomplete import +xi_i_Rp8_pCPT_cAMPS_pAB \xi_{i,Rp8,pCPT,cAMPS,pAB} log10 1E-05 1 1 1 parameterScaleNormal 0;3 H3: incomplete import +xi_i_Rp_cAMPS_pAB \xi_{i,Rp,cAMPS,pAB} log10 1E-05 1 1 1 parameterScaleNormal 0;3 H3: incomplete import +xi_i_Sp8_Br_cAMPS_AM \xi_{i,Sp8,Br,cAMPS,AM} log10 1E-05 1 1 1 parameterScaleNormal 0;3 H3: incomplete import +xi_pPDE \xi_{pPDE} log10 1 1000 1 1 parameterScaleNormal 0.397940008672038;3 H4: PDE inhibition +kf_PDE_Csub kf_{PDE,Csub} log10 1E-5 1E3 0 1 H4: PDE inhibition +KD_PDE_Csub KD_{PDE,Csub} log10 1E-5 1E3 0 1 H4: PDE inhibition diff --git a/src/python/pyproject.toml b/src/python/pyproject.toml index 4f48a20..2f96eda 100644 --- a/src/python/pyproject.toml +++ b/src/python/pyproject.toml @@ -27,7 +27,7 @@ dependencies = [ ] [project.optional-dependencies] -dev = ["ruff"] +dev = ["pre-commit", "pytest", "ruff"] [project.scripts] bmp-petablint = "benchmark_models_petab.check_petablint:main"