Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New version: PEtab v1.1.0 #83301

Merged
merged 1 commit into from
May 11, 2023

Conversation

JuliaRegistrator
Copy link
Contributor

@JuliaRegistrator JuliaRegistrator commented May 10, 2023

New Features

Creating PEtabODEProblem with default options

Based on our benchmark paper, we now automatically select a gradient method, Hessian method, and ODE solver based on the problem (e.g. number of model parameters) if the user does not provide any options. Thus if a PEtabODEProblem is created via

petabProblem = createPEtabODEProblem(petabModel),

a PEtabODEProblem with options that are likely to perform well specific model is created.

Additional features for PEtabODEProblem

Via the PEtabODEProblem we can now in addition to previously supported methods compute:

  • Non-inplace gradient via gradient = petabProblem.computeGradient(θ)
  • Non-inplace Hessian via hessian = petabProblem.computeHessian(θ)
  • Chi2 value via chi2 = petabProblem.computeChi2(θ)
  • Simulated values (h-model which are matched against experimental data) via simulatedValues = petabProblem.computeSimulatedValues(θ)
  • Residuals, (h_model - h_observed)^2 / σ^2, for each time-point via residuals = petabProblem.computeHessian(θ)
    • Note that both the residuals and simulated values are computed in the same order the data points occur in the PEtab-measurement table.

Defining the Model Directly in Julia Instead of via SBML

By the PEtab standard, the ODE model should be defined in the SBML format. However, sometimes it can be easier to write the model directly in Julia. Thus, we have added support for directly defining the model in the ModelingToolkit.jl format. Guidelines on how to formulate the model can be found in the documentation under Providing the model as a Julia file instead of a SBML File.

Breaking Changes

The following functions have been replaced/renamed:

  • setupPEtabODEProblem has been replaced with createPEtabODEProblem. Unlike setupPEtabODEProblem, createPEtabODEProblem only takes one required argument (the petab-model). Any other options are provided via keywords, so to set an ODE solver, for example, provide the following:

    petabProblem = createPEtabODEProblem(petabModel, odeSolverOptions=ODESolverOptions(Rodas5P()))
  • getODESolverOptions has been replaced by directly calling a constructor method for ODESolverOptions. To create an ODESolverOptions struct, simply call:

    odeSolverOptions=ODESolverOptions(Rodas5P(), abstol=1e-8, reltol=1e-8)
  • getSteadyStateSolverOptions has been replaced by directly calling a constructor method for SteadyStateSolverOptions. To create a SteadyStateSolverOptions struct, simply call:

    ssOptions = SteadyStateSolverOptions(:simulate, abstol=1e-8, reltol=1e-8)

Since this package is young, breaking changes like these occur. However, we aspire to keep breaking changes to a minimum, and we appreciate users patience.

Other Changes

  • Improved the readability of the documentation.
  • We now test against the PEtab test suite. We are happy to report that after some small adjustments, our package now passes all tests and fully supports PEtab.
  • We removed DataFrames as a dependency to reduce load times.
  • Extented SBML support to handle boundary conditions.

JuliaRegistrator referenced this pull request in sebapersson/PEtab.jl May 10, 2023
@JuliaRegistrator JuliaRegistrator temporarily deployed to stopwatch May 10, 2023 22:39 — with GitHub Actions Inactive
@github-actions
Copy link
Contributor

github-actions bot commented May 10, 2023

Your new version pull request met all of the guidelines for auto-merging and is scheduled to be merged in the next round.


If you want to prevent this pull request from being auto-merged, simply leave a comment. If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.

UUID: 48d54b35-e43e-4a66-a5a1-dde6b987cf69
Repo: https://github.com/sebapersson/PEtab.jl.git
Tree: 3cd476d4c484be91a4709bde6646e4a650e121e0

Registrator tree SHA: f73a20c99934db92a256057d0d83ba394036a701
@JuliaRegistrator JuliaRegistrator force-pushed the registrator-petab-48d54b35-v1.1.0-15de8823d7 branch from 19c524b to 88fbb20 Compare May 11, 2023 02:57
JuliaRegistrator referenced this pull request in sebapersson/PEtab.jl May 11, 2023
@JuliaRegistrator JuliaRegistrator temporarily deployed to stopwatch May 11, 2023 02:57 — with GitHub Actions Inactive
@JuliaTagBot JuliaTagBot merged commit f224d29 into master May 11, 2023
@JuliaTagBot JuliaTagBot deleted the registrator-petab-48d54b35-v1.1.0-15de8823d7 branch May 11, 2023 03:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants