Skip to content

Commit c36fbf5

Browse files
committed
Merge branch 'master' into symbolics_fixes
2 parents dd833de + 1076687 commit c36fbf5

File tree

71 files changed

+3525
-645
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+3525
-645
lines changed

.github/workflows/CI.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
group:
1515
- Core
1616
version:
17-
- '1.10.2'
17+
- '1'
1818
steps:
1919
- uses: actions/checkout@v4
2020
- uses: julia-actions/setup-julia@v2

.github/workflows/FormatCheck.yml

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: format-check
1+
name: "Format Check"
22

33
on:
44
push:
@@ -9,34 +9,6 @@ on:
99
pull_request:
1010

1111
jobs:
12-
build:
13-
runs-on: ${{ matrix.os }}
14-
strategy:
15-
matrix:
16-
julia-version: [1]
17-
julia-arch: [x86]
18-
os: [ubuntu-latest]
19-
steps:
20-
- uses: julia-actions/setup-julia@latest
21-
with:
22-
version: ${{ matrix.julia-version }}
23-
24-
- uses: actions/checkout@v4
25-
- name: Install JuliaFormatter and format
26-
# This will use the latest version by default but you can set the version like so:
27-
#
28-
# julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter", version="0.13.0"))'
29-
run: |
30-
julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter", version="1.0.32"))'
31-
julia -e 'using JuliaFormatter; format(".", verbose=true)'
32-
- name: Format check
33-
run: |
34-
julia -e '
35-
out = Cmd(`git diff --name-only`) |> read |> String
36-
if out == ""
37-
exit(0)
38-
else
39-
@error "Some files have not been formatted !!!"
40-
write(stdout, out)
41-
exit(1)
42-
end'
12+
format-check:
13+
name: "Format Check"
14+
uses: "SciML/.github/.github/workflows/format-check.yml@v1"

