Skip to content

Model selection with PEtab Select

Model selection compares competing model structures to identify a structure that best explains the data. Common strategies include forward, backward, and exhaustive search, where candidates are ranked using information criteria such as AIC or BIC. Approaches combining forward and backward search also exist, such as FAMoS [14]. All these methods are supported by the PEtab Select package [11], for which PEtab.jl provides an interface.

This tutorial showcases PEtab Select and assumes familiarity with importing PEtab problems in the standard format (see Importing PEtab problems) and with multi-start parameter estimation in PEtab.jl (see the extended estimation tutorial).

PEtab Select requires the PEtab standard format

For PEtab Select, PEtab.jl currently only supports problems in the PEtab standard, not problems defined via the Julia interface in PEtab.jl. If Julia-interface support would be useful, please open an issue so its implementation can be prioritized.

Model selection example

PEtab.jl interfaces with PEtab Select via the petab_select function:

PEtab.petab_select Function
julia
petab_select(path_yaml, alg; nmultistarts = 100, kwargs...) -> path_res

For a PEtab-select problem, perform model selection with the method specified in the PEtab select problem files. Returns the path (path_res) to a YAML-file with model selection results.

The general model selection (e.g. to use forward-search) options are specified in the PEtab-select files. For details on how to set this up, see the PEtab-select documentation.

For each round of model selection, the candidate models are parameter estimated using multi-start parameter estimation, with nmultistarts performed for each model. The objective values obtained from parameter estimation are then used for the next round of model evaluation.

A list of available and recommended optimization algorithms (alg) can be found in the package documentation and calibrate documentation.

See also calibrate_multistart.

Keyword Arguments

source

As an example, for a simple signaling model (files are available here), PEtab Select can be run as:

julia
using Optim, PEtab, PEtabSelect
path_yaml = joinpath(@__DIR__, "assets", "petab_select", "petab_select_problem")
path_res = petab_select(path_yaml, IPNewton(); nmultistarts = 10)
[ Info: Model selection with method FORWARD and criteria AIC
[ Info: Round 1 with 1 candidates - as the code compiles this round it takes extra long time https://xkcd.com/303/
[ Info: Calibrating model M1_0
[ Info: Round 2 with 3 candidates
[ Info: Calibrating model M1_1
[ Info: Calibrating model M1_2
[ Info: Calibrating model M1_3
[ Info: Round 3 with 3 candidates
[ Info: Calibrating model M1_4
[ Info: Calibrating model M1_5
[ Info: Calibrating model M1_6
[ Info: Round 4 with 1 candidates
[ Info: Calibrating model M1_7
[ Info: Saving results for best model at /home/runner/work/PEtab.jl/PEtab.jl/docs/build/tutorials/parameter_estimation/../../assets/petab_select/PEtab_select_FORWARD_AIC.yaml

Here, IPNewton() specifies the optimizer used for parameter estimation within each model evaluation, and nmultistarts = 10 sets the number of multi-starts per model. The YAML file with model selection results is saved to path_res.

References

  1. D. Pathirana, F. T. Bergmann, D. Doresic, P. Lakrisenko, S. Persson, N. Neubrand, J. Timmer, C. Kreutz, H. Binder, M. Cvijovic and others. PEtab Select: specification standard and supporting software for automated model selection, bioRxiv, 2025–05 (2025).

  2. M. Gabel, T. Hohl, A. Imle, O. T. Fackler and F. Graw. FAMoS: A Flexible and dynamic Algorithm for Model Selection to analyse complex systems dynamics. PLOS Computational Biology 15, e1007230 (2019).