Skip to content

Commit

Permalink
Update Project.toml
Browse files Browse the repository at this point in the history
  • Loading branch information
sebapersson authored May 11, 2023
1 parent 72e241f commit 9988c2b
Showing 1 changed file with 0 additions and 1 deletion.
1 change: 0 additions & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Requires = "ae029012-a4dd-5104-9daa-d747884805df"
ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267"
Revise = "295af30f-e4ad-537b-8983-00126c2a3abe"
RuntimeGeneratedFunctions = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47"
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
SciMLSensitivity = "1ed8b502-d754-442c-8d5d-10ac956f44a1"
Expand Down

2 comments on commit 9988c2b

@sebapersson
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator register

Release notes:

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
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request updated: JuliaRegistries/General/83301

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v1.1.0 -m "<description of version>" 9988c2b575c494b88cbd936e059ca697fcf830d9
git push origin v1.1.0

Please sign in to comment.