HISTORY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ rn = @reaction_network begin
2424
@parameters η
2525
k, 2X --> X2, [noise_scaling=η]
2626
end
27-
get_noise_scaling(rn)
27+
getnoisescaling(rn)
2828
```
2929
- `SDEProblem` no longer takes the `noise_scaling` argument (see above for new approach to handle noise scaling).
3030
- Changed fields of internal `Reaction` structure. `ReactionSystems`s saved using `serialize` on previous Catalyst versions cannot be loaded using this (or later) versions.

Project.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ BifurcationKit = "0.3"
4141
DataStructures = "0.18"
4242
DiffEqBase = "6.83.0"
4343
DocStringExtensions = "0.8, 0.9"
44+
DynamicPolynomials = "0.5"
4445
DynamicQuantities = "0.13.2"
4546
Graphs = "1.4"
4647
HomotopyContinuation = "2.9"
@@ -58,7 +59,7 @@ StructuralIdentifiability = "0.5.1"
5859
SymbolicUtils = "1.0.3"
5960
Symbolics = "5.27"
6061
Unitful = "1.12.4"
61-
julia = "1.9"
62+
julia = "1.10"
6263

6364
[extras]
6465
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"

docs/Project.toml

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
55
Catalyst = "479239e8-5488-4da2-87a7-35f2df7eef83"
66
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
77
DiffEqParamEstim = "1130ab10-4a5a-5621-a13d-e4788d82bd4c"
8-
DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa"
98
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
109
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
1110
DynamicalSystems = "61744808-ddfa-5f27-97ff-6e42cc95d634"
@@ -29,45 +28,45 @@ Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
2928
QuasiMonteCarlo = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b"
3029
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
3130
SciMLSensitivity = "1ed8b502-d754-442c-8d5d-10ac956f44a1"
32-
Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
3331
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
32+
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
3433
SteadyStateDiffEq = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f"
3534
StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0"
3635
StructuralIdentifiability = "220ca800-aa68-49bb-acd8-6037fa93a544"
3736
Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
3837

3938
[compat]
40-
BenchmarkTools = "1"
41-
BifurcationKit = "0.3"
39+
BenchmarkTools = "1.5"
40+
BifurcationKit = "0.3.4"
4241
CairoMakie = "0.12"
4342
Catalyst = "13"
44-
DataFrames = "1"
45-
DiffEqParamEstim = "2.1"
46-
DifferentialEquations = "7.7"
43+
DataFrames = "1.6"
44+
DiffEqParamEstim = "2.2"
4745
Distributions = "0.25"
4846
Documenter = "1.4.1"
49-
DynamicalSystems = "3"
50-
GlobalSensitivity = "2.4.0"
51-
HomotopyContinuation = "2.6"
47+
DynamicalSystems = "3.3"
48+
GlobalSensitivity = "2.6"
49+
HomotopyContinuation = "2.9"
5250
IncompleteLU = "0.2"
53-
JumpProcesses = "9"
54-
Latexify = "0.15, 0.16"
55-
LinearSolve = "2"
56-
ModelingToolkit = "9.5"
57-
NonlinearSolve = "3.4.0"
58-
Optim = "1"
59-
Optimization = "3.19"
60-
OptimizationBBO = "0.1.5, 0.2"
61-
OptimizationNLopt = "0.1.8"
62-
OptimizationOptimJL = "0.1.14"
63-
OptimizationOptimisers = "0.1.1"
64-
OrdinaryDiffEq = "6"
65-
Plots = "1.36"
66-
SciMLBase = "2.13"
67-
SciMLSensitivity = "7.19"
68-
Setfield = "1.1"
69-
SpecialFunctions = "2.1"
70-
SteadyStateDiffEq = "2.0.1"
71-
StochasticDiffEq = "6"
72-
StructuralIdentifiability = "0.5.1"
73-
Symbolics = "5.14"
51+
JumpProcesses = "9.11"
52+
Latexify = "0.16"
53+
LinearSolve = "2.30"
54+
ModelingToolkit = "9.15"
55+
NonlinearSolve = "3.12"
56+
Optim = "1.9"
57+
Optimization = "3.25"
58+
OptimizationBBO = "0.2.1"
59+
OptimizationNLopt = "0.2.1"
60+
OptimizationOptimJL = "0.3.1"
61+
OptimizationOptimisers = "0.2.1"
62+
OrdinaryDiffEq = "6.80.1"
63+
Plots = "1.40"
64+
QuasiMonteCarlo = "0.3"
65+
SciMLBase = "2.39"
66+
SciMLSensitivity = "7.60"
67+
SpecialFunctions = "2.4"
68+
StaticArrays = "1.9"
69+
SteadyStateDiffEq = "2.2"
70+
StochasticDiffEq = "6.65"
71+
StructuralIdentifiability = "0.5.7"
72+
Symbolics = "5.28"

docs/pages.jl

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,37 @@
11
pages = Any[
2-
"Home" => "home.md",
2+
"Home" => "index.md",
33
"Introduction to Catalyst" => Any[
44
"introduction_to_catalyst/catalyst_for_new_julia_users.md",
5-
"introduction_to_catalyst/introduction_to_catalyst.md"
5+
# "introduction_to_catalyst/introduction_to_catalyst.md"
66
# Advanced introduction.
77
],
88
"Model Creation and Properties" => Any[
99
"model_creation/dsl_basics.md",
1010
"model_creation/dsl_advanced.md",
11-
"model_creation/programmatic_CRN_construction.md",
11+
#"model_creation/programmatic_CRN_construction.md",
1212
"model_creation/compositional_modeling.md",
13-
"model_creation/constraint_equations.md",
13+
#"model_creation/constraint_equations.md",
1414
# Events.
1515
"model_creation/parametric_stoichiometry.md",# Distributed parameters, rates, and initial conditions.
16+
"model_creation/model_file_loading_and_export.md",# Distributed parameters, rates, and initial conditions.
1617
# Loading and writing models to files.
17-
# Model visualisation.
18-
"model_creation/network_analysis.md",
18+
"model_creation/model_visualisation.md",
19+
#"model_creation/network_analysis.md",
1920
"model_creation/chemistry_related_functionality.md",
2021
"Model creation examples" => Any[
2122
"model_creation/examples/basic_CRN_library.md",
2223
"model_creation/examples/programmatic_generative_linear_pathway.md",
2324
"model_creation/examples/hodgkin_huxley_equation.md",
24-
"model_creation/examples/smoluchowski_coagulation_equation.md"
25+
#"model_creation/examples/smoluchowski_coagulation_equation.md"
2526
]
2627
],
2728
"Model simulation" => Any[
2829
"model_simulation/simulation_introduction.md",
29-
# Simulation introduction.
3030
"model_simulation/simulation_plotting.md",
3131
"model_simulation/simulation_structure_interfacing.md",
3232
"model_simulation/ensemble_simulations.md",
3333
# Stochastic simulation statistical analysis.
3434
"model_simulation/ode_simulation_performance.md",
35-
# ODE Performance considerations/advice.
3635
# SDE Performance considerations/advice.
3736
# Jump Performance considerations/advice.
3837
# Finite state projection
@@ -51,7 +50,7 @@ pages = Any[
5150
# ODE parameter fitting using Turing.
5251
# SDE/Jump fitting.
5352
"inverse_problems/behaviour_optimisation.md",
54-
"inverse_problems/structural_identifiability.md",
53+
"inverse_problems/structural_identifiability.md", # Broken on Julia v1.10.3, requires v1.10.2 or 1.10.4.
5554
# Practical identifiability.
5655
"inverse_problems/global_sensitivity_analysis.md",
5756
"Inverse problem examples" => Any[
@@ -69,4 +68,4 @@ pages = Any[
6968
# ],
7069
"FAQs" => "faqs.md",
7170
"API" => "api.md"
72-
]
71+
]

docs/src/api.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,37 +35,41 @@ corresponding chemical reaction ODE models, chemical Langevin equation SDE
3535
models, and stochastic chemical kinetics jump process models.
3636

3737
```@example ex1
38-
using Catalyst, DifferentialEquations, Plots
38+
using Catalyst, OrdinaryDiffEq, StochasticDiffEq, JumpProcesses, Plots
3939
t = default_t()
4040
@parameters β γ
4141
@species S(t) I(t) R(t)
4242
4343
rxs = [Reaction(β, [S,I], [I], [1,1], [2])
4444
Reaction(γ, [I], [R])]
4545
@named rs = ReactionSystem(rxs, t)
46+
rs = complete(rs)
4647
4748
u₀map = [S => 999.0, I => 1.0, R => 0.0]
4849
parammap = [β => 1/10000, γ => 0.01]
4950
tspan = (0.0, 250.0)
5051
5152
# solve as ODEs
5253
odesys = convert(ODESystem, rs)
54+
odesys = complete(odesys)
5355
oprob = ODEProblem(odesys, u₀map, tspan, parammap)
5456
sol = solve(oprob, Tsit5())
5557
p1 = plot(sol, title = "ODE")
5658
5759
# solve as SDEs
5860
sdesys = convert(SDESystem, rs)
61+
sdesys = complete(sdesys)
5962
sprob = SDEProblem(sdesys, u₀map, tspan, parammap)
60-
sol = solve(sprob, EM(), dt=.01)
63+
sol = solve(sprob, EM(), dt=.01, saveat = 2.0)
6164
p2 = plot(sol, title = "SDE")
6265
6366
# solve as jump process
6467
jumpsys = convert(JumpSystem, rs)
68+
jumpsys = complete(jumpsys)
6569
u₀map = [S => 999, I => 1, R => 0]
6670
dprob = DiscreteProblem(jumpsys, u₀map, tspan, parammap)
67-
jprob = JumpProblem(jumpsys, dprob, Direct())
68-
sol = solve(jprob, SSAStepper())
71+
jprob = JumpProblem(jumpsys, dprob, Direct(); save_positions = (false,false))
72+
sol = solve(jprob, SSAStepper(), saveat = 2.0)
6973
p3 = plot(sol, title = "jump")
7074
7175
plot(p1, p2, p3; layout = (3,1))
@@ -152,16 +156,13 @@ accessor functions.
152156
```@docs
153157
species
154158
nonspecies
155-
reactionsystemparams
156159
reactions
157160
nonreactions
158161
numspecies
159162
numparams
160163
numreactions
161-
numreactionsystemparams
162164
speciesmap
163165
paramsmap
164-
reactionsystemparamsmap
165166
isspecies
166167
isautonomous
167168
Catalyst.isconstant

docs/src/assets/Project.toml

Lines changed: 39 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
[deps]
2+
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
23
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
4+
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
35
Catalyst = "479239e8-5488-4da2-87a7-35f2df7eef83"
46
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
57
DiffEqParamEstim = "1130ab10-4a5a-5621-a13d-e4788d82bd4c"
68
DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa"
79
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
810
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
11+
DynamicalSystems = "61744808-ddfa-5f27-97ff-6e42cc95d634"
12+
GlobalSensitivity = "af5da776-676b-467e-8baf-acd8249e4f0f"
913
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
14+
IncompleteLU = "40713840-3770-5561-ab4c-a76e7d0d7895"
15+
JumpProcesses = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5"
1016
Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"
17+
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
1118
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
1219
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
1320
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
1421
Optim = "429524aa-4258-5aef-a3af-852621145aeb"
1522
Optimization = "7f7a1694-90dd-40f0-9382-eb1efda571ba"
23+
OptimizationBBO = "3e6eede4-6085-4f62-9a71-46d9bc1eb92b"
1624
OptimizationNLopt = "4e6fcdb7-1186-4e1f-a706-475e75c168bb"
1725
OptimizationOptimJL = "36348300-93cb-4f02-beb5-3c3902f8871e"
1826
OptimizationOptimisers = "42dfb2eb-d2b4-4451-abcd-913932933ac1"
@@ -21,37 +29,45 @@ Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
2129
QuasiMonteCarlo = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b"
2230
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
2331
SciMLSensitivity = "1ed8b502-d754-442c-8d5d-10ac956f44a1"
24-
Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
2532
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
33+
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
2634
SteadyStateDiffEq = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f"
2735
StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0"
2836
StructuralIdentifiability = "220ca800-aa68-49bb-acd8-6037fa93a544"
2937
Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
3038

3139
[compat]
40+
BenchmarkTools = "1.5"
3241
BifurcationKit = "0.3"
42+
CairoMakie = "0.12"
3343
Catalyst = "13"
34-
DataFrames = "1"
35-
DiffEqParamEstim = "2.1"
36-
DifferentialEquations = "7.7"
44+
DataFrames = "1.6"
45+
DiffEqParamEstim = "2.2"
3746
Distributions = "0.25"
3847
Documenter = "1.4.1"
39-
HomotopyContinuation = "2.6"
40-
Latexify = "0.15, 0.16"
41-
ModelingToolkit = "9.5"
42-
NonlinearSolve = "3.4.0"
43-
Optim = "1"
44-
Optimization = "3.19"
45-
OptimizationNLopt = "0.1.8"
46-
OptimizationOptimJL = "0.1.14"
47-
OptimizationOptimisers = "0.1.1"
48-
OrdinaryDiffEq = "6"
49-
Plots = "1.36"
50-
SciMLBase = "2.13"
51-
SciMLSensitivity = "7.19"
52-
Setfield = "1.1"
53-
SpecialFunctions = "2.1"
54-
SteadyStateDiffEq = "2.0.1"
55-
StochasticDiffEq = "6"
56-
StructuralIdentifiability = "0.5.1"
57-
Symbolics = "5.14"
48+
DynamicalSystems = "3.3"
49+
GlobalSensitivity = "2.6"
50+
HomotopyContinuation = "2.9"
51+
IncompleteLU = "0.2"
52+
JumpProcesses = "9.11"
53+
Latexify = "0.16"
54+
LinearSolve = "2.30"
55+
ModelingToolkit = "9.15"
56+
NonlinearSolve = "3.12"
57+
Optim = "1.9"
58+
Optimization = "3.25"
59+
OptimizationBBO = "0.2.1"
60+
OptimizationNLopt = "0.2.1"
61+
OptimizationOptimJL = "0.3.1"
62+
OptimizationOptimisers = "0.2.1"
63+
OrdinaryDiffEq = "6.80.1"
64+
Plots = "1.40"
65+
QuasiMonteCarlo = "0.3"
66+
SciMLBase = "2.39"
67+
SciMLSensitivity = "7.60"
68+
SpecialFunctions = "2.4"
69+
StaticArrays = "1.9"
70+
SteadyStateDiffEq = "2.2"
71+
StochasticDiffEq = "6.65"
72+
StructuralIdentifiability = "0.5.7"
73+
Symbolics = "5.28"

0 commit comments

Comments
 (0)