You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: HISTORY.md
+25Lines changed: 25 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,31 @@
1
1
# Breaking updates and feature summaries across releases
2
2
3
3
## Catalyst unreleased (master branch)
4
+
- Array symbolics support is more consistent with ModelingToolkit v9. Parameter arrays are no longer scalarized by Catalyst, while species and variables arrays still are (as in ModelingToolkit). As such, parameter arrays should now be specified as arrays in value mappings, i.e.
5
+
```julia
6
+
@parameters k[1:4]
7
+
pmap = [k =>rand(4)]
8
+
```
9
+
While one can still manually scalarize a parameter array, it is recommended *not* to do this as it has signifcant performance costs with ModelingToolkit v9.
10
+
- The structural identifiability extension is currently disabled due to issues StructuralIdentifiability has with Julia 1.10.5 and 1.11.
11
+
- A tutorial on making interactive plot displays using Makie has been added.
12
+
13
+
## Catalyst 14.4.1
14
+
- Support for user-defined functions on the RHS when providing coupled equations
15
+
for CRNs using the @equations macro. For example, the following now works:
16
+
```julia
17
+
using Catalyst
18
+
f(A, t) =2*A*t
19
+
rn =@reaction_networkbegin
20
+
@equationsD(A) ~f(A,t)
21
+
end
22
+
```
23
+
Note that user-defined functions will not work on the LHS of equations.
24
+
25
+
## Catalyst 14.4
26
+
- Symbolics 6 support.
27
+
28
+
4
29
5
30
## Catalyst 14.3
6
31
- Support for simulating stochastic chemical kinetics models with explicitly
Copy file name to clipboardExpand all lines: docs/src/index.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@ etc).
41
41
- Model steady states can be [computed through homotopy continuation](@ref 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](@ref steady_state_solving_simulation) using [SteadyStateDiffEq.jl)](https://github.com/SciML/SteadyStateDiffEq.jl), or by [numerically solving steady-state nonlinear equations](@ref steady_state_solving_nonlinear) using [NonlinearSolve.jl](https://github.com/SciML/NonlinearSolve.jl).
42
42
-[BifurcationKit.jl](https://github.com/bifurcationkit/BifurcationKit.jl) can be used to [compute bifurcation diagrams](@ref bifurcation_diagrams) of model steady states (including finding periodic orbits).
43
43
-[DynamicalSystems.jl](https://github.com/JuliaDynamics/DynamicalSystems.jl) can be used to compute model [basins of attraction](@ref dynamical_systems_basins_of_attraction), [Lyapunov spectrums](@ref dynamical_systems_lyapunov_exponents), and other dynamical system properties.
44
-
-[StructuralIdentifiability.jl](https://github.com/SciML/StructuralIdentifiability.jl) can be used to [perform structural identifiability analysis](@ref structural_identifiability).
44
+
<!--- [StructuralIdentifiability.jl](https://github.com/SciML/StructuralIdentifiability.jl) can be used to perform structural identifiability analysis.-->
45
45
-[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/).
46
46
-[GlobalSensitivity.jl](https://github.com/SciML/GlobalSensitivity.jl) can be used to perform [global sensitivity analysis](@ref global_sensitivity_analysis) of model behaviors.
47
47
-[SciMLSensitivity.jl](https://github.com/SciML/SciMLSensitivity.jl) can be used to compute local sensitivities of functions containing forward model simulations.
Here, a good exercise is to check the resulting parameter set and note that, while it creates a good fit to the data, it does not actually correspond to the original parameter set. [Identifiability](@ref structural_identifiability) is a concept that studies how to deal with this problem.
81
+
Here, a good exercise is to check the resulting parameter set and note that, while it creates a good fit to the data, it does not actually correspond to the original parameter set. Identifiabilityis a concept that studies how to deal with this problem.<!--NTS: re-add ref when identifiablity works again-->
82
82
83
83
Say that we instead would like to use the [Broyden–Fletcher–Goldfarb–Shannon](https://en.wikipedia.org/wiki/Broyden%E2%80%93Fletcher%E2%80%93Goldfarb%E2%80%93Shanno_algorithm) algorithm, as implemented by the [Optim.jl](https://github.com/JuliaNLSolvers/Optim.jl) package. In this case we would run:
84
84
```@example diffeq_param_estim_1
@@ -187,4 +187,4 @@ If you use this functionality in your research, please cite the following paper
187
187
188
188
---
189
189
## References
190
-
[^1]: [Alejandro F. Villaverde, Dilan Pathirana, Fabian Fröhlich, Jan Hasenauer, Julio R. Banga, *A protocol for dynamic model calibration*, Briefings in Bioinformatics (2023).](https://academic.oup.com/bib/article/23/1/bbab387/6383562?login=false)
190
+
[^1]: [Alejandro F. Villaverde, Dilan Pathirana, Fabian Fröhlich, Jan Hasenauer, Julio R. Banga, *A protocol for dynamic model calibration*, Briefings in Bioinformatics (2023).](https://academic.oup.com/bib/article/23/1/bbab387/6383562?login=false)
Note that for discrete events we need to set a stop time, `tstops`, so that the ODE solver can step exactly to the specific time of our event. For a detailed discussion on how to directly use the lower-level but more flexible DifferentialEquations.jl event/callback interface, see the [tutorial](https://docs.sciml.ai/Catalyst/stable/catalyst_applications/advanced_simulations/#Event-handling-using-callbacks) on event handling using callbacks.
160
+
Note that for discrete events we need to set a stop time via `tstops` so that
161
+
the ODE solver can step exactly to the specific time of our event. In the
162
+
previous example we just manually set the numeric value of the parameter in the
163
+
`tstops` kwarg to `solve`, however, it can often be convenient to instead get
164
+
the value of the parameter from `oprob` and pass this numeric value. This helps
165
+
ensure consistency between the value passed via `p` and/or symbolic defaults and
166
+
what we pass as a `tstop` to `solve`. We can do this as
167
+
```julia
168
+
switch_time_val = oprob.ps[:switch_time]
169
+
sol =solve(oprob, Tsit5(); tstops = switch_time_val)
170
+
plot(sol)
171
+
```
172
+
For a detailed discussion on how to directly use the lower-level but more
173
+
flexible DifferentialEquations.jl event/callback interface, see the
0 commit comments