Skip to content

Commit fffd0a4

Browse files
authored
Merge pull request #1232 from isaacsas/release-15.0
Release 15.0
2 parents 023e654 + dd82fbe commit fffd0a4

17 files changed

+931
-621
lines changed

HISTORY.md

Lines changed: 75 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,8 @@
99
(at the time the release is made). If you need a dependency version increased,
1010
please open an issue and we can update it and make a new Catalyst release once
1111
testing against the newer dependency version is complete.
12-
- It is no longer recommended to install and use the full OrdinaryDiffEq library
13-
to access specific ODE solvers. Instead, only install the specific
14-
OrdinaryDiffEq sub-libraries that contain the desired solver. This
15-
significantly reduces installation and package loading times. I.e. to use the
16-
default solver that auto-switches between explicit and implicit methods,
17-
install `OrdinaryDiffEqDefault`. To use `Tsit5` install `OrdinaryDiffEqTsit5`,
18-
etc. The possible sub-libraries, each containing different solvers, can be
19-
viewed [here](https://github.com/SciML/OrdinaryDiffEq.jl/tree/master/lib).
20-
- It should now be safe to use `remake` on problems which have had conservation
21-
laws removed with the exception of `NonlinearProblem`s or `NonlinearSystem`s.
22-
For NonlinearProblems it is safe to use `remake` if only updating `u0` values,
23-
but it is not safe to update the value of the conserved constant, `Γ`. See
24-
[the FAQ](https://docs.sciml.ai/Catalyst/stable/faqs/#faq_remake_nonlinprob)
25-
for details.
26-
- New formula for inferring variables from equations (declared using the
27-
`@equations` options) in the DSL. The order of inference of
12+
- **BREAKING:** New formula for inferring variables from equations (declared
13+
using the `@equations` options) in the DSL. The order of inference of
2814
species/variables/parameters is now:
2915
1. Every symbol explicitly declared using `@species`, `@variables`, and
3016
`@parameters` are assigned to the correct category.
@@ -45,10 +31,10 @@
4531
and `@differentials` options still hold. Finally, the `@require_declaration`
4632
options (described in more detail below) can now be used to require everything
4733
to be explicitly declared.
48-
- New formula for determining whether the default differentials have been used
49-
within an `@equations` option. Now, if any expression `D(...)` is encountered
50-
(where `...` can be anything), this is inferred as usage of the default
51-
differential D. E.g. in the following equations `D` is inferred as a
34+
- **BREAKING:** New formula for determining whether the default differentials
35+
have been used within an `@equations` option. Now, if any expression `D(...)`
36+
is encountered (where `...` can be anything), this is inferred as usage of the
37+
default differential D. E.g. in the following equations `D` is inferred as a
5238
differential with respect to the default independent variable:
5339
```julia
5440
@reaction_network begin
@@ -61,10 +47,10 @@
6147
Please note that this cannot be used at the same time as `D` is used to
6248
represent a species, variable, or parameter (including if these are implicitly
6349
designated as such by e.g. appearing as a reaction reactant).
64-
- Array symbolics support is more consistent with ModelingToolkit v9. Parameter
65-
arrays are no longer scalarized by Catalyst, while species and variables
66-
arrays still are (as in ModelingToolkit). As such, parameter arrays should now
67-
be specified as arrays in value mappings, i.e.
50+
- **BREAKING:** Array symbolics support is more consistent with ModelingToolkit
51+
v9. Parameter arrays are no longer scalarized by Catalyst, while species and
52+
variables arrays still are (as in ModelingToolkit). As such, parameter arrays
53+
should now be specified as arrays in value mappings, i.e.
6854
```julia
6955
@parameters k[1:4]
7056
pmap = [k => rand(4)]
@@ -73,47 +59,27 @@
7359
*not* to do this as it has signifcant performance costs with ModelingToolkit
7460
v9. Note, scalarized parameter arrays passed to the two-argument
7561
`ReactionSystem` constructor may become unscalarized.
76-
- Functional (e.g. time-dependent) parameters can now be used in Catalyst
77-
models. These can e.g. be used to incorporate arbitrary time-dependent
78-
functions (as a parameter) in a model. For more details on how to use these,
79-
please read:
80-
https://docs.sciml.ai/Catalyst/stable/model_creation/functional_parameters/.
81-
- We have introduced a restriction on bundling of reactions in the DSL. Now,
82-
bundling is not permitted if multiple rates are provided but only one set each
83-
of substrates/products. E.g. this model:
62+
- **BREAKING:** We have introduced a restriction on bundling of reactions in the
63+
DSL. Now, bundling is not permitted if multiple rates are provided but only
64+
one set each of substrates/products. E.g. this model:
8465
```julia
8566
@reaction_network begin
8667
(k1,k2), X --> Y
8768
end
8869
```
89-
will now throw an error. The reason that users attempting to write bi-directional
90-
reactions but typing `-->` instead of `<-->` would get a wrong model. We decided that
91-
this kind of bundling was unlikely to be used, and throwing errors for people who
92-
made the typo was more important.
93-
94-
If you use this type of bundling and it indeed is useful to you, please raise and issue
70+
will now throw an error. The reason that users attempting to write
71+
bi-directional reactions but typing `-->` instead of `<-->` would get a wrong
72+
model. We decided that this kind of bundling was unlikely to be used, and
73+
throwing errors for people who made the typo was more important. If you use
74+
this type of bundling and it indeed is useful to you, please raise and issue
9575
and we will see if we can sort something out.
96-
- Scoped species/variables/parameters are now treated similar to the latest MTK
97-
releases ( 9.49).
98-
- A tutorial on making interactive plot displays using Makie has been added.
99-
- The BifurcationKit extension has been updated to v.4.
100-
- There is a new DSL option `@require_declaration` that will turn off automatic inferring for species, parameters, and variables in the DSL. For example, the following will now error:
101-
```julia
102-
rn = @reaction_network begin
103-
@require_declaration
104-
(k1, k2), A <--> B
105-
end
106-
```
107-
When this flag is set, all symbolics must be explicitly declared.
108-
```julia
109-
rn = @reaction_network begin
110-
@species A(t) B(t)
111-
@parameters k1 k2
112-
@require_declaration
113-
(k1, k2), A <--> B
114-
end
115-
```
116-
- Catalyst's network visualization capability has shifted from using Graphviz to [GraphMakie.jl](https://graph.makie.org/stable/). To use this functionality, load the GraphMakie extension by installing `Catalyst` and `GraphMakie`, along with a Makie backend like `GLMakie`. There are two new methods for visualizing graphs: `plot_network` and `plot_complexes`, which respectively display the species-reaction graph and complex graph.
76+
- **BREAKING:** Catalyst's network visualization capability has shifted from
77+
using Graphviz to [GraphMakie.jl](https://graph.makie.org/stable/). To use
78+
this functionality, load the GraphMakie extension by installing `Catalyst` and
79+
`GraphMakie`, along with a Makie backend like `CairoMakie` or `GLMakie`. There
80+
are two new methods for visualizing graphs: `plot_network` and
81+
`plot_complexes`, which respectively display the species-reaction graph and
82+
complex graph.
11783
```julia
11884
using Catalyst, GraphMakie, GLMakie
11985
brusselator = @reaction_network begin
@@ -124,13 +90,15 @@
12490
end
12591
plot_network(brusselator)
12692
```
127-
- The letter Ø (used in Danish/Norwegian alphabet) is now considered the same as ∅ (empty set). It can no longer be used as a species/parameter.
128-
- When converting a Catalyst `ReactionSystem` to a ModelingToolkit system, for
129-
example an `ODESystem`, Catalyst defined functions like `hill(A,B,C,D)` are
130-
now replaced with the explicit rational function they represent in the
131-
equations of the generated system. For example `mm(X,v,K)` will be replaced
132-
with `v*X / (X + K)`. This can be disabled by passing the keyword argument
133-
`expand_catalyst_funs = false`. e.g.
93+
- **BREAKING:** The letter Ø (used in Danish/Norwegian alphabet) is now
94+
considered the same as ∅ (empty set). It can no longer be used as a
95+
species/parameter.
96+
- **BREAKING:** When converting a Catalyst `ReactionSystem` to a ModelingToolkit
97+
system, for example an `ODESystem`, Catalyst defined functions like
98+
`hill(A,B,C,D)` are now replaced with the explicit rational function they
99+
represent in the equations of the generated system. For example `mm(X,v,K)`
100+
will be replaced with `v*X / (X + K)`. This can be disabled by passing the
101+
keyword argument `expand_catalyst_funs = false`. e.g.
134102
```julia
135103
using Catalyst
136104
rn = @reaction_network begin
@@ -145,6 +113,47 @@
145113
generates an ODE system with `D(A) ~ -A(t)*hill(X, v, K, n)`. This keyword
146114
argument can also be passed to problems defined over `ReactionSystem`s, i.e.
147115
when calling `ODEProblem(rn, u0, tspan, p; expand_catalyst_funs = false)`.
116+
- It is no longer recommended to install and use the full OrdinaryDiffEq library
117+
to access specific ODE solvers. Instead, only install the specific
118+
OrdinaryDiffEq sub-libraries that contain the desired solver. This
119+
significantly reduces installation and package loading times. I.e. to use the
120+
default solver that auto-switches between explicit and implicit methods,
121+
install `OrdinaryDiffEqDefault`. To use `Tsit5` install `OrdinaryDiffEqTsit5`,
122+
etc. The possible sub-libraries, each containing different solvers, can be
123+
viewed [here](https://github.com/SciML/OrdinaryDiffEq.jl/tree/master/lib).
124+
- It should now be safe to use `remake` on problems which have had conservation
125+
laws removed with the exception of `NonlinearProblem`s or `NonlinearSystem`s.
126+
For NonlinearProblems it is safe to use `remake` if only updating `u0` values,
127+
but it is not safe to update the value of the conserved constant, `Γ`. See
128+
[the FAQ](https://docs.sciml.ai/Catalyst/stable/faqs/#faq_remake_nonlinprob)
129+
for details.
130+
- Functional (e.g. time-dependent) parameters can now be used in Catalyst
131+
models. These can e.g. be used to incorporate arbitrary time-dependent
132+
functions (as a parameter) in a model. For more details on how to use these,
133+
please read:
134+
https://docs.sciml.ai/Catalyst/stable/model_creation/functional_parameters/.
135+
- Scoped species/variables/parameters are now treated similar to the latest MTK
136+
releases ( 9.49).
137+
- A tutorial on making interactive plot displays using Makie has been added.
138+
- The BifurcationKit extension has been updated to v.4.
139+
- There is a new DSL option `@require_declaration` that will turn off automatic
140+
inferring for species, parameters, and variables in the DSL. For example, the
141+
following will now error:
142+
```julia
143+
rn = @reaction_network begin
144+
@require_declaration
145+
(k1, k2), A <--> B
146+
end
147+
```
148+
When this flag is set, all symbolics must be explicitly declared.
149+
```julia
150+
rn = @reaction_network begin
151+
@species A(t) B(t)
152+
@parameters k1 k2
153+
@require_declaration
154+
(k1, k2), A <--> B
155+
end
156+
```
148157

149158
## Catalyst 14.4.1
150159
- Support for user-defined functions on the RHS when providing coupled equations

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "Catalyst"
22
uuid = "479239e8-5488-4da2-87a7-35f2df7eef83"
3-
version = "14.4.1"
3+
version = "15.0.0"
44

55
[deps]
66
Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa"
@@ -67,7 +67,7 @@ Parameters = "0.12"
6767
Reexport = "0.2, 1.0"
6868
Requires = "1.0"
6969
RuntimeGeneratedFunctions = "0.5.12"
70-
SciMLBase = "=2.83.1"
70+
SciMLBase = "=2.84"
7171
Setfield = "1"
7272
StructuralIdentifiability = "0.5.11"
7373
SymbolicUtils = "3.20"

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,10 @@ Pkg.add("Catalyst")
4747

4848
## Breaking changes and new features
4949

50-
**NOTE:** Version 14 is a breaking release, prompted by the release of ModelingToolkit.jl version 9. This caused several breaking changes in how Catalyst models are represented and interfaced with.
51-
52-
Breaking changes and new functionality are summarized in the [HISTORY.md](HISTORY.md) file. Furthermore, a migration guide on how to adapt your workflows to the new v14 update can be found [here](https://docs.sciml.ai/Catalyst/stable/v14_migration_guide/).
50+
**NOTE:** Version 15 is a breaking release, though most breaking changes are
51+
likely to only impact libraries being developed on top of Catalyst. Please
52+
see the [HISTORY.md](HISTORY.md) file for a summary of breaking changes and new
53+
functionality.
5354

5455
## Tutorials and documentation
5556

@@ -87,7 +88,7 @@ be found in its corresponding research paper, [Catalyst: Fast and flexible model
8788
- Model steady states can be [computed through homotopy continuation](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/homotopy_continuation/) using [HomotopyContinuation.jl](https://github.com/JuliaHomotopyContinuation/HomotopyContinuation.jl) (which can find *all* steady states of systems with multiple ones), by [forward ODE simulations](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/nonlinear_solve/#steady_state_solving_simulation) using [SteadyStateDiffEq.jl](https://github.com/SciML/SteadyStateDiffEq.jl), or by [numerically solving steady-state nonlinear equations](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/nonlinear_solve/#steady_state_solving_nonlinear) using [NonlinearSolve.jl](https://github.com/SciML/NonlinearSolve.jl).
8889
- [BifurcationKit.jl](https://github.com/bifurcationkit/BifurcationKit.jl) can be used to [compute bifurcation diagrams](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/bifurcation_diagrams/) of model steady states (including finding periodic orbits).
8990
- [DynamicalSystems.jl](https://github.com/JuliaDynamics/DynamicalSystems.jl) can be used to compute model [basins of attraction](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/dynamical_systems/#dynamical_systems_basins_of_attraction), [Lyapunov spectrums](https://docs.sciml.ai/Catalyst/stable/steady_state_functionality/dynamical_systems/#dynamical_systems_lyapunov_exponents), and other dynamical system properties.
90-
- [Optimization.jl](https://github.com/SciML/Optimization.jl), [DiffEqParamEstim.jl](https://github.com/SciML/DiffEqParamEstim.jl), and [PEtab.jl](https://github.com/sebapersson/PEtab.jl) can all be used to [fit model parameters to data](https://sebapersson.github.io/PEtab.jl/stable/Define_in_julia/).
91+
- [Optimization.jl](https://github.com/SciML/Optimization.jl) and [PEtab.jl](https://github.com/sebapersson/PEtab.jl) can all be used to [fit model parameters to data](https://sebapersson.github.io/PEtab.jl/stable/Define_in_julia/).
9192
- [GlobalSensitivity.jl](https://github.com/SciML/GlobalSensitivity.jl) can be used to perform [global sensitivity analysis](https://docs.sciml.ai/Catalyst/stable/inverse_problems/global_sensitivity_analysis/) of model behaviors.
9293
- [SciMLSensitivity.jl](https://github.com/SciML/SciMLSensitivity.jl) can be used to compute local sensitivities of functions containing forward model simulations.
9394
- [StructuralIdentifiability.jl](https://github.com/SciML/StructuralIdentifiability.jl) can be used to [perform structural identifiability analysis](https://docs.sciml.ai/Catalyst/stable/inverse_problems/structural_identifiability/).

docs/Project.toml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ OrdinaryDiffEqRosenbrock = "43230ef6-c299-4910-a778-202eb28ce4ce"
3434
OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf"
3535
OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a"
3636
OrdinaryDiffEqVerner = "79d7bb75-1356-48c1-b8c0-6832512096c2"
37-
PEtab = "48d54b35-e43e-4a66-a5a1-dde6b987cf69"
3837
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
3938
QuasiMonteCarlo = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b"
4039
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
@@ -50,7 +49,7 @@ Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
5049
BenchmarkTools = "1.5"
5150
BifurcationKit = "0.4.4"
5251
CairoMakie = "0.12, 0.13"
53-
Catalyst = "14.4"
52+
Catalyst = "15.0"
5453
DataFrames = "1.6"
5554
DataInterpolations = "7.2, 8"
5655
DiffEqBase = "6.159.0"
@@ -81,10 +80,9 @@ OrdinaryDiffEqRosenbrock = "1"
8180
OrdinaryDiffEqSDIRK = "1"
8281
OrdinaryDiffEqTsit5 = "1"
8382
OrdinaryDiffEqVerner = "1"
84-
PEtab = "3.5"
8583
Plots = "1.40"
8684
QuasiMonteCarlo = "0.3"
87-
SciMLBase = "=2.83.1"
85+
SciMLBase = "=2.84"
8886
SciMLSensitivity = "7.60"
8987
SpecialFunctions = "2.4"
9088
StaticArrays = "1.9"

docs/pages.jl

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ pages = Any[
1717
"model_creation/model_file_loading_and_export.md",
1818
"model_creation/model_visualisation.md",
1919
"model_creation/reactionsystem_content_accessing.md",
20-
"model_creation/network_analysis.md",
2120
"model_creation/chemistry_related_functionality.md",
2221
"Examples" => Any[
2322
"model_creation/examples/basic_CRN_library.md",
@@ -40,6 +39,11 @@ pages = Any[
4039
"model_simulation/examples/interactive_brusselator_simulation.md"
4140
]
4241
],
42+
"Network Analysis" => Any[
43+
"network_analysis/odes.md",
44+
"network_analysis/crn_theory.md",
45+
"network_analysis/network_properties.md"
46+
],
4347
"Steady state analysis" => Any[
4448
"steady_state_functionality/homotopy_continuation.md",
4549
"steady_state_functionality/nonlinear_solve.md",
@@ -52,7 +56,7 @@ pages = Any[
5256
]
5357
],
5458
"Inverse problems" => Any[
55-
"inverse_problems/petab_ode_param_fitting.md",
59+
#"inverse_problems/petab_ode_param_fitting.md",
5660
"inverse_problems/optimization_ode_param_fitting.md",
5761
"inverse_problems/behaviour_optimisation.md",
5862
"inverse_problems/structural_identifiability.md",
@@ -69,6 +73,9 @@ pages = Any[
6973
"spatial_modelling/spatial_jump_simulations.md"
7074
],
7175
"FAQs" => "faqs.md",
72-
"API" => "api.md",
76+
"API" => Any[
77+
"api/core_api.md",
78+
"api/network_analysis_api.md"
79+
],
7380
"Developer Documentation" => "devdocs/dev_guide.md"
7481
]

0 commit comments

Comments
 (0)